@magic-xpa/utils 4.1000.0-dev4100.7 → 4.1000.0-dev4100.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"magic-xpa-utils.mjs","sources":["../../../../projects/utils/src/UtilStrByteMode.ts","../../../../projects/utils/src/Rtf.ts","../../../../projects/utils/src/StrUtil.ts","../../../../projects/utils/src/Misc.ts","../../../../projects/utils/src/Base64.ts","../../../../projects/utils/src/ChoiceUtils.ts","../../../../projects/utils/src/Constants.ts","../../../../projects/utils/src/XMLConstants.ts","../../../../projects/utils/src/DateTimeUtils.ts","../../../../projects/utils/src/PICInterface.ts","../../../../projects/utils/src/DateUtil.ts","../../../../projects/utils/src/enums.ts","../../../../projects/utils/src/InternalInterface.ts","../../../../projects/utils/src/JSON_Utils.ts","../../../../projects/utils/src/PlatformUtils.ts","../../../../projects/utils/src/RequestInfo.ts","../../../../projects/utils/src/Logger.ts","../../../../projects/utils/src/MagicConstants.ts","../../../../projects/utils/src/MsgInterface.ts","../../../../projects/utils/src/Queue.ts","../../../../projects/utils/src/Randomizer.ts","../../../../projects/utils/src/StorageAttribute.ts","../../../../projects/utils/src/SyncExecutionHelper.ts","../../../../projects/utils/src/UtilDateJpn.ts","../../../../projects/utils/src/UtilImeJpn.ts","../../../../projects/utils/src/Xml/XmlParser.ts"],"sourcesContent":["/// <summary>JPN: DBCS support\r\n/// Utility Class for String\r\n/// In this class, considering DBCS, strings are counted by the number\r\n/// of bytes, not the number of characters.\r\n/// </summary>\r\n/// <author> Toshiro Nakayoshi (MSJ) </author>\r\nimport {Encoding, StringBuilder} from \"@magic-xpa/mscorelib\";\r\n\r\nexport class UtilStrByteMode {\r\n public static Encoding: Encoding = Encoding.UTF8;\r\n // TODO : need to check what to do with CultureInfo\r\n static strNavigatorLang: string = window.navigator.language;\r\n private static _bLocaleDefLangJPN: boolean = UtilStrByteMode.strNavigatorLang.startsWith('ja');\r\n private static _bLocaleDefLangCHN: boolean = UtilStrByteMode.strNavigatorLang.startsWith('zh');\r\n private static _bLocaleDefLangKOR: boolean = UtilStrByteMode.strNavigatorLang.startsWith('ko');\r\n\r\n /// <summary> Checks the environment whether it is running on DBCS environment\r\n /// Returns true if the language code for the current default Locale is\r\n /// DBCS language (in non-Unicode encoding).\r\n ///\r\n /// </summary>\r\n /// <returns> true if DBCS, or false if SBCS\r\n /// </returns>\r\n static isLocaleDefLangDBCS(): boolean {\r\n return UtilStrByteMode._bLocaleDefLangJPN || UtilStrByteMode._bLocaleDefLangCHN || UtilStrByteMode._bLocaleDefLangKOR;\r\n }\r\n\r\n /// <summary> Checks whether the language code for the current default Locale\r\n /// is JAPANESE.\r\n ///\r\n /// </summary>\r\n /// <returns> true if JAPANESE, or false if not\r\n /// </returns>\r\n static isLocaleDefLangJPN(): boolean {\r\n return UtilStrByteMode._bLocaleDefLangJPN;\r\n }\r\n\r\n /// <summary> Checks whether the language code for the current default Locale\r\n /// is KOREAN.\r\n ///\r\n /// </summary>\r\n /// <returns> true if KOREAN, or false if not\r\n /// </returns>\r\n static isLocaleDefLangKOR(): boolean {\r\n return UtilStrByteMode._bLocaleDefLangKOR;\r\n }\r\n\r\n static isKoreanCharacter(c: number): boolean {\r\n return (44032 <= /*'가'*/c && c <= 55203/*'힣'*/) || (4352 <= /*'ᄀ'*/c && c <= 4607/*'ᇿ'*/) || (12592 <= /*'㄰'*/c && c <= 12687/*'㆏'*/) || (43360 <= /*'ꥠ'*/c && c <= 43391/*'꥿'*/) || (55216 <= /*'ힰ'*/c && c <= 55295/*'퟿'*/);\r\n }\r\n\r\n /// <summary> Length of String\r\n /// Returns the number of bytes (in default encoding).\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <returns> the number of bytes (in default encoding)\r\n ///\r\n /// Example: lenB(\"abXYc\")\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// 7.\r\n /// </returns>\r\n static lenB(strVal: string): number {\r\n // convert to byte[] by default-encoding\r\n return UtilStrByteMode.Encoding.GetByteCount(strVal);\r\n }\r\n\r\n /// <summary> Substring of String\r\n /// Extracts a specified number of characters (a substring) from a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"ofs:\">starting position (byte) of the substring\r\n /// </param>\r\n /// <param name=\"len:\">number of bytes to be extracted (i.e. bytes of substring)\r\n /// </param>\r\n /// <returns> substring\r\n ///\r\n /// Example: midB(\"abXYc\", 2, 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \"bX \".\r\n /// </returns>\r\n static midB(strVal: string, ofs: number, len: number): string {\r\n let intValidMaxIndex: number = -1; // param #1 of substring\r\n let intValidMinIndex: number = -1; // param #2 of substring\r\n let bHeadSpace: boolean = false; // flag: need to add space\r\n let bEndSpace: boolean = false; // flag: need to add space\r\n\r\n let strRet: string;\r\n\r\n // check and modify ofs & len\r\n if (len <= 0)\r\n return \"\";\r\n\r\n if (ofs <= 0) {\r\n ofs = 0;\r\n intValidMinIndex = 0;\r\n bHeadSpace = false;\r\n }\r\n\r\n let intByteLength: number = UtilStrByteMode.lenB(strVal);\r\n\r\n if (intByteLength < ofs)\r\n return \"\";\r\n\r\n let LenMax: number = intByteLength - ofs;\r\n if (LenMax < len)\r\n len = LenMax;\r\n\r\n // set MinIndex and MaxIndex for substring\r\n intByteLength = 0;\r\n\r\n for (let intIndex: number = 0; intIndex < strVal.length; intIndex = intIndex + 1) {\r\n let s: string = strVal.substr(intIndex, 1);\r\n intByteLength = intByteLength + UtilStrByteMode.Encoding.GetByteCount(s);\r\n\r\n if (intValidMinIndex === -1) {\r\n if (intByteLength === ofs) {\r\n intValidMinIndex = intIndex + 1;\r\n bHeadSpace = false;\r\n }\r\n else if (intByteLength > ofs) {\r\n intValidMinIndex = intIndex + 1;\r\n bHeadSpace = true;\r\n }\r\n }\r\n\r\n if (intValidMaxIndex === -1) {\r\n if (intByteLength === ofs + len) {\r\n intValidMaxIndex = intIndex;\r\n bEndSpace = false;\r\n break;\r\n }\r\n else if (intByteLength > ofs + len) {\r\n intValidMaxIndex = intIndex - 1;\r\n bEndSpace = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // prepare for substring\r\n let strbufAddingBuf: StringBuilder = new StringBuilder(len);\r\n\r\n // execute Mid\r\n if (bHeadSpace) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n\r\n if (intValidMinIndex <= intValidMaxIndex) {\r\n strbufAddingBuf.Append(strVal.substr(intValidMinIndex, intValidMaxIndex + 1 - intValidMinIndex));\r\n }\r\n\r\n if (bEndSpace) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n\r\n strRet = strbufAddingBuf.ToString();\r\n strbufAddingBuf = null;\r\n\r\n return strRet;\r\n }\r\n\r\n /// <summary> Get Characters from Left of String\r\n /// Returns a specified number of bytes from the left side of a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"len:\">number of bytes to be retured\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: leftB(\"abXYc\", 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \"abX\".\r\n /// </returns>\r\n static leftB(strVal: string, len: number): string {\r\n return UtilStrByteMode.midB(strVal, 0, len);\r\n }\r\n\r\n /// <summary> Get Characters from Right of String\r\n /// Returns a specified number of bytes from the right side of a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"len:\">number of bytes to be retured\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: rightB(\"abXYc\", 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \" Yc\".\r\n /// </returns>\r\n static rightB(strVal: string, len: number): string {\r\n let byteFldsValLen: number = UtilStrByteMode.lenB(strVal);\r\n\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n let ofs: number = byteFldsValLen - len;\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n return UtilStrByteMode.midB(strVal, ofs, len);\r\n }\r\n\r\n /// <summary> Insert String\r\n /// Inserts one string into another.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">A string that represents the target string.\r\n /// </param>\r\n /// <param name=\"strSource:\">A string that represents the source string.\r\n /// </param>\r\n /// <param name=\"ofs:\">A number that represents the starting position (byte) in\r\n /// the target.\r\n /// </param>\r\n /// <param name=\"len:\">A number that represents the number of bytes from the\r\n /// source that will be inserted into the target.\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: insB(\"abXYc\", \"de\", 4, 1)\r\n /// Where 'a', 'b', 'c', 'd' and 'e' are SBCS, and 'X' and 'Y' are DBCS,\r\n /// it returns \"ab d Yc\".\r\n /// </returns>\r\n static insB(strTarget: string, strSource: string, ofs: number, len: number): string {\r\n\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if (ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n let intTargetLenB: number = UtilStrByteMode.lenB(strTarget);\r\n let intSourceLenB: number = UtilStrByteMode.lenB(strSource);\r\n let strbufRetVal: StringBuilder = new StringBuilder(ofs + len);\r\n\r\n strbufRetVal.Append(UtilStrByteMode.leftB(strTarget, ofs));\r\n for (let intAddSpaceLen: number = ofs - intTargetLenB; intAddSpaceLen > 0; intAddSpaceLen = intAddSpaceLen - 1) {\r\n strbufRetVal.Append(' ');\r\n }\r\n strbufRetVal.Append(UtilStrByteMode.leftB(strSource, len));\r\n for (let i: number = len - intSourceLenB; i > 0; i = i - 1) {\r\n strbufRetVal.Append(' ');\r\n }\r\n strbufRetVal.Append(UtilStrByteMode.rightB(strTarget, intTargetLenB - ofs));\r\n return strbufRetVal.ToString();\r\n }\r\n\r\n /// <summary> Delete Characters\r\n /// Delete characters from a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"ofs:\">The position (byte) of the first character to be deleted.\r\n /// </param>\r\n /// <param name=\"len:\">The number of characters to be deleted, beginning with\r\n /// position start and proceeding rightward.\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: delB(\"abXYc\", 2, 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \"a c\".\r\n /// </returns>\r\n static delB(strVal: string, ofs: number, len: number): string {\r\n\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if ( ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n let intValLenB: number = UtilStrByteMode.lenB(strVal);\r\n if (ofs + len > intValLenB) {\r\n len = intValLenB - ofs;\r\n }\r\n let strRet: string;\r\n if (len <= 0) {\r\n strRet = strVal;\r\n }\r\n else {\r\n let intRightSideLenB: number = intValLenB - ofs - len;\r\n if (intRightSideLenB < 0) {\r\n strRet = strVal;\r\n }\r\n else {\r\n let strbufRetVal: StringBuilder = new StringBuilder(ofs + intRightSideLenB);\r\n strbufRetVal.Append(UtilStrByteMode.leftB(strVal, ofs));\r\n strbufRetVal.Append(UtilStrByteMode.rightB(strVal, intRightSideLenB));\r\n strRet = strbufRetVal.ToString();\r\n }\r\n }\r\n return strRet;\r\n }\r\n\r\n /// <summary> In-String Search\r\n /// Returns a number that represents the first position (byte) of a\r\n /// substring within a string.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"strSearch:\">string which will be the search argument in string\r\n /// </param>\r\n /// <returns> number, 0 if not found\r\n ///\r\n /// Example: instrB(\"abXYc\", \"Y\")\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// 5.\r\n /// </returns>\r\n static instrB(strTarget: string, strSearch: string): number {\r\n\r\n if (strSearch.length === 0) {\r\n // nothing to look for\r\n return 0;\r\n }\r\n\r\n let ofs: number = strTarget.indexOf(strSearch);\r\n\r\n if (ofs < 0) {\r\n // not found\r\n return 0;\r\n }\r\n\r\n return UtilStrByteMode.lenB(strTarget.substr(0, ofs)) + 1;\r\n }\r\n\r\n /// <summary> Replace Substring Within a String (Byte Mode)\r\n /// Replaces a substring within a string with another substring.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">target string where the replacement will take place.\r\n /// </param>\r\n /// <param name=\"strOrigin:\">string that provides the substring to be copied to\r\n /// target.\r\n /// </param>\r\n /// <param name=\"ofs:\">the first position (byte) in the target string that will\r\n /// receive the substring from origin.\r\n /// </param>\r\n /// <param name=\"len:\">the number of bytes that will be moved from origin to\r\n /// target, starting from the leftmost character of origin.\r\n /// </param>\r\n /// <returns> string containing modified target string\r\n ///\r\n /// Example: repB(\"abXYc\", \"de\", 4, 2)\r\n /// Where 'a', 'b', 'c', 'd' and 'e' are SBCS, and 'X' and 'Y' are DBCS,\r\n /// it returns \"ab de c\".\r\n /// </returns>\r\n static repB(strTarget: string, strOrigin: string, ofs: number, len: number): string {\r\n let strbufAddingBuf: StringBuilder = new StringBuilder();\r\n\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if (ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n strbufAddingBuf.Append(UtilStrByteMode.leftB(strTarget, ofs));\r\n\r\n let intAddSpaceLen: number = ofs - UtilStrByteMode.lenB(strTarget);\r\n for (; intAddSpaceLen > 0; intAddSpaceLen--)\r\n strbufAddingBuf.Append(' ');\r\n\r\n\r\n strbufAddingBuf.Append(UtilStrByteMode.leftB(strOrigin, len));\r\n\r\n let intRightLen: number = UtilStrByteMode.lenB(strTarget) - (ofs + len);\r\n if (intRightLen > 0) {\r\n strbufAddingBuf.Append(UtilStrByteMode.rightB(strTarget, intRightLen));\r\n }\r\n\r\n // add blanks to the end\r\n intAddSpaceLen = len - UtilStrByteMode.lenB(strOrigin);\r\n for (; intAddSpaceLen > 0; intAddSpaceLen--) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n\r\n return strbufAddingBuf.ToString();\r\n }\r\n\r\n /// <summary> Replace Substring Within a String (Character Mode)\r\n /// Replaces a substring within a string with another substring.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">target string where the replacement will take place.\r\n /// </param>\r\n /// <param name=\"strOrigin:\">string that provides the substring to be copied to\r\n /// target.\r\n /// </param>\r\n /// <param name=\"ofs:\">the first position (character) in the target string that\r\n /// will receive the substring from origin.\r\n /// </param>\r\n /// <param name=\"len:\">the number of characters that will be moved from origin\r\n /// to target, starting from the leftmost character of origin.\r\n /// </param>\r\n /// <returns> string containing modified target string\r\n ///\r\n /// Example: repB(\"abXYc\", \"de\", 4, 2)\r\n /// Whether each character is SBCS or DBCS, it returns \"abXde\".\r\n /// </returns>\r\n static repC(strTarget: string, strOrigin: string, ofs: number, len: number): string {\r\n let strbufAddingBuf: StringBuilder = new StringBuilder();\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if (ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n strbufAddingBuf.Append(strTarget.substr(0, ofs));\r\n\r\n // add blanks between strTarget and strOrigin\r\n let intAddSpaceLen: number = ofs - strTarget.length;\r\n for (; intAddSpaceLen > 0; intAddSpaceLen--)\r\n strbufAddingBuf.Append(' ');\r\n\r\n strbufAddingBuf.Append(strOrigin.substr(0, len));\r\n\r\n let intRightLen: number = strTarget.length - (ofs + len);\r\n\r\n if (intRightLen > 0) {\r\n strbufAddingBuf.Append(strTarget.substr(ofs + len));\r\n }\r\n for (let i: number = len - strOrigin.length; i > 0; i = i - 1) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n return strbufAddingBuf.ToString();\r\n }\r\n\r\n /// <summary> Checks whether a character is 1 byte (halfwidth) or not (fullwidth)\r\n /// Returns true if the character is represented by 1 byte in non-Unicode\r\n /// encoding.\r\n /// </summary>\r\n /// <param name=\"letter:\">a character to be checked.\r\n /// </param>\r\n /// <returns> true if the character is halfwidth (SBCS), or false if it is\r\n /// fullwidth (DBCS).\r\n /// </returns>\r\n static isHalfWidth(str: string): boolean {\r\n\r\n let letter: number = str.charCodeAt(0);\r\n if (32 <= /*' '*/letter && letter <= 126/*'~'*/) {\r\n return true\r\n }\r\n else {\r\n let len: number = UtilStrByteMode.lenB(str);\r\n if (len === 1)\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /// <summary> Checks whether a character is halfwidth digit letter\r\n /// Do not use \"Character.isDigit\" which cannot distinguish between\r\n /// halfwidth digit letter(SBCS) and fullwidth difit letter(DBCS).\r\n /// </summary>\r\n /// <param name=\"letter:\">a character to be checked.\r\n /// </param>\r\n /// <returns> true if the character is halfwidth digit letter, or\r\n /// false if it is DBCS or not digit letter.\r\n /// </returns>\r\n static isDigit(letter: string): boolean {\r\n return 48 <= /*'0'*/letter.charCodeAt(0) && letter.charCodeAt(0) <= 57/*'9'*/;\r\n }\r\n\r\n /// <summary>Checks whether a character is one of those supported for # Alpha Mask</summary>\r\n /// <param name=\"letter:\">a character to be checked.\r\n /// </param>\r\n /// <returns> true if the character is halfwidth digit letter, or\r\n /// false if it is DBCS or not digit letter.\r\n /// </returns>\r\n static asNumeric(letter: string): boolean {\r\n let result: boolean;\r\n switch (letter.charCodeAt(0)) {\r\n case 42:/*'*'*/\r\n case 43:/*'+'*/\r\n case 44:/*','*/\r\n case 45:/*'-'*/\r\n case 46:/*'.'*/\r\n case 47:/*'/'*/\r\n result = true;\r\n break;\r\n default:\r\n result = false;\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> Converts a position for the 1st string (Source) to a position for\r\n /// the 2nd string (Dest).\r\n /// If a double byte character exists in the strings, the position for the\r\n /// Source could be different from the position for the Dest.\r\n /// (DBCS Support)\r\n ///\r\n /// </summary>\r\n /// <param name=\"strSource:\">Source string\r\n /// </param>\r\n /// <param name=\"strDest:\">Dest string\r\n /// </param>\r\n /// <param name=\"pos:\">position in the Source string\r\n /// </param>\r\n /// <param name=\"isAdvance:\">advance or retreat the ret pos if a DBCS char is split\r\n /// </param>\r\n /// <returns> position in the Dest string\r\n ///\r\n /// Example: convPos(\"abcYZ\", \"YZabc\", 4)\r\n /// It returns 4, if the all characters in the strings are SBCS.\r\n ///\r\n /// If 'a', 'b' and 'c' are SBCS, and 'Y' and 'Z' are DBCS, it\r\n /// returns 3.\r\n /// pos\r\n /// Unicode index 0 1 2 3 [4]\r\n /// +-------------+\r\n /// Source string |a|b|c| Y | Z |\r\n /// +-------------+\r\n /// ANSI index 0 1 2 3 4[5]6\r\n /// +-------------+\r\n /// Dest string | Y | Z |a|b|c|\r\n /// +-------------+\r\n /// Unicode index 0 1 2[3]4\r\n /// ret\r\n /// </returns>\r\n static convPos(strSource: string, strDest: string, pos: number, isAdvance: boolean): number {\r\n let retPos: number;\r\n if (pos < 0)\r\n return 0;\r\n\r\n if (pos > strSource.length)\r\n pos = strSource.length;\r\n\r\n // add blanks to the Dest string if it is shorter than the Src string\r\n let diffLen: number = UtilStrByteMode.lenB(strSource) - UtilStrByteMode.lenB(strDest);\r\n if (diffLen > 0) {\r\n let stringBuilder: StringBuilder = new StringBuilder(strDest);\r\n for (; diffLen > 0; diffLen--)\r\n stringBuilder.Append(' ');\r\n\r\n strDest = stringBuilder.ToString();\r\n }\r\n\r\n let byteSource: Uint8Array = UtilStrByteMode.Encoding.GetBytes(strSource.substr(0, pos));\r\n let strLeftB: string = UtilStrByteMode.leftB(strDest, byteSource.length);\r\n retPos = strLeftB.length;\r\n if (!isAdvance && retPos > 0 && strLeftB.charCodeAt(retPos - 1) === 32/*' '*/ && strDest.charCodeAt(retPos - 1) !== 32/*' '*/) {\r\n retPos = retPos - 1;\r\n }\r\n\r\n return retPos;\r\n }\r\n /// <summary> return the number of characters of picture which corresponds to\r\n /// given string.\r\n /// </summary>\r\n /// <param name=\"str:\">given string\r\n /// </param>\r\n /// <param name=\"picture:\">picture\r\n /// </param>\r\n /// <returns> minimal length of picture\r\n /// Example: getMinLenPicture(\"ZZ20/11/\", \"JJJJYY/MM/DD\") [ZZ is DBCS]\r\n /// It returns 10.\r\n /// </returns>\r\n /// (DBCS Support)\r\n static getMinLenPicture(str: string, picture: string): number {\r\n let len: number = 0;\r\n\r\n if (UtilStrByteMode.lenB(picture) - UtilStrByteMode.lenB(str) > 0) {\r\n len = UtilStrByteMode.convPos(str, picture, str.length, false);\r\n }\r\n else\r\n len = picture.length;\r\n\r\n return len;\r\n }\r\n\r\n /// <summary>\r\n /// </summary> Compares two specified strings in the DBCS sort order and returns an integer\r\n /// that indicates their relative position.\r\n /// <param name=\"str1:\">The first string to compare.\r\n /// </param>\r\n /// <param name=\"str2:\">The second string to compare.\r\n /// </param>\r\n /// <returns>an integer that indicates the lexical relationship between the two strings.\r\n /// -1: str1 is less than str2.\r\n /// 0: str1 equals str2.\r\n /// 1: str1 is greater than str2.\r\n /// </returns>\r\n static strcmp(str1: string, str2: string): number {\r\n let array1: Uint8Array = UtilStrByteMode.Encoding.GetBytes(str1);\r\n let array2: Uint8Array = UtilStrByteMode.Encoding.GetBytes(str2);\r\n\r\n for (let i: number = 0; i < array1.length && i < array2.length; i++) {\r\n if (array1[i] > array2[i]) {\r\n return 1;\r\n }\r\n else if (array1[i] < array2[i]) {\r\n return -1;\r\n }\r\n }\r\n\r\n if (array1.length > array2.length)\r\n return 1;\r\n\r\n if (array1.length < array2.length)\r\n return -1;\r\n else\r\n return 0;\r\n }\r\n}\r\n","import {Encoding, Hashtable, NChar, NNumber, Stack, StringBuilder} from \"@magic-xpa/mscorelib\";\r\nimport {UtilStrByteMode} from \"./UtilStrByteMode\";\r\n\r\n//@dynamic\r\nexport class Rtf_SYMBOL {\r\n szKeyword: string = null;\r\n /* RTF keyword */\r\n kwd: Rtf_KWD = null;\r\n /* base action to take */\r\n idxInRgprop: any = null;\r\n /* index into property table if kwd == kwdProp */\r\n\r\n /* index into destination table if kwd == kwdDest */\r\n\r\n /* character to print if kwd == kwdChar */\r\n constructor(keyWord: string, kwd: Rtf_KWD, idxInRgprop: any) {\r\n this.szKeyword = keyWord;\r\n this.kwd = kwd;\r\n this.idxInRgprop = idxInRgprop;\r\n }\r\n}\r\n// @dynamic\r\nexport class Rtf_PROP {\r\n actn: Rtf_ACTN = null;\r\n /* size of value */\r\n prop: Rtf_PROPTYPE = null;\r\n\r\n /* structure containing value */\r\n\r\n constructor(actn: Rtf_ACTN, prop: Rtf_PROPTYPE) {\r\n this.actn = actn;\r\n this.prop = prop;\r\n }\r\n}\r\n\r\nclass Rtf_StackSave {\r\n rds: Rtf_RDS = null;\r\n ris: Rtf_RIS = null;\r\n}\r\n\r\nexport enum Rtf_KWD {\r\n CHAR,\r\n DEST,\r\n PROP,\r\n SPEC\r\n}\r\n\r\nexport enum Rtf_PROPTYPE {\r\n CHP,\r\n PAP,\r\n SEP,\r\n DOP\r\n}\r\n\r\nexport enum Rtf_ACTN {\r\n SPEC,\r\n BYTE,\r\n WORD\r\n}\r\n\r\nexport enum Rtf_IPFN {\r\n BIN,\r\n HEX,\r\n SKIP_DEST,\r\n BREAK,\r\n NEW,\r\n FONT,\r\n CHARSET,\r\n UNICODE\r\n}\r\n\r\nexport enum Rtf_IDEST {\r\n PICT,\r\n COLOR,\r\n SKIP\r\n}\r\n\r\n/* types of properties */\r\nexport enum Rtf_IPROP {\r\n BOLD = 0,\r\n ITALIC,\r\n UNDERLINE,\r\n FONT,\r\n SIZE,\r\n COLOR,\r\n RED,\r\n GREEN,\r\n BLUE,\r\n LEFT_IND,\r\n RIGHT_IND,\r\n FIRST_IND,\r\n COLS,\r\n PGN_X,\r\n PGN_Y,\r\n XA_PAGE,\r\n YA_PAGE,\r\n XA_LEFT,\r\n XA_RIGHT,\r\n YA_TOP,\r\n YA_BOTTOM,\r\n PGN_START,\r\n SBK,\r\n PGN_FORMAT,\r\n FACING_P,\r\n LANDSCAPE,\r\n JUST,\r\n PARD,\r\n PLAIN,\r\n SECTD,\r\n BULLET,\r\n XA_BULLET,\r\n MAX\r\n}\r\n\r\n/* Rtf Destination State */\r\nexport enum Rtf_RDS {\r\n NORM,\r\n COLOR,\r\n SKIP,\r\n NEW\r\n}\r\n\r\nexport enum Rtf_ErrorRtf {\r\n OK,\r\n STACK_UNDERFLOW,\r\n STACK_OVERFLOW,\r\n UNMATCHED_BRACE,\r\n INVALID_HEX,\r\n BAD_TABLE,\r\n ASSERTION,\r\n END_OF_FILE,\r\n BUFFER_TOO_SMALL\r\n}\r\n\r\n// TODO :\r\n// Rtf_RtfChar should actually be enum.\r\n// But computed string values are not allowed to be defined in enum.\r\n// So, we cannot have String.fromCharCode(XXX).\r\n// We have 2 options:\r\n// 1. Convert this enum into a class with all static readonly items.\r\n// 2. Keep it as enum with numeric values (char codes).\r\n// Going with #1 now, since @2 makes the code ugly.\r\n// Will evalaute later if required.\r\nexport class Rtf_RtfChar {\r\n static readonly CR = String.fromCharCode(0x0d);\r\n static readonly LF = String.fromCharCode(0x0A);\r\n static readonly TAB = String.fromCharCode(0x09);\r\n static readonly BULLET = String.fromCharCode(0x95);\r\n static readonly TILDA = String.fromCharCode(0xA0);\r\n static readonly DASH = String.fromCharCode(0xAD);\r\n static readonly DASH_CHAR = '-';\r\n static readonly QUOTE = '\\'';\r\n static readonly DBLQUOTE = '\"';\r\n static readonly OPENINGBRACE = '{';\r\n static readonly CLOSINGBRACE = '}';\r\n static readonly BACKSLASH = '\\\\';\r\n}\r\n\r\nexport enum Rtf_RIS {\r\n NORM,\r\n BIN,\r\n HEX,\r\n UNICODE\r\n}\r\n\r\nexport class Rtf {\r\n private _group: number = 0;\r\n private _cbBin: number = 0;\r\n private _lParam: number = 0;\r\n private _skipDestIfUnk: boolean = false;\r\n private _outputOnce: boolean = false;\r\n private _processCrlfSpecial: boolean = false;\r\n private _destState: Rtf_RDS = null;\r\n private _internalState: Rtf_RIS = null;\r\n private _stack: Stack<Rtf_StackSave> = null;\r\n private _index: number = 0;\r\n private _fontNum: number = 0;\r\n private readonly _charsetTable: Hashtable<number, number> = new Hashtable<number, number>();\r\n private readonly _codePageTable: Hashtable<number, number> = new Hashtable<number, number>();\r\n private static readonly RTF_PREFIX: string = \"{\\\\rtf\";\r\n private static readonly CHAR_PAR: string = \"par\";\r\n\r\n /* Property descriptions */\r\n private static readonly rgprop: Rtf_PROP[] = [\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.PAP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.PAP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.PAP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.SEP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.SEP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.SEP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.SEP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.SEP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.PAP), new Rtf_PROP(Rtf_ACTN.SPEC, Rtf_PROPTYPE.PAP),\r\n new Rtf_PROP(Rtf_ACTN.SPEC, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.SPEC, Rtf_PROPTYPE.SEP)\r\n ];\r\n\r\n /* Keyword descriptions */\r\n private static readonly rgsymRtf: Rtf_SYMBOL[] = [\r\n new Rtf_SYMBOL(\"b\", Rtf_KWD.PROP, Rtf_IPROP.BOLD), new Rtf_SYMBOL(\"ul\", Rtf_KWD.PROP, Rtf_IPROP.UNDERLINE),\r\n new Rtf_SYMBOL(\"i\", Rtf_KWD.PROP, Rtf_IPROP.ITALIC), new Rtf_SYMBOL(\"li\", Rtf_KWD.PROP, Rtf_IPROP.LEFT_IND),\r\n new Rtf_SYMBOL(\"ri\", Rtf_KWD.PROP, Rtf_IPROP.RIGHT_IND), new Rtf_SYMBOL(\"fi\", Rtf_KWD.PROP, Rtf_IPROP.FIRST_IND),\r\n new Rtf_SYMBOL(\"cols\", Rtf_KWD.PROP, Rtf_IPROP.COLS), new Rtf_SYMBOL(\"sbknone\", Rtf_KWD.PROP, Rtf_IPROP.SBK),\r\n new Rtf_SYMBOL(\"sbkcol\", Rtf_KWD.PROP, Rtf_IPROP.SBK), new Rtf_SYMBOL(\"sbkeven\", Rtf_KWD.PROP, Rtf_IPROP.SBK),\r\n new Rtf_SYMBOL(\"sbkodd\", Rtf_KWD.PROP, Rtf_IPROP.SBK), new Rtf_SYMBOL(\"sbkpage\", Rtf_KWD.PROP, Rtf_IPROP.SBK),\r\n new Rtf_SYMBOL(\"pgnx\", Rtf_KWD.PROP, Rtf_IPROP.PGN_X), new Rtf_SYMBOL(\"pgny\", Rtf_KWD.PROP, Rtf_IPROP.PGN_Y),\r\n new Rtf_SYMBOL(\"pgndec\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT), new Rtf_SYMBOL(\"pgnucrm\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT),\r\n new Rtf_SYMBOL(\"pgnlcrm\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT), new Rtf_SYMBOL(\"pgnucltr\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT),\r\n new Rtf_SYMBOL(\"pgnlcltr\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT), new Rtf_SYMBOL(\"qc\", Rtf_KWD.PROP, Rtf_IPROP.JUST),\r\n new Rtf_SYMBOL(\"ql\", Rtf_KWD.PROP, Rtf_IPROP.JUST), new Rtf_SYMBOL(\"qr\", Rtf_KWD.PROP, Rtf_IPROP.JUST),\r\n new Rtf_SYMBOL(\"qj\", Rtf_KWD.PROP, Rtf_IPROP.JUST), new Rtf_SYMBOL(\"paperw\", Rtf_KWD.PROP, Rtf_IPROP.XA_PAGE),\r\n new Rtf_SYMBOL(\"paperh\", Rtf_KWD.PROP, Rtf_IPROP.YA_PAGE), new Rtf_SYMBOL(\"margl\", Rtf_KWD.PROP, Rtf_IPROP.XA_LEFT),\r\n new Rtf_SYMBOL(\"margr\", Rtf_KWD.PROP, Rtf_IPROP.XA_RIGHT), new Rtf_SYMBOL(\"margt\", Rtf_KWD.PROP, Rtf_IPROP.YA_TOP),\r\n new Rtf_SYMBOL(\"margb\", Rtf_KWD.PROP, Rtf_IPROP.YA_BOTTOM), new Rtf_SYMBOL(\"pgnstart\", Rtf_KWD.PROP, Rtf_IPROP.PGN_START),\r\n new Rtf_SYMBOL(\"facingp\", Rtf_KWD.PROP, Rtf_IPROP.FACING_P), new Rtf_SYMBOL(\"landscape\", Rtf_KWD.PROP, Rtf_IPROP.LANDSCAPE),\r\n new Rtf_SYMBOL(\"par\", Rtf_KWD.CHAR, Rtf_RtfChar.LF), new Rtf_SYMBOL(\"\\0x0a\", Rtf_KWD.CHAR, Rtf_RtfChar.LF),\r\n new Rtf_SYMBOL(\"\\0x0d\", Rtf_KWD.CHAR, Rtf_RtfChar.LF), new Rtf_SYMBOL(\"tab\", Rtf_KWD.CHAR, Rtf_RtfChar.TAB),\r\n new Rtf_SYMBOL(\"ldblquote\", Rtf_KWD.CHAR, Rtf_RtfChar.DBLQUOTE), new Rtf_SYMBOL(\"rdblquote\", Rtf_KWD.CHAR, Rtf_RtfChar.DBLQUOTE),\r\n new Rtf_SYMBOL(\"lquote\", Rtf_KWD.CHAR, Rtf_RtfChar.QUOTE), new Rtf_SYMBOL(\"rquote\", Rtf_KWD.CHAR, Rtf_RtfChar.QUOTE),\r\n new Rtf_SYMBOL(\"bullet\", Rtf_KWD.CHAR, Rtf_RtfChar.BULLET), new Rtf_SYMBOL(\"endash\", Rtf_KWD.CHAR, Rtf_RtfChar.DASH_CHAR),\r\n new Rtf_SYMBOL(\"emdash\", Rtf_KWD.CHAR, Rtf_RtfChar.DASH_CHAR), new Rtf_SYMBOL(\"~\", Rtf_KWD.CHAR, Rtf_RtfChar.TILDA),\r\n new Rtf_SYMBOL(\"-\", Rtf_KWD.CHAR, Rtf_RtfChar.DASH), new Rtf_SYMBOL(\"{\", Rtf_KWD.CHAR, Rtf_RtfChar.OPENINGBRACE),\r\n new Rtf_SYMBOL(\"}\", Rtf_KWD.CHAR, Rtf_RtfChar.CLOSINGBRACE), new Rtf_SYMBOL(\"\\\\\", Rtf_KWD.CHAR, Rtf_RtfChar.BACKSLASH),\r\n new Rtf_SYMBOL(\"bin\", Rtf_KWD.SPEC, Rtf_IPFN.BIN), new Rtf_SYMBOL(\"*\", Rtf_KWD.SPEC, Rtf_IPFN.SKIP_DEST),\r\n new Rtf_SYMBOL(\"'\", Rtf_KWD.SPEC, Rtf_IPFN.HEX), new Rtf_SYMBOL(\"f\", Rtf_KWD.SPEC, Rtf_IPFN.FONT),\r\n new Rtf_SYMBOL(\"fcharset\", Rtf_KWD.SPEC, Rtf_IPFN.CHARSET), new Rtf_SYMBOL(\"u\", Rtf_KWD.SPEC, Rtf_IPFN.UNICODE),\r\n new Rtf_SYMBOL(\"author\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"buptim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"colortbl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"comment\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"creatim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"doccomm\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"fonttbl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"footer\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"footerf\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"footerl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"footerr\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"footnote\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"ftncn\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"ftnsep\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"ftnsepc\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"header\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"headerf\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"headerl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"headerr\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"info\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"keywords\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"operator\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"pict\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"printim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"private1\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"revtim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"rxe\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"stylesheet\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"subject\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"tc\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"title\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"txe\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"xe\", Rtf_KWD.DEST, Rtf_IDEST.SKIP)\r\n ];\r\n\r\n /// <summary> Constructor\r\n /// </summary>\r\n constructor() {\r\n this._stack = new Stack<Rtf_StackSave>();\r\n this._group = 0;\r\n this._cbBin = 0;\r\n this._lParam = 0;\r\n this._outputOnce = false;\r\n this._skipDestIfUnk = false;\r\n this._processCrlfSpecial = false;\r\n this._destState = Rtf_RDS.NORM;\r\n this._internalState = Rtf_RIS.NORM;\r\n this._fontNum = 0;\r\n if (UtilStrByteMode.isLocaleDefLangDBCS()) {\r\n this.setCodePageTable();\r\n }\r\n }\r\n\r\n /// <summary> Checks if the blob has a Rtf data or not\r\n ///\r\n /// </summary>\r\n /// <param name=\"str\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n static isRtf(str: string): boolean {\r\n let isRtf: boolean = false;\r\n if (str !== null && str.startsWith(this.RTF_PREFIX)) {\r\n isRtf = true;\r\n }\r\n return isRtf;\r\n }\r\n\r\n /// <summary> Converts Rtf Text to Plain Text\r\n /// Step 1: Isolate RTF keywords and send them to ParseKeyword; Push and pop state at the start and end of\r\n /// RTF groups Send text to ParseChar for further processing.\r\n ///\r\n /// </summary>\r\n /// <param name=\"rtfTxt\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n public toTxt(rtfTxt: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let cNibble: number = 2;\r\n let b: number = 0;\r\n let currPos: number = 0;\r\n let skipNewline: boolean = false;\r\n let blobStrLen: number;\r\n let blobChar: string;\r\n let ec: Rtf_ErrorRtf;\r\n let dbcsBytes: Uint8Array = new Uint8Array(2);\r\n let skipParseChar: boolean = false;\r\n let charset: number = 0;\r\n let codePage: number = 0;\r\n\r\n this._outputOnce = false;\r\n this._processCrlfSpecial = false;\r\n blobStrLen = rtfTxt.length;\r\n this._index = 0;\r\n this._destState = Rtf_RDS.NORM;\r\n if (rtfTxt === null || blobStrLen === 0 || !Rtf.isRtf(rtfTxt)) {\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n while (this._index < blobStrLen) {\r\n blobChar = rtfTxt[this._index];\r\n this._index++;\r\n\r\n if (this._group < 0)\r\n return Rtf_ErrorRtf.STACK_UNDERFLOW;\r\n\r\n /* if we're parsing binary data, handle it directly */\r\n if (this._internalState === Rtf_RIS.BIN) {\r\n if ((ec = this.ParseChar(blobChar, outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n }\r\n else {\r\n switch (blobChar) {\r\n case Rtf_RtfChar.OPENINGBRACE:\r\n skipNewline = false;\r\n if ((ec = this.PushState()) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n break;\r\n\r\n case Rtf_RtfChar.CLOSINGBRACE:\r\n skipNewline = true;\r\n if ((ec = this.PopState()) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n break;\r\n\r\n case Rtf_RtfChar.BACKSLASH:\r\n skipNewline = false;\r\n if ((ec = this.ParseKeyword(rtfTxt, outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n break;\r\n\r\n case Rtf_RtfChar.LF:\r\n case Rtf_RtfChar.CR: /* cr and lf are noise characters... */\r\n if (this._processCrlfSpecial) {\r\n /* Once we reach the 0x0a while ProcessCRLFSpecial_, reset the ProcessCRLFSpecial_ */\r\n if (blobChar === Rtf_RtfChar.LF) {\r\n this._processCrlfSpecial = false;\r\n }\r\n }\r\n else {\r\n /*---------------------------------------------------------------*/\r\n /* skip new lines coming only from the RTF header 1/1/98 - #2390 */\r\n /*---------------------------------------------------------------*/\r\n /* Skip the LF (0x0a) if we are not in the ProcessCRLFSpecial_ */\r\n if (blobChar === Rtf_RtfChar.LF || (blobChar === Rtf_RtfChar.CR && skipNewline && !this._outputOnce))\r\n break;\r\n }\r\n /* falls through */\r\n\r\n default:\r\n if (blobChar !== Rtf_RtfChar.CR)\r\n skipNewline = false;\r\n if (this._internalState === Rtf_RIS.NORM) {\r\n if ((ec = this.ParseChar(blobChar, outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n }\r\n else if (this._internalState === Rtf_RIS.UNICODE) {\r\n if ((ec = this.ParseChar(String.fromCharCode(this._lParam), outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n this._internalState = Rtf_RIS.NORM;\r\n }\r\n else {\r\n /* parsing hex data */\r\n if (this._internalState !== Rtf_RIS.HEX)\r\n return Rtf_ErrorRtf.ASSERTION;\r\n b = b << 4;\r\n if (NChar.IsDigit(blobChar))\r\n b += blobChar.charCodeAt(0) - '0'.charCodeAt(0);\r\n else {\r\n if (NChar.IsLower(blobChar)) {\r\n if (blobChar < 'a' || blobChar > 'f')\r\n return Rtf_ErrorRtf.INVALID_HEX;\r\n b += 10 + blobChar.charCodeAt(0) - 'a'.charCodeAt(0);\r\n }\r\n else {\r\n if (blobChar < 'A' || blobChar > 'F')\r\n return Rtf_ErrorRtf.INVALID_HEX;\r\n b += 10 + blobChar.charCodeAt(0) - 'A'.charCodeAt(0);\r\n }\r\n }\r\n cNibble--;\r\n if (cNibble === 0) {\r\n if (UtilStrByteMode.isLocaleDefLangDBCS()) {\r\n charset = this.getCharset(this._fontNum);\r\n\r\n // leading byte of a double-byte character\r\n if (!skipParseChar && Rtf.is1stByte(b, charset)) {\r\n dbcsBytes[0] = b;\r\n dbcsBytes[1] = 0;\r\n skipParseChar = true;\r\n }\r\n else {\r\n // trailing byte of a double-byte character\r\n if (skipParseChar && Rtf.is2ndByte(b, charset))\r\n dbcsBytes[1] = b;\r\n // single-byte character\r\n else {\r\n dbcsBytes[0] = b;\r\n dbcsBytes[1] = 0;\r\n }\r\n\r\n // convert DBCS to Unicode\r\n codePage = this.getCodePage(charset);\r\n let workStr: string = Encoding.GetEncoding(codePage).GetString(dbcsBytes, 0, 2);\r\n b = workStr.charCodeAt(0);\r\n skipParseChar = false;\r\n }\r\n }\r\n if (!skipParseChar) {\r\n if ((ec = this.ParseChar(String.fromCharCode(b), outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n }\r\n cNibble = 2;\r\n b = 0;\r\n this._internalState = Rtf_RIS.NORM;\r\n }\r\n }\r\n /* end else (ris != risNorm) */\r\n break;\r\n }\r\n /* switch */\r\n }\r\n /* else (ris != risBin) */\r\n }\r\n /* while */\r\n\r\n if (this._group < 0)\r\n return Rtf_ErrorRtf.STACK_UNDERFLOW;\r\n if (this._group > 0)\r\n return Rtf_ErrorRtf.UNMATCHED_BRACE;\r\n\r\n /*-------------------------------------------------------------------*/\r\n /* Eliminate suffix of carrige return + line feed */\r\n /* (Check last characters - just in case format is not the expected) */\r\n /*-------------------------------------------------------------------*/\r\n currPos = outputTxt.Length;\r\n if (currPos >= 3 && (outputTxt.get_Item(currPos - 3) === Rtf_RtfChar.CR && outputTxt.get_Item(currPos - 2) === Rtf_RtfChar.LF && outputTxt.get_Item(currPos - 1) === Rtf_RtfChar.CR || outputTxt.get_Item(currPos - 3) === Rtf_RtfChar.LF && outputTxt.get_Item(currPos - 2) === Rtf_RtfChar.CR && outputTxt.get_Item(currPos - 1) === Rtf_RtfChar.CR))\r\n outputTxt.Remove(currPos - 3, 3);\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Route the character to the appropriate destination stream.\r\n ///\r\n /// </summary>\r\n /// <param name=\"ch\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private ParseChar(ch: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let ret: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n\r\n if (this._internalState === Rtf_RIS.BIN && --this._cbBin <= 0) {\r\n this._internalState = Rtf_RIS.NORM;\r\n }\r\n\r\n if (this._destState === Rtf_RDS.SKIP) {\r\n }\r\n /* Toss this character. */\r\n else if (this._destState === Rtf_RDS.NORM) {\r\n /* Output a character. Properties are valid at this point. */\r\n ret = this.PrintChar(ch, outputTxt);\r\n }\r\n else {\r\n /* handle other destinations.... */\r\n }\r\n return ret;\r\n }\r\n\r\n /// <summary> Send a character to the output file.\r\n ///\r\n /// </summary>\r\n /// <param name=\"ch\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private PrintChar(ch: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n /* Allow carrige return + line feed in text, but remove bullet sign */\r\n /*------------------------------------------------------------------*/\r\n if ((ch >= ' ' || ch === Rtf_RtfChar.CR || ch === Rtf_RtfChar.LF) && ch !== String.fromCharCode(183)) {\r\n outputTxt.Append(ch);\r\n }\r\n\r\n if (ch >= ' ') {\r\n this._outputOnce = true;\r\n }\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Save relevant info on a linked list of SAVE structures.\r\n ///\r\n /// </summary>\r\n /// <returns>\r\n /// </returns>\r\n private PushState(): Rtf_ErrorRtf {\r\n let stackSave: Rtf_StackSave = new Rtf_StackSave();\r\n\r\n if (stackSave === null) {\r\n return Rtf_ErrorRtf.STACK_OVERFLOW;\r\n }\r\n\r\n stackSave.rds = this._destState;\r\n stackSave.ris = this._internalState;\r\n this._internalState = Rtf_RIS.NORM;\r\n\r\n this._stack.push(stackSave);\r\n this._group++;\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Always restore relevant info from the top of the SAVE list.\r\n ///\r\n /// </summary>\r\n /// <returns>\r\n /// </returns>\r\n private PopState(): Rtf_ErrorRtf {\r\n let savedPop: Rtf_StackSave = this._stack.pop();\r\n\r\n if (savedPop === null) {\r\n return Rtf_ErrorRtf.STACK_UNDERFLOW;\r\n }\r\n\r\n this._destState = savedPop.rds;\r\n this._internalState = savedPop.ris;\r\n\r\n this._group--;\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Step 2: get a control word (and its associated value) and call TranslateKeyword to dispatch the control.\r\n ///\r\n /// </summary>\r\n /// <param name=\"rtfTxt\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private ParseKeyword(rtfTxt: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let ch: string;\r\n let fNeg: boolean = false;\r\n let szKeyword: string = \"\";\r\n let szParameter: string = \"\";\r\n\r\n if ((ch = rtfTxt[this._index++]) === String.fromCharCode(0)) {\r\n return Rtf_ErrorRtf.END_OF_FILE;\r\n }\r\n\r\n /* a control symbol; no delimiter. */\r\n if (!NChar.IsLetter(ch)) {\r\n szKeyword = szKeyword + ch;\r\n return this.TranslateKeyword(szKeyword, outputTxt);\r\n }\r\n\r\n for (; NChar.IsLetter(ch); ch = rtfTxt[this._index++])\r\n szKeyword = szKeyword + ch;\r\n\r\n if (ch === '-') {\r\n fNeg = true;\r\n if ((ch = rtfTxt[this._index++]) === String.fromCharCode(0))\r\n return Rtf_ErrorRtf.END_OF_FILE;\r\n }\r\n\r\n if (NChar.IsDigit(ch)) {\r\n for (; NChar.IsDigit(ch); ch = rtfTxt[this._index++])\r\n szParameter = szParameter + ch;\r\n\r\n this._lParam = NNumber.Parse(szParameter);\r\n\r\n if (fNeg)\r\n this._lParam = -this._lParam;\r\n }\r\n if (ch !== ' ')\r\n this._index--;\r\n\r\n if (szKeyword === Rtf.CHAR_PAR) {\r\n /* if we get a RTF sequence of \\par[0xd][0xa], ie a \\par kwd followed */\r\n /* immidiately by the CR and LF, then ignore the \\par kwd. otherwise */\r\n /* we will translate the \\par - which translates to a LF (0xa) and also */\r\n /* the following 0x0d is translated to 0x0a, thus resulting in TWO LF's */\r\n /* being inserted instead of just one LF. So by skipping [\\par] and */\r\n /* translating only the [0xd 0xa] will result in only one LF appearing */\r\n /* - which is the desired behaviour */\r\n if (rtfTxt[this._index] === Rtf_RtfChar.CR && rtfTxt[this._index + 1] === Rtf_RtfChar.LF)\r\n this._processCrlfSpecial = true;\r\n }\r\n\r\n if (this._processCrlfSpecial) {\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n else {\r\n return this.TranslateKeyword(szKeyword, outputTxt);\r\n }\r\n }\r\n\r\n /// <summary> Step 3. Search rgsymRtf for szKeyword and evaluate it appropriately.\r\n ///\r\n /// </summary>\r\n /// <param name=\"szKeyword\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private TranslateKeyword(szKeyword: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let result: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n let isym: number;\r\n\r\n /* search for szKeyword in rgsymRtf */\r\n for (isym = 0; isym < Rtf.rgsymRtf.length; isym++) {\r\n if (szKeyword === Rtf.rgsymRtf[isym].szKeyword) {\r\n break;\r\n }\r\n }\r\n\r\n /* control word not found */\r\n if (isym === Rtf.rgsymRtf.length) {\r\n if (this._skipDestIfUnk) {\r\n /* if this is a new destination */\r\n this._destState = Rtf_RDS.SKIP;\r\n /* skip the destination */\r\n }\r\n\r\n /* else just discard it */\r\n this._skipDestIfUnk = false;\r\n }\r\n else {\r\n result = Rtf_ErrorRtf.BAD_TABLE;\r\n\r\n /* found it! use kwd and idxInRgprop to determine what to do with it. */\r\n this._skipDestIfUnk = false;\r\n\r\n if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.PROP) {\r\n result = this.validateProp(<Rtf_IPROP>Rtf.rgsymRtf[isym].idxInRgprop);\r\n }\r\n else if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.CHAR) {\r\n result = this.ParseChar((Rtf.rgsymRtf[isym].idxInRgprop), outputTxt);\r\n }\r\n else if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.DEST) {\r\n result = this.changeDestState();\r\n }\r\n else if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.SPEC) {\r\n result = this.ParseSpecialKeyword(<Rtf_IPFN>Rtf.rgsymRtf[isym].idxInRgprop);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /// <summary> Validate the property identified by _iprop_ to the value _val_.\r\n /// previously called Applypropchange\r\n /// </summary>\r\n /// <param name=\"iprop\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private validateProp(iprop: Rtf_IPROP): Rtf_ErrorRtf {\r\n let ret: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n\r\n if (this._destState === Rtf_RDS.SKIP) {\r\n /* If we're skipping text, */\r\n return ret;\r\n /* don't do anything. */\r\n }\r\n\r\n /* validate prop */\r\n if (Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.DOP && Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.SEP &&\r\n Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.PAP && Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.CHP &&\r\n Rtf.rgprop[iprop].actn !== Rtf_ACTN.SPEC) {\r\n ret = Rtf_ErrorRtf.BAD_TABLE;\r\n }\r\n\r\n if (Rtf.rgprop[iprop].actn !== Rtf_ACTN.BYTE && Rtf.rgprop[iprop].actn !== Rtf_ACTN.WORD && Rtf.rgprop[iprop].actn !== Rtf_ACTN.SPEC) {\r\n ret = Rtf_ErrorRtf.BAD_TABLE;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n /// <summary> Change to the destination state.\r\n /// previously called ChangeDest\r\n /// </summary>\r\n /// <returns>\r\n /// </returns>\r\n private changeDestState(): Rtf_ErrorRtf {\r\n if (this._destState === Rtf_RDS.SKIP) {\r\n /* if we're skipping text, */\r\n return Rtf_ErrorRtf.OK;\r\n /* don't do anything */\r\n }\r\n\r\n this._destState = Rtf_RDS.SKIP;\r\n /* when in doubt, skip it... */\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Evaluate an RTF control that needs special processing.\r\n ///\r\n /// </summary>\r\n /// <param name=\"ipfn\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private ParseSpecialKeyword(ipfn: Rtf_IPFN): Rtf_ErrorRtf {\r\n let ret: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n\r\n if (!UtilStrByteMode.isLocaleDefLangDBCS()) {\r\n if (this._destState === Rtf_RDS.SKIP && ipfn !== Rtf_IPFN.BIN) {\r\n /* if we're skipping, and it's not */\r\n return ret;\r\n /* the \\bin keyword, ignore it. */\r\n }\r\n\r\n if (ipfn === Rtf_IPFN.FONT || ipfn === Rtf_IPFN.CHARSET || ipfn === Rtf_IPFN.UNICODE) {\r\n return ret;\r\n }\r\n }\r\n else {\r\n if (this._destState === Rtf_RDS.SKIP && ipfn !== Rtf_IPFN.BIN && ipfn !== Rtf_IPFN.FONT &&\r\n ipfn !== Rtf_IPFN.CHARSET && ipfn !== Rtf_IPFN.UNICODE) {\r\n return ret;\r\n }\r\n }\r\n\r\n if (ipfn === Rtf_IPFN.BIN) {\r\n this._internalState = Rtf_RIS.BIN;\r\n this._cbBin = this._lParam;\r\n }\r\n else if (ipfn === Rtf_IPFN.SKIP_DEST) {\r\n this._skipDestIfUnk = true;\r\n }\r\n else if (ipfn === Rtf_IPFN.HEX) {\r\n this._internalState = Rtf_RIS.HEX;\r\n }\r\n else if (ipfn === Rtf_IPFN.FONT) {\r\n this._fontNum = <number>this._lParam;\r\n }\r\n else if (ipfn === Rtf_IPFN.CHARSET) {\r\n this._charsetTable.set_Item(this._fontNum, <number>this._lParam);\r\n }\r\n else if (ipfn === Rtf_IPFN.UNICODE) {\r\n this._internalState = Rtf_RIS.UNICODE;\r\n }\r\n else {\r\n ret = Rtf_ErrorRtf.BAD_TABLE;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n private static is1stByte(dbcsBytes: number, charset: number): boolean {\r\n let ret: boolean = false;\r\n\r\n if (dbcsBytes > 255)\r\n return ret;\r\n\r\n switch (charset) {\r\n case 128:\r\n ret = (129 <= dbcsBytes && dbcsBytes <= 159) || (224 <= dbcsBytes && dbcsBytes <= 254);\r\n break;\r\n case 129:\r\n case 134:\r\n case 136:\r\n ret = (129 <= dbcsBytes);\r\n break;\r\n default:\r\n break;\r\n }\r\n return ret;\r\n }\r\n\r\n /// <summary> Checks if the byte is within the trailing byte range.\r\n ///\r\n /// </summary>\r\n /// <param name=\"dbcsBytes\">\r\n /// </param>\r\n /// <param name=\"charset\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private static is2ndByte(dbcsBytes: number, charset: number): boolean {\r\n let ret: boolean = false;\r\n if (dbcsBytes > 255)\r\n return ret;\r\n\r\n switch (charset) {\r\n case 128:\r\n ret = (dbcsBytes !== 127) && (64 <= dbcsBytes && dbcsBytes <= 252);\r\n break;\r\n case 129:\r\n case 134:\r\n case 136:\r\n ret = (64 <= dbcsBytes);\r\n break;\r\n default:\r\n break;\r\n }\r\n return ret;\r\n }\r\n\r\n /// <summary> Create a hashtable of codepage associated with charset.\r\n ///\r\n /// </summary>\r\n /// <param>\r\n /// <returns>\r\n /// </returns>\r\n private setCodePageTable(): void {\r\n // add elements with key (charset) and value (codepage) into the table.\r\n this._codePageTable.set_Item(0, 1252); // ANSI_CHARSET\r\n this._codePageTable.set_Item(128, 932); // SHIFTJIS_CHARSET\r\n this._codePageTable.set_Item(129, 949); // HANGUL_CHARSET\r\n this._codePageTable.set_Item(134, 936); // GB2312_CHARSET\r\n this._codePageTable.set_Item(136, 950); // CHINESEBIG5_CHARSET\r\n this._codePageTable.set_Item(161, 1253); // GREEK_CHARSET\r\n this._codePageTable.set_Item(162, 1254); // TURKISH_CHARSET\r\n this._codePageTable.set_Item(177, 1255); // HEBREW_CHARSET\r\n this._codePageTable.set_Item(178, 1256); // ARABIC _CHARSET\r\n this._codePageTable.set_Item(186, 1257); // BALTIC_CHARSET\r\n this._codePageTable.set_Item(204, 1251); // RUSSIAN_CHARSET\r\n this._codePageTable.set_Item(222, 874); // THAI_CHARSET\r\n this._codePageTable.set_Item(238, 1250); // EASTEUROPE_CHARSET\r\n }\r\n\r\n /// <summary> Get codepage corresponding to the specified charset.\r\n ///\r\n /// </summary>\r\n /// <param name=\"charset\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private getCodePage(charset: number): number {\r\n let codePage: number = 0;\r\n\r\n if (this._codePageTable.ContainsKey(charset)) {\r\n codePage = this._codePageTable.get_Item(charset);\r\n }\r\n\r\n return codePage;\r\n }\r\n\r\n /// <summary> Get charset corresponding to the specified font index.\r\n ///\r\n /// </summary>\r\n /// <param name=\"font\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private getCharset(font: number): number {\r\n let charset: number = 0;\r\n\r\n if (this._charsetTable.ContainsKey(font)) {\r\n charset = this._charsetTable.get_Item(font);\r\n }\r\n return charset;\r\n }\r\n}\r\n","import {List, NString, RefParam, StringBuilder, isNullOrUndefined} from \"@magic-xpa/mscorelib\";\r\nimport {UtilStrByteMode} from \"./UtilStrByteMode\";\r\nimport {Rtf} from \"./Rtf\";\r\n\r\nconst HTML_BACKSLASH: string = \"&#092;\";\r\nconst HTML_COMMA: string = \"&#044;\";\r\nconst HTML_HYPHEN: string = \"&#045;\";\r\nconst STR_2_HTML: number = 1;\r\nconst TASK_PATH_DELIMITER: string = \"@@||@@\";\r\nexport const SEQ_2_HTML: number = 2;\r\nexport const HTML_2_STR: number = 3;\r\nconst HTML_2_SEQ: number = 4;\r\nexport const SEQ_2_STR: number = 5;\r\n\r\nexport class StrUtil {\r\n private static _paddingSpaces: string = null;\r\n\r\n /// <summary> trim the end of the string</summary>\r\n static mem_trim(str: string, len: number): number {\r\n let result: number;\r\n if (len > 0) {\r\n if (len > str.length) {\r\n result = -1;\r\n return result;\r\n }\r\n while (len > 0 && str[len - 1] === ' ') {\r\n len = len - 1;\r\n }\r\n }\r\n result = len;\r\n return result;\r\n }\r\n\r\n static memmove(dest: string, destCount: number, src: string, srcCount: number, len: number): string {\r\n let stringBuilder: StringBuilder = new StringBuilder(dest.length + len);\r\n if (UtilStrByteMode.isLocaleDefLangJPN() && dest.length < destCount) {\r\n stringBuilder.Append(NString.FromChar(' ', destCount));\r\n }\r\n else {\r\n stringBuilder.Append(dest.substr(0, destCount));\r\n }\r\n stringBuilder.Append(src.substr(srcCount, len));\r\n\r\n if (stringBuilder.Length < dest.length) {\r\n stringBuilder.Append(dest.substr(stringBuilder.Length));\r\n }\r\n return stringBuilder.ToString();\r\n }\r\n\r\n static memcpy(dest: string, destCount: number, src: string, scrCount: number, count: number): string;\r\n static memcpy(dest: string[], destCount: number, src: string[], srcCount: number, count: number): void;\r\n static memcpy(dest: any, destCount: number, src: any, scrCountOrSrcCount: number, count: number): string {\r\n if (arguments.length === 5 && (dest === null || dest.constructor === String) && (destCount === null || destCount.constructor === Number) && (src === null || src.constructor === String) && (scrCountOrSrcCount === null || scrCountOrSrcCount.constructor === Number) && (count === null || count.constructor === Number)) {\r\n return StrUtil.memcpy_0(dest, destCount, src, scrCountOrSrcCount, count);\r\n }\r\n StrUtil.memcpy_1(dest, destCount, src, scrCountOrSrcCount, count);\r\n }\r\n\r\n /// <summary>\r\n /// copy part of string into another string, like memcpy of C, but 4 string only\r\n /// </summary>\r\n /// <param name = \"dest\">string</param>\r\n /// <param name = \"destCount\">of counter start from in destignation string</param>\r\n /// <param name = \"src\">string</param>\r\n /// <param name = \"scrCount\">of counter start from in source string</param>\r\n /// <param name = \"count\"></param>\r\n /// <returns> new value of destignation string</returns>\r\n private static memcpy_0(dest: string, destCount: number, src: string, scrCount: number, count: number): string {\r\n let stringBuilder: StringBuilder = new StringBuilder(dest.substr(0, destCount));\r\n\r\n if (scrCount + count < src.length) {\r\n stringBuilder.Append(src.substr(scrCount, count - scrCount));\r\n }\r\n else {\r\n stringBuilder.Append(src.substr(scrCount));\r\n }\r\n let size: number = dest.length - destCount - count;\r\n if (size > 0) {\r\n stringBuilder.Append(dest.substr(destCount + count));\r\n }\r\n return stringBuilder.ToString();\r\n }\r\n\r\n private static memcpy_1(dest: string[], destCount: number, src: string[], srcCount: number, count: number): void {\r\n while (count > 0 && destCount < dest.length && srcCount < src.length) {\r\n dest[destCount++] = src[srcCount++];\r\n count = count - 1;\r\n }\r\n }\r\n\r\n static memset(dest: string, destCount: number, inVal: string, counter: number): string;\r\n static memset(dest: string[], destCount: number, inVal: string, counter: number): void;\r\n static memset(dest: any, destCount: number, inVal: string, counter: number): string {\r\n if (arguments.length === 4 && (dest === null || dest.constructor === String) && (destCount === null || destCount.constructor === Number) && (inVal === null || inVal.constructor === Number) && (counter === null || counter.constructor === Number)) {\r\n return StrUtil.memset_0(dest, destCount, inVal, counter);\r\n }\r\n StrUtil.memset_1(dest, destCount, inVal, counter);\r\n }\r\n\r\n /// <summary>\r\n /// insert to string chars n times\r\n /// </summary>\r\n /// <param name = \"dest\">string</param>\r\n /// <param name = \"destCount\">of counter start from in destignation string to start insertion of char from</param>\r\n /// <param name = \"inVal\">2 insert</param>\r\n /// <param name = \"counter\">- number of times to insert the char</param>\r\n /// <returns> new value of destignation string</returns>\r\n private static memset_0(dest: string, destCount: number, inVal: string, counter: number): string {\r\n let first: StringBuilder = new StringBuilder(dest.substr(0, destCount));\r\n while (counter > 0) {\r\n first.Append(inVal);\r\n counter = counter - 1;\r\n }\r\n\r\n if (first.Length < dest.length) {\r\n first.Append(dest.substr(first.Length));\r\n }\r\n return first.ToString();\r\n }\r\n\r\n private static memset_1(dest: string[], destCount: number, inVal: string, counter: number): void {\r\n while (counter > 0 && destCount < dest.length) {\r\n dest[destCount++] = inVal;\r\n counter = counter - 1;\r\n }\r\n }\r\n\r\n static strstr(str: string, substr: string): string {\r\n let from: number = str.indexOf(substr);\r\n let result: string;\r\n if (from < 0) {\r\n result = null;\r\n }\r\n else {\r\n result = str.substr(from);\r\n }\r\n return result;\r\n }\r\n\r\n /*******************************/\r\n /// <summary>\r\n /// Reverses string values.\r\n /// </summary>\r\n /// <param name=\"text\">The StringBuilder object containing the string to be reversed.</param>\r\n /// <returns>The reversed string contained in a StringBuilder object.</returns>\r\n static ReverseString(text: StringBuilder): StringBuilder {\r\n // TODO: use string.Reverse()\r\n let array: string[] = NString.ToCharArray(text.ToString());\r\n array.reverse();\r\n return new StringBuilder(NString.FromChars(array));\r\n }\r\n\r\n /// <summary> remove spaces from the right side of string</summary>\r\n /// <param name=\"str\">the string to trim\r\n /// </param>\r\n static rtrim(str: string): string {\r\n return StrUtil.rtrimWithNull(str, false);\r\n }\r\n\r\n /// <summary> remove spaces and/or Null chars from the right side of string</summary>\r\n /// <param name=\"str\">the string to trim\r\n /// </param>\r\n /// <param name=\"trimNullChars\">Whether to remove NULL characters or not\r\n /// </param>\r\n static rtrimWithNull(str: string, trimNullChars: boolean): string {\r\n let result: string;\r\n if (typeof str === \"undefined\" || str === null || str.length === 0) {\r\n result = str;\r\n }\r\n else {\r\n let idx: number = str.length - 1;\r\n if (trimNullChars) {\r\n\r\n while (idx >= 0 && (str[idx] === ' ' || str[idx] === String.fromCharCode(0)/*'\u0000'*/)) {\r\n idx = idx - 1;\r\n }\r\n }\r\n else {\r\n while (idx >= 0 && str[idx] === ' ') {\r\n idx = idx - 1;\r\n }\r\n }\r\n idx = idx + 1;\r\n\r\n if (idx < str.length) {\r\n result = str.substr(0, idx);\r\n }\r\n else {\r\n result = str;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> remove spaces from the left side of string</summary>\r\n /// <param name=\"str\">the string to trim\r\n /// </param>\r\n static ltrim(str: string): string {\r\n let length: number = str.length;\r\n let i: number = 0;\r\n let result: string;\r\n if (str === null || length === 0) {\r\n result = str;\r\n }\r\n else {\r\n while (i < length && str[i] === ' '/*' '*/) {\r\n i = i + 1;\r\n }\r\n\r\n if (i > 0) {\r\n str = str.substr(i);\r\n }\r\n result = str;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>This function for Deleting String from end & start of input\r\n /// String\r\n /// </summary>\r\n /// <param name=\"str\">String , which can include strToDelete spaces on input\r\n /// </param>\r\n /// <param name=\"strToDelete\">need delete this String from start/end of str.\r\n /// </param>\r\n /// <returns> String without strToDelete on end & start,\r\n /// or 'null' if Sting hasn't not characters inside\r\n /// </returns>\r\n static DeleteStringsFromEnds(str: string, strToDelete: string): string {\r\n if (str.startsWith(strToDelete)) {\r\n str = str.substr(strToDelete.length);\r\n }\r\n if (str.endsWith(strToDelete)) {\r\n str = str.substr(0, str.length - strToDelete.length);\r\n }\r\n let result: string;\r\n if (str.length === 0) {\r\n result = null;\r\n }\r\n else {\r\n result = str;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> pad a string with trailing spaces up to the given length</summary>\r\n /// <param name=\"str\">the string to pad\r\n /// </param>\r\n /// <param name=\"len\">the expected length after padding\r\n /// </param>\r\n static padStr(str: string, len: number): string {\r\n let padLen: number = len - str.length;\r\n\r\n if (padLen > 0) {\r\n if (StrUtil._paddingSpaces === null || StrUtil._paddingSpaces.length < padLen) {\r\n StrUtil._paddingSpaces = NString.FromChar(' ', padLen);\r\n }\r\n let stringBuilder: StringBuilder = new StringBuilder(len);\r\n stringBuilder.Append(str);\r\n stringBuilder.Append(StrUtil._paddingSpaces, 0, padLen);\r\n str = stringBuilder.ToString();\r\n }\r\n return str;\r\n }\r\n\r\n /// <summary> this method will serve as a string tokenizer instead of using the c# split method\r\n /// since there are diffrences btween java tokenizer and c# split\r\n /// the implimentation given by the conversion tool is not Sufficient\r\n /// </summary>\r\n /// <param name=\"source\">- the source string to be converted\r\n /// </param>\r\n /// <param name=\"delim\">- the string of delimiters used to split the string (each character in the String is a delimiter\r\n /// </param>\r\n /// <returns> array of token according which is the same as string tokenizer in java\r\n /// </returns>\r\n static tokenize(source: string, delim: string|RegExp): string[] {\r\n // It is mentioned in the comment that we should not use String.Split()\r\n // because its behavior is different than Java's tokenizer.\r\n // So, we were suppose to use our own implementation (the commented code below).\r\n // But all these years, we were calling XmlParser.getToken() which was actually\r\n // using String.Split(). And we didn't face any problem.\r\n // So, it seems that we do not have problem in using String.Split().\r\n // But now, we can improve the performance here...\r\n // XmlParser.getTokens() was getting a String[] using String.Split().\r\n // It was then creating a List<String> from this String[] and was returning it to\r\n // tokenize().\r\n // tokenize() was again converting this List<String> back to String[].\r\n // So why not call String.Split() directly?\r\n return source.split(delim);\r\n /*\r\nString [] tokens = null;\r\n\r\nchar [] delimArry = delim.toCharArray();\r\n\r\n//since java discards delimiters from the start and end of the string and c# does not\r\n//we need to remove them manually\r\n// source = source.TrimEnd(delimArry);\r\n// source = source.TrimStart(delimArry);\r\nsource = source.trim();\r\n\r\n//now that we have remove starting and ending delimiters we can split\r\ntokens = source.Split(delimArry);\r\n\r\n/*\r\n* only one problem: if we have two Subsequent delimiters for example :\r\n* the delimiter is ';' and the string is: \"first;;second;third\"\r\n* then in java String tokenizer will give us only 3 tokens :first,second and third\r\n* while is c# split wethod will return 4 tokens: first,empty string,second and third\r\n* we need to deal with that\r\n*/\r\n /*\r\n List res = new List();\r\n for (int i = 0 ; i < tokens.length; i++)\r\n {\r\n if (tokens[i] != \"\" )\r\n res.addItem(tokens[i]);\r\n }\r\n\r\n return (String [])(res.getAllItems (String.class));*/\r\n\r\n\r\n }\r\n\r\n /// <summary>\r\n /// translate from string to hexa dump char by char\r\n /// </summary>\r\n /// <param name = \"string\">to translate it to the byte stream</param>\r\n /// <param name = \"minLength\">the minimal length of hexa digits for each char</param>\r\n /// <returns> the byte stream in form of string</returns>\r\n static stringToHexaDump(str: string, minLength: number): string {\r\n let stringBuilder: StringBuilder = new StringBuilder(str.length * minLength);\r\n for (let indx: number = 0; indx < str.length; indx = indx + 1) {\r\n let currInt: number = str.charCodeAt(indx);\r\n let hexStr: string = currInt.toString(16);\r\n while (hexStr.length < minLength) {\r\n hexStr = \"0\" + hexStr;\r\n }\r\n stringBuilder.Append(hexStr);\r\n }\r\n return stringBuilder.ToString().toUpperCase();\r\n }\r\n\r\n static searchAndReplace(str: string, from: string, to: string): string;\r\n static searchAndReplace(str: string, from: string[], to: string[]): string;\r\n static searchAndReplace(str: string, from: any, to: any): string {\r\n if (arguments.length === 3 && (str === null || str.constructor === String) && (from === null || from.constructor === String) && (to === null || to.constructor === String)) {\r\n return StrUtil.searchAndReplace_0(str, from, to);\r\n }\r\n return StrUtil.searchAndReplace_1(str, from, to);\r\n }\r\n\r\n /// <summary> replace every appearance of 'from' in 'str' with 'to'</summary>\r\n /// <param name=\"str\">the working base source string </param>\r\n /// <param name=\"from\">the string to replace </param>\r\n /// <param name=\"to\">the string use instead 'from' </param>\r\n /// <returns> modified String </returns>\r\n private static searchAndReplace_0(str: string, from: string, to: string): string {\r\n let lastSubStr: number = 0;\r\n let startSubStr: number;\r\n let result: string;\r\n\r\n if ((startSubStr = str.indexOf(from)) === -1) {\r\n result = str;\r\n }\r\n else {\r\n let stringBuilder: StringBuilder = new StringBuilder(str.length);\r\n while (startSubStr !== -1) {\r\n stringBuilder.Append(str.substr(lastSubStr, startSubStr - lastSubStr) + to);\r\n startSubStr = startSubStr + from.length;\r\n lastSubStr = startSubStr;\r\n startSubStr = str.indexOf(from, lastSubStr);\r\n }\r\n stringBuilder.Append(str.substr(lastSubStr));\r\n result = stringBuilder.ToString();\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> replace every appearance of strings of 'from' in 'str' with the according string in 'to'</summary>\r\n /// <param name=\"str\">the working base source string </param>\r\n /// <param name=\"from\">the string to replace </param>\r\n /// <param name=\"to\">the string use instead 'from' </param>\r\n /// <returns> modified String </returns>\r\n private static searchAndReplace_1(str: string, from: string[], to: string[]): string {\r\n let lastSubStr: number = 0;\r\n let sarIndex: number = 0;\r\n let fromCopy: string[] = from.slice();\r\n let startSubStr: number;\r\n let SARindex: RefParam<number> = new RefParam(0);\r\n startSubStr = StrUtil.indexOf(str, fromCopy, lastSubStr, SARindex);\r\n sarIndex = SARindex.value;\r\n if (startSubStr === -1)\r\n return str;\r\n\r\n let result: string;\r\n let tmpBuf: StringBuilder = new StringBuilder(str.length);\r\n while (startSubStr !== -1) {\r\n tmpBuf.Append(str.substr(lastSubStr, startSubStr - lastSubStr) + to[sarIndex]);\r\n startSubStr += fromCopy[sarIndex].length;\r\n lastSubStr = startSubStr;\r\n startSubStr = StrUtil.indexOf(str, fromCopy, lastSubStr, SARindex);\r\n sarIndex = SARindex.value;\r\n };\r\n tmpBuf.Append(str.substr(lastSubStr));\r\n result = tmpBuf.ToString();\r\n\r\n return result;\r\n }\r\n\r\n /// <summary> this functions is for use by the searchAndReplace() function -\r\n /// searches the offset of the strings from the array in the given string\r\n /// and returns the minimum offset found and sets the index of the found string\r\n /// to SARindex\r\n /// </summary>\r\n /// <param name=\"str\">the string to search in </param>\r\n /// <param name=\"strings\">an array of strings to search for </param>\r\n /// <param name=\"offset\">where to start the search </param>\r\n private static indexOf(str: string, strings: string[], offset: number, SARindex: RefParam<number>): number {\r\n let minOffset: number = -1;\r\n for (let i: number = 0; i < strings.length; i = i + 1) {\r\n if (!(strings[i] === null)) {\r\n let resultOffset: number = str.indexOf(strings[i], offset);\r\n\r\n if (resultOffset === -1) {\r\n strings[i] = null;\r\n }\r\n else {\r\n if (resultOffset < minOffset || minOffset === -1) {\r\n minOffset = resultOffset;\r\n SARindex.value = i;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let result: number;\r\n if (minOffset > -1) {\r\n result = minOffset;\r\n }\r\n else {\r\n SARindex.value = -1;\r\n result = -1;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> replace tokens in user string by vector values </summary>\r\n /// <param name=\"userString\">- user buffer like \"User %d, %d string\"\r\n /// </param>\r\n /// <param name=\"token\">- token used in user string - i.e. \"%d\"\r\n /// </param>\r\n /// <param name=\"occurrence\">- number of token where replace will take part (1 for first occurrence)\r\n /// </param>\r\n /// <param name=\"value\">- value to be inserted insted of token\r\n /// </param>\r\n static replaceStringTokens(userString: string, token: string, occurrence: number, val: string): string {\r\n let tokenLen: number = token.length;\r\n let currPosition: number = 0;\r\n let newString: string = userString;\r\n\r\n if (val !== null) {\r\n let num2: number = 0;\r\n while (num2 < occurrence && currPosition !== -1) {\r\n currPosition = userString.indexOf(token, currPosition + ((num2 === 0) ? 0 : tokenLen));\r\n num2 = num2 + 1;\r\n }\r\n\r\n if (currPosition !== -1) {\r\n newString = userString.substr(0, currPosition) + val + userString.substr(currPosition + tokenLen, userString.length - (currPosition + tokenLen));\r\n }\r\n }\r\n return newString;\r\n }\r\n\r\n static makePrintableTokens(source: string, type: string): string;\r\n static makePrintableTokens(source: string, type: number): string;\r\n static makePrintableTokens(source: List<string>, type: number): string;\r\n static makePrintableTokens(source: any, type: any): string | void{\r\n if (arguments.length === 2 && (source === null || source.constructor === String) && (type === null || type.constructor === Number)) {\r\n return StrUtil.makePrintableTokens_0(source, type);\r\n }\r\n StrUtil.makePrintableTokens_1(source, type);\r\n }\r\n\r\n /// <summary>\r\n /// converts special characters in a token to a printable format\r\n /// </summary>\r\n /// <param name = \"source\">a token </param>\r\n /// <param name = \"type\">type of conversion: STR_2_HTML, SEQ_2_HTML, HTML_2_SEQ, HTML_2_STR, SEQ_2_STR </param>\r\n /// <returns> token with converted special characters </returns>\r\n static makePrintableTokens_0(source: string, type: number): string {\r\n let escStr: string[] = [\r\n \"\\\\\", \"-\", \",\"\r\n ];\r\n let escSeq: string[] = [\r\n \"\\\\\\\\\", \"\\\\-\", \"\\\\,\"\r\n ];\r\n let escHtm: string[] = [\r\n HTML_BACKSLASH, HTML_HYPHEN, HTML_COMMA\r\n ];\r\n let result: string;\r\n switch (type) {\r\n case STR_2_HTML:\r\n result = StrUtil.searchAndReplace(source, escStr, escHtm);\r\n break;\r\n case SEQ_2_HTML:\r\n result = StrUtil.searchAndReplace(source, escSeq, escHtm);\r\n break;\r\n case HTML_2_SEQ:\r\n result = StrUtil.searchAndReplace(source, escHtm, escSeq);\r\n break;\r\n case HTML_2_STR:\r\n result = StrUtil.searchAndReplace(source, escHtm, escStr);\r\n break;\r\n case SEQ_2_STR:\r\n result = StrUtil.searchAndReplace(source, escSeq, escStr);\r\n break;\r\n default:\r\n result = source;\r\n break;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// converts special characters in a tokens collection to a printable format\r\n /// </summary>\r\n /// <param name = \"source\">vector of strings before tokenaizer </param>\r\n /// <param name = \"type\">type of conversion: STR_2_HTML, SEQ_2_HTML, HTML_2_SEQ, HTML_2_STR </param>\r\n private static makePrintableTokens_1(source: List<string>, type: number): void {\r\n if (source !== null) {\r\n let length: number = source.length;\r\n for (let i: number = 0; i < length; i = i + 1) {\r\n let currElm: string = source.get_Item(i);\r\n source.set_Item(i, StrUtil.makePrintableTokens_0(currElm, type));\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// change non-printable characters like \"new line\" and \"line feed\" to their\r\n /// printable representation\r\n /// </summary>\r\n /// <param name = \"source\">is the string with non-printable characters </param>\r\n /// <returns> the new string where all the non-printable characters are converted </returns>\r\n static makePrintable(source: string): string {\r\n let from: string[] = [\r\n \"\\n\", \"\\r\", \"'\", \"\\\\\", \"\\\"\", \"\\0\"\r\n ];\r\n let to: string[] = [\r\n \"\\\\n\", \"\\\\r\", \"\\\\'\", \"\\\\\\\\\", \"\\\\\\\"\", \"\\\\0\"\r\n ];\r\n return StrUtil.searchAndReplace(source, from, to);\r\n }\r\n\r\n /// <summary>\r\n /// change non-printable characters like \"new line\" and \"line feed\" to their\r\n /// printable representation (simplified version for range error message)\r\n /// </summary>\r\n /// <param name = \"source\">is the string with non-printable characters </param>\r\n /// <returns> the new string where all the non-printable characters are converted </returns>\r\n static makePrintable2(source: string): string {\r\n let from: string[] = [\r\n \"\\n\", \"\\r\", \"\\0\"\r\n ];\r\n let to: string[] = [\r\n \"\\\\n\", \"\\\\r\", \"\\\\0\"\r\n ];\r\n return StrUtil.searchAndReplace(source, from, to);\r\n }\r\n\r\n /// <summary>\r\n ///\r\n /// </summary>\r\n /// <param name=\"s\"></param>\r\n /// <param name=\"len\"></param>\r\n /// <returns></returns>\r\n static ZstringMake(s: string, len: number): string {\r\n len = StrUtil.mem_trim(s, len);\r\n return s.substr(0, len);\r\n }\r\n\r\n /// <summary>(public)\r\n /// returns plain text from rtf text\r\n /// </summary>\r\n /// <param name=\"rtfText\">refer to the summary</param>\r\n /// <returns>refer to the summary</returns>\r\n static GetPlainTextfromRtf(rtfText: string): string {\r\n if (Rtf.isRtf(rtfText)) {\r\n let rtf: Rtf = new Rtf();\r\n let outputTxt: StringBuilder = new StringBuilder(\"\");\r\n rtf.toTxt(rtfText, outputTxt);\r\n rtfText = outputTxt.ToString();\r\n }\r\n return rtfText;\r\n }\r\n\r\n /// <summary>\r\n /// Returns true if the string arrays str1 & str2 are equal\r\n /// </summary>\r\n /// <param name=\"str1\"></param>\r\n /// <param name=\"str2\"></param>\r\n /// <returns></returns>\r\n static StringsArraysEqual(str1: string[], str2: string[]): boolean {\r\n let result: boolean;\r\n if (str1 === null && str2 === null) {\r\n result = true;\r\n }\r\n else {\r\n if (str1 === null || str2 === null) {\r\n result = false;\r\n }\r\n else {\r\n if (str1.length !== str2.length) {\r\n result = false;\r\n }\r\n else {\r\n for (let index: number = 0; index < <number>str1.length; index = index + 1) {\r\n if ((str1[index] !== str2[index])) {\r\n result = false;\r\n return result;\r\n }\r\n }\r\n result = true;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// The code is copied from tsk_open_bnd_wild and SearchAndReplaceWildChars\r\n /// The refactoring is not performed for backwards compatibility\r\n /// The code replaces special charachters :* ? with recieved filler\r\n /// </summary>\r\n /// <returns></returns>\r\n static SearchAndReplaceWildChars(buf: string, len: number, filler: string): string {\r\n buf = NString.PadRight(buf, len);\r\n\r\n let escChar: boolean = false;\r\n let tmpBuf: StringBuilder = new StringBuilder(len);\r\n for (let i: number = 0; i < len; i = i + 1) {\r\n switch (buf[i]) {\r\n case ('\\\\'): {\r\n let isNextCharWild: boolean = true;\r\n\r\n //If next char is not wild , then copy '\\', if this is first char.\r\n if ((i + 1 < len) && (buf[i + 1] != '*' && buf[i + 1] != '\\\\'))\r\n isNextCharWild = false;\r\n if (escChar || !isNextCharWild)\r\n tmpBuf.Append(buf[i]);\r\n escChar = !escChar;\r\n }\r\n break;\r\n case ('*'):\r\n if (escChar)\r\n tmpBuf.Append(buf[i]);\r\n else {\r\n tmpBuf.Append(filler, len - tmpBuf.Length);\r\n }\r\n escChar = false;\r\n break;\r\n case '?':\r\n tmpBuf.Append(filler);\r\n escChar = false;\r\n break;\r\n default:\r\n tmpBuf.Append(buf[i]);\r\n escChar = false;\r\n break;\r\n }\r\n }\r\n\r\n let text: string = tmpBuf.ToString();\r\n return NString.TrimEnd(NString.TrimEnd(text, ['\\0']));\r\n }\r\n\r\n /// <summary>\r\n /// Remove the task path delimiter from the error string.\r\n /// </summary>\r\n /// <param name = \"source\">string with delimiter </param>\r\n /// <returns> string for console error </returns>\r\n static getConsoleErorString(source: string): string {\r\n let consoleErorString: string = \"\";\r\n\r\n if (!isNullOrUndefined(source))\r\n consoleErorString = this.searchAndReplace(source, TASK_PATH_DELIMITER, \"\");\r\n\r\n return consoleErorString;\r\n }\r\n\r\n /// <summary>\r\n /// Remove the task path from the error string.\r\n /// </summary>\r\n /// <param name = \"source\">string with delimiter </param>\r\n /// <returns> string for console error </returns>\r\n static getMsgBoxErorString(source: string): string {\r\n let tokens: string [];\r\n let msgBoxErorString: StringBuilder = new StringBuilder(\"\");\r\n\r\n if (!isNullOrUndefined(source)){\r\n tokens = this.tokenize(source, TASK_PATH_DELIMITER);\r\n\r\n for (let i:number = 0; i < tokens.length; i++)\r\n {\r\n msgBoxErorString.Append(tokens[i]);\r\n i++;\r\n }\r\n }\r\n\r\n\r\n\r\n return msgBoxErorString.toString();\r\n }\r\n}\r\n","// In order to convert some functionality to Visual C#, the Java Language Conversion Assistant\r\n// creates \"support classes\" that duplicate the original functionality.\r\n//\r\n// Support classes replicate the functionality of the original code, but in some cases they are\r\n// substantially different architecturally. Although every effort is made to preserve the\r\n// original architecture of the application in the converted project, the user should be aware that\r\n// the primary goal of these support classes is to replicate functionality, and that at times\r\n// the architecture of the resulting solution may differ somewhat.\r\n\r\n\r\nimport {\r\n Exception, StringBuilder,\r\n NString, NNumber,\r\n DateTime, RefParam\r\n} from \"@magic-xpa/mscorelib\";\r\n\r\n\r\n\r\n/// <summary>\r\n/// Contains conversion support elements such as classes, interfaces and static methods.\r\n/// </summary>\r\nexport class Misc {\r\n\r\n /// <summary>\r\n /// Writes the exception stack trace to the received stream\r\n /// </summary>\r\n /// <param name=\"throwable\">Exception to obtain information from</param>\r\n /// <param name=\"stream\">Output sream used to write to</param>\r\n static WriteStackTrace(throwable: Exception): void {\r\n console.log(throwable.Message);\r\n console.log(throwable.StackTrace);\r\n }\r\n\r\n /// <summary>\r\n /// Receives a byte array and returns it transformed in an byte array\r\n /// </summary>\r\n /// <param name=\"byteArray\">Byte array to process</param>\r\n /// <returns>The transformed array</returns>\r\n static ToSByteArray(byteArray: Uint8Array): Int8Array {\r\n let sbyteArray: Int8Array = null;\r\n if (byteArray !== null) {\r\n sbyteArray = new Int8Array(byteArray.length);\r\n for (let i: number = 0; i < byteArray.length; i = i + 1) {\r\n sbyteArray[i] = <number>byteArray[i];\r\n }\r\n }\r\n return sbyteArray;\r\n }\r\n\r\n /// <summary>\r\n /// Receives sbyte array and returns it transformed in a byte array\r\n /// </summary>\r\n /// <param name=\"sbyteArray\">sbyte array to process</param>\r\n /// <returns>The transformed array</returns>\r\n static ToByteArray(sbyteArray: Int8Array): Uint8Array {\r\n let byteArray: Uint8Array = null;\r\n if (sbyteArray !== null) {\r\n byteArray = new Uint8Array(sbyteArray.length);\r\n for (let i: number = 0; i < sbyteArray.length; i = i + 1) {\r\n byteArray[i] = <number>sbyteArray[i];\r\n }\r\n }\r\n return byteArray;\r\n }\r\n\r\n /// <summary> Compares number of bytes in two byte arrays</summary>\r\n /// <param name=\"source\"></param>\r\n /// <param name=\"destination\"></param>\r\n /// <param name=\"numberOfBytes\"></param>\r\n /// <returns> boolen true if equal</returns>\r\n static CompareByteArray(source: Uint8Array, destination: Uint8Array, numberOfBytes: number): boolean {\r\n if (source.length >= numberOfBytes && destination.length >= numberOfBytes) {\r\n for (let len: number = 0; len < numberOfBytes; len++) {\r\n if (source[len] !== destination[len])\r\n return false;\r\n }\r\n }\r\n else\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n /// <summary>\r\n /// Performs an unsigned bitwise right shift with the specified number\r\n /// </summary>\r\n /// <param name=\"number\">Number to operate on</param>\r\n /// <param name=\"bits\">Ammount of bits to shift</param>\r\n /// <returns>The resulting number from the shift operation</returns>\r\n // TODO: instead of calling URShift(number, bits), we can use((uint)number) >> bits.\r\n static URShift(number: number, bits: number): number {\r\n let result: number;\r\n if (number >= 0) {\r\n result = number >> bits;\r\n }\r\n else {\r\n result = (number >> bits) + (2 << ~bits);\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// get system's time in milliseconds\r\n /// </summary>\r\n /// <returns></returns>\r\n static getSystemMilliseconds(): number {\r\n // TODO - check if we need this adjustment\r\n return Math.floor((DateTime.Now.Ticks - 621355968000000000) / 10000);\r\n }\r\n\r\n /// <summary>\r\n /// Compares 2 int arrays\r\n /// </summary>\r\n /// <param name=\"arrayOne\"></param>\r\n /// <param name=\"arrayTwo\"></param>\r\n /// <returns>true if arrays are equal else false</returns>\r\n static CompareIntArrays(arrayOne: number[], arrayTwo: number[]): boolean {\r\n let areEqual: boolean = false;\r\n if (arrayOne === arrayTwo) {\r\n areEqual = true;\r\n }\r\n else {\r\n if (arrayOne !== null && arrayTwo !== null) {\r\n if (arrayOne.length === arrayTwo.length) {\r\n for (let i: number = 0; i < arrayOne.length; i = i + 1) {\r\n if (arrayOne[i] !== arrayTwo[i]) {\r\n break;\r\n }\r\n areEqual = true;\r\n }\r\n }\r\n }\r\n }\r\n return areEqual;\r\n }\r\n\r\n /// <summary>\r\n /// Returns the comma separated string for the values passed in int array.\r\n /// </summary>\r\n /// <param name=\"values\">Integer array</param>\r\n /// <returns>comma separated string</returns>\r\n static GetCommaSeperatedString(intArray: number[]): string {\r\n let temp: StringBuilder = new StringBuilder();\r\n for (let val: number = 0; val < intArray.length; val = val + 1) {\r\n let value: number = intArray[val];\r\n if (temp.Length > 0) {\r\n temp.Append(\",\");\r\n }\r\n temp.Append(value);\r\n }\r\n return temp.ToString();\r\n }\r\n\r\n /// <summary>\r\n /// Returns int array out of comma separated string\r\n /// </summary>\r\n /// <param name=\"value\">comma separated string</param>\r\n /// <returns>Integer array</returns>\r\n static GetIntArray(commaSeparatedValue: string): number[] {\r\n let intArray: number[] = new Array<number>(0);\r\n\r\n if (!NString.IsNullOrEmpty(commaSeparatedValue)) {\r\n let vals: string[] = commaSeparatedValue.split(',');\r\n intArray = new Array<number>(vals.length);\r\n\r\n let outInt: RefParam<number> = new RefParam(0);\r\n for (let iCtr: number = 0; iCtr < vals.length; iCtr = iCtr + 1) {\r\n NNumber.TryParse(vals[iCtr], outInt);\r\n intArray[iCtr] = outInt.value;\r\n }\r\n }\r\n\r\n return intArray;\r\n }\r\n\r\n static IsWebUrl(fileName: string): boolean {\r\n return fileName.toLowerCase().startsWith(\"http\");\r\n }\r\n}\r\n","import {Encoding, ApplicationException, ISO_8859_1_Encoding} from \"@magic-xpa/mscorelib\";\r\nimport {StrUtil} from \"./StrUtil\";\r\nimport {Misc} from \"./Misc\";\r\n\r\nexport class Base64{\r\n private static _base64EncMap: Uint8Array = Base64.initializeEncMap();\r\n private static _base64DecMap: Uint8Array = Base64.initializeDecMap();\r\n\r\n\r\n static encode(str: string, encoding: Encoding): string;\r\n static encode(str: string, isUseEnvCharset: boolean, encoding: Encoding): string;\r\n static encode(data: Uint8Array): Uint8Array;\r\n static encode(strOrData: any, encodingOrIsUseEnvCharset?: any, encoding?: Encoding): any {\r\n if (arguments.length === 2)\r\n return Base64.encode_0(strOrData, encodingOrIsUseEnvCharset);\r\n\r\n else if (arguments.length === 3)\r\n return Base64.encode_1(strOrData, encodingOrIsUseEnvCharset, encoding);\r\n\r\n else\r\n return Base64.encode_2(strOrData);\r\n }\r\n\r\n /// <summary> This method encodes the given string using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8). It's used for example in the\r\n /// \"Basic\" authorization scheme.\r\n /// </summary>\r\n /// <param name=\"str\">the string </param>\r\n /// <param name=\"encoding\"> Environment.Encoding </param>\r\n /// <returns> the base64-encoded str </returns>\r\n private static encode_0(str: string, encoding: Encoding): string {\r\n return Base64.encode(str, false, encoding);\r\n }\r\n\r\n /// <summary> Encodes string using the base64-encoding.\r\n /// If isUseEnvCharset is true, use the specific charset when converting\r\n /// string to byte array. (DBCS support)\r\n /// </summary>\r\n /// <param name=\"str\">the string </param>\r\n /// <param name=\"isUseEnvCharset\"> </param>\r\n /// <param name=\"encoding\"> Environment.Encoding </param>\r\n /// <returns> the base64-encoded str </returns>\r\n private static encode_1(str: string, isUseEnvCharset: boolean, encoding: Encoding): string {\r\n let result: string;\r\n if (str === null) {\r\n result = null;\r\n }\r\n else {\r\n if (str === \"\") {\r\n result = str;\r\n }\r\n else {\r\n try {\r\n let instance: Encoding = ISO_8859_1_Encoding.ISO_8859_1;\r\n let encoding2: Encoding = isUseEnvCharset ? encoding : instance;\r\n let ba: Uint8Array = Base64.encode(encoding2.GetBytes(str));\r\n result = instance.GetString(ba, 0, ba.length);\r\n }\r\n catch (ex) {\r\n throw new ApplicationException(ex.Message);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> This method encodes the given byte[] using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8).\r\n /// </summary>\r\n /// <param name=\"data\">the data </param>\r\n /// <returns> the base64-encoded data </returns>\r\n private static encode_2(data: Uint8Array): Uint8Array {\r\n\r\n if (data === null)\r\n return null;\r\n\r\n let dest: Uint8Array = new Uint8Array(Math.floor((data.length + 2) / 3) * 4);\r\n let sidx: number = 0;\r\n let didx: number = 0;\r\n\r\n // 3-byte to 4-byte conversion + 0-63 to ASCII printable conversion\r\n while (sidx < data.length - 2) {\r\n dest[didx++] = Base64._base64EncMap[Misc.URShift(<number>data[sidx], 2) & 63];\r\n dest[didx++] = Base64._base64EncMap[(Misc.URShift(<number>data[sidx + 1], 4) & 15) | (<number>data[sidx] << 4 & 63)];\r\n dest[didx++] = Base64._base64EncMap[(Misc.URShift(<number>data[sidx + 2], 6) & 3) | (<number>data[sidx + 1] << 2 & 63)];\r\n dest[didx++] = Base64._base64EncMap[<number>(data[sidx + 2] & 63)];\r\n sidx = sidx + 3;\r\n }\r\n\r\n if (sidx < data.length) {\r\n dest[didx++] = Base64._base64EncMap[Misc.URShift(<number>data[sidx], 2) & 63];\r\n if (sidx < data.length - 1) {\r\n dest[didx++] = Base64._base64EncMap[(Misc.URShift(<number>data[sidx + 1], 4) & 15) | (<number>data[sidx] << 4 & 63)];\r\n dest[didx++] = Base64._base64EncMap[<number>data[sidx + 1] << 2 & 63];\r\n }\r\n else {\r\n dest[didx++] = Base64._base64EncMap[<number>data[sidx] << 4 & 63];\r\n }\r\n }\r\n\r\n // add padding\r\n while (didx < dest.length) {\r\n dest[didx] = 61;\r\n didx = didx + 1;\r\n }\r\n\r\n return dest;\r\n }\r\n\r\n static decode(str: string): string;\r\n static decode(str: string, encoding: Encoding): string;\r\n static decode(data: Uint8Array): Uint8Array;\r\n static decode(strOrData: any, encoding?: Encoding): any {\r\n if (arguments.length === 1 && (strOrData === null || strOrData.constructor === String))\r\n return Base64.decode_0(strOrData);\r\n\r\n else if (arguments.length === 2)\r\n return Base64.decode_1(strOrData, encoding);\r\n\r\n else\r\n return Base64.decode_2(strOrData);\r\n }\r\n\r\n /// <summary> This method decodes the given string using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8).\r\n /// </summary>\r\n /// <param name=\"str\">the base64-encoded string. </param>\r\n /// <returns> the decoded str.</returns>\r\n private static decode_0(str: string): string {\r\n return Base64.decode(str, null);\r\n }\r\n\r\n /// <summary> This method decodes the given string using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8).\r\n /// </summary>\r\n /// <param name=\"str\">the base64-encoded string. </param>\r\n /// <param name=\"encoding\">Environment.Encoding or null.</param>\r\n /// <returns> the decoded str.</returns>\r\n private static decode_1(str: string, encoding: Encoding): string {\r\n\r\n let result: string;\r\n if (str === null) {\r\n result = null;\r\n }\r\n else {\r\n if (str === \"\") {\r\n result = str;\r\n }\r\n else {\r\n try {\r\n let instance: ISO_8859_1_Encoding = ISO_8859_1_Encoding.ISO_8859_1;\r\n let array: Uint8Array = Base64.decode(instance.GetBytes(str));\r\n let encoding2: Encoding = (encoding !== null) ? encoding : instance;\r\n result = encoding2.GetString(array, 0, array.length);\r\n }\r\n catch (ex) {\r\n throw new ApplicationException(ex.Message);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> This method decodes the given byte[] using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8).\r\n /// </summary>\r\n /// <param name=\"data\">the base64-encoded data.</param>\r\n /// <returns> the decoded <var>data</va\r\n private static decode_2(data: Uint8Array): Uint8Array {\r\n if (data === null)\r\n return null;\r\n\r\n let tail: number = data.length;\r\n while (data[tail - 1] === '='.charCodeAt(0)) {\r\n tail = tail - 1;\r\n }\r\n let dest: Uint8Array = new Uint8Array(tail - Math.floor(data.length / 4));\r\n\r\n // ASCII printable to 0-63 conversion\r\n for (let idx: number = 0; idx < data.length; idx = idx + 1) {\r\n data[idx] = Base64._base64DecMap[data[idx]];\r\n }\r\n\r\n // 4-byte to 3-byte conversion\r\n let sidx: number = 0;\r\n let didx: number;\r\n for (didx = 0; didx < dest.length - 2; didx = didx + 3) {\r\n dest[didx] = (((data[sidx] << 2) & 255) | (Misc.URShift(data[sidx + 1], 4) & 3));\r\n dest[didx + 1] = (((data[sidx + 1] << 4) & 255) | (Misc.URShift(data[sidx + 2], 2) & 15));\r\n dest[didx + 2] = (((data[sidx + 2] << 6) & 255) | (data[sidx + 3] & 63));\r\n sidx = sidx + 4;\r\n }\r\n\r\n if (didx < dest.length)\r\n dest[didx] = (((data[sidx] << 2) & 255) | (Misc.URShift(data[sidx + 1], 4) & 3));\r\n if ((didx = didx + 1) < dest.length)\r\n dest[didx] = (((data[sidx + 1] << 4) & 255) | (Misc.URShift(data[sidx + 2], 2) & 15));\r\n\r\n return dest;\r\n }\r\n\r\n /// <summary> decoded and return an hex representation of the data</summary>\r\n static decodeToHex(str: string): string {\r\n if (str === null)\r\n return null;\r\n if (str === \"\")\r\n return str;\r\n\r\n return StrUtil.stringToHexaDump(Base64.decode(str), 2);\r\n }\r\n\r\n /// <summary> decodes a string to byte array</summary>\r\n static decodeToByte(str: string): Uint8Array {\r\n if (str === null)\r\n return null;\r\n\r\n // QCR 740918 if we have and empty expression it is sent from the server as empty string\r\n // and changed locally to a string with one blank either way they are not valid base64 encoded\r\n // string and should not be decoded.\r\n if (str === \"\" || str === \" \")\r\n return new Uint8Array(0);\r\n\r\n try {\r\n let instance: Encoding = ISO_8859_1_Encoding.ISO_8859_1;\r\n return Base64.decode(instance.GetBytes(str));\r\n }\r\n catch (ex) {\r\n throw new ApplicationException(ex.Message);\r\n }\r\n }\r\n\r\n private static initializeEncMap() {\r\n return new Uint8Array([\r\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,\r\n 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,\r\n 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54,\r\n 55, 56, 57, 43, 47\r\n ]);\r\n\r\n }\r\n\r\n private static initializeDecMap() {\r\n let decMap: Uint8Array = new Uint8Array(128);\r\n\r\n for (let i: number = 0; i < Base64._base64EncMap.length; i = i + 1) {\r\n decMap[Base64._base64EncMap[i]] = i;\r\n }\r\n\r\n return decMap;\r\n }\r\n}\r\n","import {NString, StringBuilder} from \"@magic-xpa/mscorelib\";\r\nimport {SEQ_2_STR, StrUtil} from \"./StrUtil\";\r\n\r\nexport class ChoiceUtils {\r\n\r\n /// <summary>\r\n /// init the display Value from string\r\n /// </summary>\r\n /// <param name = \"choiceDispStr\">the all substring separated with comma.\r\n /// The behavior:\r\n /// a. when have \"\\\" before char a-z need to ignore the \\ put the a-z char\r\n /// b. when \"\\,\" -> \",\"\r\n /// c. when \"\\-\" -> \"-\"\r\n /// d. when \"\\\\\" -> \"\\\"\r\n /// e. when \"\\\\\\\\\" -> \"\\\\\"\r\n /// the display can be all string. and we don't need to check validation according to the dataType(as we do in Link\r\n /// </param>\r\n static GetDisplayListFromString(choiceDispStr: string, removeAccelerators: boolean, shouldMakePrintable: boolean, shouldTrimOptions: boolean): string[] {\r\n let fromHelp = new Array(\"\\\\\\\\\", \"\\\\-\", \"\\\\,\");\r\n let toHelp = new Array(\"XX\", \"XX\", \"XX\");\r\n choiceDispStr = NString.TrimEnd(choiceDispStr);\r\n let helpStrDisp: string = StrUtil.searchAndReplace(choiceDispStr, fromHelp, toHelp);\r\n let sTok: String[] = StrUtil.tokenize(helpStrDisp, \",\");\r\n let size: number = (helpStrDisp !== \"\" ? sTok.length : 0);\r\n let tokenBuffer: StringBuilder;\r\n let helpTokenDisp: string, token: string;\r\n let currPosDisp: number = 0, nextPosDisp = 0, tokenPosDisp, i = 0;\r\n let choiceDisp = new Array(size);\r\n for (; i < size; i++) {\r\n nextPosDisp = currPosDisp;\r\n nextPosDisp = helpStrDisp.indexOf(',', nextPosDisp);\r\n if (nextPosDisp === currPosDisp)\r\n token = helpTokenDisp = \"\";\r\n else if (nextPosDisp === -1) {\r\n token = choiceDispStr.substr(currPosDisp);\r\n helpTokenDisp = helpStrDisp.substr(currPosDisp);\r\n }\r\n else {\r\n token = choiceDispStr.substr(currPosDisp, (nextPosDisp) - (currPosDisp));\r\n helpTokenDisp = helpStrDisp.substr(currPosDisp, (nextPosDisp) - (currPosDisp));\r\n }\r\n currPosDisp = nextPosDisp + 1;\r\n if (token != null) {\r\n token = StrUtil.ltrim(token);\r\n if (removeAccelerators)\r\n token = ChoiceUtils.RemoveAcclCharFromOptions(new StringBuilder(token));\r\n helpTokenDisp = StrUtil.ltrim(helpTokenDisp);\r\n if (removeAccelerators)\r\n helpTokenDisp = ChoiceUtils.RemoveAcclCharFromOptions(new StringBuilder(helpTokenDisp));\r\n }\r\n if (helpTokenDisp.indexOf('\\\\') >= 0) {\r\n tokenBuffer = new StringBuilder();\r\n for (; tokenPosDisp < helpTokenDisp.length; tokenPosDisp++)\r\n if (helpTokenDisp[tokenPosDisp] !== '\\\\')\r\n tokenBuffer.Append(token[tokenPosDisp]);\r\n else if (tokenPosDisp === helpTokenDisp.length - 1)\r\n tokenBuffer.Append(' ');\r\n token = tokenBuffer.ToString();\r\n }\r\n if (shouldMakePrintable) {\r\n token = StrUtil.makePrintableTokens(token, SEQ_2_STR);\r\n if (shouldTrimOptions) {\r\n let temp: string = NString.TrimEnd(token);\r\n if (temp.length === 0)\r\n choiceDisp[i] = \" \";\r\n else choiceDisp[i] = NString.TrimEnd(token);\r\n }\r\n else choiceDisp[i] = token;\r\n }\r\n else choiceDisp[i] = token;\r\n }\r\n return choiceDisp;\r\n }\r\n\r\n static RemoveAcclCharFromOptions(OptionStr: StringBuilder): string {\r\n let i: number = 0;\r\n if (OptionStr != null) {\r\n for (; i < OptionStr.Length;) {\r\n if (OptionStr.get_Item(i) === '&') {\r\n if (i < OptionStr.Length - 1 && OptionStr.get_Item(i + 1) === ('&'))\r\n i++;\r\n OptionStr = OptionStr.Remove(i, 1);\r\n }\r\n else i++;\r\n }\r\n }\r\n return (OptionStr != null ? OptionStr.ToString() : null);\r\n }\r\n}\r\n","import {Int32} from \"@magic-xpa/mscorelib\";\r\n\r\n//This class contains all the constants which are used in MgxpaRIA.exe as well as in MgGui.dll.\r\nexport class Constants {\r\n /// <summary> Null Arithmetic values</summary>\r\n static readonly NULL_ARITH_NULLIFY: string = 'N';\r\n static readonly NULL_ARITH_USE_DEF: string = 'U';\r\n\r\n /// <summary> select program : select mode property</summary>\r\n static readonly SELPRG_MODE_BEFORE: string = 'B';\r\n static readonly SELPRG_MODE_AFTER: string = 'A';\r\n static readonly SELPRG_MODE_PROMPT: string = 'P';\r\n\r\n /// <summary> move in View</summary>\r\n static readonly MOVE_UNIT_TABLE: string = 'T';\r\n static readonly MOVE_UNIT_PAGE: string = 'P';\r\n static readonly MOVE_UNIT_ROW: string = 'R';\r\n static readonly MOVE_UNIT_TREE_NODE: string = 'E';\r\n\r\n static readonly MOVE_DIRECTION_NONE: string = ' ';\r\n static readonly MOVE_DIRECTION_BEGIN: string = 'B';\r\n static readonly MOVE_DIRECTION_PREV: string = 'P';\r\n static readonly MOVE_DIRECTION_NEXT: string = 'N';\r\n static readonly MOVE_DIRECTION_END: string = 'E';\r\n static readonly MOVE_DIRECTION_PARENT: string = 'A';\r\n static readonly MOVE_DIRECTION_FIRST_SON: string = 'F';\r\n static readonly MOVE_DIRECTION_NEXT_SIBLING: string = 'X';\r\n static readonly MOVE_DIRECTION_PREV_SIBLING: string = 'V';\r\n\r\n /// <summary> refresh types for a task form</summary>\r\n static readonly TASK_REFRESH_FORM: string = 'F';\r\n static readonly TASK_REFRESH_TABLE: string = 'T';\r\n static readonly TASK_REFRESH_TREE_AND_FORM: string = 'R';\r\n static readonly TASK_REFRESH_CURR_REC: string = 'C';\r\n static readonly TASK_REFRESH_NONE: string = 'N';\r\n\r\n static readonly TASK_MODE_QUERY: string = 'E';\r\n static readonly TASK_MODE_MODIFY: string = 'M';\r\n static readonly TASK_MODE_CREATE: string = 'C';\r\n static readonly TASK_MODE_DELETE: string = 'D';\r\n static readonly TASK_MODE_NONE = ' ';\r\n\r\n /// <summary> task level</summary>\r\n static readonly TASK_LEVEL_NONE: string = ' ';\r\n static readonly TASK_LEVEL_TASK: string = 'T';\r\n static readonly TASK_LEVEL_RECORD: string = 'R';\r\n static readonly TASK_LEVEL_CONTROL: string = 'C';\r\n\r\n /// <summary> special records constants</summary>\r\n static readonly MG_DATAVIEW_FIRST_RECORD: number = Int32.MinValue;\r\n static readonly MG_DATAVIEW_LAST_RECORD: number = Int32.MaxValue;\r\n\r\n /// <summary> action states for keyboard mapping</summary>\r\n static readonly ACT_STT_TBL_SCREEN_MODE: number = 0x0001;\r\n static readonly ACT_STT_TBL_LEFT_TO_RIGHT: number = 0x0002;\r\n static readonly ACT_STT_TBL_SCREEN_TOP: number = 0x0004;\r\n static readonly ACT_STT_TBL_SCREEN_END: number = 0x0008;\r\n static readonly ACT_STT_TBL_ROW_START: number = 0x0010;\r\n static readonly ACT_STT_TBL_ROW_END: number = 0x0020;\r\n static readonly ACT_STT_EDT_LEFT_TO_RIGHT: number = 0x0040;\r\n static readonly ACT_STT_EDT_FORM_TOP: number = 0x0080;\r\n static readonly ACT_STT_EDT_FORM_END: number = 0x0100;\r\n static readonly ACT_STT_EDT_LINE_START: number = 0x0200;\r\n static readonly ACT_STT_EDT_LINE_END: number = 0x0400;\r\n static readonly ACT_STT_EDT_EDITING: number = 0x0800;\r\n static readonly ACT_STT_TREE_PARK: number = 0x1000;\r\n static readonly ACT_STT_TREE_EDITING: number = 0x2000;\r\n\r\n static readonly ForwardSlashWebUsage: string = \"web\"; // refer to a forward slash as a relative web url.\r\n static readonly HTTP_PROTOCOL: string = \"http://\";\r\n static readonly HTTPS_PROTOCOL: string = \"https://\";\r\n static readonly FILE_PROTOCOL: string = \"file://\";\r\n\r\n /// <summary>threads constants</summary>\r\n static readonly MG_GUI_THREAD: string = \"MG_GUI_THREAD\";\r\n static readonly MG_WORK_THREAD: string = \"MG_WORK_THREAD\";\r\n static readonly MG_TIMER_THREAD: string = \"MG_TIMER_THREAD\";\r\n\r\n /// <summary>\r\n /// property name for the runtime designer\r\n /// </summary>\r\n static readonly ConfigurationFilePropertyName: string = \"Configuration file\";\r\n static readonly WinPropText: string = \"Text\";\r\n static readonly WinPropLayer: string = \"Layer\";\r\n static readonly WinPropX1: string = \"X1\";\r\n static readonly WinPropX2: string = \"X2\";\r\n static readonly WinPropY1: string = \"Y1\";\r\n static readonly WinPropY2: string = \"Y2\";\r\n static readonly WinPropIsTransparent: string = \"IsTransparent\";\r\n static readonly WinPropName: string = \"Name\";\r\n static readonly WinPropVisible: string = \"Visible\";\r\n static readonly WinPropVisibleLayerList: string = \"VisibleLayerList\";\r\n static readonly TabOrderPropertyTermination: string = \"ForTabOrder\";\r\n\r\n static readonly SByteMaxValue = 127;\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","export class XMLConstants {\r\n static readonly MG_TAG_XML: string = \"xml\";\r\n static readonly MG_TAG_XML_END: string = \"/xml\";\r\n\r\n static readonly TAG_TERM: string = \"/>\";\r\n static readonly TAG_OPEN: string = \"<\";\r\n static readonly TAG_CLOSE: string = \">\";\r\n static readonly XML_ATTR_DELIM: string = \"\\\"\";\r\n static readonly START_TAG: string = \"\\n <\";\r\n static readonly END_TAG: string = \"</\";\r\n static readonly XML_TAB: string = \" \";\r\n\r\n static readonly MG_ATTR_ID: string = \"id\";\r\n\r\n static readonly MG_TAG_XML_END_TAGGED: string = XMLConstants.END_TAG + XMLConstants.MG_TAG_XML + XMLConstants.TAG_CLOSE;\r\n static readonly MG_TAG_OPEN: string = XMLConstants.TAG_OPEN + XMLConstants.MG_TAG_XML + \" \" + XMLConstants.MG_ATTR_ID + \"=\\\"MGDATA\\\">\";\r\n static readonly MG_TAG_TASK: string = \"task\";\r\n static readonly MG_TAG_TASK_END: string = \"/task\";\r\n static readonly MG_TAG_RECOMPUTE: string = \"recompute\";\r\n\r\n //TODO: this class contains the constants which are used for XML parsing.\r\n //Check if we can move it to Util.dll\r\n static readonly MG_ATTR_VB_VIEW_ROWIDX: string = \"db_view_rowidx\";\r\n static readonly MG_ATTR_CONTROL_ISN: string = \"controlIsn\";\r\n static readonly MG_HOR_ALIGMENT_IS_INHERITED: string = \"horizontalAlignmentIsFromSystemDefault\";\r\n\r\n // MainHeaders\r\n static readonly MAX_PATH: number = 260;\r\n static readonly FILE_NAME_SIZE: number = XMLConstants.MAX_PATH + 1;\r\n\r\n static readonly CDATA_START: string = \"<![CDATA[\";\r\n static readonly CDATA_END: string = \"]]>\";\r\n\r\n static readonly MG_ATTR_VALUE: string = \"val\";\r\n static readonly MG_ATTR_STUDIO_VALUE: string = \"studioValue\";\r\n static readonly MG_ATTR_NAME: string = \"name\";\r\n static readonly MG_ATTR_TYPE: string = \"type\";\r\n static readonly MG_ATTR_SIZE: string = \"size\";\r\n static readonly MG_ATTR_VAR_NAME: string = \"var_name\";\r\n static readonly MG_ATTR_VAR_DISP_NAME: string = \"var_disp_name\";\r\n static readonly MG_ATTR_VEC_CELLS_SIZE: string = \"vecCellsSize\";\r\n static readonly MG_ATTR_VEC_CELLS_ATTR: string = \"vec_cells_attr\";\r\n static readonly MG_ATTR_VEC_CELLS_CONTENT: string = \"CellContentType\";\r\n static readonly MG_ATTR_NULLVALUE: string = \"nullvalue\";\r\n static readonly MG_ATTR_NULLDISPLAY: string = \"nulldisplay\";\r\n static readonly MG_ATTR_NULLDEFAULT: string = \"nulldefault\";\r\n static readonly MG_ATTR_DB_MODIFIABLE: string = \"db_modifiable\";\r\n static readonly MG_ATTR_DEFAULTVALUE: string = \"defaultvalue\";\r\n static readonly MG_ATTR_NULLALLOWED: string = \"nullallowed\";\r\n static readonly MG_ATTR_BLOB_CONTENT: string = \"ContentType\";\r\n static readonly MG_ATTR_PART_OF_DATAVIEW: string = \"partOfDataview\";\r\n static readonly MG_ATTR_DATA_TYPE: string = \"dataType\";\r\n static readonly MG_ATTR_DATA_CTRL: string = \"data_ctrl\";\r\n static readonly MG_ATTR_LINKED_PARENT: string = \"linked_parent\";\r\n static readonly MG_ATTR_CONTAINER: string = \"container\";\r\n static readonly MG_ATTR_IS_FRAMESET: string = \"isFrameSet\";\r\n static readonly MG_ATTR_IS_LIGAL_RC_FORM: string = \"isLegalRcForm\";\r\n static readonly MG_ATTR_USERSTATE_ID: string = \"userStateId\";\r\n static readonly MG_ATTR_PB_IMAGES_NUMBER: string = \"PBImagesNumber\";\r\n static readonly MG_ATTR_FORM_ISN: string = \"formIsn\";\r\n static readonly MG_ATTR_TASKID: string = \"taskid\";\r\n static readonly MG_ATTR_IS_MODAL: string = \"IsModal\";\r\n static readonly MG_ATTR_TASK_IS_SERIALIZATION_PARTIAL: string = \"isSerializationPartial\";\r\n static readonly MG_ATTR_XML_TRUE: string = \"1\";\r\n static readonly MG_ATTR_XML_FALSE: string = \"0\";\r\n static readonly MG_ATTR_TOOLKIT_PARENT_TASK: string = \"toolkit_parent_task\";\r\n static readonly MG_ATTR_CTL_IDX: string = \"ctl_idx\";\r\n static readonly MG_ATTR_MAINPRG: string = \"mainprg\";\r\n static readonly MG_ATTR_NULL_ARITHMETIC: string = \"nullArithmetic\";\r\n static readonly MG_ATTR_INTERACTIVE: string = \"interactive\";\r\n static readonly MG_ATTR_IS_OFFLINE: string = \"IsOffline\";\r\n static readonly MG_ATTR_RETURN_VALUE_EXP: string = \"returnValueExp\";\r\n static readonly MG_ATTR_PARALLEL: string = \"ParallelExecution\";\r\n static readonly MG_ATTR_OPEN_WIN: string = \"OpenWin\";\r\n static readonly MG_ATTR_ALLOW_EVENTS: string = \"AllowEvents\";\r\n static readonly MG_ATTR_ISPRG: string = \"isPrg\";\r\n static readonly MG_ATTR_APPL_GUID: string = \"applicationGuid\";\r\n static readonly MG_ATTR_PROGRAM_ISN: string = \"programIsn\";\r\n static readonly MG_ATTR_TASK_ISN: string = \"taskIsn\";\r\n static readonly MG_ATTR_ROUTER_PATH: string = \"RouterPath\";\r\n static readonly MG_ATTR_IN_DEFAULT_ROUTER_OUTLET: string = \"InDefaultRouterOutlet\";\r\n static readonly MG_ATTR_EXPAND: string = \"expand\";\r\n static readonly MG_ATTR_EXP: string = \"exp\";\r\n static readonly MG_ATTR_ERROR_EXP: string = \"errorExp\";\r\n static readonly MG_ATTR_ERROR: string = \"errorMsg\";\r\n static readonly MG_ATTR_IS_GENERIC: string = \"isGeneric\";\r\n static readonly MG_ATTR_HASHCODE: string = \"hashCode\";\r\n static readonly MG_ATTR_PICTURE: string = \"picture\";\r\n static readonly MG_ATTR_STORAGE: string = \"storage\";\r\n static readonly MG_ATTR_DITIDX: string = \"ditidx\";\r\n static readonly MG_ATTR_ICON_FILE_NAME: string = \"iconFileName\";\r\n static readonly MG_ATTR_SYS_CONTEXT_MENU: string = \"systemContextMenu\";\r\n static readonly MG_TAG_FLDH: string = \"fldh\";\r\n static readonly MG_TAG_DVHEADER: string = \"dvheader\";\r\n static readonly MG_ATTR_MENUS_FILE_NAME: string = \"menusFileName\";\r\n static readonly MG_ATTR_MENU_CONTENT: string = \"MenusContent\";\r\n static readonly MG_ATTR_SORT_BY_RECENTLY_USED: string = \"SortWindowListByRecentlyUsed\";\r\n\r\n static readonly MG_ATTR_CONTROL_Z_ORDER: string = \"zorder\";\r\n\r\n static readonly MG_TAG_PROP: string = \"prop\";\r\n static readonly MG_TAG_CONTROL: string = \"control\";\r\n static readonly MG_TAG_FORM: string = \"form\";\r\n static readonly MG_TAG_FORM_PROPERTIES: string = \"propertiesForm\";\r\n static readonly MG_TAG_FORMS: string = \"forms\";\r\n static readonly MG_TAG_TREE: string = \"tree\";\r\n static readonly MG_TAG_NODE: string = \"node\";\r\n static readonly MG_TAG_FLD: string = \"fld\";\r\n static readonly MG_ATTR_CHILDREN_RETRIEVED: string = \"children_retrieved\";\r\n\r\n static readonly MG_TAG_HELPTABLE: string = \"helptable\";\r\n static readonly MG_TAG_HELPITEM: string = \"helpitem\";\r\n\r\n static readonly MG_ATTR_FULLNAME: string = \"fullname\";\r\n static readonly MG_ATTR_ISSPECIFIC: string = \"isSpecific\";\r\n static readonly MG_ATTR_IS_GUI_THREAD_EXECUTION: string = \"isGuiThreadExecution\";\r\n\r\n static readonly MG_TAG_TASKDEFINITIONID_ENTRY: string = \"taskDefinitionId\";\r\n static readonly MG_TAG_OBJECT_REFERENCE: string = \"objectRef\";\r\n\r\n //Help types\r\n static readonly MG_ATTR_HLP_TYP_TOOLTIP: string = \"T\";\r\n static readonly MG_ATTR_HLP_TYP_PROMPT: string = \"P\";\r\n static readonly MG_ATTR_HLP_TYP_URL: string = \"U\";\r\n static readonly MG_ATTR_HLP_TYP_INTERNAL: string = \"I\";\r\n static readonly MG_ATTR_HLP_TYP_WINDOWS: string = \"W\";\r\n\r\n //Internal help attributes.\r\n static readonly MG_ATTR_INTERNAL_HELP_TYPE: string = \"type\";\r\n static readonly MG_ATTR_INTERNAL_HELP_NAME: string = \"name\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEX: string = \"framex\";\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEY: string = \"framey\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEDX: string = \"famedx\";\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEDY: string = \"framedy\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_SIZEDX: string = \"sizedx\";\r\n static readonly MG_ATTR_INTERNAL_HELP_SIZEDY: string = \"sizedy\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FACTORX: string = \"factorx\";\r\n static readonly MG_ATTR_INTERNAL_HELP_FACTORY: string = \"factory\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_BORDERSTYLE: string = \"borderstyle\";\r\n static readonly MG_ATTR_INTERNAL_TITLE_BAR: string = \"titlebar\";\r\n static readonly MG_ATTR_INTERNAL_HELP_SYSTEM_MENU: string = \"sysmenu\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FONT_TABLE_INDEX: string = \"fonttableindex\";\r\n\r\n //Windows help attributes.\r\n static readonly MG_ATTR_WINDOWS_HELP_FILE: string = \"file\";\r\n static readonly MG_ATTR_WINDOWS_HELP_COMMAND: string = \"command\";\r\n static readonly MG_ATTR_WINDOWS_HELP_KEY: string = \"key\";\r\n\r\n //Print data attributes.\r\n static readonly MG_TAG_PRINT_DATA: string = \"Print_data\";\r\n static readonly MG_TAG_PRINT_DATA_END: string = \"/Print_data\";\r\n static readonly MG_TAG_RECORD: string = \"Record\";\r\n static readonly MG_TAG_RECORD_END: string = \"/Record\";\r\n\r\n //Custom Validators attributes.\r\n static readonly MG_TAG_CUSTOM_VALIDATORS: string = \"CustomValidators\";\r\n static readonly MG_TAG_CUSTOM_VALIDATORS_END: string = \"/CustomValidators\";\r\n static readonly MG_TAG_CUSTOM_VALIDATOR: string = \"CustomValidator\";\r\n\r\n // date/time formats for DateTimeUtils\r\n //TODO: isolate to a different file?\r\n static readonly ERROR_LOG_TIME_FORMAT: string = \"HH:mm:ss.S\";\r\n static readonly ERROR_LOG_DATE_FORMAT: string = \"DD/MM/YYYY\";\r\n static readonly HTTP_ERROR_TIME_FORMAT: string = \"HH:mm:ss\";\r\n static readonly CACHED_DATE_TIME_FORMAT: string = \"DD/MM/YYYY HH:mm:ss\";\r\n\r\n //webs constants\r\n static readonly MG_TAG_WS_READ_REQUEST: string = \"Read\";\r\n static readonly MG_TAG_WS_CREATE_REQUEST: string = \"Create\";\r\n static readonly MG_TAG_WS_CREATE_REQUEST_END: string = \"/Create\";\r\n static readonly MG_TAG_WS_UPDATE_REQUEST: string = \"Update\";\r\n static readonly MG_TAG_WS_UPDATE_REQUEST_END: string = \"/Update\";\r\n static readonly MG_TAG_WS_DELETE_REQUEST: string = \"Delete\";\r\n static readonly MG_TAG_WS_DELETE_REQUEST_END: string = \"/Delete\";\r\n static readonly MG_TAG_WS_MANIPULATE_REQUEST: string = \"Manipulate\";\r\n static readonly MG_TAG_WS_MANIPULATE_REQUEST_END: string = \"/Manipulate\";\r\n\r\n static readonly MG_TAG_WS_DATABASE: string = \"Database\";\r\n static readonly MG_TAG_WS_DATASOURCE: string = \"Datasource\";\r\n static readonly MG_TAG_WS_COLUMNS: string = \"Columns\";\r\n static readonly MG_TAG_WS_COLUMN: string = \"string\";\r\n static readonly MG_TAG_WS_RANGES: string = \"Ranges\";\r\n static readonly MG_TAG_WS_RANGES_END: string = \"/Ranges\";\r\n static readonly MG_TAG_WS_MIN: string = \"Min\";\r\n static readonly MG_TAG_WS_MAX: string = \"Max\";\r\n static readonly MG_TAG_WS_RECORD: string = \"Row\";\r\n static readonly MG_TAG_WS_RECORD_END: string = \"/Row\";\r\n static readonly MG_TAG_WS_WHERE: string = \"Where\";\r\n static readonly MG_TAG_WS_WHERE_END: string = \"/Where\";\r\n\r\n static readonly MG_TAG_WS_RESPONSE: string = \"Response\";\r\n static readonly MG_TAG_WS_ERROR: string = \"Error\";\r\n static readonly MG_TAG_WS_ERROR_CODE: string = \"errorCode\";\r\n static readonly MG_TAG_WS_DESCRIPTION: string = \"description\";\r\n\r\n static readonly MG_TAG_MENUS_OPEN: string = \"Menus\";\r\n static readonly MG_TAG_MENUS_CLOSE: string = \"/Menus\";\r\n static readonly MG_TAG_MENU: string = \"Menu\";\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import {DateTime, Exception, StringBuilder} from \"@magic-xpa/mscorelib\";\r\nimport {XMLConstants} from \"./XMLConstants\";\r\n\r\nexport class DateTimeUtils {\r\n\r\n /// <summary> returns the number in a 2 digit string\r\n private static int2str(n: number): string {\r\n return (n > 9) ? n.toString() : (\"0\" + n);\r\n }\r\n\r\n static ToString(dateTime: DateTime, format: string, logger: any): string {\r\n let dateTimeString: string;\r\n try {\r\n dateTimeString = dateTime.Format(format);\r\n }\r\n catch (ex) {\r\n if (ex instanceof Exception) {\r\n if (format === XMLConstants.CACHED_DATE_TIME_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Day) + \"/\" + DateTimeUtils.int2str(dateTime.Month) + \"/\" + dateTime.Year + \" \" +\r\n DateTimeUtils.int2str(dateTime.Hour) + \":\" + DateTimeUtils.int2str(dateTime.Minute) + \":\" +\r\n DateTimeUtils.int2str(dateTime.Second);\r\n }\r\n else {\r\n if (format === XMLConstants.ERROR_LOG_TIME_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Hour) + \":\" +\r\n DateTimeUtils.int2str(dateTime.Minute) + \":\" +\r\n DateTimeUtils.int2str(dateTime.Second) + \".\";\r\n if (dateTime.Millisecond % 100 > 50) {\r\n dateTimeString = dateTimeString + (Math.floor(dateTime.Millisecond / 100) + 1);\r\n }\r\n else {\r\n dateTimeString = dateTimeString + Math.floor(dateTime.Millisecond / 100);\r\n }\r\n }\r\n else {\r\n if (format === XMLConstants.ERROR_LOG_DATE_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Day) + \"/\" + DateTimeUtils.int2str(dateTime.Month) + \"/\" + dateTime.Year;\r\n }\r\n else {\r\n\r\n if (format === XMLConstants.HTTP_ERROR_TIME_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Hour) + \":\" + DateTimeUtils.int2str(dateTime.Minute) + \":\" + DateTimeUtils.int2str(dateTime.Second) + \".\";\r\n }\r\n else {\r\n logger.WriteExceptionToLogWithMsg(ex.Message);\r\n let dateTimeTmpString: StringBuilder = new StringBuilder();\r\n dateTimeString = dateTimeTmpString.ToString();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else\r\n throw ex;\r\n }\r\n return dateTimeString;\r\n }\r\n}\r\n","/// <summary>\r\n/// An interface to define the constantes used by the Picture mechanism.\r\n/// </summary>\r\n\r\nexport class PICInterface {\r\n //--------------------------------------------------------------------------\r\n // TEMP!\r\n //--------------------------------------------------------------------------\r\n\r\n static readonly PIC_X: number = 1;\r\n static readonly PIC_U: number = 2;\r\n static readonly PIC_L: number = 3;\r\n static readonly PIC_N: number = 4;\r\n static readonly PIC_YY: number = 5;\r\n static readonly PIC_YYYY: number = 6;\r\n static readonly PIC_MMD: number = 7;\r\n static readonly PIC_MMM: number = 8;\r\n static readonly PIC_DD: number = 9;\r\n static readonly PIC_DDD: number = 10;\r\n static readonly PIC_DDDD: number = 11;\r\n static readonly PIC_W: number = 12;\r\n static readonly PIC_WWW: number = 13;\r\n static readonly PIC_HH: number = 14;\r\n static readonly PIC_MMT: number = 15;\r\n static readonly PIC_SS: number = 16;\r\n static readonly PIC_PM: number = 17;\r\n static readonly PIC_HYYYYY: number = 18; // Hebrew year\r\n static readonly PIC_HL: number = 19; // Hebrew thousand year\r\n static readonly PIC_HDD: number = 20; // Hebrew day of month\r\n static readonly PIC_MS: number = 21; // Milliseconds\r\n static readonly PIC_LOCAL: number = 23; // the space between PIC_LOCAL and PIC_MAX_OP\r\n static readonly PIC_MAX_MSK_LEN: number = 100;\r\n\r\n // JPN: Japanese date picture support\r\n static readonly PIC_JY1: number = PICInterface.PIC_LOCAL + 0; // the name of an era (1 byte)\r\n static readonly PIC_JY2: number = PICInterface.PIC_LOCAL + 1; // the name of an era (2 bytes)\r\n static readonly PIC_JY4: number = PICInterface.PIC_LOCAL + 2; // the name of an era (4 bytes)\r\n static readonly PIC_YJ: number = PICInterface.PIC_LOCAL + 3; // a year of an era\r\n static readonly PIC_BB: number = PICInterface.PIC_LOCAL + 4; // a day of the week (2, 4 or 6 bytes)\r\n\r\n // DBCS pictures for iSeries\r\n static readonly PIC_J: number = PICInterface.PIC_LOCAL + 5; // DBCS only (with SO/SI)\r\n static readonly PIC_T: number = PICInterface.PIC_LOCAL + 6; // All SBCS or All DBCS (with SO/SI)\r\n static readonly PIC_G: number = PICInterface.PIC_LOCAL + 7; // DBCS only (without SO/SI)\r\n static readonly PIC_S: number = PICInterface.PIC_LOCAL + 8; // SBCS only\r\n static readonly PIC_MAX_OP: number = 31; // is reserved for DLL\"s picture\r\n static readonly NULL_CHAR: number = -1;\r\n static readonly DB_STR_MAX: number = 255;\r\n static readonly DAYSINFOURCENT: number = 146097; // ((365*4+1)*25-1)*4+1 */\r\n static readonly DAYSINCENTURY: number = 36524; // (365*4+1)*25-1 */\r\n static readonly DAYSINFOURYEAR: number = 1461; // 365*4+1 */\r\n static readonly DAYSINYEAR: number = 365;\r\n static readonly DAYSINMONTH: number = 31;\r\n static readonly DATE_BUDDHIST_GAP: number = 543; // years above the gregorian date\r\n static readonly DEFAULT_DATE: string = \"693961\";\r\n static readonly DEFAULT_TIME: string = \"0\";\r\n static readonly date_day_tab: number[] = [\r\n 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365\r\n ];\r\n\r\n static readonly date_month_str: string[] = [\r\n \" \", \"January \", \"February \", \"March \", \"April \", \"May \", \"June \", \"July \", \"August \", \"September \", \"October \", \"November \", \"December \"\r\n ];\r\n\r\n static readonly date_dow_str: string[] = [\r\n \" \", \"Sunday \", \"Monday \", \"Tuesday \", \"Wednesday \", \"Thursday \", \"Friday \", \"Saturday \"\r\n ];\r\n\r\n //public final static readonly int DEF_century = 1920;\r\n //public final static readonly Nchar DEF_date_mode = 'E';\r\n // vec of pictures that can be given a numeric char only\r\n static readonly NumDirective: number[] = [\r\n 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16\r\n ];\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {PICInterface} from \"./PICInterface\";\r\n\r\nconst DATE_MONTH_LEN: number = 10;\r\nconst DATE_DOW_LEN: number = 10;\r\n\r\nexport class DateUtil {\r\n\r\n private static readonly _localMonths: string[] = new Array<string>(13);\r\n private static readonly _localDays: string[] = new Array<string>(8);\r\n\r\n /// <summary>\r\n /// extract the vector which contains the names of the months, as specified by the\r\n /// language CAB\r\n /// </summary>\r\n static getLocalMonths(names: string): string[] {\r\n let monthLen: number = DATE_MONTH_LEN;\r\n\r\n // if it's the first time then access the language CAB and take the values\r\n if (typeof DateUtil._localMonths[0] === \"undefined\") {\r\n\r\n //cut the string into separate values\r\n if (names !== null) {\r\n DateUtil._localMonths[0] = PICInterface.date_month_str[0];\r\n for (let i: number = 1; i < DateUtil._localMonths.length; i = i + 1) {\r\n\r\n if (i * monthLen >= names.length) {\r\n DateUtil._localMonths[i] = names.substr((i - 1) * monthLen);\r\n while (monthLen - DateUtil._localMonths[i].length > 0) {\r\n DateUtil._localMonths[i] = DateUtil._localMonths[i] + \" \";\r\n }\r\n }\r\n else {\r\n DateUtil._localMonths[i] = names.substr((i - 1) * monthLen, i * monthLen - (i - 1) * monthLen);\r\n }\r\n }\r\n }\r\n else {\r\n for (let i: number = 0; i < DateUtil._localMonths.length; i = i + 1) {\r\n DateUtil._localMonths[i] = PICInterface.date_month_str[i];\r\n }\r\n }\r\n }\r\n return DateUtil._localMonths;\r\n }\r\n\r\n /// <summary>\r\n /// extract the vector which contains the names of the days, as specified by the\r\n /// language CAB\r\n /// </summary>\r\n static getLocalDays(names: string): string[] {\r\n let dowLen: number = DATE_DOW_LEN;\r\n\r\n // if it's the first time then access the language CAB and take the values\r\n if (typeof DateUtil._localDays[0] === \"undefined\") {\r\n\r\n //cut the string into separate values\r\n if (names !== null) {\r\n DateUtil._localDays[0] = PICInterface.date_dow_str[0];\r\n for (let i: number = 1; i < DateUtil._localDays.length; i = i + 1) {\r\n\r\n if (i * dowLen >= names.length) {\r\n DateUtil._localDays[i] = names.substr((i - 1) * dowLen);\r\n while (dowLen - DateUtil._localDays[i].length > 0) {\r\n DateUtil._localDays[i] = DateUtil._localDays[i] + \" \";\r\n }\r\n }\r\n else {\r\n DateUtil._localDays[i] = names.substr((i - 1) * dowLen, i * dowLen - (i - 1) * dowLen);\r\n }\r\n }\r\n }\r\n else {\r\n for (let i: number = 0; i < DateUtil._localMonths.length; i = i + 1) {\r\n DateUtil._localMonths[i] = PICInterface.date_dow_str[i];\r\n }\r\n }\r\n }\r\n return DateUtil._localDays;\r\n }\r\n}\r\n","export enum Logger_MessageDirection {\r\n MessageLeaving,\r\n MessageEntering\r\n}\r\n\r\nexport enum Logger_LogLevels {\r\n None,\r\n RequestInfo,\r\n Server,\r\n ServerMessages,\r\n Support,\r\n Gui,\r\n Development,\r\n Basic\r\n}\r\n\r\nexport enum Priority {\r\n LOWEST = 1,\r\n LOW,\r\n HIGH\r\n}\r\n\r\nexport enum TableBehaviour {\r\n LimitedItems = 1,\r\n UnlimitedItems\r\n}\r\n\r\nexport enum HttpStatusCode {\r\n Unused\r\n}\r\nexport enum MgControlType {\r\n CTRL_TYPE_NONE = '0',\r\n CTRL_TYPE_BUTTON = 'B',\r\n CTRL_TYPE_CHECKBOX = 'C',\r\n CTRL_TYPE_RADIO = 'R',\r\n CTRL_TYPE_COMBO = 'D',\r\n CTRL_TYPE_LIST = 'E',\r\n CTRL_TYPE_TEXT = 'T',\r\n CTRL_TYPE_GROUP = 'G',\r\n CTRL_TYPE_TAB = 'J',\r\n CTRL_TYPE_TABLE = 'A',\r\n CTRL_TYPE_COLUMN = 'K',\r\n CTRL_TYPE_LABEL = 'L',\r\n CTRL_TYPE_IMAGE = 'I',\r\n CTRL_TYPE_SUBFORM = 'F',\r\n CTRL_TYPE_BROWSER = 'W',\r\n CTRL_TYPE_STATUS_BAR = '1',\r\n CTRL_TYPE_SB_LABEL = '2',\r\n CTRL_TYPE_SB_IMAGE = '3',\r\n CTRL_TYPE_FRAME_SET = 'P',\r\n CTRL_TYPE_CONTAINER = 'Q',\r\n CTRL_TYPE_FRAME_FORM = 'U',\r\n CTRL_TYPE_LINE = 'X'\r\n}\r\n\r\nexport enum DitType {\r\n None = 1,\r\n Edit,\r\n Button,\r\n Combobox,\r\n Listbox,\r\n Radiobox,\r\n Tab,\r\n Checkbox,\r\n Image,\r\n Static,\r\n Line,\r\n Group,\r\n Table,\r\n Slider,\r\n Ole,\r\n Hotspot,\r\n StaticTable,\r\n Sound,\r\n Html,\r\n Java,\r\n Activex,\r\n Frame,\r\n Subform,\r\n Hypertext,\r\n Browser,\r\n Opaque\r\n}\r\n\r\nexport enum BorderType {\r\n Thin = 1,\r\n Thick,\r\n NoBorder\r\n}\r\n\r\nexport enum GradientStyle {\r\n None = 1,\r\n Horizontal,\r\n HorizontalSymmetric,\r\n HorizontalWide,\r\n Vertical,\r\n VerticalSymmetric,\r\n VerticalWide,\r\n DiagonalLeft,\r\n DiagonalLeftSymmetric,\r\n DiagonalRight,\r\n DiagonalRightSymmetric,\r\n CornerTopLeft,\r\n CornerTopRight,\r\n CornerBottomLeft,\r\n CornerBottomRight,\r\n Center\r\n}\r\n\r\nexport enum AlignmentTypeHori {\r\n Left = 1,\r\n Center,\r\n Right\r\n}\r\n\r\nexport enum TabbingOrderType {\r\n Automatically = 1,\r\n Manual\r\n}\r\n\r\nexport enum AllowedDirectionType {\r\n Both = 1,\r\n Foreword,\r\n Backward\r\n}\r\n\r\nexport enum AlignmentTypeVert {\r\n Top = 1,\r\n Center,\r\n Bottom\r\n}\r\n\r\nexport enum HtmlAlignmentType {\r\n TextVertTop = 1,\r\n TextVertCenter,\r\n TextVertBottom,\r\n TextHoriLeft,\r\n TextHoriRight\r\n}\r\n\r\nexport enum SideType {\r\n Top = 1,\r\n Right,\r\n Bottom,\r\n Left\r\n}\r\n\r\nexport enum SelprgMode {\r\n Before = 'B',\r\n After = 'A',\r\n Prompt = 'P'\r\n}\r\n\r\nexport enum WinCptn {\r\n Half = 1,\r\n On,\r\n Off\r\n}\r\n\r\nexport enum WinHtmlType {\r\n Get = 1,\r\n Post,\r\n Link\r\n}\r\n\r\nexport enum WinUom {\r\n Dlg = 1,\r\n Mm,\r\n Inch,\r\n Pix\r\n}\r\n\r\nexport enum ControlStyle {\r\n TwoD = 1,\r\n ThreeD,\r\n ThreeDSunken,\r\n Windows3d,\r\n Windows,\r\n Emboss,\r\n NoBorder\r\n}\r\n\r\nexport enum CtrlLineType {\r\n Normal = 1,\r\n Dash,\r\n Dot,\r\n Dashdot,\r\n Dashdotdot\r\n}\r\n\r\nexport enum CtrlTextType {\r\n Default = 1,\r\n Bullet,\r\n Number\r\n}\r\n\r\nexport enum CtrlLineDirection {\r\n Asc = 1,\r\n Des\r\n}\r\n\r\nexport enum CtrlOleDisplayType {\r\n Icon = 1,\r\n Content,\r\n Any\r\n}\r\n\r\nexport enum CtrlOleStoreType {\r\n Link = 1,\r\n Embeded,\r\n Any\r\n}\r\n\r\nexport enum CtrlButtonType {\r\n Submit = 1,\r\n Clear,\r\n Default\r\n}\r\n\r\nexport enum CtrlImageStyle {\r\n Tiled = 1,\r\n Copied,\r\n ScaleFit,\r\n ScaleFill,\r\n Distorted\r\n}\r\n\r\nexport enum TabControlTabsWidth {\r\n FitToText = 1,\r\n Fixed,\r\n FillToRight,\r\n FixedInLine\r\n}\r\n\r\nexport enum CheckboxMainStyle {\r\n None = 0,\r\n Box = 1,\r\n Button,\r\n Switch\r\n}\r\n\r\nexport enum RbAppearance {\r\n None = 0,\r\n Radio = 1,\r\n Button\r\n}\r\n\r\nexport enum HelpCommand {\r\n Context = 1,\r\n Contents,\r\n Setcontents,\r\n Contextpopup,\r\n Key,\r\n Command,\r\n Forcefile,\r\n Helponhelp,\r\n Quit\r\n}\r\n\r\nexport enum FormExpandType {\r\n None = 1,\r\n OnePage,\r\n MultiPage\r\n}\r\n\r\nexport enum DitAttribute {\r\n Alpha = 1,\r\n Unicode,\r\n Numeric,\r\n Boolean,\r\n Date,\r\n Time,\r\n Memo,\r\n Blob\r\n}\r\n\r\nexport enum DspInterface {\r\n Text = 1,\r\n Gui,\r\n Html,\r\n Java,\r\n Frame,\r\n Merge,\r\n Webonline,\r\n Browser\r\n}\r\n\r\nexport enum PrgExecPlace {\r\n Before = 1,\r\n After,\r\n Prompt\r\n}\r\n\r\nexport enum SliderType {\r\n Vertical = 1,\r\n Horizontal\r\n}\r\n\r\nexport enum CtrlButtonTypeGui {\r\n None = 0,\r\n Push = 1,\r\n Image,\r\n Hypertext,\r\n TextOnImage\r\n}\r\n\r\nexport enum ImageEffects {\r\n Normal = 1,\r\n WipeDown,\r\n WipeUp,\r\n WipeRight,\r\n WipeLeft,\r\n Pixel,\r\n SmallBox,\r\n MediumBox,\r\n LargeBox,\r\n Hline,\r\n Vline,\r\n Vmiddle,\r\n Hmiddle,\r\n Hinterlace,\r\n Vinterlace,\r\n OutToIn,\r\n InToOut,\r\n OtiInterlace1,\r\n ItoInterlace2,\r\n SpiralIn3,\r\n SpiralOut4\r\n}\r\n\r\nexport enum CtrlHotspotType {\r\n Square = 1,\r\n Circle\r\n}\r\n\r\nexport enum SubformType {\r\n Program = 1,\r\n Subtask,\r\n Form,\r\n None\r\n}\r\n\r\nexport enum DatabaseDefinitionType {\r\n String = 1,\r\n Normal\r\n}\r\n\r\nexport enum DatabaseOperations {\r\n Insert = 1,\r\n Update,\r\n Delete,\r\n Where,\r\n None\r\n}\r\n\r\nexport enum DataTranslation {\r\n Ansi = 1,\r\n Oem,\r\n Unicode\r\n}\r\n\r\nexport enum WindowPosition {\r\n Customized = 1,\r\n DefaultBounds,\r\n CenteredToParent,\r\n CenteredToMagic,\r\n CenteredToDesktop,\r\n DefaultLocation,\r\n CenteredToWindow\r\n}\r\n\r\nexport enum FldStyle {\r\n None = 1,\r\n Activex,\r\n Ole,\r\n Vector,\r\n Dotnet\r\n}\r\n\r\nexport enum FieldComType {\r\n Obj = 1,\r\n Ref\r\n}\r\n\r\nexport enum ListboxSelectionMode {\r\n Single = 1,\r\n Multiple\r\n}\r\n\r\nexport enum SplitWindowType {\r\n None = 1,\r\n Vertical,\r\n Horizontal\r\n}\r\n\r\nexport enum SplitPrimaryDisplay {\r\n Default = 1,\r\n Left,\r\n Right,\r\n Top,\r\n Bottom\r\n}\r\n\r\nexport enum AutoFit {\r\n None = 1,\r\n AsControl,\r\n AsCalledForm\r\n}\r\n\r\nexport enum WindowType {\r\n Default = 1,\r\n Sdi,\r\n ChildWindow,\r\n SplitterChildWindow,\r\n Floating,\r\n Modal,\r\n ApplicationModal,\r\n Tool,\r\n FitToMdi,\r\n MdiChild,\r\n MdiFrame,\r\n Overlay,\r\n LogonApplicationWindow = 'a',\r\n TkDockChild = 'b'\r\n}\r\n\r\nexport enum StartupMode {\r\n Default = 1,\r\n Maximize,\r\n Minimize\r\n}\r\n\r\nexport enum ColumnUpdateStyle {\r\n Absolute = 1,\r\n Differential,\r\n AsTable\r\n}\r\n\r\nexport enum CallUdpConvention {\r\n C = 'C',\r\n Standard = 'S',\r\n Fast = 'F'\r\n}\r\n\r\nexport enum CallUDPType {\r\n Background = 'B',\r\n GUI = 'G'\r\n}\r\n\r\nexport enum VerifyMode {\r\n Error = 'E',\r\n Warning = 'W',\r\n Revert = 'R'\r\n}\r\n\r\nexport enum VerifyDisplay {\r\n Box = 'B',\r\n Status = 'S',\r\n None = 'N'\r\n}\r\n\r\nexport enum VerifyImage {\r\n Exclamation = 'E',\r\n Critical = 'C',\r\n Question = 'Q',\r\n Information = 'I',\r\n None = 'N'\r\n}\r\n\r\nexport enum VerifyButtons {\r\n Ok = 'O',\r\n OkCancel = 'K',\r\n AbortRetryIgnore = 'A',\r\n YesNoCancel = 'Y',\r\n YesNo = 'N',\r\n RetryCancel = 'R'\r\n}\r\n\r\nexport enum CallComOption {\r\n Method = 1,\r\n GetProp,\r\n SetProp\r\n}\r\n\r\nexport enum CallWsStyle {\r\n Rpc = 1,\r\n Document\r\n}\r\n\r\nexport enum CallOsShow {\r\n Hide = 1,\r\n Normal,\r\n Maximize,\r\n Minimize\r\n}\r\n\r\nexport enum LogicUnit {\r\n Remark = 1,\r\n Task,\r\n Group,\r\n Record,\r\n Variable,\r\n Control,\r\n Event,\r\n Function,\r\n SeqFlow\r\n}\r\n\r\nexport enum LogicLevel {\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n Verification = 'V',\r\n Change = 'C'\r\n}\r\n\r\nexport enum BrkScope {\r\n Task = 'T',\r\n Subtree = 'S',\r\n Global = 'G'\r\n}\r\n\r\nexport enum LDir {\r\n Default = 'A',\r\n Reversed = 'D'\r\n}\r\n\r\nexport enum Order {\r\n Ascending = 'A',\r\n Descending = 'D'\r\n}\r\n\r\nexport enum LnkEval_Cond {\r\n Record = 'R',\r\n Task = 'T'\r\n}\r\n\r\nexport enum Access {\r\n NoAccess = ' ',\r\n Read = 'R',\r\n Write = 'W'\r\n}\r\n\r\nexport enum DbShare {\r\n NoShare = ' ',\r\n Write = 'W',\r\n Read = 'R',\r\n None = 'N'\r\n}\r\n\r\nexport enum DbOpen {\r\n Normal = 'N',\r\n Fast = 'F',\r\n Damaged = 'D',\r\n Reindex = 'R'\r\n}\r\n\r\nexport enum DbDelUpdMode {\r\n Position = 'P',\r\n PositionAndSelectedFields = 'S',\r\n PositionAndUpdatedFields = 'U',\r\n AsTable = 'T',\r\n None = 'N'\r\n}\r\n\r\nexport enum RaiseAt {\r\n Container = 1,\r\n TaskInFocus\r\n}\r\n\r\nexport enum EngineDirect {\r\n None = ' ',\r\n AbortTask = 'A',\r\n Rollback = 'B',\r\n AutoRetry = 'R',\r\n UserRetry = 'U',\r\n Ignore = 'I',\r\n AsStrategy = 'S',\r\n Continue = 'C'\r\n}\r\n\r\nexport enum FlowDirection {\r\n Forward = 'F',\r\n Backward = 'B',\r\n Combined = 'C'\r\n}\r\n\r\nexport enum FlwMode {\r\n Fast = 'F',\r\n Step = 'S',\r\n Combine = 'B',\r\n Before = 'J',\r\n After = 'Z'\r\n}\r\n\r\n\r\n\r\nexport enum BottomPositionInterval {\r\n NoneRowHeight = 1,\r\n RowHeight\r\n}\r\n\r\nexport enum ExecOn {\r\n None,\r\n Optimized,\r\n Client,\r\n Server\r\n}\r\n\r\n\r\nexport enum Storage {\r\n AlphaString = 1,\r\n AlphaLstring,\r\n AlphaZtring,\r\n NumericSigned,\r\n NumericUnsigned,\r\n NumericFloat,\r\n NumericFloatMs,\r\n NumericFloatDec,\r\n NumericPackedDec,\r\n NumericNumeric,\r\n NumericCharDec,\r\n NumericString,\r\n NumericMagic,\r\n NumericCisam,\r\n BooleanInteger,\r\n BooleanDbase,\r\n DateInteger,\r\n DateInteger1901,\r\n DateString,\r\n DateYymd,\r\n DateMagic,\r\n DateMagic1901,\r\n TimeInteger,\r\n TimeString,\r\n TimeHmsh,\r\n TimeMagic,\r\n MemoString,\r\n MemoMagic,\r\n Blob,\r\n NumericExtFloat,\r\n UnicodeString,\r\n UnicodeZstring,\r\n AnsiBlob,\r\n UnicodeBlob\r\n}\r\n\r\nexport enum StorageAttributeType {\r\n Alpha = 'A',\r\n Numeric = 'N',\r\n Boolean = 'B',\r\n Date = 'D',\r\n Time = 'T',\r\n Blob = 'O',\r\n Unicode = 'U',\r\n String = 'S',\r\n BlobOle = 'L',\r\n BlobActiveX = 'X',\r\n BlobVector = 'V',\r\n BlobDotNet = 'E',\r\n BlobJava = 'J',\r\n None = ' '\r\n}\r\n\r\nexport enum BrkLevel {\r\n Task = 'T',\r\n Group = 'G',\r\n All = 'A',\r\n Record = 'R',\r\n Control = 'C',\r\n Handler = 'H',\r\n MainProgram = 'M',\r\n Variable = 'V',\r\n Function = 'F',\r\n Remark = 'K',\r\n RM_Compat = 'M',\r\n SubForm = 'U',\r\n Event = 'E',\r\n OPStatOnChange = 'O'\r\n}\r\n\r\nexport enum MediaOrientation {\r\n Portrait = 'P',\r\n Landscape = 'L'\r\n}\r\n\r\nexport enum MediaFormat {\r\n Page = 'P',\r\n Line = 'L',\r\n None = 'N'\r\n}\r\n\r\nexport enum CharacterSet {\r\n Ansi,\r\n Oem,\r\n Unicode = 3,\r\n Utf8\r\n}\r\n\r\nexport enum MediaAccess {\r\n Read = 'R',\r\n Write = 'W',\r\n Append = 'A',\r\n Direct = 'D',\r\n AppendFlush = 'F',\r\n Create = 'C'\r\n}\r\n\r\nexport enum PaperSize {\r\n Default = 'D',\r\n Letter = 'L',\r\n A4 = 'A',\r\n Folio = 'F',\r\n Quarto = 'Q',\r\n Tabloid = 'T',\r\n Ledger = 'R',\r\n Legal_8_14 = 'G',\r\n Statement = 'S',\r\n Executive_7_10 = 'X',\r\n A3 = '3',\r\n A5 = '5',\r\n Note = 'N',\r\n Envelope_3_8 = 'E',\r\n B4 = 'B',\r\n B5_v = 'V',\r\n UserDefined = 'U',\r\n B5 = 'W',\r\n C5 = 'C',\r\n Legal = 'g',\r\n Multipurpose = 'M',\r\n Executive = 'x',\r\n EnvelopeB4 = 'v',\r\n EnvelopeB5 = 'p',\r\n EnvelopeC6 = '6',\r\n EnvelopeDL = 'o',\r\n EnvelopeMonarch = 'h',\r\n Envelope9 = '9',\r\n Envelope10 = '0',\r\n Envelope11 = '1'\r\n}\r\n\r\nexport enum PaperSizePdfDisabled {\r\n Default = 'D',\r\n Letter = 'L',\r\n A4 = 'A',\r\n Folio = 'F',\r\n Quarto = 'Q',\r\n Tabloid = 'T',\r\n Ledger = 'R',\r\n Legal_8_14 = 'G',\r\n Statement = 'S',\r\n Executive_7_10 = 'X',\r\n A3 = '3',\r\n A5 = '5',\r\n Note = 'N',\r\n Envelope_3_8 = 'E',\r\n B4 = 'B',\r\n B5_v = 'V'\r\n}\r\n\r\nexport enum PaperSizePdfEnabled {\r\n Default = 'D',\r\n UserDefined = 'U',\r\n Letter = 'L',\r\n A4 = 'A',\r\n A3 = '3',\r\n Legal = 'g',\r\n B5 = 'B',\r\n C5 = 'C',\r\n Multipurpose = 'M',\r\n B4 = '4',\r\n A5 = '5',\r\n Folio = 'F',\r\n Executive = 'x',\r\n EnvelopeB4 = 'v',\r\n EnvelopeB5 = 'p',\r\n EnvelopeC6 = '6',\r\n EnvelopeDL = 'o',\r\n EnvelopeMonarch = 'h',\r\n Envelope9 = '9',\r\n Envelope10 = '0',\r\n Envelope11 = '1'\r\n}\r\n\r\nexport enum Area {\r\n Detail = 'N',\r\n Header = 'H',\r\n Footer = 'F',\r\n PageHeader = 'P',\r\n PageFooter = 'G'\r\n}\r\n\r\nexport enum DisplayTextType {\r\n Edit,\r\n Query\r\n}\r\n\r\nexport enum LogicHeaderType {\r\n None = ' ',\r\n Remark = 'K',\r\n Task = 'T',\r\n Function = 'F',\r\n Handler = 'H',\r\n Record = 'R',\r\n Variable = 'V',\r\n Control = 'C',\r\n Group = 'G',\r\n All = 'A',\r\n MainProgram = 'P',\r\n RecordCompat = 'M',\r\n SubForm = 'U',\r\n Event = 'E'\r\n}\r\n\r\nexport enum LogicOperationType {\r\n None = 'x',\r\n Remark = ' ',\r\n Update = 'U',\r\n Call = 'C',\r\n Invoke = 'I',\r\n RaiseEvent = 'R',\r\n Evaluate = 'A',\r\n Block = 'B',\r\n Verify = 'E',\r\n Form = 'F',\r\n Variable = 'V'\r\n}\r\n\r\nexport enum Opr {\r\n Remark,\r\n SelFld,\r\n Stop,\r\n BeginLink,\r\n EndLink,\r\n BeginBlock,\r\n EndBlock,\r\n Call,\r\n EvaluateExpression,\r\n UpdateFld,\r\n WriteFile,\r\n ReadFile,\r\n DataviewSrc,\r\n UserExit,\r\n RaiseEvent\r\n}\r\n\r\nexport enum DataViewHeaderType {\r\n None = ' ',\r\n Remark = 'R',\r\n Declare = 'D',\r\n MainSource = 'M',\r\n DirectSQL = 'Q',\r\n LinkQuery = 'L',\r\n LinkWrite = 'W',\r\n LinkCreate = 'C',\r\n LinkIJoin = 'I',\r\n LinkOJoin = 'O',\r\n EndLink = 'E'\r\n}\r\n\r\nexport enum DataViewOperationType {\r\n Remark = ' ',\r\n Column = 'C',\r\n Virtual = 'V',\r\n Parameter = 'P',\r\n LinkedColumn = 'L'\r\n}\r\n\r\nexport enum LoadedValues {\r\n None,\r\n HeaderOnly,\r\n Failed,\r\n Full\r\n}\r\n\r\nexport enum YesNoValues {\r\n Yes = 1,\r\n No = 0\r\n}\r\n\r\nexport enum TrueFalseValues {\r\n True = 1,\r\n False = 0\r\n}\r\n\r\nexport enum HelpType {\r\n Internal = 'I',\r\n Prompt = 'P',\r\n Windows = 'W',\r\n Tooltip = 'T',\r\n URL = 'U'\r\n}\r\n\r\nexport enum NullArithmetic {\r\n Nullify,\r\n UseDefault\r\n}\r\n\r\nexport enum ModelClass {\r\n Help = 'A',\r\n Field = 'B',\r\n Browser = 'C',\r\n GUI0 = 'D',\r\n GUI1 = 'E',\r\n TextBased = 'F',\r\n Frameset = 'G',\r\n Merge = 'H',\r\n RCDisplay = 'I',\r\n RCFrame = 'J',\r\n GuiFrame = 'K'\r\n}\r\n\r\nexport enum CompTypes {\r\n Magicxpa = 'U',\r\n DotNet = 'D'\r\n}\r\n\r\nexport enum TaskFlow {\r\n Undefined = 'U',\r\n Online = 'O',\r\n Batch = 'B',\r\n Browser = 'R',\r\n RichClient = 'C'\r\n}\r\n\r\nexport enum RemarkType {\r\n RegularOperation,\r\n Dataviewheader,\r\n TaskLogic\r\n}\r\n\r\nexport enum VeeMode {\r\n None = ' ',\r\n Parameter = 'P',\r\n Virtual = 'V',\r\n Real = 'R',\r\n Column = 'C',\r\n LinkCol = 'L'\r\n}\r\n\r\nexport enum VeeDiffUpdate {\r\n AsTable = 'T',\r\n Absolute = 'N',\r\n Differential = 'Y',\r\n None = 0\r\n}\r\n\r\nexport enum VeePartOfDataview {\r\n Undefined = 'U'\r\n}\r\n\r\nexport enum DataviewType {\r\n MainTable = 'M',\r\n DSQL = 'Q',\r\n Declaration = 'D'\r\n}\r\n\r\nexport enum TabbingCycleType {\r\n RemainInCurrentRecord = 'R',\r\n MoveToNextRecord = 'N',\r\n MoveToParentTask = 'P'\r\n}\r\n\r\nexport enum LockingStrategy {\r\n Immediate = 'I',\r\n OnModify = 'O',\r\n AfterModify = 'A',\r\n BeforeUpdate = 'B',\r\n Minimum = 'M'\r\n}\r\n\r\nexport enum TransBegin {\r\n Update = 'U',\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n OnLock = 'L',\r\n None = 'N',\r\n BeforeTask = 'T',\r\n Group = 'G'\r\n}\r\n\r\nexport enum ErrStrategy {\r\n Recover = 'R',\r\n Abort = 'A'\r\n}\r\n\r\nexport enum CacheStrategy {\r\n Pos = 'P',\r\n PosData = 'D',\r\n None = 'N',\r\n AsTable = 'T'\r\n}\r\n\r\nexport enum ExeState {\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n Update = 'U',\r\n Main = 'M',\r\n Before = 'B',\r\n AfterOnChange = 'O',\r\n Verify = 'V',\r\n Change = 'C'\r\n}\r\n\r\nexport enum TransMode {\r\n Deferred = 'D',\r\n NestedDeffered = 'N',\r\n Physical = 'P',\r\n WithinActiveTrans = 'W',\r\n None = 'O'\r\n}\r\n\r\nexport enum PositionUsage {\r\n RangeOn = 'O',\r\n RangeFrom = 'F',\r\n Locate = 'L'\r\n}\r\n\r\nexport enum LnkMode {\r\n Query = 'R',\r\n Write = 'W',\r\n Create = 'A',\r\n IJoin = 'J',\r\n OJoin = 'O'\r\n}\r\n\r\nexport enum InitialMode {\r\n Modify = 'M',\r\n Create = 'C',\r\n Delete = 'D',\r\n Query = 'E',\r\n AsParent = 'P',\r\n Locate = 'L',\r\n Range = 'R',\r\n Key = 'K',\r\n Sort = 'S',\r\n Files = 'O',\r\n Options = 'N',\r\n ByExp = 'B'\r\n}\r\n\r\nexport enum KeyMode {\r\n Normal = 'N',\r\n Insert = 'I',\r\n Append = 'A'\r\n}\r\n\r\nexport enum BoxDir {\r\n Vertical = 'V',\r\n Horizontal = 'H'\r\n}\r\n\r\nexport enum EndMode {\r\n Before = 'B',\r\n After = 'A',\r\n Immediate = 'I'\r\n}\r\n\r\nexport enum UniqueTskSort {\r\n AccordingToIndex = 'A',\r\n Unique = 'U'\r\n}\r\n\r\nexport enum BrkType {\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n Main = 'M',\r\n User = 'U',\r\n Error = 'E',\r\n Verify = 'V',\r\n ChoiceChange = 'C'\r\n}\r\n\r\nexport enum ErrorClassific {\r\n Any,\r\n RecLocked,\r\n DupKey,\r\n ConstrFail,\r\n TriggerFail,\r\n RecUpdated,\r\n RowsAffected,\r\n UpdateFail,\r\n Unmapped,\r\n ExecSql,\r\n BadSqlCmd,\r\n BadIni,\r\n BaName,\r\n Damaged,\r\n Unlocked,\r\n BadOpen,\r\n BadClose,\r\n RsrcLocked,\r\n RecLockedNoBuf,\r\n NoDef,\r\n RecLockedNow,\r\n WrnRetry,\r\n RecLockedMagic,\r\n ReadOnly,\r\n WrnCreated,\r\n Capacity,\r\n TransCommit,\r\n TransOpen,\r\n TransAbort,\r\n BadDef,\r\n InvalidOwnr,\r\n ClrOwnrFail,\r\n AlterTbl,\r\n SortTbl,\r\n CanotRemove,\r\n CanotRename,\r\n WrnLogActive,\r\n TargetFileExist,\r\n FileIsView,\r\n CanotCopy,\r\n Stop,\r\n StrBadName,\r\n InsertIntoAll,\r\n BadQry,\r\n FilterAfterInsert,\r\n GetUserPwdDst,\r\n WrnCacheTooBig,\r\n LostRec,\r\n FileLocked,\r\n MaxConnEx,\r\n Deadlock,\r\n BadCreate,\r\n FilNotExist,\r\n Unused,\r\n IdxCreateFail,\r\n ConnectFail,\r\n Fatal,\r\n InsertFail,\r\n DeleteFail,\r\n InErrorZone,\r\n NoRec,\r\n NotExist,\r\n GetUserPwd,\r\n WrnCancel,\r\n NotSupportedFunc,\r\n ModifyWithinTrans,\r\n LoginPwd,\r\n None\r\n}\r\n\r\nexport enum ComponentItemType {\r\n Models,\r\n DataSources,\r\n Programs,\r\n Helps,\r\n Rights,\r\n Events,\r\n Functions\r\n}\r\n\r\nexport enum FieldComAlloc {\r\n Auto = 1,\r\n None\r\n}\r\n\r\nexport enum BlobContent {\r\n Unknown = '0',\r\n Ansi = '1',\r\n Unicode = '2',\r\n Binary = '3'\r\n}\r\n\r\nexport enum DBHRowIdentifier {\r\n RowId = 'R',\r\n Default = 'D',\r\n UniqueKey = 'U'\r\n}\r\n\r\nexport enum UseSQLCursor {\r\n Yes = 'Y',\r\n No = 'N',\r\n Default = 'D'\r\n}\r\n\r\nexport enum DBHCache {\r\n Pos = 'P',\r\n PosData = 'D',\r\n None = 'N',\r\n AsTable = 'T'\r\n}\r\n\r\nexport enum Resident {\r\n No = 'N',\r\n Immediate = 'I',\r\n OnDemand = 'D',\r\n ImmediateAndClient = 'C',\r\n ImmediateAndBrowser = 'B'\r\n}\r\n\r\nexport enum CheckExist {\r\n CheckYes = 'Y',\r\n CheckNo = 'N',\r\n CheckDB = 'D'\r\n}\r\n\r\nexport enum ValType {\r\n ZString = 1,\r\n MagicNum,\r\n Boolean,\r\n UString\r\n}\r\n\r\nexport enum FldStorage {\r\n AlphaString = 1,\r\n AlphaLString,\r\n AlphaZString,\r\n NumericSigned,\r\n NumericUnsigned,\r\n NumericFloat,\r\n NumericFloatMS,\r\n NumericFloatDec,\r\n NumericPackedDec,\r\n NumericNumeric,\r\n NumericCharDec,\r\n NumericString,\r\n NumericMagic,\r\n NumericCisam,\r\n NumericExtFloat = 30,\r\n BooleanInteger = 15,\r\n BooleanDBase,\r\n DateInteger,\r\n DateInteger1901,\r\n DateString,\r\n DateYYMD,\r\n DateMagic,\r\n DateMagic1901,\r\n TimeInteger,\r\n TimeString,\r\n TimeHMSH,\r\n TimeMagic,\r\n MemoString,\r\n MemoMagic,\r\n Blob,\r\n UnicodeString = 31,\r\n UnicodeZString,\r\n AnsiBlob,\r\n UnicodeBlob\r\n}\r\n\r\nexport enum DriverDB {\r\n Btrv,\r\n Prevesive2000,\r\n RMS,\r\n MySQL,\r\n DBase,\r\n Cache,\r\n DB2AS400,\r\n FoxBase,\r\n Clipper,\r\n SyBase,\r\n Cics = 12,\r\n Oracle,\r\n Informix,\r\n Ingres,\r\n AS400,\r\n DB2 = 18,\r\n Odbc,\r\n MS6,\r\n Memory,\r\n RMCOB\r\n}\r\n\r\nexport enum ExportType {\r\n EntireProject = 'A',\r\n Models = 'E',\r\n DataSources = 'F',\r\n Programs = 'P',\r\n Helps = 'H',\r\n Rights = 'R',\r\n Menus = 'M',\r\n CompositeResources = 'O',\r\n ApplicationProperties = 'C'\r\n}\r\n\r\nexport enum TriggerType {\r\n System = 'S',\r\n Timer = 'T',\r\n Expression = 'E',\r\n Internal = 'I',\r\n None = 'N',\r\n Component = 'C',\r\n User = 'U',\r\n Error = 'R',\r\n ComEvent = 'X',\r\n DotNetEvent = 'D',\r\n PublicUserEvent = 'P',\r\n UserFunc = 'F'\r\n}\r\n\r\nexport enum ItemMasks {\r\n Undefined = 0,\r\n ActiveInClient = 1,\r\n MagicSqlFunc = 4,\r\n CacheAlways = 8,\r\n CacheSometimes = 16,\r\n RtSearchExecAllowed = ' ',\r\n ArgAttrAsResult = '@',\r\n CalcResAttr = 128,\r\n PossibleReentrance = 256,\r\n ForceClientExecBrowserClient = 512,\r\n ForceServerExecBrowserClient = 1024,\r\n FuncNotSupportedBrowserClient = 2048,\r\n ForceClientExecRichClient = 4096,\r\n ForceServerExecRichClient = 8192,\r\n FuncNotSupportedRichClient = 16384,\r\n FuncNotSupportedOnlineBatch = 32768,\r\n ForceMixExecRichClient = 65536,\r\n ForceUnknownExecRichClient = 131072\r\n}\r\n\r\nexport enum UpdateMode {\r\n Incremental = 'I',\r\n Normal = 'N'\r\n}\r\n\r\nexport enum BlockTypes {\r\n If = 'I',\r\n Else = 'E',\r\n EndBlock = 'N',\r\n Loop = 'L'\r\n}\r\n\r\nexport enum FormOperationType {\r\n Input = 'I',\r\n Output = 'O'\r\n}\r\n\r\nexport enum FormPage {\r\n Skip = 'S',\r\n Auto = 'A',\r\n Top = 'T'\r\n}\r\n\r\nexport enum FormDelimiter {\r\n Column = 'C',\r\n Single = 'S',\r\n Double = 'D'\r\n}\r\n\r\nexport enum CallOperationMode {\r\n Program = 'P',\r\n SubTask = 'T',\r\n ByExp = 'E',\r\n ByName = 'B',\r\n Remote = 'R',\r\n Com = 'C',\r\n OsCommand = 'O',\r\n UDP = 'U',\r\n WebS = 'W',\r\n WebSLite = 'L',\r\n DotNet = 46\r\n}\r\n\r\nexport enum RowType {\r\n Header = 1,\r\n Operation\r\n}\r\n\r\nexport enum ForceExit {\r\n None = 'N',\r\n Control = 'C',\r\n PreRecordUpdate = 'R',\r\n PostRecordUpdate = 'P',\r\n Ignore = 'I',\r\n Editing = 'E'\r\n}\r\n\r\nexport enum MediaType {\r\n None = 'N',\r\n GraphicalPrinter = 'G',\r\n Printer = 'P',\r\n Console = 'C',\r\n File = 'F',\r\n Requester = 'R',\r\n XMLDirect = 'D',\r\n Variable = 'V'\r\n}\r\n\r\nexport enum OSType {\r\n Android = 'A',\r\n IOS = 'I'\r\n}\r\n\r\nexport enum APGMode {\r\n Execute = 'E',\r\n Generate = 'G'\r\n}\r\n\r\nexport enum APGOption {\r\n Browse = 'B',\r\n Export = 'E',\r\n Import = 'I',\r\n Print = 'P',\r\n Browser = 'R',\r\n RichClient = 'H'\r\n}\r\n\r\nexport enum APGDisplayMode {\r\n Line = 'L',\r\n Screen = 'S',\r\n None = 'N'\r\n}\r\n\r\nexport enum APGFormSize {\r\n AsModel = 'M',\r\n AsContent = 'C',\r\n AsContentWithinMDI = 'D'\r\n}\r\n\r\nexport enum APGType {\r\n Single = 'S',\r\n Multiple = 'M',\r\n Program = 'P'\r\n}\r\n\r\nexport enum APGInvokedFrom {\r\n TablesRepository = 1,\r\n ProgramsRepository\r\n}\r\n\r\nexport enum MgModelType {\r\n Model = 'M',\r\n Var = 'V'\r\n}\r\n\r\nexport enum CallbackType {\r\n ProgressBar,\r\n Import,\r\n FormEditor,\r\n CollectionChanges\r\n}\r\n\r\nexport enum Axis {\r\n X,\r\n Y\r\n}\r\n\r\nexport enum ModelAttrHelp {\r\n Internal = 'A',\r\n Windows = 'B'\r\n}\r\n\r\nexport enum ModelAttrField {\r\n Alpha = 'A',\r\n Numeric = 'C',\r\n Unicode = 'B',\r\n Logical = 'D',\r\n Date = 'E',\r\n Time = 'F',\r\n Blob = 'G',\r\n OLE = 'H',\r\n ActiveX = 'I',\r\n Vector = 'J',\r\n DotNet = 'K'\r\n}\r\n\r\nexport enum ModelAttrGui0 {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Button = 'D',\r\n Check = 'E',\r\n Radio = 'F',\r\n Tab = 'G',\r\n List = 'H',\r\n Combo = 'I',\r\n Line = 'J',\r\n Slider = 'K',\r\n Table = 'L',\r\n Column = 'M',\r\n Image = 'N',\r\n Ole = 'O',\r\n Redit = 'P',\r\n Activex = 'R',\r\n Subform = 'S',\r\n Browser = 'O'\r\n}\r\n\r\nexport enum ModelAttrGui1 {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Line = 'D',\r\n Table = 'E',\r\n Column = 'F',\r\n Image = 'G',\r\n Redit = 'H'\r\n}\r\n\r\nexport enum ModelAttrText {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Line = 'D'\r\n}\r\n\r\nexport enum ModelAttrRichClient {\r\n Form = 'A',\r\n Edit = 'B',\r\n Label = 'C',\r\n Button = 'D',\r\n Check = 'E',\r\n Radio = 'F',\r\n Tab = 'G',\r\n List = 'H',\r\n Combo = 'I',\r\n Group = 'J',\r\n Table = 'K',\r\n Column = 'L',\r\n Image = 'M',\r\n Subform = 'N',\r\n Browser = 'O',\r\n Line = 'Q'\r\n}\r\n\r\nexport enum ModelAttrFramesetForm {\r\n Form = 'A',\r\n Frame = 'B'\r\n}\r\n\r\nexport enum ModelAttRichClientFrameSet {\r\n Form = 'A',\r\n Frame = 'B'\r\n}\r\n\r\nexport enum ModelAttrBrowser {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Button = 'D',\r\n Check = 'E',\r\n Radio = 'F',\r\n List = 'G',\r\n Combo = 'H',\r\n Table = 'I',\r\n Image = 'J',\r\n Subform = 'K',\r\n Iframe = 'L',\r\n Opaque = 'M'\r\n}\r\n\r\nexport enum ModelAttGuiFrame {\r\n Form = 'A',\r\n Frame = 'B'\r\n}\r\n\r\nexport enum ModelAttMerge {\r\n Form = 'A'\r\n}\r\n\r\nexport enum DbhKeyMode {\r\n Unique = 'S',\r\n NonUnique = 'N'\r\n}\r\n\r\nexport enum DbhKeyDirection {\r\n OneWay = 'A',\r\n TwoWay = 'B'\r\n}\r\n\r\nexport enum DbhKeyRangeMode {\r\n Quick = 'Q',\r\n Full = 'F'\r\n}\r\n\r\nexport enum DbhKeyIndexType {\r\n Real = 'R',\r\n Virtual = 'V'\r\n}\r\n\r\nexport enum DbhSegmentDirection {\r\n Ascending = 'A',\r\n Descending = 'D'\r\n}\r\n\r\nexport enum ChoiceControlStyle {\r\n ListBox = 1,\r\n ComboBox,\r\n Tab,\r\n RadioButton\r\n}\r\n\r\nexport enum Recursion {\r\n None,\r\n First,\r\n Second,\r\n FirstOpen\r\n}\r\n\r\nexport enum ViewSelectType {\r\n IncludeInView,\r\n ExcludeFromView\r\n}\r\n\r\nexport enum RangeMode {\r\n From = 'F',\r\n To = 'T',\r\n Equal = 'E'\r\n}\r\n\r\nexport enum TableType {\r\n Table = 'T',\r\n View = 'V',\r\n Undefined = 'U'\r\n}\r\n\r\nexport enum DatabaseDataType {\r\n XmlDataSource = 'X',\r\n DatabaseDataSource = 'D'\r\n}\r\n\r\nexport enum LogicHeaderAction {\r\n None,\r\n CreateVariableChangeParameters,\r\n DeleteVariableChangeParameters,\r\n ReplaceVariableChangeParameters,\r\n CreateEventParameters\r\n}\r\n\r\nexport enum DatabaseFilters {\r\n EnvironmentDatabaseAll = 'A',\r\n EnvironmentDatabaseSql = 'S',\r\n EnvironmentDatabaseCanLoadDefinition = 'D',\r\n EnvironmentDatabaseIsam = 'I',\r\n EnvironmentDatabaseXmlOnly = 'X',\r\n EnvironmentDatabaseOnly = 'O',\r\n EnvironmentDatabaseCanLoadDefinitionAndXml = 'G'\r\n}\r\n\r\nexport enum FieldViewModelType {\r\n DataSource,\r\n DataView,\r\n Logic\r\n}\r\n\r\nexport enum SourceContextType {\r\n CurrentContext = 'C',\r\n MainContext = 'M'\r\n}\r\n\r\nexport enum ViewRefreshMode {\r\n None,\r\n CurrentLocation,\r\n UseTaskLocate,\r\n FirstRecord\r\n}\r\n\r\nexport enum LineManipulationType {\r\n None,\r\n RepeatEntries,\r\n MoveEntries,\r\n OverwriteCurrent\r\n}\r\n\r\nexport enum DataViewOutputType {\r\n Xml = 'X',\r\n ClientFile = 'C'\r\n}\r\n\r\nexport enum UndoRedoAction {\r\n Undo,\r\n Redo\r\n}\r\n\r\nexport enum OrientationLock {\r\n No = 1,\r\n Portrait,\r\n Landscape\r\n}\r\n\r\nexport enum EnterAnimation {\r\n Default = 1,\r\n Left,\r\n Right,\r\n Top,\r\n Bottom,\r\n Flip,\r\n Fade,\r\n None\r\n}\r\n\r\nexport enum ExitAnimation {\r\n Default = 1,\r\n Left,\r\n Right,\r\n Top,\r\n Bottom,\r\n Flip,\r\n Fade,\r\n None\r\n}\r\n\r\nexport enum KeyboardTypes {\r\n Default = 1,\r\n Numeric,\r\n URL,\r\n NumberPad,\r\n PhonePad,\r\n NamePhonePad,\r\n Email\r\n}\r\n\r\nexport enum KeyboardReturnKeys {\r\n Default = 1,\r\n Go,\r\n Next,\r\n Previous,\r\n Search,\r\n Done\r\n}\r\n\r\nexport enum OpenEditDialog {\r\n Default = 1,\r\n Yes,\r\n No\r\n}\r\n\r\nexport enum FrameLayoutTypes {\r\n TwoFramesHorizontal = 7901,\r\n TwoFramesVertical = 7902,\r\n ThreeFramesBottom = 7903,\r\n ThreeFramesRight = 7904,\r\n ThreeFramesTop = 7905,\r\n ThreeFramesLeft = 7906\r\n}\r\n\r\nexport enum LineDirection {\r\n Horizontal,\r\n Vertical,\r\n NESW,\r\n NWSE\r\n}\r\n\r\nexport enum ScrollBarThumbType {\r\n Incremental = 1,\r\n Absolute\r\n}\r\n\r\nexport enum StorageAttribute {\r\n NONE = ' ',\r\n ALPHA = 'A',\r\n NUMERIC = 'N',\r\n DATE = 'D',\r\n TIME = 'T',\r\n BOOLEAN = 'B',\r\n MEMO = 'M',\r\n BLOB = 'O',\r\n BLOB_VECTOR = 'V',\r\n UNICODE = 'U',\r\n SKIP = '0',\r\n DOTNET = 'E'\r\n}\r\n\r\nexport enum NotifyCollectionChangedAction {\r\n Add,\r\n Remove,\r\n Replace,\r\n Move,\r\n Reset\r\n}\r\n","/// <summary> this interface defines the internal events codes</summary>\r\nexport class InternalInterface {\r\n static readonly MG_ACT_NONE: number = 0;\r\n static readonly MG_ACT_CHAR: number = 1;\r\n static readonly MG_ACT_OLE2: number = 3;\r\n static readonly MG_ACT_EDT_MARKPRVCH: number = 4;\r\n static readonly MG_ACT_EDT_MARKNXTCH: number = 5;\r\n static readonly MG_ACT_EDT_MARKTOBEG: number = 6;\r\n static readonly MG_ACT_EDT_MARKTOEND: number = 7;\r\n static readonly MG_ACT_MENU_BAR: number = 8;\r\n static readonly MG_ACT_EDT_BEGFLD: number = 9;\r\n static readonly MG_ACT_EDT_ENDFLD: number = 10;\r\n static readonly MG_ACT_CUT: number = 11;\r\n static readonly MG_ACT_CLOSE: number = 13;\r\n static readonly MG_ACT_EXIT: number = 14;\r\n static readonly MG_ACT_DISPLAY_REFRESH: number = 15;\r\n static readonly MG_ACT_RESTORE_DEFAULTS: number = 16;\r\n static readonly MG_ACT_BUTTON: number = 18;\r\n static readonly MG_ACT_JUMP_TO_ROW: number = 19;\r\n static readonly MG_ACT_COMMUNICATIONS: number = 22;\r\n static readonly MG_ACT_OPEN_APPLICATION: number = 23;\r\n static readonly MG_ACT_ACT_CLOSE_APPL: number = 24;\r\n static readonly MG_ACT_TOOLKIT_RUNTIME: number = 25;\r\n static readonly MG_ACT_KEYBOARD_MAPPING: number = 26;\r\n static readonly MG_ACT_SHELL_TO_OS: number = 27;\r\n static readonly MG_ACT_EXIT_SYSTEM: number = 28;\r\n static readonly MG_ACT_RTO_MODIFY: number = 30;\r\n static readonly MG_ACT_RTO_CREATE: number = 31;\r\n static readonly MG_ACT_RTO_QUERY: number = 32;\r\n static readonly MG_ACT_CANCEL: number = 33;\r\n static readonly MG_ACT_ZOOM: number = 34;\r\n static readonly MG_ACT_DELLINE: number = 36;\r\n static readonly MG_ACT_CRELINE: number = 37;\r\n static readonly MG_ACT_REPEAT_ENTRY: number = 39;\r\n static readonly MG_ACT_MOVE_ENTRY: number = 40;\r\n static readonly MG_ACT_OVERWRITE_ENTRY: number = 41;\r\n static readonly MG_ACT_SELECT: number = 42;\r\n static readonly MG_ACT_EDT_PRVCHAR: number = 43;\r\n static readonly MG_ACT_EDT_NXTCHAR: number = 44;\r\n static readonly MG_ACT_EDT_PRVTAB: number = 45;\r\n static readonly MG_ACT_EDT_NXTTAB: number = 46;\r\n static readonly MG_ACT_EDT_PRVWORD: number = 47;\r\n static readonly MG_ACT_EDT_NXTWORD: number = 48;\r\n static readonly MG_ACT_EDT_PRVLINE: number = 49;\r\n static readonly MG_ACT_EDT_NXTLINE: number = 50;\r\n static readonly MG_ACT_EDT_PRVPAGE: number = 51;\r\n static readonly MG_ACT_EDT_NXTPAGE: number = 52;\r\n static readonly MG_ACT_EDT_BEGLINE: number = 53;\r\n static readonly MG_ACT_EDT_ENDLINE: number = 54;\r\n static readonly MG_ACT_EDT_BEGPAGE: number = 55;\r\n static readonly MG_ACT_EDT_ENDPAGE: number = 56;\r\n static readonly MG_ACT_EDT_BEGFORM: number = 57;\r\n static readonly MG_ACT_EDT_ENDFORM: number = 58;\r\n static readonly MG_ACT_EDT_DELCURCH: number = 59;\r\n static readonly MG_ACT_EDT_DELPRVCH: number = 60;\r\n static readonly MG_ACT_EDT_BEGNXTLINE: number = 61;\r\n static readonly MG_ACT_TBL_PRVFLD: number = 62;\r\n static readonly MG_ACT_TBL_NXTFLD: number = 63;\r\n static readonly MG_ACT_TBL_PRVLINE: number = 64;\r\n static readonly MG_ACT_TBL_NXTLINE: number = 65;\r\n static readonly MG_ACT_TBL_PRVPAGE: number = 66;\r\n static readonly MG_ACT_TBL_NXTPAGE: number = 67;\r\n static readonly MG_ACT_TBL_BEGLINE: number = 68;\r\n static readonly MG_ACT_TBL_ENDLINE: number = 69;\r\n static readonly MG_ACT_TBL_BEGPAGE: number = 70;\r\n static readonly MG_ACT_TBL_ENDPAGE: number = 71;\r\n static readonly MG_ACT_TBL_BEGTBL: number = 72;\r\n static readonly MG_ACT_TBL_ENDTBL: number = 73;\r\n static readonly MG_ACT_TAB_NEXT: number = 75;\r\n static readonly MG_ACT_RT_COPYFLD: number = 77;\r\n static readonly MG_ACT_ENVIRONMENT: number = 78;\r\n\r\n static readonly MG_ACT_SERVERS: number = 80;\r\n static readonly MG_ACT_DATABASES: number = 81;\r\n static readonly MG_ACT_LOGICALPNAMES: number = 82;\r\n static readonly MG_ACT_PRINTERS: number = 83;\r\n static readonly MG_ACT_TASK_EVENTS: number = 85;\r\n static readonly MG_ACT_MENUS: number = 86;\r\n static readonly MG_ACT_TYPES: number = 87;\r\n static readonly MG_ACT_TABLES: number = 88;\r\n static readonly MG_ACT_PROGRAMS: number = 89;\r\n static readonly MG_ACT_HELP_SCREENS: number = 90;\r\n static readonly MG_ACT_USER_IDS: number = 91;\r\n static readonly MG_ACT_EXPORT_IMPORT: number = 93;\r\n static readonly MG_ACT_MARK_SUBTREE: number = 95;\r\n static readonly MG_ACT_REPEAT_SUBTREE: number = 96;\r\n static readonly MG_ACT_MOVE_SUBTREE: number = 97;\r\n static readonly MG_ACT_OVERWRITE_SUBTREE: number = 98;\r\n static readonly MG_ACT_CREATE_PARENT: number = 99;\r\n static readonly MG_ACT_CREATE_SUBTASK: number = 100;\r\n static readonly MG_ACT_DELETE_SUBTREE: number = 101;\r\n static readonly MG_ACT_EXPAND_TREE: number = 103;\r\n static readonly MG_ACT_SHRINK_TREE: number = 104;\r\n static readonly MG_ACT_AUTHORIZE: number = 105;\r\n static readonly MG_ACT_PROPERTIES: number = 106;\r\n static readonly MG_ACT_VIRTUAL_VARIABLES: number = 107;\r\n static readonly MG_ACT_EXPRESSION_RULES: number = 108;\r\n static readonly MG_ACT_FORMS: number = 109;\r\n static readonly MG_ACT_DB_TABLES: number = 110;\r\n static readonly MG_ACT_I_O_FILES: number = 111;\r\n static readonly MG_ACT_SORT: number = 112;\r\n static readonly MG_ACT_EDT_MARKPRVLINE: number = 113;\r\n static readonly MG_ACT_TASK_CONTROL: number = 114;\r\n static readonly MG_ACT_CHECK_SYNTAX: number = 115;\r\n static readonly MG_ACT_EXECUTE_PROGRAM: number = 116;\r\n static readonly MG_ACT_CROSS_REFERENCE: number = 117;\r\n static readonly MG_ACT_GENERATE_PROGRAM: number = 118;\r\n static readonly MG_ACT_GENERATE_FORM: number = 119;\r\n static readonly MG_ACT_EDIT_MAIN_FORM: number = 120;\r\n static readonly MG_ACT_MARK_NEXT_LINE: number = 121;\r\n static readonly MG_ACT_RTO_LOCATE: number = 122;\r\n static readonly MG_ACT_RTO_RANGE: number = 123;\r\n static readonly MG_ACT_VIEW_BY_KEY: number = 124;\r\n static readonly MG_ACT_SORT_RECORDS: number = 125;\r\n static readonly MG_ACT_REDIRECT_FILES: number = 126;\r\n static readonly MG_ACT_REPORT_GENERATOR: number = 127;\r\n static readonly MG_ACT_CLEAR_TEMPLATE: number = 128;\r\n static readonly MG_ACT_CLEAR_VALUE: number = 129;\r\n static readonly MG_ACT_DEFINE_EXPRESSION: number = 130;\r\n static readonly MG_ACT_FROM_VALUE: number = 131;\r\n static readonly MG_ACT_TO_VALUE: number = 132;\r\n static readonly MG_ACT_REDRAW_LAYOUT: number = 134;\r\n static readonly MG_ACT_DEFAULT_LAYOUT: number = 135;\r\n static readonly MG_ACT_COPY_LAYOUT: number = 136;\r\n static readonly MG_ACT_SHOW_FULL_LAYOUT: number = 137;\r\n static readonly MG_ACT_LEFT: number = 138;\r\n static readonly MG_ACT_RIGHT: number = 139;\r\n static readonly MG_ACT_TOP: number = 140;\r\n static readonly MG_ACT_BOTTOM: number = 141;\r\n static readonly MG_ACT_H_CENTER_OF_FORM: number = 142;\r\n static readonly MG_ACT_V_CENTER_OF_FORM: number = 143;\r\n static readonly MG_ACT_HORIZ_CENTER: number = 144;\r\n static readonly MG_ACT_VERTICAL_CENTER: number = 145;\r\n static readonly MG_ACT_ATTACH_TO_TABLE: number = 146;\r\n static readonly MG_ACT_MAXIMUM_WIDTH: number = 147;\r\n static readonly MG_ACT_EXTERNAL_EDITOR: number = 148;\r\n static readonly MG_ACT_MAXIMUM_HEIGHT: number = 153;\r\n static readonly MG_ACT_MINIMUM_WIDTH: number = 154;\r\n static readonly MG_ACT_USING_HELP: number = 155;\r\n static readonly MG_ACT_HELP: number = 156;\r\n static readonly MG_ACT_ABOUT: number = 157;\r\n static readonly MG_ACT_PRINT_DATA: number = 160;\r\n static readonly MG_ACT_RIGHTS: number = 161;\r\n static readonly MG_ACT_PRINTER_SETUP: number = 162;\r\n static readonly MG_ACT_RTO_SEARCH: number = 165;\r\n static readonly MG_ACT_SHOW_EXPRESSION: number = 166;\r\n static readonly MG_ACT_ACTION_LIST: number = 167;\r\n static readonly MG_ACT_KEYBOARD_LIST: number = 168;\r\n static readonly MG_ACT_APPLICATIONS: number = 173;\r\n static readonly MG_ACT_APPL_PROPERTIES: number = 174;\r\n static readonly MG_ACT_MINIMUM_HEIGHT: number = 176;\r\n static readonly MG_ACT_EDT_UNDO: number = 180;\r\n static readonly MG_ACT_RETURN_TO_TREE: number = 181;\r\n static readonly MG_ACT_GO_TO_TOP: number = 182;\r\n static readonly MG_ACT_FUNCTION_LIST: number = 183;\r\n static readonly MG_ACT_LOGON: number = 185;\r\n static readonly MG_ACT_EXECUTE_REPORT: number = 188;\r\n static readonly MG_ACT_OK: number = 189;\r\n static readonly MG_ACT_APPLICATIONS_LIST: number = 191;\r\n static readonly MG_ACT_SECRET_NAMES: number = 192;\r\n static readonly MG_ACT_RIGHTS_LIST: number = 193;\r\n static readonly MG_ACT_CHECK_TO_END: number = 194;\r\n static readonly MG_ACT_SQL_COMMAND: number = 195;\r\n static readonly MG_ACT_USER_GROUPS: number = 196;\r\n static readonly MG_ACT_TABLE_LOCATE: number = 197;\r\n static readonly MG_ACT_TABLE_LOCATE_NEXT: number = 198;\r\n static readonly MG_ACT_DBMS: number = 199;\r\n static readonly MG_ACT_SQL_KEYWORDS: number = 201;\r\n static readonly MG_ACT_SQL_OPERATORS: number = 202;\r\n static readonly MG_ACT_SQL_TABLES: number = 203;\r\n static readonly MG_ACT_SQL_COLUMNS: number = 204;\r\n static readonly MG_ACT_SQL_FLIP_DESC: number = 205;\r\n static readonly MG_ACT_SQL_ASSIST: number = 206;\r\n static readonly MG_ACT_PPD: number = 207;\r\n static readonly MG_ACT_NULL_SETTINGS: number = 208;\r\n static readonly MG_ACT_RT_EDT_NULL: number = 209;\r\n static readonly MG_ACT_PRINT_ATTRIBUTES: number = 211;\r\n static readonly MG_ACT_NORMAL: number = 212;\r\n\r\n static readonly MG_ACT_INDENT: number = 215;\r\n static readonly MG_ACT_BULLET: number = 216;\r\n static readonly MG_ACT_USER_ACTION_1: number = 219;\r\n static readonly MG_ACT_USER_ACTION_2: number = 220;\r\n static readonly MG_ACT_USER_ACTION_3: number = 221;\r\n static readonly MG_ACT_USER_ACTION_4: number = 222;\r\n static readonly MG_ACT_USER_ACTION_5: number = 223;\r\n static readonly MG_ACT_USER_ACTION_6: number = 224;\r\n static readonly MG_ACT_USER_ACTION_7: number = 225;\r\n static readonly MG_ACT_USER_ACTION_8: number = 226;\r\n static readonly MG_ACT_USER_ACTION_9: number = 227;\r\n static readonly MG_ACT_USER_ACTION_10: number = 228;\r\n static readonly MG_ACT_USER_ACTION_11: number = 229;\r\n static readonly MG_ACT_USER_ACTION_12: number = 230;\r\n static readonly MG_ACT_USER_ACTION_13: number = 231;\r\n static readonly MG_ACT_USER_ACTION_14: number = 232;\r\n static readonly MG_ACT_USER_ACTION_15: number = 233;\r\n static readonly MG_ACT_USER_ACTION_16: number = 234;\r\n static readonly MG_ACT_USER_ACTION_17: number = 235;\r\n static readonly MG_ACT_USER_ACTION_18: number = 236;\r\n static readonly MG_ACT_USER_ACTION_19: number = 237;\r\n static readonly MG_ACT_USER_ACTION_20: number = 238;\r\n static readonly MG_ACT_CLIP_COPY: number = 239;\r\n static readonly MG_ACT_CLIP_PASTE: number = 240;\r\n\r\n static readonly MG_ACT_CTRL_HIT: number = 242;\r\n static readonly MG_ACT_PAGE_HEADER: number = 243;\r\n static readonly MG_ACT_PAGE_FOOTER: number = 244;\r\n static readonly MG_ACT_HIT: number = 245;\r\n static readonly MG_ACT_INSERT_OBJECT: number = 246;\r\n static readonly MG_ACT_PASTE_LINK: number = 247;\r\n static readonly MG_ACT_CONTROL_NAME_LIST: number = 248;\r\n static readonly MG_ACT_WINSIZE: number = 249;\r\n static readonly MG_ACT_WINMOVE: number = 250;\r\n static readonly MG_ACT_LANGUAGES: number = 251;\r\n static readonly MG_ACT_DDF_MAKE: number = 252;\r\n static readonly MG_ACT_UPDATE_LINK: number = 253;\r\n static readonly MG_ACT_HTML_STYLES: number = 254;\r\n static readonly MG_ACT_UNINDENT: number = 255;\r\n static readonly MG_ACT_ALIGN_LEFT: number = 256;\r\n static readonly MG_ACT_ALIGN_RIGHT: number = 257;\r\n static readonly MG_ACT_CENTER: number = 258;\r\n static readonly MG_ACT_ADD_HYPERLINK: number = 259;\r\n static readonly MG_ACT_DELETE_HYPERLINK: number = 260;\r\n static readonly MG_ACT_CHECK_OBJECT_LIST: number = 265;\r\n static readonly MG_ACT_TBL_PLACEMENT: number = 267;\r\n static readonly MG_ACT_COL_SORT: number = 268;\r\n static readonly MG_ACT_USERS_LIST: number = 269;\r\n static readonly MG_ACT_SERVICES: number = 270;\r\n static readonly MG_ACT_COPY_SUBTREE: number = 271;\r\n static readonly MG_ACT_PASTE_SUBTREE: number = 272;\r\n static readonly MG_ACT_VISUAL_CONNECTION: number = 273;\r\n static readonly MG_ACT_SQL_WHERE_CLAUSE: number = 274;\r\n static readonly MG_ACT_LOCKING_ABORT: number = 276;\r\n static readonly MG_ACT_TAB_PREV: number = 275;\r\n static readonly MG_ACT_LOCKING_RETRY: number = 277;\r\n static readonly MG_ACT_LOCKING_DETAILS: number = 278;\r\n static readonly MG_ACT_EDT_MARKALL: number = 286;\r\n static readonly MG_ACT_MONITOR_DEBUGGER: number = 287;\r\n static readonly MG_ACT_RT_REFRESH_RECORD: number = 293;\r\n static readonly MG_ACT_RT_REFRESH_SCREEN: number = 294;\r\n static readonly MG_ACT_RT_REFRESH_VIEW: number = 295;\r\n static readonly MG_ACT_COMPONENTS: number = 297;\r\n static readonly MG_ACT_MODELS: number = 299;\r\n static readonly MG_ACT_WEB_ON_DBLICK: number = 301;\r\n static readonly MG_ACT_WEB_CLICK: number = 302;\r\n static readonly MG_ACT_MM_CTRL_TBL_NXTLINE: number = 314;\r\n static readonly MG_ACT_MM_CTRL_TBL_PRVLINE: number = 315;\r\n static readonly MG_ACT_MM_CTRL_TBL_PRVPAGE: number = 316;\r\n static readonly MG_ACT_MM_CTRL_TBL_NXTPAGE: number = 317;\r\n static readonly MG_ACT_MM_SHIFT_TBL_NXTLINE: number = 318;\r\n static readonly MG_ACT_MM_SHIFT_TBL_PRVLINE: number = 319;\r\n static readonly MG_ACT_MM_SHIFT_TBL_PRVPAGE: number = 320;\r\n static readonly MG_ACT_MM_SHIFT_TBL_NXTPAGE: number = 321;\r\n static readonly MG_ACT_BROWSER_ESC: number = 340;\r\n static readonly MG_ACT_CLOSE_ALL_WIN: number = 370;\r\n static readonly MG_ACT_EXT_EVENT: number = 377;\r\n static readonly MG_ACT_TREE_EXPAND: number = 378;\r\n static readonly MG_ACT_TREE_COLLAPSE: number = 379;\r\n static readonly MG_ACT_TREE_CRE_SON: number = 380;\r\n static readonly MG_ACT_TREE_SELCHANGING: number = 381;\r\n static readonly MG_ACT_TREE_RENAME_RT: number = 382;\r\n static readonly MG_ACT_TREE_MOVETO_PARENT: number = 383;\r\n static readonly MG_ACT_TREE_MOVETO_FIRSTCHILD: number = 384;\r\n static readonly MG_ACT_TREE_MOVETO_PREVSIBLING: number = 385;\r\n static readonly MG_ACT_TREE_MOVETO_NEXTSIBLING: number = 386;\r\n static readonly MG_ACT_ROLLBACK: number = 387;\r\n static readonly MG_ACT_RT_QUIT: number = 393;\r\n\r\n static readonly MG_ACT_TREE_RENAME_RT_EXIT: number = 413;\r\n static readonly MG_ACT_SERVER_TERMINATION: number = 420;\r\n static readonly MG_ACT_SUBFORM_REFRESH: number = 432;\r\n static readonly MG_ACT_CONTEXT_MENU: number = 439;\r\n static readonly MG_ACT_NEXT_RT_WINDOW: number = 462;\r\n static readonly MG_ACT_PREV_RT_WINDOW: number = 463;\r\n static readonly MG_ACT_EMPTY_DATAVIEW: number = 521;\r\n static readonly MG_ACT_BROWSER_STS_TEXT_CHANGE: number = 529;\r\n static readonly MG_ACT_TBL_REORDER: number = 539;\r\n static readonly MG_ACT_CTRL_MODIFY: number = 544;\r\n static readonly MG_ACT_SUBFORM_OPEN: number = 545;\r\n static readonly MG_ACT_COL_CLICK: number = 555;\r\n static readonly MG_ACT_POST_REFRESH_BY_PARENT: number = 559;\r\n static readonly MG_ACT_COMBO_DROP_DOWN: number = 560;\r\n static readonly MG_ACT_RAISE_BUTTON_EVENT: number = 561;\r\n static readonly MG_ACT_UPDATE_DN_CONTROL_VALUE: number = 562;\r\n static readonly MG_ACT_GET_DATAVIEW_CONTENT: number = 563;\r\n static readonly MG_ACT_PRESS: number = 564;\r\n static readonly MG_ACT_MULTI_MARK_HIT: number = 565;\r\n static readonly MG_ACT_DVCONTROL_ROW_CHANGE: number = 566;\r\n static readonly MG_ACT_DVCONTROL_UPDATE_COLUMN_VALUE: number = 567;\r\n static readonly MG_ACT_SWITCH_TO_OFFLINE: number = 568;\r\n static readonly MG_ACT_UNAVAILABLE_SERVER: number = 569;\r\n static readonly MG_ACT_UPDATE_DATAVIEW_TO_DATASOURCE: number = 571;\r\n static readonly MG_ACT_ENABLE_EVENTS: number = 573;\r\n static readonly MG_ACT_WRITE_ERROR_TO_SERVER_LOG: number = 574;\r\n static readonly MG_ACT_OPEN_FORM_DESIGNER: number = 578;\r\n static readonly MG_ACT_FETCH_DATA_CONTROL_VALUES: number = 579;\r\n static readonly MG_ACT_COL_FILTER: number = 580;\r\n static readonly MG_ACT_INDEX_CHANGE: number = 585;\r\n static readonly MG_ACT_WEBCLIENT_ROUTE: number = 594;\r\n static readonly MG_ACT_ENTER_ROW_EDITING:number = 595;\r\n static readonly MG_ACT_SUBFORM_CLOSE: number = 597;\r\n static readonly MG_ACT_NO_PROG_EXE_RIGHTS: number = 619;\r\n\r\n static readonly MG_ACT_CRELINE_ABOVE: number = 634;\r\n static readonly MG_ACT_CONTEXT_TERMINATION: number = 635;\r\n static readonly MG_ACT_CONTEXT_TIMEOUT_RESET: number = 636;\r\n static readonly MG_ACT_CONTEXT_REMOVE: number = 647;\r\n\r\n static readonly MG_ACT_TOT_CNT:number = 648;\r\n\r\n // NEW INTERNAL EVENTS\r\n static readonly MG_ACT_TASK_PREFIX: number = 1001;\r\n static readonly MG_ACT_TASK_SUFFIX: number = 1002;\r\n static readonly MG_ACT_REC_PREFIX: number = 1003;\r\n static readonly MG_ACT_REC_SUFFIX: number = 1004;\r\n static readonly MG_ACT_CTRL_PREFIX: number = 1005;\r\n static readonly MG_ACT_CTRL_SUFFIX: number = 1006;\r\n static readonly MG_ACT_CTRL_VERIFICATION: number = 1007;\r\n static readonly MG_ACT_VARIABLE: number = 1008;\r\n static readonly MG_ACT_DATAVIEW_TOP: number = 1013;\r\n static readonly MG_ACT_DATAVIEW_BOTTOM: number = 1014;\r\n static readonly MG_ACT_CACHE_PREV: number = 1015;\r\n static readonly MG_ACT_CACHE_NEXT: number = 1016;\r\n static readonly MG_ACT_CYCLE_NEXT_REC: number = 1017;\r\n static readonly MG_ACT_CYCLE_NEXT_DELETE_REC: number = 1018;\r\n static readonly MG_ACT_COMPUTE: number = 1020;\r\n static readonly MG_ACT_DUMMY: number = 1111;\r\n\r\n // INTERNAL EVENTS for WebClient\r\n static readonly MG_ACT_CTRL_FOCUS: number = 2001;\r\n static readonly MG_ACT_CTRL_MOUSEUP: number = 2002;\r\n static readonly MG_ACT_CTRL_KEYDOWN: number = 2003;\r\n static readonly MG_ACT_TIMER: number = 2004;\r\n static readonly MG_ACT_SELECTION: number = 2005;\r\n static readonly MG_ACT_RESIZE: number = 2006;\r\n static readonly MG_ACT_ROW_DATA_CURR_PAGE: number = 2007;\r\n static readonly MG_ACT_DV_TO_GUI: number = 2008;\r\n static readonly MG_ACT_DISABLE_EVENTS: number = 2010;\r\n // toggle insert is temp 539 , it should match the code in online once it will be created.\r\n static readonly MG_ACT_TOGGLE_INSERT: number = 2011;\r\n\r\n static readonly MG_ACT_INCREMENTAL_LOCATE: number = 2017;\r\n static readonly MG_ACT_MOVE_TO_FIRST_CTRL: number = 2018;\r\n static readonly MG_ACT_SET_EXTERNAL_VALUE: number = 2019;\r\n static readonly MG_ACT_CTRL_FOCUS_ON_NON_MAGIC_CONTROL: number = 2020;\r\n static readonly MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER: number = 2021; // for paginated table, fetch records in background depending on PROP_TYPE_SERVER_READ_AHEAD\r\n\r\n\r\n\r\n static BuiltinEvent(eventCode: number): boolean {\r\n return eventCode >= 1000 || eventCode === InternalInterface.MG_ACT_POST_REFRESH_BY_PARENT;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { parseString } from 'xml2js';\r\n\r\nexport class JSON_Utils {\r\n static JSONFromXML (xml: string, onComplete) {\r\n parseString (xml, onComplete);\r\n }\r\n}\r\n","import {Exception} from \"@magic-xpa/mscorelib\";\r\n\r\nexport class OSEnvironment {\r\n static EolSeq: string = \"\\n\";\r\n static TabSeq: string = \"\\t\";\r\n\r\n static getStackTrace(): string {\r\n let ex: Exception = new Exception();\r\n ex.errorLevel++; // we need to remove the line which contains call to this method\r\n return ex.StackTrace;\r\n }\r\n}\r\n","import {List} from \"@magic-xpa/mscorelib\";\r\n\r\n/// <summary>\r\n/// The class is responsible to maintain the Request information while sending a request to server\r\n/// </summary>\r\nexport class RequestInfo {\r\n serverCallAt: string;\r\n runtimeTaskTree: List<string> = new List<string>();\r\n roundtripTime: number = null;\r\n extraInfo: {contentLength: number, contextID: string, sessionCounter: number, timeStamp: string} =\r\n {contentLength: 0, contextID: null, sessionCounter: 0, timeStamp: null};\r\n\r\n public static clone(requestInfo: RequestInfo): RequestInfo {\r\n let requestInfoClone: RequestInfo = new RequestInfo();\r\n if(requestInfo) {\r\n requestInfoClone.serverCallAt = requestInfo.serverCallAt;\r\n\r\n requestInfoClone.runtimeTaskTree = requestInfo.runtimeTaskTree;\r\n requestInfoClone.roundtripTime = requestInfo.roundtripTime;\r\n requestInfoClone.extraInfo = {contentLength: requestInfo.extraInfo.contentLength, contextID: requestInfo.extraInfo.contextID,\r\n sessionCounter: requestInfo.extraInfo.sessionCounter, timeStamp: requestInfo.extraInfo.timeStamp};\r\n }\r\n return requestInfoClone;\r\n }\r\n\r\n public clear(): void {\r\n this.roundtripTime = null;\r\n this.serverCallAt = null;\r\n this.extraInfo = {contentLength: 0, contextID: null, sessionCounter: 0, timeStamp: null};\r\n this.runtimeTaskTree = null;\r\n }\r\n}\r\n\r\n","import {Logger_LogLevels, Logger_MessageDirection} from \"./enums\";\r\nimport {DateTime, Debug, Exception, NString, StackTrace, StringBuilder, Thread, isNullOrUndefined} from \"@magic-xpa/mscorelib\";\r\nimport {OSEnvironment} from \"./PlatformUtils\";\r\nimport {DateTimeUtils} from \"./DateTimeUtils\";\r\nimport {XMLConstants} from \"./XMLConstants\";\r\nimport * as JSStackTrace from 'stacktrace-js';\r\nimport {RequestInfo} from \"./RequestInfo\";\r\nimport {StrUtil} from \"./StrUtil\";\r\nimport JSStackFrame = JSStackTrace.StackFrame;\r\n\r\nexport enum LogType {\r\n info = 1,\r\n warning,\r\n error\r\n}\r\n\r\n\r\n/// <summary>\r\n/// Logger class will take care of client side logging . It will check for various log levels and accordingly will write messages in log file.\r\n/// </summary>\r\n//@dynamic\r\nexport class Logger {\r\n static instance: Logger = null;\r\n LogLevel: Logger_LogLevels = 0; // InternalLogLevel\r\n\r\n /// <summary>\r\n /// While writing the error messages in the file play the beep.\r\n /// </summary>\r\n ShouldBeep: boolean = false;\r\n\r\n static set Instance(value: Logger) {\r\n Logger.instance = value;\r\n }\r\n\r\n static get Instance(): Logger {\r\n if (Logger.instance === null) {\r\n Logger.instance = new Logger();\r\n }\r\n return Logger.instance;\r\n }\r\n\r\n/// <summary>\r\n /// Initialize logger\r\n /// </summary>\r\n /// <param name=\"logLevel\"></param>\r\n /// <param name=\"internalLogSync\"></param>\r\n Initialize(logLevel: Logger_LogLevels, shouldBeep: boolean): void {\r\n try {\r\n // let logSync: LogSyncMode = LogSyncMode.Session;\r\n this.LogLevel = logLevel;\r\n this.ShouldBeep = shouldBeep;\r\n\r\n // TODO: implement\r\n// String strLogSync = internalLogSync;\r\n// if (!string.IsNullOrEmpty(strLogSync))\r\n// {\r\n// if (strLogSync.StartsWith(\"M\", StringComparison.CurrentCultureIgnoreCase))\r\n// logSync = LogSyncMode.Message;\r\n// else if (strLogSync.StartsWith(\"F\", StringComparison.CurrentCultureIgnoreCase))\r\n// logSync = LogSyncMode.Flush;\r\n// }\r\n//\r\n }\r\n catch (e) {\r\n this.WriteDevToLog(\"ClientManager.init(): \" + e.Message);\r\n }\r\n }\r\n\r\n /// <summary></summary>\r\n /// <param name=\"logLevel\"></param>\r\n /// <returns></returns>\r\n\r\n ShouldLog(logLevel: Logger_LogLevels): boolean;\r\n ShouldLog(): boolean;\r\n ShouldLog(logLevel?: Logger_LogLevels): boolean {\r\n if (arguments.length === 1)\r\n return this.ShouldLog_0(logLevel);\r\n else\r\n return this.ShouldLog_1();\r\n }\r\n\r\n private ShouldLog_0(logLevel: Logger_LogLevels): boolean {\r\n return this.LogLevel === logLevel;\r\n }\r\n\r\n private ShouldLog_1(): boolean {\r\n return this.LogLevel > Logger_LogLevels.None;\r\n }\r\n\r\n ShouldLogServerRelatedMessages(): boolean {\r\n return (this.ShouldLogExtendedServerRelatedMessages() || Logger.Instance.ShouldLog(Logger_LogLevels.Server)) && this.LogLevel !== Logger_LogLevels.Basic;\r\n }\r\n\r\n ShouldLogExtendedServerRelatedMessages(): boolean {\r\n return (Logger.Instance.ShouldLog(Logger_LogLevels.ServerMessages) || Logger.Instance.ShouldLog(Logger_LogLevels.Support) || Logger.Instance.ShouldLog(Logger_LogLevels.Development)) && this.LogLevel !== Logger_LogLevels.Basic;\r\n }\r\n\r\n /// <summary></summary>\r\n /// <param name=\"msg\"></param>\r\n /// <param name=\"openIfNecessary\">open the log file if not opened yet</param>\r\n\r\n WriteToLog(msg: string, openIfNecessary: boolean, logType: LogType = LogType.info): void {\r\n\r\n if (this.LogLevel > Logger_LogLevels.None || openIfNecessary) {\r\n msg = NString.Format(\"{0} {1}\", (this.LogLevel === Logger_LogLevels.Basic) ? new Date().toISOString() : DateTimeUtils.ToString(DateTime.Now, XMLConstants.ERROR_LOG_TIME_FORMAT, this),\r\n msg);\r\n\r\n switch (logType) {\r\n case LogType.error:\r\n console.error(msg);\r\n break;\r\n case LogType.warning:\r\n console.warn(msg);\r\n break;\r\n default:\r\n console.log(msg);\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a server access to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteServerToLog(msg: string): void {\r\n if (this.ShouldLogServerRelatedMessages()) {\r\n this.WriteToLog(NString.Format(\"Server, Thread={0}: \", Thread.CurrentThread.ManagedThreadId) + msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a server access to the log, including the content\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteServerMessagesToLog(msg: string): void {\r\n if (this.ShouldLogExtendedServerRelatedMessages()) {\r\n this.WriteToLog(\"Server#: \" + msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>Write a QC message to the log</summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteSupportToLog(msg: string, skipLine: boolean): void {\r\n\r\n if (this.LogLevel >= Logger_LogLevels.Support && this.LogLevel !== Logger_LogLevels.Basic) {\r\n if (skipLine) {\r\n this.WriteToLog(\"SUPPORT: \" + msg, false, LogType.info);\r\n }\r\n else {\r\n this.WriteToLog(\"SUPPORT: \" + msg + OSEnvironment.EolSeq + \"-----------------------------------------------------------------------------------------------------------\", false, LogType.info);\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a performance message to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteGuiToLog(msg: string): void {\r\n\r\n if (this.LogLevel >= Logger_LogLevels.Gui && this.LogLevel !== Logger_LogLevels.Basic) {\r\n this.WriteToLog(msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a developer message to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteDevToLog(msg: string): void {\r\n if (this.LogLevel >= Logger_LogLevels.Development && this.LogLevel !== Logger_LogLevels.Basic) {\r\n this.WriteToLog(\"DEV: \" + msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Writes a basic level entry to log\r\n /// </summary>\r\n /// <param name=\"messageDirection\">message direction relative to the current module (RIA client). Can be either MessageEntering or MessageLeaving</param>\r\n /// <param name=\"statusCode\">HTTP status code</param>\r\n /// <param name=\"contentLength\">length of the http message</param>\r\n /// <param name=\"httpHeaders\">HTTP headers</param>\r\n WriteBasicToLog(messageDirection: Logger_MessageDirection, contextID: string, sessionCounter: number, clientID: string, serverID: string, responseTime: number, statusCode: string, httpHeaders: string, contentLength: number): void {\r\n if (this.LogLevel === Logger_LogLevels.Basic) {\r\n let text: string = httpHeaders;\r\n text = text.trim();\r\n text = NString.Replace(text, \"\\r\\n\", \"|\");\r\n let arg_E4_0: string = \"RIA,{0}_{1},{2},{3},{4},{5},-,{6},{7},{8},{9},{10},{11}\";\r\n let expr_3E: any[] = new Array<any>(12);\r\n\r\n // TODO : need to check How to handle Process class.\r\n // expr_3E[0] = Process.GetCurrentProcess().Id;\r\n expr_3E[1] = Thread.CurrentThread.ManagedThreadId;\r\n expr_3E[2] = new Date().toISOString();\r\n expr_3E[3] = ((messageDirection === Logger_MessageDirection.MessageLeaving) ? \"MSGL\" : \"MSGE\");\r\n expr_3E[4] = contextID;\r\n expr_3E[5] = sessionCounter;\r\n expr_3E[6] = clientID;\r\n expr_3E[7] = serverID;\r\n expr_3E[8] = ((responseTime !== 0) ? responseTime.toString() : \"-\");\r\n let arg_D3_1: number = 9;\r\n let arg_D3_2: any;\r\n arg_D3_2 = statusCode;\r\n expr_3E[arg_D3_1] = arg_D3_2;\r\n expr_3E[10] = text;\r\n expr_3E[11] = contentLength;\r\n let value: string = NString.Format(arg_E4_0, expr_3E);\r\n console.log(value);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Writes request information to log\r\n /// </summary>\r\n /// <param name=\"clientSession\">The clientSession object to be logged</param>\r\n WriteRequestInfoToLog(requestInfo: RequestInfo, extraMessageStr: string): void {\r\n if (this.LogLevel === Logger_LogLevels.RequestInfo) {\r\n\r\n // Chrome debugger automatically recomputes logged objects.\r\n // Hence, clone the requestInfo object to print the details at the time of logging\r\n console.log(extraMessageStr, RequestInfo.clone(requestInfo));\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Writes a request exception basic level entry to log\r\n /// </summary>\r\n /// <param name=\"contextID\"></param>\r\n /// <param name=\"sessionCounter\"></param>\r\n /// <param name=\"clientID\"></param>\r\n /// <param name=\"serverID\"></param>\r\n /// <param name=\"ex\">the logged exception</param>\r\n WriteBasicErrorToLog(): void {\r\n Debug.Assert(this.LogLevel === Logger_LogLevels.Basic);\r\n\r\n // TODO : Need to check how to handle Process\r\n // let value: string = NString.Format(\"RIA,{0}_{1},{2},{3},{4},{5},-,{6},{7},-,-,-,{8} {9}\", [\r\n // Process.GetCurrentProcess().Id, Thread.CurrentThread.ManagedThreadId, DateTime.UtcNow.ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\"), \"RES\", contextID, sessionCounter, clientID, serverID, ex.GetType(), ex.Message\r\n // ]);\r\n // NConsole.WriteLine(value);\r\n }\r\n\r\n /// <summary>\r\n /// Write an error to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteErrorToLog(msg: string): void {\r\n this.WriteToLog(\"MagicWeb [ERROR]: \" + StrUtil.getConsoleErorString(msg), true, LogType.error);\r\n }\r\n\r\n /// <summary>\r\n /// Write an internal error to the log. Also prints stack trace along with the message\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteExceptionToLog(ex: Exception): void;\r\n WriteExceptionToLog(ex: Error): void;\r\n WriteExceptionToLog(ex: Exception, msg: string): void;\r\n WriteExceptionToLog(msgOrEx: any, msg?: string): void {\r\n if (msgOrEx instanceof Error) {\r\n this.WriteExceptionToLog_2(msgOrEx, msg);\r\n return;\r\n }\r\n if (arguments.length === 1 && (msgOrEx !== null || msgOrEx instanceof Exception)) {\r\n this.WriteExceptionToLog_1(msgOrEx);\r\n return;\r\n }\r\n\r\n this.WriteExceptionToLog_3(msgOrEx, msg);\r\n }\r\n\r\n WriteExceptionToLogWithMsg(msg: string): void {\r\n this.WriteToLog(\"MagicWeb [ERROR]: \" + StrUtil.getConsoleErorString(msg), true, LogType.error);\r\n }\r\n\r\n private WriteExceptionToLog_1(ex: Exception): void {\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0} : {1}{2}{3}{4}\", [\r\n ex.GetType(), OSEnvironment.EolSeq, ex.StackTrace, OSEnvironment.EolSeq, ex.Message\r\n ]));\r\n }\r\n\r\n private WriteExceptionToLog_2(ex: Error, message: string): void {\r\n if (isNullOrUndefined(message))\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0}{1}{2}\", [ex.stack, OSEnvironment.EolSeq, ex.message]));\r\n else\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0}{1}{2}{4}{5}\", [message, OSEnvironment.EolSeq, ex.stack, OSEnvironment.EolSeq, ex.message]));\r\n }\r\n\r\n private WriteExceptionToLog_3(ex: Exception, msg: string): void {\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0}, {1} : {2}{3}{4}{5}\", [\r\n ex.GetType(), msg, OSEnvironment.EolSeq, ex.StackTrace, OSEnvironment.EolSeq, ex.Message\r\n ]));\r\n }\r\n\r\n /// <summary> write a warning to the log</summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteWarningToLog(ex: Exception): void;\r\n WriteWarningToLog(ex: Exception, msg: string): void;\r\n WriteWarningToLog(ex: Error): void;\r\n WriteWarningToLog(msgOrEx: any, msg?: string): void {\r\n if (arguments.length === 1 && msgOrEx !== null) {\r\n if (msgOrEx instanceof Exception)\r\n this.WriteWarningToLog_1(msgOrEx);\r\n else if (msgOrEx instanceof Error)\r\n this.WriteWarningToLog_2(msgOrEx);\r\n }\r\n else\r\n this.WriteWarningToLog_3(msgOrEx, msg);\r\n }\r\n\r\n WriteWarningToLogWithMsg(msg: string): void {\r\n\r\n if (this.LogLevel !== Logger_LogLevels.Basic) {\r\n this.WriteToLog(\"MagicWeb [WARNING]: \" + msg, true, LogType.warning);\r\n }\r\n }\r\n\r\n private WriteWarningToLog_1(ex: Exception): void {\r\n this.WriteWarningToLogWithMsg(ex.GetType() + \" : \" + OSEnvironment.EolSeq + ex.StackTrace + OSEnvironment.EolSeq + ex.Message);\r\n }\r\n\r\n private WriteWarningToLog_2(ex: Error): void {\r\n this.WriteWarningToLogWithMsg(NString.Format(\"{0}{1}{2}\", [\r\n ex.stack, OSEnvironment.EolSeq, ex.message\r\n ]));\r\n }\r\n\r\n private WriteWarningToLog_3(ex: Exception, msg: string): void {\r\n this.WriteWarningToLogWithMsg(NString.Format(\"{0}, {1} : {2}{3}{4}{5}\", [\r\n ex.GetType(), msg, OSEnvironment.EolSeq, ex.StackTrace, OSEnvironment.EolSeq, ex.Message\r\n ]));\r\n }\r\n\r\n WriteStackTrace(stackTrace: StackTrace, framesToPrint: number, traceTitle: string): void {\r\n\r\n if (traceTitle === null) {\r\n traceTitle = \"Stack trace:\";\r\n }\r\n let stringBuilder: StringBuilder = new StringBuilder(traceTitle + OSEnvironment.EolSeq);\r\n let frames: JSStackFrame[] = stackTrace.GetFrames();\r\n let array: JSStackFrame[] = frames;\r\n for (let i: number = 0; i < array.length; i = i + 1) {\r\n let stackFrame: JSStackFrame = array[i];\r\n framesToPrint = framesToPrint - 1;\r\n\r\n stringBuilder.Append(stackFrame.toString());\r\n\r\n if (framesToPrint === 0) {\r\n stringBuilder.Append(\"\\t... more stack frames ...\\n\");\r\n break;\r\n }\r\n }\r\n this.WriteToLog(stringBuilder.ToString(), true);\r\n }\r\n\r\n /// <summary>\r\n /// Flush the log writer.\r\n /// </summary>\r\n Flush(): void {\r\n\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n","export enum MagicProperties {\r\n LineDivider = \"line_divider\",\r\n ImageFile = \"image_file\",\r\n Wallpaper = \"wallpaper\",\r\n}\r\n\r\nexport enum BindingLevel\r\n{\r\n Control = 1,\r\n Character\r\n}\r\n","export class DefaultMsgDetails {\r\n MsgID: string = null;\r\n MsgString: string = null;\r\n\r\n constructor(ID: string, MsgStr: string) {\r\n this.MsgID = ID;\r\n this.MsgString = MsgStr;\r\n }\r\n}\r\n\r\nexport class MsgInterface {\r\n static readonly STR_ERR_NUM: string = \"STR_ERR_NUM\";\r\n static readonly STR_ERR_DATE: string = \"STR_ERR_DATE\";\r\n static readonly STR_ERR_TIME: string = \"STR_ERR_TIME\";\r\n static readonly MONTHS_PTR: string = \"MONTHS_PTR\";\r\n static readonly DAYS_PTR: string = \"DAYS_PTR\";\r\n static readonly STR_ERR_NEGETIVE: string = \"STR_ERR_NEGETIVE\";\r\n static readonly STR_RNG_TXT: string = \"STR_RNG_TXT\";\r\n static readonly EDT_ERR_STR_1: string = \"EDT_ERR_STR_1\";\r\n static readonly STR_ERR_PIPE_CONNECTION: string = \"STR_ERR_PIPE_CONNECTION\";\r\n static readonly FMERROR_STR_BAD_NAME: string = \"FMERROR_STR_BAD_NAME\";\r\n static readonly FMERROR_STR_BAD_DAMAGED: string = \"FMERROR_STR_BAD_DAMAGED\";\r\n static readonly FMERROR_STR_BAD_BADCREATE: string = \"FMERROR_STR_BAD_BADCREATE\";\r\n static readonly FMERROR_STR_FILE_LOCKED: string = \"FMERROR_STR_FILE_LOCKED\";\r\n static readonly FMERROR_STR_BAD_UNEXPECTED: string = \"FMERROR_STR_BAD_UNEXPECTED\";\r\n static readonly FMERROR_STR_BAD_SERVER_NOTFOUND: string = \"FMERROR_STR_BAD_SERVER_NOTFOUND\";\r\n static readonly FMERROR_STR_BAD_SERVER_INIT_FAILED: string = \"FMERROR_STR_BAD_SERVER_INIT_FAILED\";\r\n static readonly FMERROR_STR_UNLOCKED: string = \"FMERROR_STR_UNLOCKED\";\r\n static readonly FMERROR_STR_BAD_DB_INIT_FAILED: string = \"FMERROR_STR_BAD_DB_INIT_FAILED\";\r\n static readonly FMERROR_STR_BAD_LOCK_OPEN: string = \"FMERROR_STR_BAD_LOCK_OPEN\";\r\n static readonly FMERROR_STR_BAD_BADOPEN: string = \"FMERROR_STR_BAD_BADOPEN\";\r\n static readonly FMERROR_STR_BAD_BADDEF: string = \"FMERROR_STR_BAD_BADDEF\";\r\n static readonly FMERROR_STR_DUP_KEY: string = \"FMERROR_STR_DUP_KEY\";\r\n static readonly FMERROR_STR_COMM_LOADED: string = \"FMERROR_STR_COMM_LOADED\";\r\n static readonly FMERROR_STR_COMM_CONNECT: string = \"FMERROR_STR_COMM_CONNECT\";\r\n static readonly FMERROR_STR_READONLY: string = \"FMERROR_STR_READONLY\";\r\n static readonly FMERROR_STR_BAD_BADCLOSE: string = \"FMERROR_STR_BAD_BADCLOSE\";\r\n static readonly FMERROR_STR_REC_LOCKED: string = \"FMERROR_STR_REC_LOCKED\";\r\n static readonly FMERROR_STR_TRANS_OPEN: string = \"FMERROR_STR_TRANS_OPEN\";\r\n static readonly FMERROR_STR_COMMIT: string = \"FMERROR_STR_COMMIT\";\r\n static readonly FMERROR_STR_ABORT: string = \"FMERROR_STR_ABORT\";\r\n static readonly FMERROR_STR_RSRC_LOCKED: string = \"FMERROR_STR_RSRC_LOCKED\";\r\n static readonly FMERROR_STR_NODEF: string = \"FMERROR_STR_NODEF\";\r\n static readonly FMERROR_STR_DEADLOCK: string = \"FMERROR_STR_DEADLOCK\";\r\n static readonly FMERROR_STR_DB_PROT: string = \"FMERROR_STR_DB_PROT\";\r\n static readonly FMERROR_STR_OWNR_ALRDY_SET: string = \"FMERROR_STR_OWNR_ALRDY_SET\";\r\n static readonly FMERROR_STR_INVALID_OWNR: string = \"FMERROR_STR_INVALID_OWNR\";\r\n static readonly FMERROR_STR_CLR_OWNR_FAIL: string = \"FMERROR_STR_CLR_OWNR_FAIL\";\r\n static readonly FMERROR_STR_NO_DATABASE: string = \"FMERROR_STR_NO_DATABASE\";\r\n static readonly FMERROR_STR_DBMS_ALTER_FAIL: string = \"FMERROR_STR_DBMS_ALTER_FAIL\";\r\n static readonly FMERROR_STR_TRANS_LOCK: string = \"FMERROR_STR_TRANS_LOCK\";\r\n static readonly FMERROR_STR_EXTUSE_MULU_CNFLCT: string = \"FMERROR_STR_EXTUSE_MULU_CNFLCT\";\r\n static readonly FMERROR_STR_DB_GW_VERSION_CNFLCT: string = \"FMERROR_STR_DB_GW_VERSION_CNFLCT\";\r\n static readonly FMERROR_STR_DB_CANOT_REMOVE: string = \"FMERROR_STR_DB_CANOT_REMOVE\";\r\n static readonly FMERROR_STR_DB_CANOT_RENAME: string = \"FMERROR_STR_DB_CANOT_RENAME\";\r\n static readonly FMERROR_STR_DB_BAD_SQL_CMD: string = \"FMERROR_STR_DB_BAD_SQL_CMD\";\r\n static readonly FMERROR_STR_REC_LOCKED_NOBUF: string = \"FMERROR_STR_REC_LOCKED_NOBUF\";\r\n static readonly FMERROR_STR_REOPEN: string = \"FMERROR_STR_REOPEN\";\r\n static readonly FMERROR_STR_REC_LOCKED_NOW: string = \"FMERROR_STR_REC_LOCKED_NOW\";\r\n static readonly FMERROR_STR_DBMS_SORT_FAIL: string = \"FMERROR_STR_DBMS_SORT_FAIL\";\r\n static readonly FMERROR_STR_NO_OLD_DATABASE_DBMS: string = \"FMERROR_STR_NO_OLD_DATABASE_DBMS\";\r\n static readonly FMERROR_STR_BAD_LOGIN: string = \"FMERROR_STR_BAD_LOGIN\";\r\n static readonly FMERROR_STR_ERR_EXEC_SQL: string = \"FMERROR_STR_ERR_EXEC_SQL\";\r\n static readonly FMERROR_STR_ERR_UPDATE_FAIL: string = \"FMERROR_STR_ERR_UPDATE_FAIL\";\r\n static readonly FMERROR_STR_ERR_INSERT_FAIL: string = \"FMERROR_STR_ERR_INSERT_FAIL\";\r\n static readonly FMERROR_STR_ERR_DELETE_FAIL: string = \"FMERROR_STR_ERR_DELETE_FAIL\";\r\n static readonly FMERROR_STR_PRINTER: string = \"FMERROR_STR_PRINTER\";\r\n static readonly FMERROR_STR_FIL_NOT_EXIST: string = \"FMERROR_STR_FIL_NOT_EXIST\";\r\n static readonly FMERROR_STR_COMM_GWY_COMPTABILITY: string = \"FMERROR_STR_COMM_GWY_COMPTABILITY\";\r\n static readonly FMERROR_STR_CACHE_TOO_BIG: string = \"FMERROR_STR_CACHE_TOO_BIG\";\r\n static readonly FMERROR_STR_NO_ROWS_AFFECTED: string = \"FMERROR_STR_NO_ROWS_AFFECTED\";\r\n static readonly FMERROR_STR_TARGET_FILE_EXIST: string = \"FMERROR_STR_TARGET_FILE_EXIST\";\r\n static readonly FMERROR_STR_FILE_IS_VIEW: string = \"FMERROR_STR_FILE_IS_VIEW\";\r\n static readonly FMERROR_STR_DB_CANOT_COPY: string = \"FMERROR_STR_DB_CANOT_COPY\";\r\n static readonly FMERROR_STR_HLP_NOT_EXIST: string = \"FMERROR_STR_HLP_NOT_EXIST\";\r\n static readonly FMERROR_STR_UNUSABLE_FILE: string = \"FMERROR_STR_UNUSABLE_FILE\";\r\n static readonly FMERROR_STR_DB_BAD_QUERY: string = \"FMERROR_STR_DB_BAD_QUERY\";\r\n static readonly FMERROR_STR_NO_HDLS: string = \"FMERROR_STR_NO_HDLS\";\r\n static readonly FMERROR_STR_MAX_CONNS_REACHED: string = \"FMERROR_STR_MAX_CONNS_REACHED\";\r\n static readonly FMERROR_STR_CONSTRAINT_FAIL: string = \"FMERROR_STR_CONSTRAINT_FAIL\";\r\n static readonly FMERROR_STR_TRIGGER_FAIL: string = \"FMERROR_STR_TRIGGER_FAIL\";\r\n static readonly FMERROR_STR_MODIFY_WITHIN_TRANS: string = \"FMERROR_STR_MODIFY_WITHIN_TRANS\";\r\n static readonly EXPTAB_TSK_MODE_RT: string = \"EXPTAB_TSK_MODE_RT\";\r\n static readonly EXPTAB_ERR_CALL_MAIN_PRG_1: string = \"EXPTAB_ERR_CALL_MAIN_PRG_1\";\r\n static readonly LOCATE_STR_ERR_EOF: string = \"LOCATE_STR_ERR_EOF\";\r\n static readonly RT_STR_REC_NOTFOUND: string = \"RT_STR_REC_NOTFOUND\";\r\n static readonly RT_STR_PRG_NOTFOUND: string = \"RT_STR_PRG_NOTFOUND\";\r\n static readonly RT_STR_NO_RECS_IN_RNG: string = \"RT_STR_NO_RECS_IN_RNG\";\r\n static readonly RT_STR_FLD_MUST_UPDATED: string = \"RT_STR_FLD_MUST_UPDATED\";\r\n static readonly RT_STR_TSK_NO_SCREEN: string = \"RT_STR_TSK_NO_SCREEN\";\r\n static readonly RT_STR_CRSR_CANT_PARK: string = \"RT_STR_CRSR_CANT_PARK\";\r\n static readonly RT_STR_MODE_NOTALLOWED: string = \"RT_STR_MODE_NOTALLOWED\";\r\n static readonly RT_STR_NON_MODIFIABLE: string = \"RT_STR_NON_MODIFIABLE\";\r\n static readonly RT_STR_UPDATE_IN_QUERY: string = \"RT_STR_UPDATE_IN_QUERY\";\r\n static readonly RT_STR_LOAD_RES_FAIL: string = \"RT_STR_LOAD_RES_FAIL\";\r\n static readonly RT_STR_NO_CREATE_ON_TREE: string = \"RT_STR_NO_CREATE_ON_TREE\";\r\n static readonly TSKR_ERR_NOTEXIST_COMP: string = \"TSKR_ERR_NOTEXIST_COMP\";\r\n static readonly TSK_ERR_BCSUBFORM_WRONG_EXP: string = \"TSK_ERR_BCSUBFORM_WRONG_EXP\";\r\n static readonly TSK_ERR_NESTED_BCSUBFORM: string = \"TSK_ERR_NESTED_BCSUBFORM\";\r\n static readonly TSK_ERR_CHANGE_CACHED_NESTED_BCSUBFORM: string = \"TSK_ERR_CHANGE_CACHED_NESTED_BCSUBFORM\";\r\n static readonly TSK_ERR_SUBFORM_DSQL: string = \"TSK_ERR_SUBFORM_DSQL\";\r\n static readonly TSK_ERR_DSQL_SELECT_ONLY: string = \"TSK_ERR_DSQL_SELECT_ONLY\";\r\n static readonly CSTIO_STR_ERR2: string = \"CSTIO_STR_ERR2\";\r\n static readonly CONFIRM_STR_DELETE: string = \"CONFIRM_STR_DELETE\";\r\n static readonly CONFIRM_STR_CANCEL: string = \"CONFIRM_STR_CANCEL\";\r\n static readonly CONFIRM_STR_WINDOW_TITLE: string = \"CONFIRM_STR_WINDOW_TITLE\";\r\n static readonly WARNING_STR_WINDOW_TITLE: string = \"WARNING_STR_WINDOW_TITLE\";\r\n static readonly BRKTAB_STR_ERROR: string = \"BRKTAB_STR_ERROR\";\r\n static readonly USRINP_STR_BADPASSW: string = \"USRINP_STR_BADPASSW\";\r\n static readonly USRINP_STR_BADPASSW_WEBSERVER: string = \"USRINP_STR_BADPASSW_WEBSERVER\";\r\n static readonly USRINP_STR_BADPASSW_PROXYSERVER: string = \"USRINP_STR_BADPASSW_PROXYSERVER\";\r\n static readonly CRF_STR_CONF_UPD: string = \"CRF_STR_CONF_UPD\";\r\n static readonly MENU_STR_ERROR_ENABLE: string = \"MENU_STR_ERROR_ENABLE\";\r\n static readonly GUI_OK_BUTTON: string = \"GUI_OK_BUTTON\";\r\n static readonly GUI_CANCEL_BUTTON: string = \"GUI_CANCEL_BUTTON\";\r\n static readonly BRKTAB_STOP_MODE_TITLE: string = \"BRKTAB_STOP_MODE_TITLE\";\r\n static readonly BRKTAB_STR_ERR_FORM: string = \"BRKTAB_STR_ERR_FORM\";\r\n static readonly BROWSER_OPT_INFO_SERVER_STR: string = \"BROWSER_OPT_INFO_SERVER_STR\";\r\n static readonly STR_ERR_PIC_J: string = \"STR_ERR_PIC_J\";\r\n static readonly STR_ERR_PIC_S: string = \"STR_ERR_PIC_S\";\r\n static readonly STR_ERR_PIC_T: string = \"STR_ERR_PIC_T\";\r\n static readonly TASKRULE_STR_APPLICATION: string = \"TASKRULE_STR_APPLICATION\";\r\n static readonly DITDEF_STR_ERR_WINDOW_TYPE: string = \"DITDEF_STR_ERR_WINDOW_TYPE\";\r\n static readonly DITDEF_STR_ERR_SUBFORM_PROG_PARALLEL: string = \"DITDEF_STR_ERR_SUBFORM_PROG_PARALLEL\";\r\n static readonly DATEHEB_MONTH_STR: string = \"DATEHEB_MONTH_STR\";\r\n static readonly DATEHEB_DOW_STR: string = \"DATEHEB_DOW_STR\";\r\n static readonly CHK_ERR_CALL_FROM_RICH_CLIENT: string = \"CHK_ERR_CALL_FROM_RICH_CLIENT\";\r\n static readonly RC_STR_F7_UNEXPECTED_ERR: string = \"RC_STR_F7_UNEXPECTED_ERR\";\r\n static readonly STR_ERR_MAX_VAR_SIZE: string = \"STR_ERR_MAX_VAR_SIZE\";\r\n static readonly STR_RC_RECENT_ACTIVITY_TOOLTIP_HDR: string = \"STR_RC_RECENT_ACTIVITY_TOOLTIP_HDR\";\r\n static readonly STR_RC_RECENT_ACTIVITY_TIME_LBL: string = \"STR_RC_RECENT_ACTIVITY_TIME_LBL\";\r\n static readonly STR_RC_RECENT_ACTIVITY_DATA_UNIT: string = \"STR_RC_RECENT_ACTIVITY_DATA_UNIT\";\r\n static readonly STR_RC_RECENT_ACTIVITY_TIME_UNIT: string = \"STR_RC_RECENT_ACTIVITY_TIME_UNIT\";\r\n static readonly STR_PAGE_LOADING_IN_PROGRESS: string = \"STR_PAGE_LOADING_IN_PROGRESS\";\r\n static readonly STR_CANNOT_PARK: string = \"STR_CANNOT_PARK\";\r\n static readonly STR_RESTART_SESSION: string = \"STR_RESTART_SESSION\";\r\n static readonly STR_ERR_INACCESSIBLE_URL: string = \"STR_ERR_INACCESSIBLE_URL\";\r\n static readonly STR_ERR_SESSION_CLOSED: string = \"STR_ERR_SESSION_CLOSED\";\r\n static readonly STR_ERR_SESSION_CLOSED_INACTIVITY: string = \"STR_ERR_SESSION_CLOSED_INACTIVITY\";\r\n static readonly STR_MINUTES: string = \"STR_MINUTES\";\r\n static readonly STR_HOURS: string = \"STR_HOURS\";\r\n static readonly STR_ERR_AUTHORIZATION_FAILURE: string = \"STR_ERR_AUTHORIZATION_FAILURE\";\r\n static readonly STR_WARN_UNLOAD_TIMEOUT: string = \"STR_WARN_UNLOAD_TIMEOUT\";\r\n static readonly STR_WARN_PARALLEL_NOT_SUPPORTED: string = \"STR_WARN_PARALLEL_NOT_SUPPORTED\";\r\n static readonly DN_ERR_MDI_FRAME_ISNOT_OPENED: string = \"DN_ERR_MDI_FRAME_ISNOT_OPENED\";\r\n static readonly ERR_CANNOT_HANDLE_WEB_REQUEST: string = \"ERR_CANNOT_HANDLE_WEB_REQUEST\";\r\n static readonly STR_MDI_FRAME_MISMATCH: string = \"STR_MDI_FRAME_MISMATCH\";\r\n static readonly CHK_ERR_OFFLINE_NOT_SUPPORT_FRAME_INTERFACE: string = \"CHK_ERR_OFFLINE_NOT_SUPPORT_FRAME_INTERFACE\";\r\n static readonly STR_USER_ID: string = \"STR_USER_ID\";\r\n static readonly STR_PASSWORD: string = \"STR_PASSWORD\";\r\n static readonly STR_LOGON_PARAMETERS: string = \"STR_LOGON_PARAMETERS\";\r\n static readonly STR_LOGON_CAPTION: string = \"STR_LOGON_CAPTION\";\r\n static readonly STR_LOGON_INSTRUCTION: string = \"STR_LOGON_INSTRUCTION\";\r\n static readonly STR_GENERIC_ERROR_MESSAGE: string = \"STR_GENERIC_ERROR_MESSAGE\";\r\n static readonly STR_GENERIC_ERROR_CONNECTION_PROBLEM_TITLE: string = \"STR_GENERIC_ERROR_CONNECTION_PROBLEM_TITLE\";\r\n static readonly STR_GENERIC_ERROR_CONNECTION_PROBLEM_MESSAGE: string = \"STR_GENERIC_ERROR_CONNECTION_PROBLEM_MESSAGE\";\r\n static readonly FMERROR_STR_TRANS_OPEN_FAILED: string = \"FMERROR_STR_TRANS_OPEN_FAILED\";\r\n static readonly STR_ERR_CANNOT_CALL_OFFLINE_BYNAME_OR_BYEXP: string = \"STR_ERR_CANNOT_CALL_OFFLINE_BYNAME_OR_BYEXP\";\r\n static readonly RT_STR_DELETE_MODE_WITHOUT_MAINSOURCE_NOTALLOWED: string = \"RT_STR_DELETE_MODE_WITHOUT_MAINSOURCE_NOTALLOWED\";\r\n static readonly RC_ERROR_INCOMPATIBLE_DATASOURCES: string = \"RC_ERROR_INCOMPATIBLE_DATASOURCES\";\r\n static readonly RC_ERROR_INVALID_SOURCES: string = \"RC_ERROR_INVALID_SOURCES\";\r\n static readonly RC_ERROR_OFFLINE_NEXT_EXECUTION_INVALID_SOURCES: string = \"RC_ERROR_OFFLINE_NEXT_EXECUTION_INVALID_SOURCES\";\r\n static readonly RC_ERR_ANDROID_LOAD_FROM_URL: string = \"RC_ERR_ANDROID_LOAD_FROM_URL\";\r\n static readonly STR_CLIENT_DB_DEL_OPERATION_FAILED: string = \"STR_CLIENT_DB_DEL_OPERATION_FAILED\";\r\n static readonly STR_DATAVIEW_TO_DATASOURCE_OPERATION_FAILED: string = \"STR_DATAVIEW_TO_DATASOURCE_OPERATION_FAILED\";\r\n static readonly STR_CLIENT_DB_DISCONNECT_DATASOURCE_OPEN: string = \"STR_CLIENT_DB_DISCONNECT_DATASOURCE_OPEN\";\r\n static readonly STR_CLIENT_DB_DISCONNECT_DATASOURCE_NOT_EXIST: string = \"STR_CLIENT_DB_DISCONNECT_DATASOURCE_NOT_EXIST\";\r\n static readonly FMERROR_STR_INVALID_PASSWORD: string = \"FMERROR_STR_INVALID_PASSWORD\";\r\n static readonly STR_MOBILE_TAB_CONTROL_CANNOT_BE_USED: string = \"STR_MOBILE_TAB_CONTROL_CANNOT_BE_USED\";\r\n static readonly STR_MOBILE_CONTROLS_CANNOT_BE_OUTSIDE_TAB: string = \"STR_MOBILE_CONTROLS_CANNOT_BE_OUTSIDE_TAB\";\r\n static readonly STR_MOBILE_TAB_CONTROL_LAYER_0: string = \"STR_MOBILE_TAB_CONTROL_LAYER_0\";\r\n static readonly STR_MOBILE_TAB_DISPLAY_LIST_ERROR: string = \"STR_MOBILE_TAB_DISPLAY_LIST_ERROR\";\r\n static readonly RC_ERROR_ARG_TYPE_STRING_NUMBER_MISMATCH: string = \"RC_ERROR_ARG_TYPE_STRING_NUMBER_MISMATCH\";\r\n static readonly RC_ERROR_ILLEGAL_ARG_ATTR_TYPE: string = \"RC_ERROR_ILLEGAL_ARG_ATTR_TYPE\";\r\n static readonly RC_ERROR_ILLEGAL_RETURN_VAL_ATTR_TYPE: string = \"RC_ERROR_ILLEGAL_RETURN_VAL_ATTR_TYPE\";\r\n static readonly STR_ERR_WEBCLIENT_PROGRAM_RELOADED: string = \"STR_ERR_WEBCLIENT_PROGRAM_RELOADED\";\r\n static readonly STR_ERR_EXECUTED_PROGRAM_CHANGED: string = \"STR_ERR_EXECUTED_PROGRAM_CHANGED\";\r\n\r\n static readonly DefaultMessages: DefaultMsgDetails[] = [\r\n new DefaultMsgDetails(\"STR_ERR_NUM\", \"Invalid number\"), new DefaultMsgDetails(\"STR_ERR_DATE\", \"Invalid date\"), new DefaultMsgDetails(\"STR_ERR_TIME\", \"Invalid time\"), new DefaultMsgDetails(\"MONTHS_PTR\", \"January February March April May June July August September October November December\"), new DefaultMsgDetails(\"DAYS_PTR\", \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\"), new DefaultMsgDetails(\"STR_ERR_NEGETIVE\", \"Control value must be non-negative\"), new DefaultMsgDetails(\"STR_RNG_TXT\", \"Valid control input range is:\"), new DefaultMsgDetails(\"EDT_ERR_STR_1\", \"Numeric format is limited to %d.%d digits\"), new DefaultMsgDetails(\"STR_ERR_PIPE_CONNECTION\", \"The connection to the runtime engine was lost. Process ID \"), new DefaultMsgDetails(\"FMERROR_STR_BAD_NAME\", \"Invalid data source name:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_DAMAGED\", \"Damaged data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_BADCREATE\", \"Create error:\"), new DefaultMsgDetails(\"FMERROR_STR_FILE_LOCKED\", \"Unable to lock the data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_UNEXPECTED\", \"Unexpected error, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_SERVER_NOTFOUND\", \"Server not found, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_SERVER_INIT_FAILED\", \"Server initialization failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_UNLOCKED\", \"Releasing failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_DB_INIT_FAILED\", \"Database initialization error, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_LOCK_OPEN\", \"Failed to open lock file, data source:\"),\r\n new DefaultMsgDetails(\"FMERROR_STR_BAD_BADOPEN\", \"Failed to open, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_BADDEF\", \"Definition mismatch, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DUP_KEY\", \"Duplicate index, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_COMM_LOADED\", \"Communication Gateway not loaded, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_COMM_CONNECT\", \"Failed to connect to server, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_READONLY\", \"Cannot modify Read Only, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_BADCLOSE\", \"Failed to close, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_REC_LOCKED\", \"Waiting for locked row, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_TRANS_OPEN\", \"Failed to open transaction, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_COMMIT\", \"Failed to commit transaction\"), new DefaultMsgDetails(\"FMERROR_STR_ABORT\", \"Failed to abort transaction\"), new DefaultMsgDetails(\"FMERROR_STR_RSRC_LOCKED\", \"Waiting for lock in database:\"), new DefaultMsgDetails(\"FMERROR_STR_NODEF\", \"Database definition cannot be loaded, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DEADLOCK\", \"Deadlock error, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_PROT\", \"Exceeded database protection limits, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_OWNR_ALRDY_SET\", \"Access Key already set, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_INVALID_OWNR\", \"Invalid Access Key, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_CLR_OWNR_FAIL\", \"Failed to clear Access Key, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_NO_DATABASE\", \"Unknown database, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DBMS_ALTER_FAIL\", \"Warning - Database failed to alter, data source:\"),\r\n new DefaultMsgDetails(\"FMERROR_STR_TRANS_LOCK\", \"Waiting to open transaction\"), new DefaultMsgDetails(\"FMERROR_STR_EXTUSE_MULU_CNFLCT\", \"Access External Use Database when MultiUser flag is No, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_GW_VERSION_CNFLCT\", \"Database gateway version mismatch, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_CANOT_REMOVE\", \"Failed to delete, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_CANOT_RENAME\", \"Failed to rename, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_BAD_SQL_CMD\", \"Invalid SQL command, database:\"), new DefaultMsgDetails(\"FMERROR_STR_REC_LOCKED_NOBUF\", \"Waiting to fetch locked row, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_REOPEN\", \"Failed to reopen, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_REC_LOCKED_NOW\", \"Row locked in data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DBMS_SORT_FAIL\", \"Warning - Database failed to sort, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_NO_OLD_DATABASE_DBMS\", \"Warning - Previous DBMS or database unknown, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_LOGIN\", \"Server login failed. Invalid user/password, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_EXEC_SQL\", \"Error in executing SQL command:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_UPDATE_FAIL\", \"Update operation failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_INSERT_FAIL\", \"Insert operation failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_DELETE_FAIL\", \"Delete operation failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_PRINTER\", \"Incorrect printer setup\"), new DefaultMsgDetails(\"FMERROR_STR_FIL_NOT_EXIST\", \"Data source does not exist:\"), new DefaultMsgDetails(\"FMERROR_STR_COMM_GWY_COMPTABILITY\", \"Communication gateways are not compatible:\"), new DefaultMsgDetails(\"FMERROR_STR_CACHE_TOO_BIG\", \"Not enough memory - Cache not started, data source:\"),\r\n new DefaultMsgDetails(\"FMERROR_STR_NO_ROWS_AFFECTED\", \"Operation failed. Record has been changed by another user or process, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_TARGET_FILE_EXIST\", \"Target data source exists. Create failed for data source:\"), new DefaultMsgDetails(\"FMERROR_STR_FILE_IS_VIEW\", \"Cannot create/drop/copy a view, view:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_CANOT_COPY\", \"Failed to copy, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_HLP_NOT_EXIST\", \"Failed to open, file:\"), new DefaultMsgDetails(\"FMERROR_STR_UNUSABLE_FILE\", \"Team Development: Data source inaccessible due to maintenance:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_BAD_QUERY\", \"Bad Open Query Selection Expression:\"), new DefaultMsgDetails(\"FMERROR_STR_NO_HDLS\", \"Reached maximum Magic xpa file handlers. No available handlers left.\"), new DefaultMsgDetails(\"FMERROR_STR_MAX_CONNS_REACHED\", \"Unable to connect to Server: Maximum connections reached.\"), new DefaultMsgDetails(\"FMERROR_STR_CONSTRAINT_FAIL\", \"Constraint failure, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_TRIGGER_FAIL\", \"Trigger failure, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_MODIFY_WITHIN_TRANS\", \"Data source can be modified only from within a transaction, data source:\"), new DefaultMsgDetails(\"EXPTAB_TSK_MODE_RT\", \"&Modify,&Create,&Delete,&Query,As &Parent,&Locate,&Range,&Key,&Sort,&Files,&Options,By &Exp \"), new DefaultMsgDetails(\"EXPTAB_ERR_CALL_MAIN_PRG_1\", \"Cannot call Main Program\"), new DefaultMsgDetails(\"LOCATE_STR_ERR_EOF\", \"Record not found - positioned at beginning\"), new DefaultMsgDetails(\"RT_STR_REC_NOTFOUND\", \"Row not found in data source:\"), new DefaultMsgDetails(\"RT_STR_PRG_NOTFOUND\", \"Program not found\"), new DefaultMsgDetails(\"RT_STR_NO_RECS_IN_RNG\", \"No records within defined range\"), new DefaultMsgDetails(\"RT_STR_FLD_MUST_UPDATED\", \"Control must be updated\"), new DefaultMsgDetails(\"RT_STR_TSK_NO_SCREEN\", \"Task without screen\"),\r\n new DefaultMsgDetails(\"RT_STR_CRSR_CANT_PARK\", \"Cursor cannot park on any control\"), new DefaultMsgDetails(\"RT_STR_MODE_NOTALLOWED\", \"Initial Task mode not allowed\"), new DefaultMsgDetails(\"RT_STR_NON_MODIFIABLE\", \"Non-modifiable control\"), new DefaultMsgDetails(\"RT_STR_UPDATE_IN_QUERY\", \"Warning - Modify operation canceled due to task Query mode\"), new DefaultMsgDetails(\"RT_STR_LOAD_RES_FAIL\", \"Failed to load resident data source, data source:\"), new DefaultMsgDetails(\"RT_STR_NO_CREATE_ON_TREE\", \"Cannot open a task having a tree control with no data to display.\"), new DefaultMsgDetails(\"TSKR_ERR_NOTEXIST_COMP\", \"Component used by the task does not exist or could not be opened\"), new DefaultMsgDetails(\"TSK_ERR_BCSUBFORM_WRONG_EXP\", \"a cached sub-form has server side expression in Range/Locate/SqlWhere\"), new DefaultMsgDetails(\"TSK_ERR_NESTED_BCSUBFORM\", \"A cached sub-form can not have a non-cached nested sub-form\"), new DefaultMsgDetails(\"TSK_ERR_CHANGE_CACHED_NESTED_BCSUBFORM\", \"A cached sub-form can not have a non-cached nested sub-form. The nested subform cache was changed since it uses server side range expression\"), new DefaultMsgDetails(\"TSK_ERR_SUBFORM_DSQL\", \"DSQL task is not supported as a sub-form\"), new DefaultMsgDetails(\"TSK_ERR_DSQL_SELECT_ONLY\", \"Only statements that retrieve data are allowed in a DSQL deferred transaction task\"), new DefaultMsgDetails(\"CSTIO_STR_ERR2\", \"User not authorized for this operation\"), new DefaultMsgDetails(\"CONFIRM_STR_DELETE\", \"Confirm Delete operation\"), new DefaultMsgDetails(\"CONFIRM_STR_CANCEL\", \"Confirm Cancel operation\"), new DefaultMsgDetails(\"CONFIRM_STR_WINDOW_TITLE\", \"Confirmation\"), new DefaultMsgDetails(\"WARNING_STR_WINDOW_TITLE\", \"Warning\"), new DefaultMsgDetails(\"BRKTAB_STR_ERROR\", \"Error\"), new DefaultMsgDetails(\"USRINP_STR_BADPASSW\", \"The application could not log you on. Make sure your user ID and password are correct\"), new DefaultMsgDetails(\"USRINP_STR_BADPASSW_WEBSERVER\", \"The Web Server could not log you on. Make sure your user ID and password are correct\"),\r\n new DefaultMsgDetails(\"USRINP_STR_BADPASSW_PROXYSERVER\", \"The Proxy Server could not log you on. Make sure your user ID and password are correct\"), new DefaultMsgDetails(\"CRF_STR_CONF_UPD\", \"Confirm update\"), new DefaultMsgDetails(\"MENU_STR_ERROR_ENABLE\", \"Enable/Disable of system action is not allowed\"), new DefaultMsgDetails(\"GUI_OK_BUTTON\", \"&OK\"), new DefaultMsgDetails(\"GUI_CANCEL_BUTTON\", \"&Cancel\"), new DefaultMsgDetails(\"BRKTAB_STOP_MODE_TITLE\", \"Error,Warning\"), new DefaultMsgDetails(\"BRKTAB_STR_ERR_FORM\", \"Invalid form\"), new DefaultMsgDetails(\"BROWSER_OPT_INFO_SERVER_STR\", \"Server\"), new DefaultMsgDetails(\"STR_ERR_PIC_J\", \"Single byte characters are not allowed\"), new DefaultMsgDetails(\"STR_ERR_PIC_S\", \"Double byte characters are not allowed\"), new DefaultMsgDetails(\"STR_ERR_PIC_T\", \"Mixed data of double byte and single byte are not allowed\"), new DefaultMsgDetails(\"TASKRULE_STR_APPLICATION\", \"Application\"), new DefaultMsgDetails(\"DITDEF_STR_ERR_WINDOW_TYPE\", \"Invalid Window Type.\"), new DefaultMsgDetails(\"DITDEF_STR_ERR_SUBFORM_PROG_PARALLEL\", \"A parallel program cannot be used as subform or frame program.\"), new DefaultMsgDetails(\"DATEHEB_MONTH_STR\", \"תשרי חשון כסלו טבת שבט אדר ניסן אייר סיון תמוז אב אלול אדר באדר א\"), new DefaultMsgDetails(\"DATEHEB_DOW_STR\", \"ראשוןשני שלישירביעיחמישישישי שבת \"), new DefaultMsgDetails(\"CHK_ERR_CALL_FROM_RICH_CLIENT\", \"Rich Client task/program can only call a Rich Client or batch task/program\"), new DefaultMsgDetails(\"RC_STR_F7_UNEXPECTED_ERR\", \"Unexpected error, Rich client could not be started\"), new DefaultMsgDetails(\"STR_ERR_MAX_VAR_SIZE\", \"Rich client task supports up to 2147483647 bytes variables\"), new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_TOOLTIP_HDR\", \"Recent Network Activities:\"),\r\n new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_TIME_LBL\", \"At\"), new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_DATA_UNIT\", \"KB.\"), new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_TIME_UNIT\", \"ms.\"), new DefaultMsgDetails(\"STR_PAGE_LOADING_IN_PROGRESS\", \"The loading of the page is still in progress. Press OK to wait for its completion or Cancel to abort.\"), new DefaultMsgDetails(\"STR_CANNOT_PARK\", \"Cannot park on control:\"), new DefaultMsgDetails(\"STR_RESTART_SESSION\", \"Would you like to start a new session?\"), new DefaultMsgDetails(\"STR_ERR_INACCESSIBLE_URL\", \"Inaccessible URL: \"), new DefaultMsgDetails(\"STR_ERR_SESSION_CLOSED\", \"This session was closed by the server\"), new DefaultMsgDetails(\"STR_ERR_SESSION_CLOSED_INACTIVITY\", \"This session was closed due to inactivity timeout\"), new DefaultMsgDetails(\"STR_MINUTES\", \"minutes\"), new DefaultMsgDetails(\"STR_HOURS\", \"hours\"), new DefaultMsgDetails(\"STR_ERR_AUTHORIZATION_FAILURE\", \"You do not have access rights to the application. Please contact your system administrator.\"), new DefaultMsgDetails(\"STR_WARN_UNLOAD_TIMEOUT\", \"This session was closed due to unload timeout\"), new DefaultMsgDetails(\"STR_WARN_PARALLEL_NOT_SUPPORTED\", \"Parallel program is not supported on mobile. Property ignored\"), new DefaultMsgDetails(\"DN_ERR_MDI_FRAME_ISNOT_OPENED\", \"MDI frame is not opened\"), new DefaultMsgDetails(\"ERR_CANNOT_HANDLE_RC_REQUEST\", \"Rich client requests cannot be handled when the online MDI is open\"),\r\n new DefaultMsgDetails(\"ERR_CANNOT_HANDLE_WEB_REQUEST\", \"Web client requests cannot be handled when the online MDI is open\"),\r\n new DefaultMsgDetails(\"STR_MDI_FRAME_MISMATCH\", \"The selected MDI Frame form cannot be used for the current task\"), new DefaultMsgDetails(\"CHK_ERR_OFFLINE_NOT_SUPPORT_FRAME_INTERFACE\", \"Frames interface is not supported in an offline task\"), new DefaultMsgDetails(\"STR_USER_ID\", \"User ID:\"), new DefaultMsgDetails(\"STR_PASSWORD\", \"Password:\"),\r\n new DefaultMsgDetails(\"STR_LOGON_PARAMETERS\", \"Logon Parameters\"), new DefaultMsgDetails(\"STR_LOGON_CAPTION\", \"Logon\"), new DefaultMsgDetails(\"STR_LOGON_INSTRUCTION\", \"Please enter your user ID and password.\"), new DefaultMsgDetails(\"STR_GENERIC_ERROR_MESSAGE\", \"An error occurred (%d). Please contact your system administrator.\"), new DefaultMsgDetails(\"STR_GENERIC_ERROR_CONNECTION_PROBLEM_TITLE\", \"Connection problem:\"), new DefaultMsgDetails(\"STR_GENERIC_ERROR_CONNECTION_PROBLEM_MESSAGE\", \"Try to reconnect?\"), new DefaultMsgDetails(\"FMERROR_STR_TRANS_OPEN_FAILED\", \"The transaction was already opened by another task\"), new DefaultMsgDetails(\"STR_ERR_CANNOT_CALL_OFFLINE_BYNAME_OR_BYEXP\", \"Offline programs cannot be called using the Call By Name or Call By Expression operations\"), new DefaultMsgDetails(\"RT_STR_DELETE_MODE_WITHOUT_MAINSOURCE_NOTALLOWED\", \"Deleted task mode is not allowed without main source\"), new DefaultMsgDetails(\"RC_ERROR_INCOMPATIBLE_DATASOURCES\", \"Failed to update the local data. Please clear the application cache or reinstall the application.\"), new DefaultMsgDetails(\"RC_ERROR_INVALID_SOURCES\", \"Failed to update the application.\"), new DefaultMsgDetails(\"RC_ERROR_OFFLINE_NEXT_EXECUTION_INVALID_SOURCES\", \"Failed to start the application. Please restart while the application is connected to the server.\"), new DefaultMsgDetails(\"RC_ERR_ANDROID_LOAD_FROM_URL\", \"Cannot access the server.\"), new DefaultMsgDetails(\"STR_CLIENT_DB_DEL_OPERATION_FAILED\", \"ClientDbDel opeartion failed.\"), new DefaultMsgDetails(\"STR_DATAVIEW_TO_DATASOURCE_OPERATION_FAILED\", \"DataViewToDataSource operation failed.\"), new DefaultMsgDetails(\"STR_CLIENT_DB_DISCONNECT_DATASOURCE_OPEN\", \"Failed to disconnect, data source is open.\"), new DefaultMsgDetails(\"STR_CLIENT_DB_DISCONNECT_DATASOURCE_NOT_EXIST\", \"Failed to disconnect, database does not exist.\"), new DefaultMsgDetails(\"FMERROR_STR_INVALID_PASSWORD\", \"Invalid Password, data source:\"), new DefaultMsgDetails(\"STR_MOBILE_TAB_CONTROL_CANNOT_BE_USED\", \"Tab control cannot be used in a container control.\"), new DefaultMsgDetails(\"STR_MOBILE_CONTROLS_CANNOT_BE_OUTSIDE_TAB\", \"Controls cannot be placed outside a tab control.\"),\r\n new DefaultMsgDetails(\"STR_MOBILE_TAB_CONTROL_LAYER_0\", \"Controls cannot be linked to layer 0 of the tab control.\"), new DefaultMsgDetails(\"STR_MOBILE_TAB_DISPLAY_LIST_ERROR\", \"The number of entries in the Display List property must be zero or match the number of entries in the Items List property.\"), new DefaultMsgDetails(\"RC_ERROR_ARG_TYPE_STRING_NUMBER_MISMATCH\", \"The number of characters in the argument type string does not match the number of total arguments\"), new DefaultMsgDetails(\"RC_ERROR_ILLEGAL_ARG_ATTR_TYPE\", \"Illegal argument attribute type\"), new DefaultMsgDetails(\"RC_ERROR_ILLEGAL_RETURN_VAL_ATTR_TYPE\", \"Illegal return value attribute type\"), new DefaultMsgDetails(\"STR_ERR_WEBCLIENT_PROGRAM_RELOADED\", \"Changes were done at the server side. Browser will be refreshed in order to get the latest changes.\"), new DefaultMsgDetails(\"STR_ERR_EXECUTED_PROGRAM_CHANGED\", \"Executed program changed at the server side. Browser will be refreshed in order to get the latest changes.\")\r\n ];\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {List} from \"@magic-xpa/mscorelib\";\r\n\r\n/// <summary> implementation of a general queue</summary>\r\nexport class Queue<T> {\r\n private _queueVec: List<T> = null;\r\n\r\n /// <summary> </summary>\r\n constructor() {\r\n this._queueVec = new List<T>();\r\n }\r\n\r\n /// <summary> returns the first object in the queue</summary>\r\n get(): any {\r\n let returnValue: T = null;\r\n\r\n if (this._queueVec.length > 0) {\r\n returnValue = this._queueVec.get_Item(0);\r\n this._queueVec.RemoveAt(0);\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n /// <summary> add an object to the end of the queue</summary>\r\n /// <param name=\"obj\">the object to add\r\n put(obj: T): void {\r\n this._queueVec.push(obj);\r\n }\r\n\r\n /// <summary> remove all the objects from the queue</summary>\r\n clear(): void {\r\n this._queueVec.Clear();\r\n }\r\n\r\n /// <summary> returns true if the queue is empty</summary>\r\n isEmpty(): boolean {\r\n return this._queueVec.length === 0;\r\n }\r\n\r\n /// <summary> returns size of the queue</summary>\r\n Size(): number {\r\n return this._queueVec.length;\r\n }\r\n}\r\n","export class Randomizer {\r\n private static _initialized: boolean = false;\r\n private static _mod: number = 0.0;\r\n private static _mul: number = 0.0;\r\n private static _seed: number = 0.0;\r\n\r\n static get_initialized(): boolean {\r\n return Randomizer._initialized;\r\n }\r\n\r\n static get_mod(): number {\r\n return Randomizer._mod;\r\n }\r\n\r\n static get_mul(): number {\r\n return Randomizer._mul;\r\n }\r\n\r\n static get_seed(): number {\r\n return Randomizer._seed;\r\n }\r\n\r\n static set_initialized(): void {\r\n Randomizer._initialized = true;\r\n }\r\n\r\n static set_mod(randMod: number): number {\r\n Randomizer._mod = randMod;\r\n return Randomizer._mod;\r\n }\r\n\r\n static set_mul(randMul: number): number {\r\n Randomizer._mul = randMul;\r\n return Randomizer._mul;\r\n }\r\n\r\n static set_seed(randSeed: number): number {\r\n Randomizer._seed = randSeed;\r\n return Randomizer._seed;\r\n }\r\n}\r\n","import {StorageAttribute} from \"./enums\";\r\n\r\n/// <summary>\r\n/// type checking for enum 'StorageAttribute'\r\n/// </summary>\r\nexport class StorageAttributeCheck {\r\n /// <summary>\r\n /// is the both types belong to the same inner data types\r\n /// </summary>\r\n /// <param name = \"type1\">data type</param>\r\n /// <param name = \"type2\">data type</param>\r\n static isTheSameType(type1: StorageAttribute, type2: StorageAttribute): boolean {\r\n return type1 === type2 || (StorageAttributeCheck.isTypeNumeric(type1) && StorageAttributeCheck.isTypeNumeric(type2)) || (StorageAttributeCheck.isTypeLogical(type1) && StorageAttributeCheck.isTypeLogical(type2)) || (StorageAttributeCheck.IsTypeAlphaOrUnicode(type1) && StorageAttributeCheck.IsTypeAlphaOrUnicode(type2)) || (StorageAttributeCheck.isTypeBlob(type1) && StorageAttributeCheck.isTypeBlob(type2)) || (StorageAttributeCheck.isTypeDotNet(type1) && StorageAttributeCheck.isTypeDotNet(type2));\r\n }\r\n\r\n static isTypeBlob(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.BLOB || type === StorageAttribute.BLOB_VECTOR;\r\n }\r\n\r\n static isTypeAlpha(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.ALPHA || type === StorageAttribute.MEMO;\r\n }\r\n\r\n /// <summary>\r\n /// is the both types belong to the NUMERIC inner type\r\n /// </summary>\r\n static isTypeNumeric(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.DATE || type === StorageAttribute.TIME || type === StorageAttribute.NUMERIC;\r\n }\r\n\r\n /// <summary>\r\n /// is the both types belong to the LOGICAL inner type\r\n /// </summary>\r\n static isTypeLogical(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.BOOLEAN;\r\n }\r\n\r\n /// <summary>\r\n /// is the type is DOTNET\r\n /// </summary>\r\n static isTypeDotNet(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.DOTNET;\r\n }\r\n\r\n /// <summary>\r\n /// is the type ALPHA or UNICODE\r\n /// </summary>\r\n /// <param name = \"type\">data type</param>\r\n static IsTypeAlphaOrUnicode(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.ALPHA || type === StorageAttribute.UNICODE;\r\n }\r\n\r\n /// <summary>\r\n /// is the inner type ALPHA or UNICODE\r\n /// </summary>\r\n /// <param name = \"type1\">data type</param>\r\n /// <param name = \"type2\">data type</param>\r\n static StorageFldAlphaOrUnicode(type1: StorageAttribute, type2: StorageAttribute): boolean {\r\n return StorageAttributeCheck.IsTypeAlphaOrUnicode(type1) && StorageAttributeCheck.IsTypeAlphaOrUnicode(type2);\r\n }\r\n\r\n static StorageFldAlphaUnicodeOrBlob(type1: StorageAttribute, type2: StorageAttribute): boolean {\r\n let type1AlphaOrUnicode: boolean = StorageAttributeCheck.IsTypeAlphaOrUnicode(type1);\r\n let type2AlphaOrUnicode: boolean = StorageAttributeCheck.IsTypeAlphaOrUnicode(type2);\r\n\r\n if (type1AlphaOrUnicode && type2AlphaOrUnicode) {\r\n return true;\r\n }\r\n else {\r\n let type1Blob: boolean = type1 === StorageAttribute.BLOB;\r\n let type2Blob: boolean = type2 === StorageAttribute.BLOB;\r\n return ((type1AlphaOrUnicode && type2Blob) || (type2AlphaOrUnicode && type1Blob));\r\n }\r\n\r\n }\r\n\r\n /// <summary>\r\n /// Check if types are compatible or not.\r\n /// </summary>\r\n /// <param name=\"sourceAttribute\"></param>\r\n /// <param name=\"destinationAttribute\"></param>\r\n /// <returns></returns>\r\n static IsTypeCompatibile(sourceAttribute: StorageAttribute, destinationAttribute: StorageAttribute): boolean {\r\n let isTypeCompatible: boolean = false;\r\n\r\n switch (sourceAttribute) {\r\n case StorageAttribute.ALPHA:\r\n case StorageAttribute.UNICODE:\r\n if (destinationAttribute === StorageAttribute.ALPHA || destinationAttribute === StorageAttribute.UNICODE ||\r\n destinationAttribute === StorageAttribute.DATE || destinationAttribute === StorageAttribute.TIME ||\r\n destinationAttribute === StorageAttribute.NUMERIC) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n\r\n case StorageAttribute.NUMERIC:\r\n if (destinationAttribute === StorageAttribute.NUMERIC || destinationAttribute === StorageAttribute.ALPHA ||\r\n destinationAttribute === StorageAttribute.UNICODE || destinationAttribute === StorageAttribute.BOOLEAN ||\r\n destinationAttribute === StorageAttribute.DATE || destinationAttribute === StorageAttribute.TIME) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n\r\n case StorageAttribute.BOOLEAN: {\r\n if (destinationAttribute === StorageAttribute.BOOLEAN || destinationAttribute === StorageAttribute.ALPHA ||\r\n destinationAttribute === StorageAttribute.UNICODE || destinationAttribute === StorageAttribute.NUMERIC) {\r\n isTypeCompatible = true;\r\n }\r\n }\r\n break;\r\n case StorageAttribute.DATE:\r\n case StorageAttribute.TIME:\r\n if (destinationAttribute === StorageAttribute.ALPHA || destinationAttribute === StorageAttribute.UNICODE ||\r\n destinationAttribute === StorageAttribute.NUMERIC || destinationAttribute === StorageAttribute.BOOLEAN ||\r\n destinationAttribute === StorageAttribute.DATE || destinationAttribute === StorageAttribute.TIME) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n case StorageAttribute.BLOB:\r\n if (destinationAttribute === StorageAttribute.BLOB) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n }\r\n return isTypeCompatible;\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n","/// <summary>\r\n/// Helper class for synchronized execution.\r\n/// It works by creating a promise and then waiting for the promise to be completed\r\n/// </summary>\r\n// @dynamic\r\nexport class SyncExecutionHelper {\r\n\r\n private static _instance = null;\r\n\r\n /// <summary>\r\n /// get instance of SyncExecutionHelper\r\n /// </summary>\r\n static get Instance(): SyncExecutionHelper {\r\n if (SyncExecutionHelper._instance === null)\r\n SyncExecutionHelper._instance = new SyncExecutionHelper();\r\n\r\n return SyncExecutionHelper._instance;\r\n }\r\n\r\n // resolver is caller when promise is fullfilled\r\n private resolver: any = null;\r\n\r\n /// <summary>\r\n /// To wait, create a promise and add wait for it to complete\r\n /// </summary>\r\n public Wait(): any {\r\n // Logger.Instance.WriteDevToLog(\"SyncExecutionHelper.Wait()\");\r\n return new Promise((resolve) => {\r\n this.resolver = resolve;\r\n }).then();\r\n }\r\n\r\n /// <summary>\r\n /// To resume call the resolver\r\n /// </summary>\r\n public Pulse() {\r\n let resolver = this.resolver;\r\n if (resolver != null) {\r\n // Logger.Instance.WriteDevToLog(\"SyncExecutionHelper.Pulse()\");\r\n resolver();\r\n }\r\n }\r\n}\r\n","import {PICInterface} from \"./PICInterface\";\r\nimport {UtilStrByteMode} from \"./UtilStrByteMode\";\r\nimport {NNumber} from \"@magic-xpa/mscorelib\";\r\n\r\nconst MAX_GENGO: number = 6;\r\n\r\n\r\n\r\nexport class UtilDateJpn {\r\n /// <summary>\r\n /// JPN: Japanese date picture support\r\n /// Utility Class for Japanese date\r\n /// </summary>\r\n /// <author> Toshiro Nakayoshi (MSJ)\r\n /// </author>\r\n\r\n private static _instance: UtilDateJpn = null;\r\n\r\n private static JweekStr: string[] = [\r\n \" \", \"日曜日\", \"月曜日\", \"火曜日\", \"水曜日\", \"木曜日\", \"金曜日\", \"土曜日\"\r\n ];\r\n private static JmonthStr: string[] = [\r\n \"\", \" 1月\", \" 2月\", \" 3月\", \" 4月\", \" 5月\", \" 6月\", \" 7月\", \" 8月\", \" 9月\", \"10月\", \"11月\", \"12月\"\r\n ];\r\n private static GengoStr: string[][] = [\r\n [\"?\", \"?\", \"????\"],\r\n [\"M\", \"m\", \"明治\"],\r\n [\"T\", \"t\", \"大正\"],\r\n [\"S\", \"s\", \"昭和\"],\r\n [\"H\", \"h\", \"平成\"],\r\n [\"R\", \"r\", \"令和\"],\r\n [\"?\", \"?\", \"??\"],\r\n [\"?\", \"?\", \"??\"],\r\n [\"?\", \"?\", \"??\"]\r\n ];\r\n private static StartDayOfGengo: number[][] = [\r\n [ 1, 1, 1, 1],\r\n [1868, 9, 8, 252],\r\n [1912, 6, 30, 212],\r\n [1926, 12, 25, 359],\r\n [1989, 1, 8, 8],\r\n [2019, 5, 1, 121],\r\n [0, 0, 0, 0], // reserve for extra gengo x 3\r\n [0, 0, 0, 0],\r\n [0, 0, 0, 0]\r\n ];\r\n\r\n // ---- gengo (the name of an era) ---------------------------------------\r\n private MaxGengo: number = MAX_GENGO;\r\n\r\n static getInstance(): UtilDateJpn {\r\n if (UtilDateJpn._instance === null) {\r\n UtilDateJpn._instance = new UtilDateJpn();\r\n }\r\n return UtilDateJpn._instance;\r\n }\r\n\r\n static getArrayDow(): string[] {\r\n return UtilDateJpn.JweekStr;\r\n }\r\n\r\n static getStrDow(intIdx: number): string {\r\n let flag: boolean = intIdx < 0 || 7 < intIdx;\r\n if (flag) {\r\n intIdx = 0;\r\n }\r\n return UtilDateJpn.JweekStr[intIdx];\r\n }\r\n\r\n static convertStrMonth(month: number): string {\r\n let flag: boolean = month < 0 || 12 < month;\r\n if (flag) {\r\n month = 0;\r\n }\r\n return UtilDateJpn.JmonthStr[month];\r\n }\r\n\r\n /// <summary>\r\n /// Convert a year (A.D.) into Japanese year of an era\r\n /// This method is modeled after \"date_jpn_year_ofs\" function in\r\n /// \"\\mglocal\\jpn\\jpndate_jpn.cpp\".\r\n /// </summary>\r\n /// <param name = \"intYear:\">year (A.D.)\r\n /// </param>\r\n /// <param name = \"intDoy:\">DOY\r\n /// </param>\r\n /// <returns> year of an era.\r\n /// if either param is invalid, it returns 0.\r\n /// </returns>\r\n date_jpn_year_ofs(intYear: number, intDoy: number): number {\r\n let result: number;\r\n if (intYear < 1 || intDoy < 1) {\r\n result = 0;\r\n }\r\n else {\r\n let num: number = this.MaxGengo - 1;\r\n while (intYear < UtilDateJpn.StartDayOfGengo[num][0]) {\r\n num = num - 1;\r\n }\r\n if (intYear === UtilDateJpn.StartDayOfGengo[num][0] && intDoy < UtilDateJpn.StartDayOfGengo[num][3]) {\r\n num = num - 1;\r\n }\r\n result = intYear - UtilDateJpn.StartDayOfGengo[num][0] + 1;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Convert a year (A.D.) into a name of a Japanese era\r\n /// This method is modeled after \"date_jpn_yr_2_a\" function in\r\n /// \"\\mglocal\\jpn\\jpndate_jpn.cpp\".\r\n /// </summary>\r\n /// <param name = \"intYear:\">year (A.D.)\r\n /// </param>\r\n /// <param name = \"intDoy:\">DOY\r\n /// </param>\r\n /// <param name = \"isKanji:\">return a full name (true) or the first letter (false).\r\n /// </param>\r\n /// <returns> name of an era\r\n /// if either param is invalid, it returns \"?\".\r\n /// </returns>\r\n date_jpn_yr_2_a(intYear: number, intDoy: number, isKanji: boolean): string {\r\n let num: number;\r\n if (intYear < 1 || intDoy < 1) {\r\n num = 0;\r\n }\r\n else {\r\n num = this.MaxGengo - 1;\r\n while (intYear < UtilDateJpn.StartDayOfGengo[num][0]) {\r\n num = num - 1;\r\n }\r\n if (intYear === UtilDateJpn.StartDayOfGengo[num][0] && intDoy < UtilDateJpn.StartDayOfGengo[num][3]) {\r\n num = num - 1;\r\n }\r\n }\r\n let result: string;\r\n if (isKanji) {\r\n result = UtilDateJpn.GengoStr[num][2];\r\n }\r\n else {\r\n result = UtilDateJpn.GengoStr[num][0];\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Get the first year (A.D.) of a specified Japanese era\r\n /// This method is modeled after \"date_jpn_yr_4_a\" function in\r\n /// \"\\mglocal\\jpn\\jpndate_jpn.cpp\".\r\n /// </summary>\r\n /// <param name = \"ucp_str:\">name of a specified Japanese era\r\n /// </param>\r\n /// <param name = \"s_len:\">length (the number of bytes) of ucp_str\r\n /// </param>\r\n /// <returns> year (A.D.)\r\n /// </returns>\r\n private date_jpn_yr_4_a(ucp_str: string, s_len: number): number {\r\n let i: number = this.MaxGengo - 1;\r\n if (s_len > 0) {\r\n if (s_len > 1) {\r\n ucp_str = UtilStrByteMode.leftB(ucp_str, s_len);\r\n }\r\n while (i > 0) {\r\n if (s_len === 1) {\r\n if (ucp_str === UtilDateJpn.GengoStr[i][0] || ucp_str === UtilDateJpn.GengoStr[i][1]) {\r\n break;\r\n }\r\n }\r\n else {\r\n if (s_len > 1) {\r\n let text: string = UtilStrByteMode.leftB(UtilDateJpn.GengoStr[i][2], s_len);\r\n if (ucp_str === text) {\r\n break;\r\n }\r\n }\r\n }\r\n i = i - 1;\r\n }\r\n }\r\n let result: number;\r\n if (i > 0) {\r\n result = UtilDateJpn.StartDayOfGengo[i][0];\r\n }\r\n else {\r\n const text: string = ucp_str.substr(0, 1);\r\n if (text === \" \" || text === \"?\") {\r\n result = 1;\r\n }\r\n else {\r\n result = 0;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Get the name of an era in date string\r\n /// </summary>\r\n /// <param name = \"strDate:\">string of input strDate\r\n /// </param>\r\n /// <param name = \"strPicture:\">string of picture\r\n /// </param>\r\n /// <param name = \"intStartPos:\">start position to search\r\n /// </param>\r\n /// <returns> name of an era\r\n /// </returns>\r\n private static getEraNameStrInDate(strDate: string, strPicture: string, intStartPos: number): string {\r\n let result: string = null;\r\n let intPicIdxOfs: number = 0;\r\n let i: number = intStartPos;\r\n while (i + intPicIdxOfs < strPicture.length) {\r\n let intLetters: number;\r\n if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY1) {\r\n intLetters = 1;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY2) {\r\n intLetters = 1;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY4) {\r\n intLetters = 2;\r\n } else {\r\n // If \"strDate\" contains DBCS, the position of \"strPicture\" has to skip next index.\r\n if (i < strDate.length) {\r\n if (!UtilStrByteMode.isHalfWidth(strDate[i]) && UtilStrByteMode.isHalfWidth(strPicture[i + intPicIdxOfs])) {\r\n intPicIdxOfs = intPicIdxOfs + 1;\r\n }\r\n }\r\n i = i + 1;\r\n continue;\r\n }\r\n }\r\n }\r\n result = strDate.substr(i, intLetters);\r\n break; // exit loop\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Get the length of the name of an era in picture\r\n /// </summary>\r\n /// <param name = \"strPicture\">string of picture\r\n /// </param>\r\n /// <param name = \"intStartPos\">start position to search\r\n /// </param>\r\n /// <returns> length of the name (the number of bytes)\r\n /// </returns>\r\n private static getEraNameLenInPicture(strPicture: string, intStartPos: number): number {\r\n let intLetters: number = 0;\r\n for (let i: number = intStartPos; i < strPicture.length; i = i + 1) {\r\n if (strPicture.charCodeAt(i) === PICInterface.PIC_JY1) {\r\n intLetters = 1;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i) === PICInterface.PIC_JY2) {\r\n intLetters = 2;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i) === PICInterface.PIC_JY4) {\r\n intLetters = 4;\r\n }\r\n }\r\n }\r\n if (intLetters > 0) {\r\n break;\r\n }\r\n }\r\n return intLetters;\r\n }\r\n\r\n /// <summary>\r\n /// Get the start year of an era in picture\r\n /// </summary>\r\n /// <param name = \"strDate:\">string of input strDate\r\n /// </param>\r\n /// <param name = \"strPicture:\">string of picture\r\n /// </param>\r\n /// <returns> start year of the era\r\n /// </returns>\r\n getStartYearOfEra(strDate: string, strPicture: string): number {\r\n let eraNameStrInDate: string = UtilDateJpn.getEraNameStrInDate(strDate, strPicture, 0);\r\n let result: number;\r\n if (eraNameStrInDate === null) {\r\n result = 0;\r\n }\r\n else {\r\n let eraNameLenInPicture: number = UtilDateJpn.getEraNameLenInPicture(strPicture, 0);\r\n if (eraNameLenInPicture === 0) {\r\n result = 0;\r\n }\r\n else {\r\n let intStartYearOfEra: number = this.date_jpn_yr_4_a(eraNameStrInDate, eraNameLenInPicture);\r\n result = intStartYearOfEra;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> Add extra Gengo data into the Gengo tables</summary>\r\n /// <param name=\"strExtraGengo:\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n addExtraGengo(strExtraGengo: string): void {\r\n // e.g. strExtraGengo = \"2012/04/01,092,AaABCD;2013/04/01,091,WwWXYZ;\"\r\n let strGengoInfo: string[] = strExtraGengo.split(';');\r\n for (let i: number = 0; i < strGengoInfo.length; i = i + 1) {\r\n if (strGengoInfo[i].length > 0) {\r\n let strTok: string[] = strGengoInfo[i].split(',');\r\n if (strTok.length === 3 && strTok[0].length > 0 && strTok[1].length > 0 && strTok[2].length > 0) {\r\n let strDate: string[] = strTok[0].split('/');\r\n if (strDate.length === 3 && strDate[0].length > 0 && strDate[1].length > 0 && strDate[2].length > 0) {\r\n UtilDateJpn.GengoStr[MAX_GENGO + i][0] = strTok[2].substr(0, 1); // symbol name (upper case): A\r\n UtilDateJpn.GengoStr[MAX_GENGO + i][1] = strTok[2].substr(1, 1); // symbol name (lower case): a\r\n UtilDateJpn.GengoStr[MAX_GENGO + i][2] = strTok[2].substr(2); // gengo name: ABCD\r\n\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][0] = NNumber.Parse(strDate[0]); // start year: 2012\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][1] = NNumber.Parse(strDate[1]); // start month: 4\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][2] = NNumber.Parse(strDate[2]); // start day: 1\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][3] = NNumber.Parse(strTok[1]); // days since January 1: 92\r\n this.MaxGengo++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/// <summary>JPN: IME support\r\n/// Utility Class for Input Method Editor\r\n/// </summary>\r\n/// <author> Toshiro Nakayoshi (MSJ)\r\n/// </author>\r\n\r\n\r\nexport class UtilImeJpn {\r\n\r\n static IME_ZEN_HIRAGANA_ROMAN: number = 1;\r\n static IME_FORCE_OFF: number = 15; // if (ImeMode property == 0 and (picture has K0 or PIC_S)) or\r\n // (attribute is not alpha, unicode, nor blob), set IME_FORCE_OFF.\r\n static IME_DISABLE: number = 10; // to completely disable IME (even not allowing to change the mode)\r\n ImeAutoOff: boolean = false;\r\n StrImeRead: string = null;\r\n\r\n /// <summary> check if the IME mode is within valid range\r\n /// </summary>\r\n /// <param name=\"imeMode\">(IME mode in Magic)\r\n /// </param>\r\n /// <returns> bool\r\n /// </returns>\r\n isValid(imeMode: number): boolean {\r\n return (0 <= imeMode && imeMode <= 9) || imeMode === 15 || imeMode === 10;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import {NString, List, ApplicationException, StringBuilder, NChar, NNumber} from \"@magic-xpa/mscorelib\";\r\nimport {XMLConstants} from \"../XMLConstants\";\r\n\r\n/// <summary> a helper class for the parsing of the XML</summary>\r\nexport class XmlParser {\r\n private static endOfNameChar: string[] = [' ', '>'];\r\n\r\n private _currIndex: number = 0;\r\n private _xmLdata: string = \"\";\r\n private _history: List<number | string> = new List(); // In order to allow recursive parsing we save prev data\r\n\r\n /// <summary>\r\n ///\r\n /// </summary>\r\n /// <param name=\"data\"></param>\r\n constructor(data: string = NString.Empty) {\r\n this.setXMLdata(data);\r\n this.setCurrIndex(0);\r\n }\r\n\r\n /// <summary> parse a string according to a set of delimiters and return the result in a vector</summary>\r\n /// <param name=\"str\">the String which need be parted </param>\r\n /// <param name=\"delimiter\">the delimiter which part different parts of str </param>\r\n /// <param name=\"isMagicXML\">is needed tokenizer working on Magic XML, so the \"=\" sign will be delited in the end of every first token </param>\r\n /// <returns> tmpVector dynamically array, which consist tokens in every element, every token is String </returns>\r\n static getTokens(str: string, delimiter: string, isMagicXML: boolean = true): List<string> {\r\n let tokensVec: List<string> = new List<string>();\r\n let token: string = null;\r\n\r\n if (isMagicXML) {\r\n str = str.trim();\r\n }\r\n\r\n let strTok: string[] = str.split(delimiter.charAt(0));\r\n\r\n for (let i: number = 0; i < strTok.length; i = i + 1) {\r\n // Split in C# creates a last empty string token if the source string ends with\r\n // the delimiter or if the string is empty (as opposed to Java that will ignore it)\r\n // therefore we have to break this loop if such case occurs.\r\n if (isMagicXML && i === strTok.length - 1 && strTok.length % 2 === 1) {\r\n break;\r\n }\r\n\r\n token = strTok[i];\r\n if (isMagicXML) {\r\n // the 1st token in the pair comes with \"=\", remove it.\r\n if (i % 2 === 0) {\r\n token = token.trim();\r\n if (token.endsWith(\"=\")) {\r\n token = token.substr(0, token.length - 1);\r\n }\r\n }\r\n // 2nd token in the pair can be an empty string, in that case set it to \" \".\r\n else if (token === \"\")\r\n token = \" \";\r\n }\r\n\r\n if (token === null)\r\n throw new ApplicationException(\"in ClientManager.Instance.XMLParser.getTokens() null token value\");\r\n\r\n tokensVec.push(token);\r\n }\r\n\r\n return tokensVec;\r\n }\r\n\r\n /// <summary>unscape from:\r\n /// {\"&amp;\",\\\\, \\q, \\o, \\l, \\g, \\e, \\\\r, \\\\n}, to:\r\n /// {\"&\", \\, \", ', <, >, =, \\r, \\n}\r\n /// <param name=\"str\">String to be converted</param>\r\n /// <returns>unescaped string</returns>\r\n public static unescape(str: string): string\r\n {\r\n let unescapedString: StringBuilder = new StringBuilder(str.length);\r\n\r\n for (let i: number = 0; i < str.length; i++) {\r\n if (str[i] !== '\\\\') {\r\n unescapedString.Append(str[i]);\r\n continue;\r\n }\r\n\r\n switch (str[++i]) {\r\n case 'q':\r\n unescapedString.Append('\\\"');\r\n break;\r\n case 'o':\r\n unescapedString.Append('\\'');\r\n break;\r\n case 'l':\r\n unescapedString.Append('<');\r\n break;\r\n case 'g':\r\n unescapedString.Append('>');\r\n break;\r\n case 'e':\r\n unescapedString.Append('=');\r\n break;\r\n case 'r':\r\n unescapedString.Append('\\r');\r\n break;\r\n case 'n':\r\n unescapedString.Append('\\n');\r\n break;\r\n default:\r\n unescapedString.Append(str[i]);\r\n break;\r\n }\r\n }\r\n return (unescapedString.ToString());\r\n }\r\n\r\n /// <summary>escape from:\r\n /// {\\, \", ', <, >, =, \\r, \\n}, to:\r\n /// {\\\\, \\q, \\0, \\l, \\g, \\e, \\\\r, \\\\n}\r\n /// <param name=\"str\">String to be converted</param>\r\n /// <returns>escaped string</returns>\r\n public static escape(str: string): string\r\n {\r\n let escapedString: StringBuilder = new StringBuilder(str.length * 2);\r\n\r\n for (let i: number = 0; i < str.length; i++) {\r\n switch (str[i]) {\r\n case '\\\\':\r\n escapedString.Append(\"\\\\\\\\\");\r\n break;\r\n case '\"':\r\n escapedString.Append(\"\\\\q\");\r\n break;\r\n case '\\'':\r\n escapedString.Append(\"\\\\o\");\r\n break;\r\n case '<':\r\n escapedString.Append(\"\\\\l\");\r\n break;\r\n case '>':\r\n escapedString.Append(\"\\\\g\");\r\n break;\r\n case '=':\r\n escapedString.Append(\"\\\\e\");\r\n break;\r\n case '\\r':\r\n escapedString.Append(\"\\r\");\r\n break;\r\n case '\\n':\r\n escapedString.Append(\"\\n\");\r\n break;\r\n default:\r\n escapedString.Append(str[i]);\r\n break;\r\n }\r\n }\r\n\r\n return (escapedString.ToString());\r\n }\r\n\r\n /// <summary>\r\n /// here we only need to take care of \"&\" so that Sax parser will be able to handle url\r\n /// </summary>\r\n /// <param name=\"str\"></param>\r\n /// <returns></returns>\r\n static escapeUrl(str: string): string {\r\n return NString.Replace(str, \"&\", \"&amp;\");\r\n }\r\n\r\n /// <summary>get next tag name from current index in XML string</summary>\r\n /// <returns> next tag name </returns>\r\n getNextTag(): string {\r\n if (this._xmLdata.length - this._currIndex <= 1) {\r\n return null; // end of XML string\r\n }\r\n\r\n for (let tmpIndx: number = this._currIndex + 1; tmpIndx < this._xmLdata.length; tmpIndx++) {\r\n let tmpChar: string = this._xmLdata[tmpIndx];\r\n\r\n // a letter starts an element and ends with \" \". \"/\" starts an element closing and ends with '>'.\r\n if (NChar.IsLetter(tmpChar) || tmpChar === '/') {\r\n let endOfTag: number = NString.IndexOfAny(this._xmLdata, XmlParser.endOfNameChar, tmpIndx, this._xmLdata.length - tmpIndx);\r\n\r\n if (endOfTag === -1)\r\n return null;\r\n else\r\n return this._xmLdata.substr(tmpIndx, endOfTag - tmpIndx);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /// <summary>Substring of XMLstring</summary>\r\n /// <returns> substring of XML string -from currIndex to endContext </returns>\r\n getXMLsubstring(endContext: number): string {\r\n return this._xmLdata.substr(this._currIndex, endContext - this._currIndex);\r\n }\r\n\r\n /// <summary>get current element value</summary>\r\n /// <returns> element's value </returns>\r\n GetCurrentElementValue(): string {\r\n this.setCurrIndex2EndOfTag();\r\n let endContext: number = this.getXMLdata().indexOf(XMLConstants.TAG_OPEN, this.getCurrIndex());\r\n // read value of xml element\r\n let value: string = this.getXMLsubstring(endContext);\r\n this.setCurrIndex2EndOfTag();\r\n return value;\r\n }\r\n\r\n /// <summary>set current index (on parsing time) to the end of current tag</summary>\r\n setCurrIndex2EndOfTag(): void {\r\n this._currIndex = this._xmLdata.indexOf(XMLConstants.TAG_CLOSE, this._currIndex) + 1;\r\n }\r\n\r\n /// <summary>get int from string at parsing time</summary>\r\n static getInt(valueStr: string): number {\r\n return NNumber.Parse(valueStr.trim());\r\n }\r\n\r\n /// <summary>get boolean from string at parsing time</summary>\r\n static getBoolean(valueStr: string): boolean {\r\n return valueStr[0] === '1';\r\n }\r\n\r\n /// <summary>get/set functions 4 XMLstring & currIndex, for parser</summary>\r\n getCurrIndex(): number {\r\n return this._currIndex;\r\n }\r\n\r\n getXMLdata(): string {\r\n return this._xmLdata;\r\n }\r\n\r\n add2CurrIndex(add: number): void {\r\n this._currIndex = this._currIndex + add;\r\n }\r\n\r\n setCurrIndex(index: number): void {\r\n this._currIndex = index;\r\n }\r\n\r\n setXMLdata(data: string): void {\r\n if (data !== null)\r\n this._xmLdata = data.trim();\r\n else {\r\n this._xmLdata = null;\r\n this.setCurrIndex(0);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// prepare the parser to read from the newXmlString\r\n /// </summary>\r\n /// <param name=\"newXmlString\"></param>\r\n PrepareFormReadString(newXmlString: string): void {\r\n this.setXMLdata(newXmlString);\r\n this.setCurrIndex(0);\r\n }\r\n\r\n /// <summary> push the current parsing information into the history stack</summary>\r\n push(): void {\r\n this._history.push(this._currIndex);\r\n this._history.push(this._xmLdata);\r\n }\r\n\r\n /// <summary> restore the previous parsing information from the history stack</summary>\r\n pop(): void {\r\n let count: number = this._history.length;\r\n\r\n this._xmLdata = <string>this._history.get_Item(count - 1);\r\n this._currIndex = <number>this._history.get_Item(count - 2);\r\n\r\n this._history.SetSize(count - 2);\r\n }\r\n\r\n /// <summary>gets a table cache xml and set the xmlparser data and index accordingly</summary>\r\n loadTableCacheData(data: string): void {\r\n this.setXMLdata(data);\r\n this.setCurrIndex(0);\r\n }\r\n\r\n /// <summary>\r\n /// Reads the XML from the element at the current position until the end of\r\n /// the element, returning the contents as a string. This allows deferring the\r\n /// processing of an element until the time is right to do so.<br/>\r\n /// The returned string contains the element tag itself. For example:<br/>\r\n /// - Assuming that the current element is 'element1', with 2 'innerElement' elements, the\r\n /// resulting string will look like this:<br/>\r\n /// <element1>\r\n /// <innerelement/>\r\n /// <innerelement/>\r\n /// </element1>\r\n ///\r\n /// This makes the result valid for processing by this XML parser.\r\n /// </summary>\r\n /// <returns></returns>\r\n ReadToEndOfCurrentElement(): string {\r\n // Get the current tag according to the value of _currIndex.\r\n let currentTag: string = this.getNextTag();\r\n let currentTagIndex: number = this._xmLdata.indexOf(XMLConstants.TAG_OPEN + currentTag, this.getCurrIndex());\r\n\r\n // Find the end of the element's block in the XML.\r\n // find next open tag\r\n let nextOpenTagIndex: number = this._xmLdata.indexOf(XMLConstants.TAG_OPEN, currentTagIndex + 1);\r\n if (nextOpenTagIndex === -1)\r\n nextOpenTagIndex = this._xmLdata.length;\r\n\r\n // find a close tag BEFORE the next open tag\r\n let elementEndIndex: number = NString.IndexOf(this._xmLdata, XMLConstants.TAG_TERM, this.getCurrIndex(), nextOpenTagIndex - this.getCurrIndex());\r\n if (elementEndIndex === -1)\r\n // close tag was not found in range - we have inner elements, look for the full close tag\r\n elementEndIndex = this._xmLdata.indexOf(\"/\" + currentTag, this.getCurrIndex()) + currentTag.length + XMLConstants.TAG_TERM.length;\r\n else\r\n elementEndIndex = elementEndIndex + XMLConstants.TAG_TERM.length;\r\n\r\n // Copy the element data so it can be returned.\r\n let elementBlock: string = this.getXMLsubstring(elementEndIndex);\r\n\r\n // Move the parser to the end of the element block.\r\n this.setCurrIndex(elementEndIndex);\r\n\r\n return elementBlock;\r\n }\r\n\r\n ReadContentOfCurrentElement(): string {\r\n // Get the current tag according to the value of _currIndex.\r\n let currentTag: string = this.getNextTag();\r\n\r\n // Find the end of the element's block in the XML.\r\n let elementEndIndex: number = this._xmLdata.indexOf(\"</\" + currentTag + \">\", this.getCurrIndex());\r\n\r\n if (elementEndIndex === -1)\r\n // Can't find the end of the current element - either XML is faulty or the element is empty.\r\n return NString.Empty;\r\n\r\n // Move to the end of the opening tag\r\n this.setCurrIndex2EndOfTag();\r\n\r\n // Copy the content of the element (from the end of the opening tag to the beginning of the closing tag).\r\n let elementBlock: string = this.getXMLsubstring(elementEndIndex);\r\n\r\n // Move the parser to the end of the element block.\r\n this.setCurrIndex(elementEndIndex);\r\n this.setCurrIndex2EndOfTag();\r\n\r\n return elementBlock;\r\n }\r\n\r\n /// <summary>\r\n /// Generates a string that visualizes the XML parser state (e.g. for debug watch list.)<br/>\r\n /// The method will show the XML data, trimming it to 20 characters before the\r\n /// current position (_currIndex) and up to 50 characters after the current position.\r\n /// The current position itself will be marked with a marker that looks like:\r\n /// |-{current index}-| <br/>\r\n /// The marker will be placed immediately before _xmlData[_currIndex].\r\n /// </summary>\r\n /// <param name=\"headCharCount\">Number of characters to show before the current position marker.</param>\r\n /// <param name=\"tailCharCount\">Number of characters to show after the current position marker.</param>\r\n /// <returns></returns>\r\n toString(): string;\r\n toString(headCharCount: number, tailCharCount: number): string;\r\n toString(headCharCount?: number, tailCharCount?: number): string {\r\n if (arguments.length === 0) {\r\n return this.ToString_0();\r\n }\r\n return this.ToString_1(headCharCount, tailCharCount);\r\n }\r\n\r\n /// <summary>\r\n /// Generates a string that visualizes the XML parser state (e.g. for debug watch list.)<br/>\r\n /// The method will show the XML data, trimming it to 20 characters before the\r\n /// current position (_currIndex) and up to 50 characters after the current position.\r\n /// The current position itself will be marked with a marker that looks like:\r\n /// |-{current index}-| <br/>\r\n /// The marker will be placed immediately before _xmlData[_currIndex].\r\n /// </summary>\r\n /// <returns></returns>\r\n private ToString_0(): string {\r\n return this.toString(20, 50);\r\n }\r\n\r\n /// <summary>\r\n /// Generates a string that visualizes the XML parser state (e.g. for debug watch list.)<br/>\r\n /// The method will show the XML data, trimming it to headCharCount characters before the\r\n /// current position (_currIndex) and up to tailCharCount characters after the current position.\r\n /// The current position itself will be marked with a marker that looks like:\r\n /// |-{current index}-| <br/>\r\n /// The marker will be placed immediately before _xmlData[_currIndex].\r\n /// </summary>\r\n /// <param name=\"headCharCount\">Number of characters to show before the current position marker.</param>\r\n /// <param name=\"tailCharCount\">Number of characters to show after the current position marker.</param>\r\n /// <returns></returns>\r\n private ToString_1(headCharCount: number, tailCharCount: number): string {\r\n let markerPosition: number = Math.min(this._currIndex, this._xmLdata.length);\r\n let segmentStartIndex: number = Math.max(0, markerPosition - headCharCount);\r\n let segmentEndIndex: number = Math.min(this._xmLdata.length, markerPosition + tailCharCount);\r\n\r\n let headLength: number = markerPosition - segmentStartIndex;\r\n let tailLength: number = segmentEndIndex - markerPosition;\r\n\r\n let segment: StringBuilder = new StringBuilder();\r\n if (segmentStartIndex > 0)\r\n segment.Append(\"...\");\r\n\r\n if (headLength > 0)\r\n segment.Append(this._xmLdata, segmentStartIndex, headLength);\r\n\r\n segment.Append(\"|-{\").Append(this._currIndex).Append(\"}-|\");\r\n\r\n if (tailLength > 0)\r\n segment.Append(this._xmLdata, this._currIndex, tailLength);\r\n\r\n if (segmentEndIndex < this._xmLdata.length)\r\n segment.Append(\"...\");\r\n\r\n return segment.ToString();\r\n }\r\n\r\n SkipXMLElement(): void {\r\n let endContext: number = this.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.getCurrIndex());\r\n if (endContext !== -1 && endContext < this.getXMLdata().length) {\r\n this.setCurrIndex2EndOfTag();\r\n }\r\n }\r\n}\r\n"],"names":[],"mappings":"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;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;CAC7F,CAAC;AAGsB,GAAA,CAAA,QAAQ,GAAiB;IAC/C,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;IAC1G,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC;IAC3G,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;IAChH,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;IAC5G,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;IAC7G,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;IAC7G,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IAC5G,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC;IAC3H,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC;IAC7H,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAClH,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACtG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;IAC7G,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;IACnH,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IAClH,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;IACzH,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;IAC3H,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;IAC1G,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;IAC3G,IAAI,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;IAChI,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;IACpH,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC;IACzH,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;IACnH,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC;IAChH,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC;IACtH,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;IACxG,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACjG,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC/G,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC9G,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACjH,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAChH,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC/G,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAChH,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACjH,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC7G,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC/G,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAChH,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC7G,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAClH,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC7G,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAChH,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC/G,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC3G,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1G,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;CACnD;;ACnPH,MAAM,cAAc,GAAW,QAAQ,CAAC;AACxC,MAAM,UAAU,GAAW,QAAQ,CAAC;AACpC,MAAM,WAAW,GAAW,QAAQ,CAAC;AACrC,MAAM,UAAU,GAAW,CAAC,CAAC;AAC7B,MAAM,mBAAmB,GAAW,QAAQ,CAAC;AACtC,MAAM,UAAU,GAAW,EAAE;AAC7B,MAAM,UAAU,GAAW,EAAE;AACpC,MAAM,UAAU,GAAW,CAAC,CAAC;AACtB,MAAM,SAAS,GAAW,EAAE;MAEtB,OAAO,CAAA;AAIlB,IAAA,OAAO,QAAQ,CAAC,GAAW,EAAE,GAAW,EAAA;AACtC,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE;gBACpB,MAAM,GAAG,CAAC,CAAC,CAAC;AACZ,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;AACD,YAAA,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACtC,gBAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACf,aAAA;AACF,SAAA;QACD,MAAM,GAAG,GAAG,CAAC;AACb,QAAA,OAAO,MAAM,CAAC;KACf;IAED,OAAO,OAAO,CAAC,IAAY,EAAE,SAAiB,EAAE,GAAW,EAAE,QAAgB,EAAE,GAAW,EAAA;QACxF,IAAI,aAAa,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QACxE,IAAI,eAAe,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE;AACnE,YAAA,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;AACxD,SAAA;AACI,aAAA;AACH,YAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD,SAAA;AACD,QAAA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhD,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACpC,YAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,SAAA;AACD,QAAA,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAID,OAAO,MAAM,CAAC,IAAS,EAAE,SAAiB,EAAE,GAAQ,EAAE,kBAA0B,EAAE,KAAa,EAAA;AAC7F,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE;AAC1T,YAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAC1E,SAAA;AACD,QAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;KACnE;IAWO,OAAO,QAAQ,CAAC,IAAY,EAAE,SAAiB,EAAE,GAAW,EAAE,QAAgB,EAAE,KAAa,EAAA;AACnG,QAAA,IAAI,aAAa,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEhF,QAAA,IAAI,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE;AACjC,YAAA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC9D,SAAA;AACI,aAAA;YACH,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,SAAA;QACD,IAAI,IAAI,GAAW,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;QACnD,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,YAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;AACtD,SAAA;AACD,QAAA,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEO,OAAO,QAAQ,CAAC,IAAc,EAAE,SAAiB,EAAE,GAAa,EAAE,QAAgB,EAAE,KAAa,EAAA;AACvG,QAAA,OAAO,KAAK,GAAG,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;YACpE,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,YAAA,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;AACnB,SAAA;KACF;IAID,OAAO,MAAM,CAAC,IAAS,EAAE,SAAiB,EAAE,KAAa,EAAE,OAAe,EAAA;QACxE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE;AACpP,YAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1D,SAAA;QACD,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;KACnD;IAUO,OAAO,QAAQ,CAAC,IAAY,EAAE,SAAiB,EAAE,KAAa,EAAE,OAAe,EAAA;AACrF,QAAA,IAAI,KAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACxE,OAAO,OAAO,GAAG,CAAC,EAAE;AAClB,YAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpB,YAAA,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;IAEO,OAAO,QAAQ,CAAC,IAAc,EAAE,SAAiB,EAAE,KAAa,EAAE,OAAe,EAAA;QACvF,OAAO,OAAO,GAAG,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC;AAC1B,YAAA,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;AACvB,SAAA;KACF;AAED,IAAA,OAAO,MAAM,CAAC,GAAW,EAAE,MAAc,EAAA;QACvC,IAAI,IAAI,GAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACvC,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,MAAM,GAAG,IAAI,CAAC;AACf,SAAA;AACI,aAAA;AACH,YAAA,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAQD,OAAO,aAAa,CAAC,IAAmB,EAAA;QAEtC,IAAI,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACpD;IAKD,OAAO,KAAK,CAAC,GAAW,EAAA;QACtB,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAC1C;AAOD,IAAA,OAAO,aAAa,CAAC,GAAW,EAAE,aAAsB,EAAA;AACtD,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAClE,MAAM,GAAG,GAAG,CAAC;AACd,SAAA;AACI,aAAA;AACH,YAAA,IAAI,GAAG,GAAW,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,YAAA,IAAI,aAAa,EAAE;gBAEjB,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAQ,EAAE;AACnF,oBAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACf,iBAAA;AACF,aAAA;AACI,iBAAA;gBACH,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACnC,oBAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACf,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAEd,YAAA,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE;gBACpB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7B,aAAA;AACI,iBAAA;gBACH,MAAM,GAAG,GAAG,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAKD,OAAO,KAAK,CAAC,GAAW,EAAA;AACtB,QAAA,IAAI,MAAM,GAAW,GAAG,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,GAAW,CAAC,CAAC;AAClB,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;YAChC,MAAM,GAAG,GAAG,CAAC;AACd,SAAA;AACI,aAAA;YACH,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAS;AAC1C,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACX,aAAA;YAED,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,gBAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,aAAA;YACD,MAAM,GAAG,GAAG,CAAC;AACd,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAYD,IAAA,OAAO,qBAAqB,CAAC,GAAW,EAAE,WAAmB,EAAA;AAC3D,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC/B,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC7B,YAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACtD,SAAA;AACD,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,MAAM,GAAG,IAAI,CAAC;AACf,SAAA;AACI,aAAA;YACH,MAAM,GAAG,GAAG,CAAC;AACd,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAOD,IAAA,OAAO,MAAM,CAAC,GAAW,EAAE,GAAW,EAAA;AACpC,QAAA,IAAI,MAAM,GAAW,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEtC,IAAI,MAAM,GAAG,CAAC,EAAE;AACd,YAAA,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,EAAE;gBAC7E,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxD,aAAA;AACD,YAAA,IAAI,aAAa,GAAkB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;AAC1D,YAAA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,YAAA,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAYD,IAAA,OAAO,QAAQ,CAAC,MAAc,EAAE,KAAoB,EAAA;AAalD,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAiC5B;AAQD,IAAA,OAAO,gBAAgB,CAAC,GAAW,EAAE,SAAiB,EAAA;QACpD,IAAI,aAAa,GAAkB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAC7E,QAAA,KAAK,IAAI,IAAI,GAAW,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE;YAC7D,IAAI,OAAO,GAAW,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,MAAM,GAAW,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1C,YAAA,OAAO,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE;AAChC,gBAAA,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;AACvB,aAAA;AACD,YAAA,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;KAC/C;AAID,IAAA,OAAO,gBAAgB,CAAC,GAAW,EAAE,IAAS,EAAE,EAAO,EAAA;AACrD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE;YAC1K,OAAO,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAClD,SAAA;QACD,OAAO,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;KAClD;AAOO,IAAA,OAAO,kBAAkB,CAAC,GAAW,EAAE,IAAY,EAAE,EAAU,EAAA;QACrE,IAAI,UAAU,GAAW,CAAC,CAAC;AAC3B,QAAA,IAAI,WAAmB,CAAC;AACxB,QAAA,IAAI,MAAc,CAAC;AAEnB,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;YAC5C,MAAM,GAAG,GAAG,CAAC;AACd,SAAA;AACI,aAAA;YACH,IAAI,aAAa,GAAkB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjE,YAAA,OAAO,WAAW,KAAK,CAAC,CAAC,EAAE;AACzB,gBAAA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5E,gBAAA,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxC,UAAU,GAAG,WAAW,CAAC;gBACzB,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC7C,aAAA;YACD,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7C,YAAA,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;AACnC,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAOO,IAAA,OAAO,kBAAkB,CAAC,GAAW,EAAE,IAAc,EAAE,EAAY,EAAA;QACzE,IAAI,UAAU,GAAW,CAAC,CAAC;QAC3B,IAAI,QAAQ,GAAW,CAAC,CAAC;AACzB,QAAA,IAAI,QAAQ,GAAa,IAAI,CAAC,KAAK,EAAE,CAAC;AACtC,QAAA,IAAI,WAAmB,CAAC;AACxB,QAAA,IAAI,QAAQ,GAAqB,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjD,QAAA,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACnE,QAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC1B,IAAI,WAAW,KAAK,CAAC,CAAC;AACpB,YAAA,OAAO,GAAG,CAAC;AAEb,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,MAAM,GAAkB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1D,QAAA,OAAO,WAAW,KAAK,CAAC,CAAC,EAAE;AACzB,YAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,YAAA,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YACzC,UAAU,GAAG,WAAW,CAAC;AACzB,YAAA,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACnE,YAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;AACzB,SAAA;QAAA,CAAC;QACJ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACtC,QAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;AAE3B,QAAA,OAAO,MAAM,CAAC;KACf;IAUO,OAAO,OAAO,CAAC,GAAW,EAAE,OAAiB,EAAE,MAAc,EAAE,QAA0B,EAAA;AAC/F,QAAA,IAAI,SAAS,GAAW,CAAC,CAAC,CAAC;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;AAC1B,gBAAA,IAAI,YAAY,GAAW,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAE3D,gBAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACvB,oBAAA,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACnB,iBAAA;AACI,qBAAA;oBACH,IAAI,YAAY,GAAG,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;wBAChD,SAAS,GAAG,YAAY,CAAC;AACzB,wBAAA,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AACpB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;YAClB,MAAM,GAAG,SAAS,CAAC;AACpB,SAAA;AACI,aAAA;AACH,YAAA,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,CAAC,CAAC,CAAC;AACb,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAWD,OAAO,mBAAmB,CAAC,UAAkB,EAAE,KAAa,EAAE,UAAkB,EAAE,GAAW,EAAA;AAC3F,QAAA,IAAI,QAAQ,GAAW,KAAK,CAAC,MAAM,CAAC;QACpC,IAAI,YAAY,GAAW,CAAC,CAAC;QAC7B,IAAI,SAAS,GAAW,UAAU,CAAC;QAEnC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,IAAI,IAAI,GAAW,CAAC,CAAC;YACrB,OAAO,IAAI,GAAG,UAAU,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;gBAC/C,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACvF,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACjB,aAAA;AAED,YAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;AACvB,gBAAA,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC;AAClJ,aAAA;AACF,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAKD,IAAA,OAAO,mBAAmB,CAAC,MAAW,EAAE,IAAS,EAAA;AAC/C,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE;YAClI,OAAO,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpD,SAAA;AACD,QAAA,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC7C;AAQD,IAAA,OAAO,qBAAqB,CAAC,MAAc,EAAE,IAAY,EAAA;AACvD,QAAA,IAAI,MAAM,GAAa;YACrB,IAAI,EAAE,GAAG,EAAE,GAAG;SACf,CAAC;AACF,QAAA,IAAI,MAAM,GAAa;YACrB,MAAM,EAAE,KAAK,EAAE,KAAK;SACrB,CAAC;AACF,QAAA,IAAI,MAAM,GAAa;YACrB,cAAc,EAAE,WAAW,EAAE,UAAU;SACxC,CAAC;AACF,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;gBACb,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM;AACR,YAAA;gBACE,MAAM,GAAG,MAAM,CAAC;gBAChB,MAAM;AACT,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAOO,IAAA,OAAO,qBAAqB,CAAC,MAAoB,EAAE,IAAY,EAAA;QACrE,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC;AACnC,YAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC7C,IAAI,OAAO,GAAW,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzC,gBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAClE,aAAA;AACF,SAAA;KACF;IAQD,OAAO,aAAa,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,IAAI,GAAa;YACnB,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SAClC,CAAC;AACF,QAAA,IAAI,EAAE,GAAa;YACjB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;SAC3C,CAAC;QACF,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;KACnD;IAQD,OAAO,cAAc,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,IAAI,GAAa;YACnB,IAAI,EAAE,IAAI,EAAE,IAAI;SACjB,CAAC;AACF,QAAA,IAAI,EAAE,GAAa;YACjB,KAAK,EAAE,KAAK,EAAE,KAAK;SACpB,CAAC;QACF,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;KACnD;AAQD,IAAA,OAAO,WAAW,CAAC,CAAS,EAAE,GAAW,EAAA;QACvC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACzB;IAOD,OAAO,mBAAmB,CAAC,OAAe,EAAA;AACxC,QAAA,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACtB,YAAA,IAAI,GAAG,GAAQ,IAAI,GAAG,EAAE,CAAC;AACzB,YAAA,IAAI,SAAS,GAAkB,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;AACrD,YAAA,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC9B,YAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAQD,IAAA,OAAO,kBAAkB,CAAC,IAAc,EAAE,IAAc,EAAA;AACtD,QAAA,IAAI,MAAe,CAAC;AACpB,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;YAClC,MAAM,GAAG,IAAI,CAAC;AACf,SAAA;AACI,aAAA;AACH,YAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;gBAClC,MAAM,GAAG,KAAK,CAAC;AAChB,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;oBAC/B,MAAM,GAAG,KAAK,CAAC;AAChB,iBAAA;AACI,qBAAA;AACH,oBAAA,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAW,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE;wBAC1E,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG;4BACjC,MAAM,GAAG,KAAK,CAAC;AACf,4BAAA,OAAO,MAAM,CAAC;AACf,yBAAA;AACF,qBAAA;oBACD,MAAM,GAAG,IAAI,CAAC;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAQD,IAAA,OAAO,yBAAyB,CAAC,GAAW,EAAE,GAAW,EAAE,MAAc,EAAA;QACvE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEjC,IAAI,OAAO,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAI,MAAM,GAAkB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;AACnD,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1C,YAAA,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACZ,MAAM,IAAI;AAAG,oBAAA;wBACX,IAAI,cAAc,GAAY,IAAI,CAAC;wBAGnC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;4BAC5D,cAAc,GAAG,KAAK,CAAC;wBACzB,IAAI,OAAO,IAAI,CAAC,cAAc;4BAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxB,OAAO,GAAG,CAAC,OAAO,CAAC;AACpB,qBAAA;oBACC,MAAM;gBACR,MAAM,GAAG;AACP,oBAAA,IAAI,OAAO;wBACT,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,yBAAA;wBACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,qBAAA;oBACD,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtB,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;AACR,gBAAA;oBACE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtB,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;AACT,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,GAAW,MAAM,CAAC,QAAQ,EAAE,CAAC;AACrC,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACvD;IAOD,OAAO,oBAAoB,CAAC,MAAc,EAAA;QACxC,IAAI,iBAAiB,GAAW,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5B,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAE7E,QAAA,OAAO,iBAAiB,CAAC;KAC1B;IAOD,OAAO,mBAAmB,CAAC,MAAc,EAAA;AACvC,QAAA,IAAI,MAAiB,CAAC;AACtB,QAAA,IAAI,gBAAgB,GAAkB,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAC;YAC7B,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEpD,YAAA,KAAK,IAAI,CAAC,GAAU,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAC7C;gBACE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,gBAAA,CAAC,EAAE,CAAC;AACL,aAAA;AACF,SAAA;AAID,QAAA,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KACpC;;AA1rBc,OAAc,CAAA,cAAA,GAAW,IAAI;;MCMjC,IAAI,CAAA;IAOf,OAAO,eAAe,CAAC,SAAoB,EAAA;AACzC,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC/B,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KACnC;IAOD,OAAO,YAAY,CAAC,SAAqB,EAAA;QACvC,IAAI,UAAU,GAAc,IAAI,CAAC;QACjC,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,UAAU,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACvD,UAAU,CAAC,CAAC,CAAC,GAAW,SAAS,CAAC,CAAC,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;IAOD,OAAO,WAAW,CAAC,UAAqB,EAAA;QACtC,IAAI,SAAS,GAAe,IAAI,CAAC;QACjC,IAAI,UAAU,KAAK,IAAI,EAAE;YACvB,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9C,YAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxD,SAAS,CAAC,CAAC,CAAC,GAAW,UAAU,CAAC,CAAC,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAOD,IAAA,OAAO,gBAAgB,CAAC,MAAkB,EAAE,WAAuB,EAAE,aAAqB,EAAA;QACxF,IAAI,MAAM,CAAC,MAAM,IAAI,aAAa,IAAI,WAAW,CAAC,MAAM,IAAI,aAAa,EAAE;YACzE,KAAK,IAAI,GAAG,GAAW,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE;gBACpD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC;AAClC,oBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACF,SAAA;;AAEC,YAAA,OAAO,KAAK,CAAC;AAEf,QAAA,OAAO,IAAI,CAAC;KACb;AASD,IAAA,OAAO,OAAO,CAAC,MAAc,EAAE,IAAY,EAAA;AACzC,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,MAAM,IAAI,CAAC,EAAE;AACf,YAAA,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;AACzB,SAAA;AACI,aAAA;AACH,YAAA,MAAM,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAMD,IAAA,OAAO,qBAAqB,GAAA;AAE1B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,kBAAkB,IAAI,KAAK,CAAC,CAAC;KACtE;AAQD,IAAA,OAAO,gBAAgB,CAAC,QAAkB,EAAE,QAAkB,EAAA;QAC5D,IAAI,QAAQ,GAAY,KAAK,CAAC;QAC9B,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,QAAQ,GAAG,IAAI,CAAC;AACjB,SAAA;AACI,aAAA;AACH,YAAA,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC1C,gBAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AACvC,oBAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACtD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;4BAC/B,MAAM;AACP,yBAAA;wBACD,QAAQ,GAAG,IAAI,CAAC;AACjB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;IAOD,OAAO,uBAAuB,CAAC,QAAkB,EAAA;AAC/C,QAAA,IAAI,IAAI,GAAkB,IAAI,aAAa,EAAE,CAAC;AAC9C,QAAA,KAAK,IAAI,GAAG,GAAW,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAC9D,YAAA,IAAI,KAAK,GAAW,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClC,YAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;KACxB;IAOD,OAAO,WAAW,CAAC,mBAA2B,EAAA;AAC5C,QAAA,IAAI,QAAQ,GAAa,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;AAE9C,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE;YAC/C,IAAI,IAAI,GAAa,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpD,QAAQ,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,MAAM,CAAC,CAAC;AAE1C,YAAA,IAAI,MAAM,GAAqB,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAA,KAAK,IAAI,IAAI,GAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE;gBAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACrC,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAC/B,aAAA;AACF,SAAA;AAED,QAAA,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,QAAQ,CAAC,QAAgB,EAAA;QAC9B,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KAClD;AACF;;MC9KY,MAAM,CAAA;AAQjB,IAAA,OAAO,MAAM,CAAC,SAAc,EAAE,yBAA+B,EAAE,QAAmB,EAAA;AAChF,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;AAE1D,aAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,yBAAyB,EAAE,QAAQ,CAAC,CAAC;;AAGvE,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACrC;AASO,IAAA,OAAO,QAAQ,CAAC,GAAW,EAAE,QAAkB,EAAA;QACrD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC5C;AAUO,IAAA,OAAO,QAAQ,CAAC,GAAW,EAAE,eAAwB,EAAE,QAAkB,EAAA;AAC/E,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC;AACf,SAAA;AACI,aAAA;YACH,IAAI,GAAG,KAAK,EAAE,EAAE;gBACd,MAAM,GAAG,GAAG,CAAC;AACd,aAAA;AACI,iBAAA;gBACH,IAAI;AACF,oBAAA,IAAI,QAAQ,GAAa,mBAAmB,CAAC,UAAU,CAAC;oBACxD,IAAI,SAAS,GAAa,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAChE,oBAAA,IAAI,EAAE,GAAe,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,oBAAA,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC/C,iBAAA;AACD,gBAAA,OAAO,EAAE,EAAE;AACT,oBAAA,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5C,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAOO,OAAO,QAAQ,CAAC,IAAgB,EAAA;QAEtC,IAAI,IAAI,KAAK,IAAI;AACf,YAAA,OAAO,IAAI,CAAC;QAEd,IAAI,IAAI,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,IAAI,GAAW,CAAC,CAAC;QACrB,IAAI,IAAI,GAAW,CAAC,CAAC;AAGrB,QAAA,OAAO,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAS,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrH,YAAA,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAa,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACxH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,EAAU,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;AACnE,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACjB,SAAA;AAED,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAS,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,aAAA;AACF,SAAA;AAGD,QAAA,OAAO,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACjB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAKD,IAAA,OAAO,MAAM,CAAC,SAAc,EAAE,QAAmB,EAAA;AAC/C,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,WAAW,KAAK,MAAM,CAAC;AACpF,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAE/B,aAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;;AAG5C,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACrC;IAOO,OAAO,QAAQ,CAAC,GAAW,EAAA;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACjC;AAQO,IAAA,OAAO,QAAQ,CAAC,GAAW,EAAE,QAAkB,EAAA;AAErD,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC;AACf,SAAA;AACI,aAAA;YACH,IAAI,GAAG,KAAK,EAAE,EAAE;gBACd,MAAM,GAAG,GAAG,CAAC;AACd,aAAA;AACI,iBAAA;gBACH,IAAI;AACF,oBAAA,IAAI,QAAQ,GAAwB,mBAAmB,CAAC,UAAU,CAAC;AACnE,oBAAA,IAAI,KAAK,GAAe,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,oBAAA,IAAI,SAAS,GAAa,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC;AACpE,oBAAA,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,iBAAA;AACD,gBAAA,OAAO,EAAE,EAAE;AACT,oBAAA,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5C,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAOO,OAAO,QAAQ,CAAC,IAAgB,EAAA;QACtC,IAAI,IAAI,KAAK,IAAI;AACf,YAAA,OAAO,IAAI,CAAC;AAEd,QAAA,IAAI,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAC3C,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACjB,SAAA;AACD,QAAA,IAAI,IAAI,GAAe,IAAI,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAG1E,QAAA,KAAK,IAAI,GAAG,GAAW,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,SAAA;QAGD,IAAI,IAAI,GAAW,CAAC,CAAC;AACrB,QAAA,IAAI,IAAY,CAAC;AACjB,QAAA,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1F,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzE,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACjB,SAAA;AAED,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;AACjC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAExF,QAAA,OAAO,IAAI,CAAC;KACb;IAGD,OAAO,WAAW,CAAC,GAAW,EAAA;QAC5B,IAAI,GAAG,KAAK,IAAI;AACd,YAAA,OAAO,IAAI,CAAC;QACd,IAAI,GAAG,KAAK,EAAE;AACZ,YAAA,OAAO,GAAG,CAAC;AAEb,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KACxD;IAGD,OAAO,YAAY,CAAC,GAAW,EAAA;QAC7B,IAAI,GAAG,KAAK,IAAI;AACd,YAAA,OAAO,IAAI,CAAC;AAKd,QAAA,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG;AAC3B,YAAA,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI;AACF,YAAA,IAAI,QAAQ,GAAa,mBAAmB,CAAC,UAAU,CAAC;YACxD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,EAAE,EAAE;AACT,YAAA,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5C,SAAA;KACF;AAEO,IAAA,OAAO,gBAAgB,GAAA;QAC7B,OAAO,IAAI,UAAU,CAAC;AACpB,YAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1E,YAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACxF,YAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3F,YAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnB,SAAA,CAAC,CAAC;KAEJ;AAEO,IAAA,OAAO,gBAAgB,GAAA;AAC7B,QAAA,IAAI,MAAM,GAAe,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAE7C,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;;AApPc,MAAA,CAAA,aAAa,GAAe,MAAM,CAAC,gBAAgB,EAAE,CAAC;AACtD,MAAA,CAAA,aAAa,GAAe,MAAM,CAAC,gBAAgB,EAAE;;MCHzD,WAAW,CAAA;IActB,OAAO,wBAAwB,CAAC,aAAqB,EAAE,kBAA2B,EAAE,mBAA4B,EAAE,iBAA0B,EAAA;QAC1I,IAAI,QAAQ,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,QAAA,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC/C,QAAA,IAAI,WAAW,GAAW,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpF,IAAI,IAAI,GAAa,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACxD,QAAA,IAAI,IAAI,IAAY,WAAW,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,QAAA,IAAI,WAA0B,CAAC;QAC/B,IAAI,aAAqB,EAAE,KAAa,CAAC;AACzC,QAAA,IAAI,WAAW,GAAW,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;AAClE,QAAA,IAAI,UAAU,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YACpB,WAAW,GAAG,WAAW,CAAC;YAC1B,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACpD,IAAI,WAAW,KAAK,WAAW;AAC7B,gBAAA,KAAK,GAAG,aAAa,GAAG,EAAE,CAAC;AACxB,iBAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;AAC3B,gBAAA,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1C,gBAAA,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACjD,aAAA;AACI,iBAAA;AACH,gBAAA,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC;AACzE,gBAAA,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC;AAChF,aAAA;AACD,YAAA,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,gBAAA,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,gBAAA,IAAI,kBAAkB;oBACpB,KAAK,GAAG,WAAW,CAAC,yBAAyB,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,gBAAA,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC7C,gBAAA,IAAI,kBAAkB;oBACpB,aAAa,GAAG,WAAW,CAAC,yBAAyB,CAAC,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAC3F,aAAA;YACD,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACpC,gBAAA,WAAW,GAAG,IAAI,aAAa,EAAE,CAAC;AAClC,gBAAA,OAAO,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE;AACxD,oBAAA,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,IAAI;wBACtC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACrC,yBAAA,IAAI,YAAY,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC;AAChD,wBAAA,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,gBAAA,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,aAAA;AACD,YAAA,IAAI,mBAAmB,EAAE;gBACvB,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtD,gBAAA,IAAI,iBAAiB,EAAE;oBACrB,IAAI,IAAI,GAAW,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1C,oBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AACnB,wBAAA,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;;wBACjB,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7C,iBAAA;;AACI,oBAAA,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5B,aAAA;;AACI,gBAAA,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5B,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,OAAO,yBAAyB,CAAC,SAAwB,EAAA;QACvD,IAAI,CAAC,GAAW,CAAC,CAAC;QAClB,IAAI,SAAS,IAAI,IAAI,EAAE;AACrB,YAAA,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG;gBAC5B,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACjC,oBAAA,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;AACjE,wBAAA,CAAC,EAAE,CAAC;oBACN,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,iBAAA;;AACI,oBAAA,CAAC,EAAE,CAAC;AACV,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,SAAS,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE;KAC1D;AACF;;MCrFY,SAAS,CAAA;AA6FpB,IAAA,WAAA,GAAA;KAEC;;AA7Fe,SAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,SAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AAGjC,SAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,SAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,SAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AAGjC,SAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,SAAc,CAAA,cAAA,GAAW,GAAG,CAAC;AAC7B,SAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAC5B,SAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAElC,SAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,SAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,SAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,SAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,SAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,SAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,SAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,SAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAC1C,SAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAG1C,SAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,SAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,SAA0B,CAAA,0BAAA,GAAW,GAAG,CAAC;AACzC,SAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,SAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAEhC,SAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,SAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,SAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,SAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,SAAc,CAAA,cAAA,GAAG,GAAG,CAAC;AAGrB,SAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,SAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,SAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,SAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AAGjC,SAAA,CAAA,wBAAwB,GAAW,KAAK,CAAC,QAAQ,CAAC;AAClD,SAAA,CAAA,uBAAuB,GAAW,KAAK,CAAC,QAAQ,CAAC;AAGjD,SAAuB,CAAA,uBAAA,GAAW,MAAM,CAAC;AACzC,SAAyB,CAAA,yBAAA,GAAW,MAAM,CAAC;AAC3C,SAAsB,CAAA,sBAAA,GAAW,MAAM,CAAC;AACxC,SAAsB,CAAA,sBAAA,GAAW,MAAM,CAAC;AACxC,SAAqB,CAAA,qBAAA,GAAW,MAAM,CAAC;AACvC,SAAmB,CAAA,mBAAA,GAAW,MAAM,CAAC;AACrC,SAAyB,CAAA,yBAAA,GAAW,MAAM,CAAC;AAC3C,SAAoB,CAAA,oBAAA,GAAW,MAAM,CAAC;AACtC,SAAoB,CAAA,oBAAA,GAAW,MAAM,CAAC;AACtC,SAAsB,CAAA,sBAAA,GAAW,MAAM,CAAC;AACxC,SAAoB,CAAA,oBAAA,GAAW,MAAM,CAAC;AACtC,SAAmB,CAAA,mBAAA,GAAW,MAAM,CAAC;AACrC,SAAiB,CAAA,iBAAA,GAAW,MAAM,CAAC;AACnC,SAAoB,CAAA,oBAAA,GAAW,MAAM,CAAC;AAEtC,SAAoB,CAAA,oBAAA,GAAW,KAAK,CAAC;AACrC,SAAa,CAAA,aAAA,GAAW,SAAS,CAAC;AAClC,SAAc,CAAA,cAAA,GAAW,UAAU,CAAC;AACpC,SAAa,CAAA,aAAA,GAAW,SAAS,CAAC;AAGlC,SAAa,CAAA,aAAA,GAAW,eAAe,CAAC;AACxC,SAAc,CAAA,cAAA,GAAW,gBAAgB,CAAC;AAC1C,SAAe,CAAA,eAAA,GAAW,iBAAiB,CAAC;AAK5C,SAA6B,CAAA,6BAAA,GAAW,oBAAoB,CAAC;AAC7D,SAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,SAAY,CAAA,YAAA,GAAW,OAAO,CAAC;AAC/B,SAAS,CAAA,SAAA,GAAW,IAAI,CAAC;AACzB,SAAS,CAAA,SAAA,GAAW,IAAI,CAAC;AACzB,SAAS,CAAA,SAAA,GAAW,IAAI,CAAC;AACzB,SAAS,CAAA,SAAA,GAAW,IAAI,CAAC;AACzB,SAAoB,CAAA,oBAAA,GAAW,eAAe,CAAC;AAC/C,SAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,SAAc,CAAA,cAAA,GAAW,SAAS,CAAC;AACnC,SAAuB,CAAA,uBAAA,GAAW,kBAAkB,CAAC;AACrD,SAA2B,CAAA,2BAAA,GAAW,aAAa,CAAC;AAEpD,SAAa,CAAA,aAAA,GAAG,GAAG;;MC9FxB,YAAY,CAAA;AA6MvB,IAAA,WAAA,GAAA;KAEC;;AA9Me,YAAU,CAAA,UAAA,GAAW,KAAK,CAAC;AAC3B,YAAc,CAAA,cAAA,GAAW,MAAM,CAAC;AAEhC,YAAQ,CAAA,QAAA,GAAW,IAAI,CAAC;AACxB,YAAQ,CAAA,QAAA,GAAW,GAAG,CAAC;AACvB,YAAS,CAAA,SAAA,GAAW,GAAG,CAAC;AACxB,YAAc,CAAA,cAAA,GAAW,IAAI,CAAC;AAC9B,YAAS,CAAA,SAAA,GAAW,QAAQ,CAAC;AAC7B,YAAO,CAAA,OAAA,GAAW,IAAI,CAAC;AACvB,YAAO,CAAA,OAAA,GAAW,KAAK,CAAC;AAExB,YAAU,CAAA,UAAA,GAAW,IAAI,CAAC;AAE1B,YAAA,CAAA,qBAAqB,GAAW,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC;AACxG,YAAA,CAAA,WAAW,GAAW,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,UAAU,GAAG,GAAG,GAAG,YAAY,CAAC,UAAU,GAAG,cAAc,CAAC;AACvH,YAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,YAAe,CAAA,eAAA,GAAW,OAAO,CAAC;AAClC,YAAgB,CAAA,gBAAA,GAAW,WAAW,CAAC;AAIvC,YAAsB,CAAA,sBAAA,GAAW,gBAAgB,CAAC;AAClD,YAAmB,CAAA,mBAAA,GAAW,YAAY,CAAC;AAC3C,YAA4B,CAAA,4BAAA,GAAW,wCAAwC,CAAC;AAGhF,YAAQ,CAAA,QAAA,GAAW,GAAG,CAAC;AACvB,YAAA,CAAA,cAAc,GAAW,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;AAEnD,YAAW,CAAA,WAAA,GAAW,WAAW,CAAC;AAClC,YAAS,CAAA,SAAA,GAAW,KAAK,CAAC;AAE1B,YAAa,CAAA,aAAA,GAAW,KAAK,CAAC;AAC9B,YAAoB,CAAA,oBAAA,GAAW,aAAa,CAAC;AAC7C,YAAY,CAAA,YAAA,GAAW,MAAM,CAAC;AAC9B,YAAY,CAAA,YAAA,GAAW,MAAM,CAAC;AAC9B,YAAY,CAAA,YAAA,GAAW,MAAM,CAAC;AAC9B,YAAgB,CAAA,gBAAA,GAAW,UAAU,CAAC;AACtC,YAAqB,CAAA,qBAAA,GAAW,eAAe,CAAC;AAChD,YAAsB,CAAA,sBAAA,GAAW,cAAc,CAAC;AAChD,YAAsB,CAAA,sBAAA,GAAW,gBAAgB,CAAC;AAClD,YAAyB,CAAA,yBAAA,GAAW,iBAAiB,CAAC;AACtD,YAAiB,CAAA,iBAAA,GAAW,WAAW,CAAC;AACxC,YAAmB,CAAA,mBAAA,GAAW,aAAa,CAAC;AAC5C,YAAmB,CAAA,mBAAA,GAAW,aAAa,CAAC;AAC5C,YAAqB,CAAA,qBAAA,GAAW,eAAe,CAAC;AAChD,YAAoB,CAAA,oBAAA,GAAW,cAAc,CAAC;AAC9C,YAAmB,CAAA,mBAAA,GAAW,aAAa,CAAC;AAC5C,YAAoB,CAAA,oBAAA,GAAW,aAAa,CAAC;AAC7C,YAAwB,CAAA,wBAAA,GAAW,gBAAgB,CAAC;AACpD,YAAiB,CAAA,iBAAA,GAAW,UAAU,CAAC;AACvC,YAAiB,CAAA,iBAAA,GAAW,WAAW,CAAC;AACxC,YAAqB,CAAA,qBAAA,GAAW,eAAe,CAAC;AAChD,YAAiB,CAAA,iBAAA,GAAW,WAAW,CAAC;AACxC,YAAmB,CAAA,mBAAA,GAAW,YAAY,CAAC;AAC3C,YAAwB,CAAA,wBAAA,GAAW,eAAe,CAAC;AACnD,YAAoB,CAAA,oBAAA,GAAW,aAAa,CAAC;AAC7C,YAAwB,CAAA,wBAAA,GAAW,gBAAgB,CAAC;AACpD,YAAgB,CAAA,gBAAA,GAAW,SAAS,CAAC;AACrC,YAAc,CAAA,cAAA,GAAW,QAAQ,CAAC;AAClC,YAAgB,CAAA,gBAAA,GAAW,SAAS,CAAC;AACrC,YAAqC,CAAA,qCAAA,GAAW,wBAAwB,CAAC;AACzE,YAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,YAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,YAA2B,CAAA,2BAAA,GAAW,qBAAqB,CAAC;AAC5D,YAAe,CAAA,eAAA,GAAW,SAAS,CAAC;AACpC,YAAe,CAAA,eAAA,GAAW,SAAS,CAAC;AACpC,YAAuB,CAAA,uBAAA,GAAW,gBAAgB,CAAC;AACnD,YAAmB,CAAA,mBAAA,GAAW,aAAa,CAAC;AAC5C,YAAkB,CAAA,kBAAA,GAAW,WAAW,CAAC;AACzC,YAAwB,CAAA,wBAAA,GAAW,gBAAgB,CAAC;AACpD,YAAgB,CAAA,gBAAA,GAAW,mBAAmB,CAAC;AAC/C,YAAgB,CAAA,gBAAA,GAAW,SAAS,CAAC;AACrC,YAAoB,CAAA,oBAAA,GAAW,aAAa,CAAC;AAC7C,YAAa,CAAA,aAAA,GAAW,OAAO,CAAC;AAChC,YAAiB,CAAA,iBAAA,GAAW,iBAAiB,CAAC;AAC9C,YAAmB,CAAA,mBAAA,GAAW,YAAY,CAAC;AAC3C,YAAgB,CAAA,gBAAA,GAAW,SAAS,CAAC;AACrC,YAAmB,CAAA,mBAAA,GAAW,YAAY,CAAC;AAC3C,YAAgC,CAAA,gCAAA,GAAW,uBAAuB,CAAC;AACnE,YAAc,CAAA,cAAA,GAAW,QAAQ,CAAC;AAClC,YAAW,CAAA,WAAA,GAAW,KAAK,CAAC;AAC5B,YAAiB,CAAA,iBAAA,GAAW,UAAU,CAAC;AACvC,YAAa,CAAA,aAAA,GAAW,UAAU,CAAC;AACnC,YAAkB,CAAA,kBAAA,GAAW,WAAW,CAAC;AACzC,YAAgB,CAAA,gBAAA,GAAW,UAAU,CAAC;AACtC,YAAe,CAAA,eAAA,GAAW,SAAS,CAAC;AACpC,YAAe,CAAA,eAAA,GAAW,SAAS,CAAC;AACpC,YAAc,CAAA,cAAA,GAAW,QAAQ,CAAC;AAClC,YAAsB,CAAA,sBAAA,GAAW,cAAc,CAAC;AAChD,YAAwB,CAAA,wBAAA,GAAW,mBAAmB,CAAC;AACvD,YAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,YAAe,CAAA,eAAA,GAAW,UAAU,CAAC;AACrC,YAAuB,CAAA,uBAAA,GAAW,eAAe,CAAC;AAClD,YAAoB,CAAA,oBAAA,GAAW,cAAc,CAAC;AAC9C,YAA6B,CAAA,6BAAA,GAAW,8BAA8B,CAAC;AAEvE,YAAuB,CAAA,uBAAA,GAAW,QAAQ,CAAC;AAE3C,YAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,YAAc,CAAA,cAAA,GAAW,SAAS,CAAC;AACnC,YAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,YAAsB,CAAA,sBAAA,GAAW,gBAAgB,CAAC;AAClD,YAAY,CAAA,YAAA,GAAW,OAAO,CAAC;AAC/B,YAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,YAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAC7B,YAAU,CAAA,UAAA,GAAW,KAAK,CAAC;AAC3B,YAA0B,CAAA,0BAAA,GAAW,oBAAoB,CAAC;AAE1D,YAAgB,CAAA,gBAAA,GAAW,WAAW,CAAC;AACvC,YAAe,CAAA,eAAA,GAAW,UAAU,CAAC;AAErC,YAAgB,CAAA,gBAAA,GAAW,UAAU,CAAC;AACtC,YAAkB,CAAA,kBAAA,GAAW,YAAY,CAAC;AAC1C,YAA+B,CAAA,+BAAA,GAAW,sBAAsB,CAAC;AAEjE,YAA6B,CAAA,6BAAA,GAAW,kBAAkB,CAAC;AAC3D,YAAuB,CAAA,uBAAA,GAAW,WAAW,CAAC;AAG9C,YAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,YAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,YAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,YAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,YAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AAGtC,YAA0B,CAAA,0BAAA,GAAW,MAAM,CAAC;AAC5C,YAA0B,CAAA,0BAAA,GAAW,MAAM,CAAC;AAE5C,YAA4B,CAAA,4BAAA,GAAW,QAAQ,CAAC;AAChD,YAA4B,CAAA,4BAAA,GAAW,QAAQ,CAAC;AAEhD,YAA6B,CAAA,6BAAA,GAAW,QAAQ,CAAC;AACjD,YAA6B,CAAA,6BAAA,GAAW,SAAS,CAAC;AAElD,YAA4B,CAAA,4BAAA,GAAW,QAAQ,CAAC;AAChD,YAA4B,CAAA,4BAAA,GAAW,QAAQ,CAAC;AAEhD,YAA6B,CAAA,6BAAA,GAAW,SAAS,CAAC;AAClD,YAA6B,CAAA,6BAAA,GAAW,SAAS,CAAC;AAElD,YAAiC,CAAA,iCAAA,GAAW,aAAa,CAAC;AAC1D,YAA0B,CAAA,0BAAA,GAAW,UAAU,CAAC;AAChD,YAAiC,CAAA,iCAAA,GAAW,SAAS,CAAC;AAEtD,YAAsC,CAAA,sCAAA,GAAW,gBAAgB,CAAC;AAGlE,YAAyB,CAAA,yBAAA,GAAW,MAAM,CAAC;AAC3C,YAA4B,CAAA,4BAAA,GAAW,SAAS,CAAC;AACjD,YAAwB,CAAA,wBAAA,GAAW,KAAK,CAAC;AAGzC,YAAiB,CAAA,iBAAA,GAAW,YAAY,CAAC;AACzC,YAAqB,CAAA,qBAAA,GAAW,aAAa,CAAC;AAC9C,YAAa,CAAA,aAAA,GAAW,QAAQ,CAAC;AACjC,YAAiB,CAAA,iBAAA,GAAW,SAAS,CAAC;AAGtC,YAAwB,CAAA,wBAAA,GAAW,kBAAkB,CAAC;AACtD,YAA4B,CAAA,4BAAA,GAAW,mBAAmB,CAAC;AAC3D,YAAuB,CAAA,uBAAA,GAAW,iBAAiB,CAAC;AAIpD,YAAqB,CAAA,qBAAA,GAAW,YAAY,CAAC;AAC7C,YAAqB,CAAA,qBAAA,GAAW,YAAY,CAAC;AAC7C,YAAsB,CAAA,sBAAA,GAAW,UAAU,CAAC;AAC5C,YAAuB,CAAA,uBAAA,GAAW,qBAAqB,CAAC;AAGxD,YAAsB,CAAA,sBAAA,GAAW,MAAM,CAAC;AACxC,YAAwB,CAAA,wBAAA,GAAW,QAAQ,CAAC;AAC5C,YAA4B,CAAA,4BAAA,GAAW,SAAS,CAAC;AACjD,YAAwB,CAAA,wBAAA,GAAW,QAAQ,CAAC;AAC5C,YAA4B,CAAA,4BAAA,GAAW,SAAS,CAAC;AACjD,YAAwB,CAAA,wBAAA,GAAW,QAAQ,CAAC;AAC5C,YAA4B,CAAA,4BAAA,GAAW,SAAS,CAAC;AACjD,YAA4B,CAAA,4BAAA,GAAW,YAAY,CAAC;AACpD,YAAgC,CAAA,gCAAA,GAAW,aAAa,CAAC;AAEzD,YAAkB,CAAA,kBAAA,GAAW,UAAU,CAAC;AACxC,YAAoB,CAAA,oBAAA,GAAW,YAAY,CAAC;AAC5C,YAAiB,CAAA,iBAAA,GAAW,SAAS,CAAC;AACtC,YAAgB,CAAA,gBAAA,GAAW,QAAQ,CAAC;AACpC,YAAgB,CAAA,gBAAA,GAAW,QAAQ,CAAC;AACpC,YAAoB,CAAA,oBAAA,GAAW,SAAS,CAAC;AACzC,YAAa,CAAA,aAAA,GAAW,KAAK,CAAC;AAC9B,YAAa,CAAA,aAAA,GAAW,KAAK,CAAC;AAC9B,YAAgB,CAAA,gBAAA,GAAW,KAAK,CAAC;AACjC,YAAoB,CAAA,oBAAA,GAAW,MAAM,CAAC;AACtC,YAAe,CAAA,eAAA,GAAW,OAAO,CAAC;AAClC,YAAmB,CAAA,mBAAA,GAAW,QAAQ,CAAC;AAEvC,YAAkB,CAAA,kBAAA,GAAW,UAAU,CAAC;AACxC,YAAe,CAAA,eAAA,GAAW,OAAO,CAAC;AAClC,YAAoB,CAAA,oBAAA,GAAW,WAAW,CAAC;AAC3C,YAAqB,CAAA,qBAAA,GAAW,aAAa,CAAC;AAE9C,YAAiB,CAAA,iBAAA,GAAW,OAAO,CAAC;AACpC,YAAkB,CAAA,kBAAA,GAAW,QAAQ,CAAC;AACtC,YAAW,CAAA,WAAA,GAAW,MAAM;;MCxMjC,aAAa,CAAA;IAGhB,OAAO,OAAO,CAAC,CAAS,EAAA;QAC9B,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,OAAO,QAAQ,CAAC,QAAkB,EAAE,MAAc,EAAE,MAAW,EAAA;AAC7D,QAAA,IAAI,cAAsB,CAAC;QAC3B,IAAI;AACF,YAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,EAAE,EAAE;YACT,IAAI,EAAE,YAAY,SAAS,EAAE;AAC3B,gBAAA,IAAI,MAAM,KAAK,YAAY,CAAC,uBAAuB,EAAE;oBACnD,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,GAAG;AAC5H,wBAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG;AACzF,wBAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,iBAAA;AACI,qBAAA;AACH,oBAAA,IAAI,MAAM,KAAK,YAAY,CAAC,qBAAqB,EAAE;wBACjD,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG;4BACzD,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG;4BAC5C,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAC/C,wBAAA,IAAI,QAAQ,CAAC,WAAW,GAAG,GAAG,GAAG,EAAE,EAAE;AACnC,4BAAA,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChF,yBAAA;AACI,6BAAA;AACH,4BAAA,cAAc,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;AAC1E,yBAAA;AACF,qBAAA;AACI,yBAAA;AACH,wBAAA,IAAI,MAAM,KAAK,YAAY,CAAC,qBAAqB,EAAE;4BACjD,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC1H,yBAAA;AACI,6BAAA;AAEH,4BAAA,IAAI,MAAM,KAAK,YAAY,CAAC,sBAAsB,EAAE;AAClD,gCAAA,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAC3J,6BAAA;AACI,iCAAA;AACH,gCAAA,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC9C,gCAAA,IAAI,iBAAiB,GAAkB,IAAI,aAAa,EAAE,CAAC;AAC3D,gCAAA,cAAc,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AAC/C,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;;AAEC,gBAAA,MAAM,EAAE,CAAC;AACZ,SAAA;AACD,QAAA,OAAO,cAAc,CAAC;KACvB;AACF;;MCrDY,YAAY,CAAA;AAuEvB,IAAA,WAAA,GAAA;KACC;;AAnEe,YAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAClB,YAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAClB,YAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAClB,YAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAClB,YAAM,CAAA,MAAA,GAAW,CAAC,CAAC;AACnB,YAAQ,CAAA,QAAA,GAAW,CAAC,CAAC;AACrB,YAAO,CAAA,OAAA,GAAW,CAAC,CAAC;AACpB,YAAO,CAAA,OAAA,GAAW,CAAC,CAAC;AACpB,YAAM,CAAA,MAAA,GAAW,CAAC,CAAC;AACnB,YAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AACrB,YAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AACtB,YAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AACnB,YAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AACrB,YAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,YAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AACrB,YAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,YAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,YAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,YAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,YAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AACrB,YAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,YAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACvB,YAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAG9B,YAAA,CAAA,OAAO,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC7C,YAAA,CAAA,OAAO,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC7C,YAAA,CAAA,OAAO,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC7C,YAAA,CAAA,MAAM,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC5C,YAAA,CAAA,MAAM,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAG5C,YAAA,CAAA,KAAK,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3C,YAAA,CAAA,KAAK,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3C,YAAA,CAAA,KAAK,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3C,YAAA,CAAA,KAAK,GAAW,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3C,YAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,YAAS,CAAA,SAAA,GAAW,CAAC,CAAC,CAAC;AACvB,YAAU,CAAA,UAAA,GAAW,GAAG,CAAC;AACzB,YAAc,CAAA,cAAA,GAAW,MAAM,CAAC;AAChC,YAAa,CAAA,aAAA,GAAW,KAAK,CAAC;AAC9B,YAAc,CAAA,cAAA,GAAW,IAAI,CAAC;AAC9B,YAAU,CAAA,UAAA,GAAW,GAAG,CAAC;AACzB,YAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,YAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,YAAY,CAAA,YAAA,GAAW,QAAQ,CAAC;AAChC,YAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAC3B,YAAA,CAAA,YAAY,GAAa;IACvC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC3D,CAAC;AAEc,YAAA,CAAA,cAAc,GAAa;IACzC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY;CACrL,CAAC;AAEc,YAAA,CAAA,YAAY,GAAa;AACvC,IAAA,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY;CAC/G,CAAC;AAKc,YAAA,CAAA,YAAY,GAAa;AACvC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACtC;;ACvEH,MAAM,cAAc,GAAW,EAAE,CAAC;AAClC,MAAM,YAAY,GAAW,EAAE,CAAC;MAEnB,QAAQ,CAAA;IASnB,OAAO,cAAc,CAAC,KAAa,EAAA;QACjC,IAAI,QAAQ,GAAW,cAAc,CAAC;QAGtC,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;YAGnD,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,gBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC1D,gBAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAEnE,oBAAA,IAAI,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAChC,wBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;AAC5D,wBAAA,OAAO,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,4BAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,yBAAA;AACF,qBAAA;AACI,yBAAA;AACH,wBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;AAChG,qBAAA;AACF,iBAAA;AACF,aAAA;AACI,iBAAA;AACH,gBAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACnE,oBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC3D,iBAAA;AACF,aAAA;AACF,SAAA;QACD,OAAO,QAAQ,CAAC,YAAY,CAAC;KAC9B;IAMD,OAAO,YAAY,CAAC,KAAa,EAAA;QAC/B,IAAI,MAAM,GAAW,YAAY,CAAC;QAGlC,IAAI,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;YAGjD,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,gBAAA,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACtD,gBAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAEjE,oBAAA,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9B,wBAAA,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;AACxD,wBAAA,OAAO,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,4BAAA,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,yBAAA;AACF,qBAAA;AACI,yBAAA;AACH,wBAAA,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC;AACxF,qBAAA;AACF,iBAAA;AACF,aAAA;AACI,iBAAA;AACH,gBAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACnE,oBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzD,iBAAA;AACF,aAAA;AACF,SAAA;QACD,OAAO,QAAQ,CAAC,UAAU,CAAC;KAC5B;;AAvEuB,QAAA,CAAA,YAAY,GAAa,IAAI,KAAK,CAAS,EAAE,CAAC,CAAC;AAC/C,QAAA,CAAA,UAAU,GAAa,IAAI,KAAK,CAAS,CAAC,CAAC;;ACRzD,IAAA,wBAGX;AAHD,CAAA,UAAY,uBAAuB,EAAA;IACjC,uBAAA,CAAA,uBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,uBAAA,CAAA,uBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACjB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,GAGlC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBASX;AATD,CAAA,UAAY,gBAAgB,EAAA;IAC1B,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,gBAAA,CAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,gBAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,GAS3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAIX;AAJD,CAAA,UAAY,QAAQ,EAAA;IAClB,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,QAAQ,KAAR,QAAQ,GAInB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;IAChB,cAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;AAChB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAEX;AAFD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAFW,cAAc,KAAd,cAAc,GAEzB,EAAA,CAAA,CAAA,CAAA;AACW,IAAA,cAuBX;AAvBD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,GAAwB,CAAA;AACxB,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,GAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,mBAAA,CAAA,GAAA,GAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,mBAAA,CAAA,GAAA,GAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,GAA0B,CAAA;AAC1B,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,GAAwB,CAAA;AACxB,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,GAAwB,CAAA;AACxB,IAAA,aAAA,CAAA,qBAAA,CAAA,GAAA,GAAyB,CAAA;AACzB,IAAA,aAAA,CAAA,qBAAA,CAAA,GAAA,GAAyB,CAAA;AACzB,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,GAA0B,CAAA;AAC1B,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACtB,CAAC,EAvBW,aAAa,KAAb,aAAa,GAuBxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QA2BX;AA3BD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,OAAA,CAAA,OAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,OAAA,CAAA,OAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,OAAA,CAAA,OAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,OAAA,CAAA,OAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,OAAA,CAAA,OAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;IACJ,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,OAAA,CAAA,OAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,OAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG,CAAA;IACH,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,OAAA,CAAA,OAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;IACJ,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;IACJ,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,OAAA,CAAA,OAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EA3BW,OAAO,KAAP,OAAO,GA2BlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;IACpB,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAiBX;AAjBD,CAAA,UAAY,aAAa,EAAA;IACvB,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,aAAA,CAAA,aAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,aAAA,CAAA,aAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;IACnB,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,aAAA,CAAA,aAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,aAAA,CAAA,aAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,aAAA,CAAA,aAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,aAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;IACrB,aAAA,CAAA,aAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,aAAA,CAAA,aAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAAsB,CAAA;IACtB,aAAA,CAAA,aAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,aAAA,CAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAgB,CAAA;IAChB,aAAA,CAAA,aAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAjBW,aAAa,KAAb,aAAa,GAiBxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAIX;AAJD,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,iBAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;IAC1B,gBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;IACjB,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,qBAIX;AAJD,CAAA,UAAY,oBAAoB,EAAA;IAC9B,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,oBAAA,CAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,oBAAA,CAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAIX;AAJD,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAMX;AAND,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;IACf,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,iBAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,iBAAA,CAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACf,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAKX;AALD,CAAA,UAAY,QAAQ,EAAA;IAClB,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAIX;AAJD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;IACF,OAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;IACrB,WAAA,CAAA,WAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,OAKX;AALD,CAAA,UAAY,MAAM,EAAA;IAChB,MAAA,CAAA,MAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;IACF,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,MAAA,CAAA,MAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EALW,MAAM,KAAN,MAAM,GAKjB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAQX;AARD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,YAAA,CAAA,YAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EARW,YAAY,KAAZ,YAAY,GAQvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAMX;AAND,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,iBAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAIX;AAJD,CAAA,UAAY,kBAAkB,EAAA;IAC5B,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,kBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;IAC1B,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,gBAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAMX;AAND,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EANW,cAAc,KAAd,cAAc,GAMzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,oBAKX;AALD,CAAA,UAAY,mBAAmB,EAAA;IAC7B,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;IACb,mBAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,mBAAA,CAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,GAK9B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAKX;AALD,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,iBAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAK5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;IACT,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAUX;AAVD,CAAA,UAAY,WAAW,EAAA;IACrB,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,WAAA,CAAA,WAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,WAAA,CAAA,WAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,WAAA,CAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAVW,WAAW,KAAX,WAAW,GAUtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aASX;AATD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;IACT,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EATW,YAAY,KAAZ,YAAY,GASvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aASX;AATD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EATW,YAAY,KAAZ,YAAY,GASvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAGX;AAHD,CAAA,UAAY,UAAU,EAAA;IACpB,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;IACZ,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAMX;AAND,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,iBAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAsBX;AAtBD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,YAAA,CAAA,YAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EAtBW,YAAY,KAAZ,YAAY,GAsBvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;IACzB,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAKX;AALD,CAAA,UAAY,WAAW,EAAA;IACrB,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EALW,WAAW,KAAX,WAAW,GAKtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,uBAGX;AAHD,CAAA,UAAY,sBAAsB,EAAA;IAChC,sBAAA,CAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,sBAAA,CAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAGjC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAMX;AAND,CAAA,UAAY,kBAAkB,EAAA;IAC5B,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,GAM7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAIX;AAJD,CAAA,UAAY,eAAe,EAAA;IACzB,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,eAAA,CAAA,eAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,eAAA,CAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAQX;AARD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;IACd,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;IACb,cAAA,CAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;IAChB,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;IACf,cAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;IACf,cAAA,CAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAClB,CAAC,EARW,cAAc,KAAd,cAAc,GAQzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAMX;AAND,CAAA,UAAY,QAAQ,EAAA;IAClB,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EANW,QAAQ,KAAR,QAAQ,GAMnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAGX;AAHD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,qBAGX;AAHD,CAAA,UAAY,oBAAoB,EAAA;IAC9B,oBAAA,CAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,oBAAA,CAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAG/B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAIX;AAJD,CAAA,UAAY,eAAe,EAAA;IACzB,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,eAAA,CAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,eAAA,CAAA,eAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,oBAMX;AAND,CAAA,UAAY,mBAAmB,EAAA;IAC7B,mBAAA,CAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,mBAAA,CAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,mBAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,mBAAA,CAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,mBAAA,CAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EANW,mBAAmB,KAAnB,mBAAmB,GAM9B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAIX;AAJD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,OAAA,CAAA,OAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACd,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAeX;AAfD,CAAA,UAAY,UAAU,EAAA;IACpB,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;IACnB,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;IAChB,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,UAAA,CAAA,wBAAA,CAAA,GAAA,GAA4B,CAAA;AAC5B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACnB,CAAC,EAfW,UAAU,KAAV,UAAU,GAerB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;IACrB,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAIX;AAJD,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;IACZ,iBAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAIX;AAJD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACP,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACX,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAMX;AAND,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EANW,WAAW,KAAX,WAAW,GAMtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAOX;AAPD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACnB,CAAC,EAPW,aAAa,KAAb,aAAa,GAOxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;IACvB,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;IACrB,WAAA,CAAA,WAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAKX;AALD,CAAA,UAAY,UAAU,EAAA;IACpB,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAUX;AAVD,CAAA,UAAY,SAAS,EAAA;IACnB,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,SAAA,CAAA,SAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,SAAA,CAAA,SAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAVW,SAAS,KAAT,SAAS,GAUpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAKX;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AAClB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAIX;AAJD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAJW,QAAQ,KAAR,QAAQ,GAInB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,KAGX;AAHD,CAAA,UAAY,IAAI,EAAA;AACd,IAAA,IAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,IAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EAHW,IAAI,KAAJ,IAAI,GAGf,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,MAGX;AAHD,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EAHW,KAAK,KAAL,KAAK,GAGhB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAGX;AAHD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,OAIX;AAJD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,MAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,MAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAJW,MAAM,KAAN,MAAM,GAIjB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAKX;AALD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EALW,OAAO,KAAP,OAAO,GAKlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,OAKX;AALD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,MAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EALW,MAAM,KAAN,MAAM,GAKjB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAMX;AAND,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,YAAA,CAAA,2BAAA,CAAA,GAAA,GAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,0BAAA,CAAA,GAAA,GAA8B,CAAA;AAC9B,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAGX;AAHD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;IACb,OAAA,CAAA,OAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EAHW,OAAO,KAAP,OAAO,GAGlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aASX;AATD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EATW,YAAY,KAAZ,YAAY,GASvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAMX;AAND,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EANW,OAAO,KAAP,OAAO,GAMlB,EAAA,CAAA,CAAA,CAAA;AAIW,IAAA,uBAGX;AAHD,CAAA,UAAY,sBAAsB,EAAA;IAChC,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;IACjB,sBAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAGjC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,OAKX;AALD,CAAA,UAAY,MAAM,EAAA;IAChB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,MAAA,CAAA,MAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,MAAA,CAAA,MAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,MAAA,CAAA,MAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EALW,MAAM,KAAN,MAAM,GAKjB,EAAA,CAAA,CAAA,CAAA;AAGW,IAAA,QAmCX;AAnCD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;IACf,OAAA,CAAA,OAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,OAAA,CAAA,OAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,OAAA,CAAA,OAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;IACb,OAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;IACf,OAAA,CAAA,OAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,OAAA,CAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,OAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;IACf,OAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;IAChB,OAAA,CAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,OAAA,CAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,OAAA,CAAA,OAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,OAAA,CAAA,OAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,OAAA,CAAA,OAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,OAAA,CAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,OAAA,CAAA,OAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,OAAA,CAAA,OAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,OAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;IACf,OAAA,CAAA,OAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,OAAA,CAAA,OAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,OAAA,CAAA,OAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,OAAA,CAAA,OAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,OAAA,CAAA,OAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,OAAA,CAAA,OAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,OAAA,CAAA,OAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;IACJ,OAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;IACf,OAAA,CAAA,OAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,OAAA,CAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,OAAA,CAAA,OAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EAnCW,OAAO,KAAP,OAAO,GAmClB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,qBAeX;AAfD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAfW,oBAAoB,KAApB,oBAAoB,GAe/B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAeX;AAfD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACtB,CAAC,EAfW,QAAQ,KAAR,QAAQ,GAenB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACjB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAOX;AAPD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAPW,WAAW,KAAX,WAAW,GAOtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UA+BX;AA/BD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACpB,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AAClB,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AAClB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EA/BW,SAAS,KAAT,SAAS,GA+BpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,qBAiBX;AAjBD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACpB,IAAA,oBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AAClB,IAAA,oBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAjBW,oBAAoB,KAApB,oBAAoB,GAiB/B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,oBAsBX;AAtBD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AAClB,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EAtBW,mBAAmB,KAAnB,mBAAmB,GAsB9B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,KAMX;AAND,CAAA,UAAY,IAAI,EAAA;AACd,IAAA,IAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,IAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,IAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,IAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,IAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EANW,IAAI,KAAJ,IAAI,GAMf,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;IACzB,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,eAAA,CAAA,eAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAeX;AAfD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AAClB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAfW,eAAe,KAAf,eAAe,GAe1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAYX;AAZD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EAZW,kBAAkB,KAAlB,kBAAkB,GAY7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,IAgBX;AAhBD,CAAA,UAAY,GAAG,EAAA;IACb,GAAA,CAAA,GAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,GAAA,CAAA,GAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,GAAA,CAAA,GAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,GAAA,CAAA,GAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,GAAA,CAAA,GAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,GAAA,CAAA,GAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,GAAA,CAAA,GAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,GAAA,CAAA,GAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,GAAA,CAAA,GAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB,CAAA;IAClB,GAAA,CAAA,GAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,GAAA,CAAA,GAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,GAAA,CAAA,GAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,GAAA,CAAA,GAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,GAAA,CAAA,GAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,GAAA,CAAA,GAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EAhBW,GAAG,KAAH,GAAG,GAgBd,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAYX;AAZD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAZW,kBAAkB,KAAlB,kBAAkB,GAY7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,sBAMX;AAND,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AACpB,CAAC,EANW,qBAAqB,KAArB,qBAAqB,GAMhC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;IACrB,WAAA,CAAA,WAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;IACP,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;AACR,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;IACzB,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,eAAA,CAAA,eAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACX,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAMX;AAND,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACX,CAAC,EANW,QAAQ,KAAR,QAAQ,GAMnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAYX;AAZD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EAZW,UAAU,KAAV,UAAU,GAYrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAGX;AAHD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAMX;AAND,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EANW,QAAQ,KAAR,QAAQ,GAMnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;IACpB,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;IAChB,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAOX;AAPD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,OAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAPW,OAAO,KAAP,OAAO,GAOlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAKX;AALD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;IAClB,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACV,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAEX;AAFD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACjB,CAAC,EAFW,iBAAiB,KAAjB,iBAAiB,GAE5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,uBAAA,CAAA,GAAA,GAA2B,CAAA;AAC3B,IAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACtB,IAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACxB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAMX;AAND,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AAClB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EANW,eAAe,KAAf,eAAe,GAM1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAQX;AARD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EARW,UAAU,KAAV,UAAU,GAQrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAKX;AALD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SASX;AATD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,GAAmB,CAAA;AACnB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EATW,QAAQ,KAAR,QAAQ,GASnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAMX;AAND,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACpB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,GAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EANW,SAAS,KAAT,SAAS,GAMpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAMX;AAND,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EANW,OAAO,KAAP,OAAO,GAMlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAaX;AAbD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAbW,WAAW,KAAX,WAAW,GAatB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAIX;AAJD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,OAGX;AAHD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,MAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EAHW,MAAM,KAAN,MAAM,GAGjB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAIX;AAJD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,OAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACjB,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAGX;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACtB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAQX;AARD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,cAAA,CAAA,GAAA,GAAkB,CAAA;AACpB,CAAC,EARW,OAAO,KAAP,OAAO,GAQlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAqEX;AArED,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;IACf,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;IACJ,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,cAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;IACP,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,cAAA,CAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAgB,CAAA;IAChB,cAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EArEW,cAAc,KAAd,cAAc,GAqEzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAQX;AARD,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,iBAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,GAQ5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAGX;AAHD,CAAA,UAAY,aAAa,EAAA;IACvB,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAKX;AALD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EALW,WAAW,KAAX,WAAW,GAKtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACjB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,YAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAKX;AALD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAMX;AAND,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,GAAwB,CAAA;AACxB,IAAA,QAAA,CAAA,qBAAA,CAAA,GAAA,GAAyB,CAAA;AAC3B,CAAC,EANW,QAAQ,KAAR,QAAQ,GAMnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAKX;AALD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,OAAA,CAAA,OAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EALW,OAAO,KAAP,OAAO,GAKlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAmCX;AAnCD,CAAA,UAAY,UAAU,EAAA;IACpB,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;IACf,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;IACb,UAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;IACf,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;IACd,UAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;IACf,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;IAChB,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,UAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAoB,CAAA;IACpB,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAmB,CAAA;IACnB,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;IACZ,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,UAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;IACf,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IACX,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;IACT,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;IACJ,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAkB,CAAA;IAClB,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EAnCW,UAAU,KAAV,UAAU,GAmCrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAqBX;AArBD,CAAA,UAAY,QAAQ,EAAA;IAClB,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,QAAA,CAAA,QAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;IACb,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,QAAA,CAAA,QAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAS,CAAA;IACT,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,QAAA,CAAA,QAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;IACR,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;IACL,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAQ,CAAA;IACR,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;IACJ,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG,CAAA;IACH,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;IACN,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EArBW,QAAQ,KAAR,QAAQ,GAqBnB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAUX;AAVD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,GAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,GAAwB,CAAA;AACxB,IAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,GAA2B,CAAA;AAC7B,CAAC,EAVW,UAAU,KAAV,UAAU,GAUrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAaX;AAbD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAChB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EAbW,WAAW,KAAX,WAAW,GAatB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAmBX;AAnBD,CAAA,UAAY,SAAS,EAAA;IACnB,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;IACb,SAAA,CAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;IAClB,SAAA,CAAA,SAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;IAChB,SAAA,CAAA,SAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;IACf,SAAA,CAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,GAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;IACrB,SAAA,CAAA,SAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAiB,CAAA;IACjB,SAAA,CAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,oBAAwB,CAAA;IACxB,SAAA,CAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,GAAA,CAAA,GAAA,8BAAkC,CAAA;IAClC,SAAA,CAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,IAAA,CAAA,GAAA,8BAAmC,CAAA;IACnC,SAAA,CAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,IAAA,CAAA,GAAA,+BAAoC,CAAA;IACpC,SAAA,CAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,IAAA,CAAA,GAAA,2BAAgC,CAAA;IAChC,SAAA,CAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,IAAA,CAAA,GAAA,2BAAgC,CAAA;IAChC,SAAA,CAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,KAAA,CAAA,GAAA,4BAAkC,CAAA;IAClC,SAAA,CAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,KAAA,CAAA,GAAA,6BAAmC,CAAA;IACnC,SAAA,CAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,wBAA8B,CAAA;IAC9B,SAAA,CAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,MAAA,CAAA,GAAA,4BAAmC,CAAA;AACrC,CAAC,EAnBW,SAAS,KAAT,SAAS,GAmBpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAGX;AAHD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAKX;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,SAIX;AAJD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACX,CAAC,EAJW,QAAQ,KAAR,QAAQ,GAInB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAYX;AAZD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;IACd,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;AACb,CAAC,EAZW,iBAAiB,KAAjB,iBAAiB,GAY5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAGX;AAHD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,OAAA,CAAA,OAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EAHW,OAAO,KAAP,OAAO,GAGlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAOX;AAPD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,GAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACtB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAPW,SAAS,KAAT,SAAS,GAOpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UASX;AATD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AACtB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EATW,SAAS,KAAT,SAAS,GASpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,OAGX;AAHD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,MAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACX,CAAC,EAHW,MAAM,KAAN,MAAM,GAGjB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAGX;AAHD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AAChB,CAAC,EAHW,OAAO,KAAP,OAAO,GAGlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAOX;AAPD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EAPW,SAAS,KAAT,SAAS,GAOpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,GAAwB,CAAA;AAC1B,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,QAIX;AAJD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB,CAAA;IACpB,cAAA,CAAA,cAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB,CAAA;AACpB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACX,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;IACtB,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,YAAA,CAAA,YAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACnB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,KAGX;AAHD,CAAA,UAAY,IAAI,EAAA;IACd,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAC,CAAA;IACD,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAC,CAAA;AACH,CAAC,EAHW,IAAI,KAAJ,IAAI,GAGf,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAGX;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,GAAc,CAAA;AACd,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAYX;AAZD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAZW,cAAc,KAAd,cAAc,GAYzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAoBX;AApBD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EApBW,aAAa,KAAb,aAAa,GAoBxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cASX;AATD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EATW,aAAa,KAAb,aAAa,GASxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAKX;AALD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,oBAiBX;AAjBD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAjBW,mBAAmB,KAAnB,mBAAmB,GAiB9B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,sBAGX;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,2BAGX;AAHD,CAAA,UAAY,0BAA0B,EAAA;AACpC,IAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,0BAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,GAGrC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAcX;AAdD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAdW,gBAAgB,KAAhB,gBAAgB,GAc3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAEX;AAFD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAFW,aAAa,KAAb,aAAa,GAExB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,WAGX;AAHD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACjB,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACZ,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACZ,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACf,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,oBAGX;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAKX;AALD,CAAA,UAAY,kBAAkB,EAAA;IAC5B,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,kBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,kBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,GAK7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAKX;AALD,CAAA,UAAY,SAAS,EAAA;IACnB,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,SAAA,CAAA,SAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EALW,SAAS,KAAT,SAAS,GAKpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;IACb,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAIX;AAJD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,SAAA,CAAA,IAAA,CAAA,GAAA,GAAQ,CAAA;AACR,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACb,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,UAIX;AAJD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACjB,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,GAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,oBAAA,CAAA,GAAA,GAAwB,CAAA;AAC1B,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAMX;AAND,CAAA,UAAY,iBAAiB,EAAA;IAC3B,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,iBAAA,CAAA,iBAAA,CAAA,gCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gCAA8B,CAAA;IAC9B,iBAAA,CAAA,iBAAA,CAAA,gCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gCAA8B,CAAA;IAC9B,iBAAA,CAAA,iBAAA,CAAA,iCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iCAA+B,CAAA;IAC/B,iBAAA,CAAA,iBAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;AACvB,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAQX;AARD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,wBAAA,CAAA,GAAA,GAA4B,CAAA;AAC5B,IAAA,eAAA,CAAA,wBAAA,CAAA,GAAA,GAA4B,CAAA;AAC5B,IAAA,eAAA,CAAA,sCAAA,CAAA,GAAA,GAA0C,CAAA;AAC1C,IAAA,eAAA,CAAA,yBAAA,CAAA,GAAA,GAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,4BAAA,CAAA,GAAA,GAAgC,CAAA;AAChC,IAAA,eAAA,CAAA,yBAAA,CAAA,GAAA,GAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,4CAAA,CAAA,GAAA,GAAgD,CAAA;AAClD,CAAC,EARW,eAAe,KAAf,eAAe,GAQ1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAIX;AAJD,CAAA,UAAY,kBAAkB,EAAA;IAC5B,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,kBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,GAAoB,CAAA;AACpB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACnB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAKX;AALD,CAAA,UAAY,eAAe,EAAA;IACzB,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,eAAA,CAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;IACf,eAAA,CAAA,eAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;IACb,eAAA,CAAA,eAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,qBAKX;AALD,CAAA,UAAY,oBAAoB,EAAA;IAC9B,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,oBAAA,CAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;IACb,oBAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,oBAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAClB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,GAK/B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,GAAS,CAAA;AACT,IAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,GAAgB,CAAA;AAClB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,gBAIX;AAJD,CAAA,UAAY,eAAe,EAAA;IACzB,eAAA,CAAA,eAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;IACN,eAAA,CAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eASX;AATD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,cAAA,CAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EATW,cAAc,KAAd,cAAc,GASzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cASX;AATD,CAAA,UAAY,aAAa,EAAA;IACvB,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EATW,aAAa,KAAb,aAAa,GASxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAQX;AARD,CAAA,UAAY,aAAa,EAAA;IACvB,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,aAAA,CAAA,aAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;IACZ,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EARW,aAAa,KAAb,aAAa,GAQxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAOX;AAPD,CAAA,UAAY,kBAAkB,EAAA;IAC5B,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,kBAAA,CAAA,kBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;IACF,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,kBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAPW,kBAAkB,KAAlB,kBAAkB,GAO7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;IACxB,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,cAAA,CAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,cAAA,CAAA,cAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACJ,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAOX;AAPD,CAAA,UAAY,gBAAgB,EAAA;IAC1B,gBAAA,CAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,qBAA0B,CAAA;IAC1B,gBAAA,CAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,mBAAwB,CAAA;IACxB,gBAAA,CAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,mBAAwB,CAAA;IACxB,gBAAA,CAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,kBAAuB,CAAA;IACvB,gBAAA,CAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,gBAAqB,CAAA;IACrB,gBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,iBAAsB,CAAA;AACxB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,GAO3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,cAKX;AALD,CAAA,UAAY,aAAa,EAAA;IACvB,aAAA,CAAA,aAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;IAC5B,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;IACf,kBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,iBAaX;AAbD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,GAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,GAAa,CAAA;AACb,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,GAAU,CAAA;AACV,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,GAAY,CAAA;AACd,CAAC,EAbW,gBAAgB,KAAhB,gBAAgB,GAa3B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,8BAMX;AAND,CAAA,UAAY,6BAA6B,EAAA;IACvC,6BAAA,CAAA,6BAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;IACH,6BAAA,CAAA,6BAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;IACN,6BAAA,CAAA,6BAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,6BAAA,CAAA,6BAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,6BAAA,CAAA,6BAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EANW,6BAA6B,KAA7B,6BAA6B,GAMxC,EAAA,CAAA,CAAA;;MCjuDY,iBAAiB,CAAA;AAgW5B,IAAA,WAAA,GAAA;KAEC;IAND,OAAQ,YAAY,CAAC,SAAiB,EAAA;QACpC,OAAO,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,iBAAiB,CAAC,6BAA6B,CAAC;KAC3F;;AA7Ve,iBAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AACxB,iBAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AACxB,iBAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AACxB,iBAAoB,CAAA,oBAAA,GAAW,CAAC,CAAC;AACjC,iBAAoB,CAAA,oBAAA,GAAW,CAAC,CAAC;AACjC,iBAAoB,CAAA,oBAAA,GAAW,CAAC,CAAC;AACjC,iBAAoB,CAAA,oBAAA,GAAW,CAAC,CAAC;AACjC,iBAAe,CAAA,eAAA,GAAW,CAAC,CAAC;AAC5B,iBAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;AAC9B,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,iBAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,iBAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,iBAAsB,CAAA,sBAAA,GAAW,EAAE,CAAC;AACpC,iBAAuB,CAAA,uBAAA,GAAW,EAAE,CAAC;AACrC,iBAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAC3B,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AACnC,iBAAuB,CAAA,uBAAA,GAAW,EAAE,CAAC;AACrC,iBAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AACnC,iBAAsB,CAAA,sBAAA,GAAW,EAAE,CAAC;AACpC,iBAAuB,CAAA,uBAAA,GAAW,EAAE,CAAC;AACrC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAC9B,iBAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAC3B,iBAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,iBAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAC5B,iBAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAC5B,iBAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AACjC,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAsB,CAAA,sBAAA,GAAW,EAAE,CAAC;AACpC,iBAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAC3B,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AACjC,iBAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AACjC,iBAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AACnC,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,iBAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAC/B,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAEhC,iBAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAC5B,iBAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAC9B,iBAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;AAClC,iBAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,iBAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAChC,iBAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,iBAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,iBAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAC3B,iBAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,iBAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AACjC,iBAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,iBAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;AAClC,iBAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AACjC,iBAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AACnC,iBAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AACjC,iBAAwB,CAAA,wBAAA,GAAW,EAAE,CAAC;AACtC,iBAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;AAClC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAC3B,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAW,CAAA,WAAA,GAAW,GAAG,CAAC;AAC1B,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAW,CAAA,WAAA,GAAW,GAAG,CAAC;AAC1B,iBAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAC3B,iBAAU,CAAA,UAAA,GAAW,GAAG,CAAC;AACzB,iBAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAC5B,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAW,CAAA,WAAA,GAAW,GAAG,CAAC;AAC1B,iBAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAC3B,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAC5B,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAC3B,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAS,CAAA,SAAA,GAAW,GAAG,CAAC;AACxB,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAW,CAAA,WAAA,GAAW,GAAG,CAAC;AAC1B,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAU,CAAA,UAAA,GAAW,GAAG,CAAC;AACzB,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAE5B,iBAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAC5B,iBAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAC5B,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAEhC,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAU,CAAA,UAAA,GAAW,GAAG,CAAC;AACzB,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAc,CAAA,cAAA,GAAW,GAAG,CAAC;AAC7B,iBAAc,CAAA,cAAA,GAAW,GAAG,CAAC;AAC7B,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAC5B,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAa,CAAA,aAAA,GAAW,GAAG,CAAC;AAC5B,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAA0B,CAAA,0BAAA,GAAW,GAAG,CAAC;AACzC,iBAA0B,CAAA,0BAAA,GAAW,GAAG,CAAC;AACzC,iBAA0B,CAAA,0BAAA,GAAW,GAAG,CAAC;AACzC,iBAA0B,CAAA,0BAAA,GAAW,GAAG,CAAC;AACzC,iBAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAC1C,iBAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAC1C,iBAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAC1C,iBAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAC1C,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAuB,CAAA,uBAAA,GAAW,GAAG,CAAC;AACtC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAyB,CAAA,yBAAA,GAAW,GAAG,CAAC;AACxC,iBAA6B,CAAA,6BAAA,GAAW,GAAG,CAAC;AAC5C,iBAA8B,CAAA,8BAAA,GAAW,GAAG,CAAC;AAC7C,iBAA8B,CAAA,8BAAA,GAAW,GAAG,CAAC;AAC7C,iBAAe,CAAA,eAAA,GAAW,GAAG,CAAC;AAC9B,iBAAc,CAAA,cAAA,GAAW,GAAG,CAAC;AAE7B,iBAA0B,CAAA,0BAAA,GAAW,GAAG,CAAC;AACzC,iBAAyB,CAAA,yBAAA,GAAW,GAAG,CAAC;AACxC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAA8B,CAAA,8BAAA,GAAW,GAAG,CAAC;AAC7C,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAkB,CAAA,kBAAA,GAAW,GAAG,CAAC;AACjC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,iBAA6B,CAAA,6BAAA,GAAW,GAAG,CAAC;AAC5C,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAyB,CAAA,yBAAA,GAAW,GAAG,CAAC;AACxC,iBAA8B,CAAA,8BAAA,GAAW,GAAG,CAAC;AAC7C,iBAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAC1C,iBAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAC3B,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AACpC,iBAA2B,CAAA,2BAAA,GAAW,GAAG,CAAC;AAC1C,iBAAoC,CAAA,oCAAA,GAAW,GAAG,CAAC;AACnD,iBAAwB,CAAA,wBAAA,GAAW,GAAG,CAAC;AACvC,iBAAyB,CAAA,yBAAA,GAAW,GAAG,CAAC;AACxC,iBAAoC,CAAA,oCAAA,GAAW,GAAG,CAAC;AACnD,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAgC,CAAA,gCAAA,GAAW,GAAG,CAAC;AAC/C,iBAAyB,CAAA,yBAAA,GAAW,GAAG,CAAC;AACxC,iBAAgC,CAAA,gCAAA,GAAW,GAAG,CAAC;AAC/C,iBAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,iBAAmB,CAAA,mBAAA,GAAW,GAAG,CAAC;AAClC,iBAAsB,CAAA,sBAAA,GAAW,GAAG,CAAC;AACrC,iBAAwB,CAAA,wBAAA,GAAU,GAAG,CAAC;AACtC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAAyB,CAAA,yBAAA,GAAW,GAAG,CAAC;AAExC,iBAAoB,CAAA,oBAAA,GAAW,GAAG,CAAC;AACnC,iBAA0B,CAAA,0BAAA,GAAW,GAAG,CAAC;AACzC,iBAA4B,CAAA,4BAAA,GAAW,GAAG,CAAC;AAC3C,iBAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AAEpC,iBAAc,CAAA,cAAA,GAAU,GAAG,CAAC;AAG5B,iBAAkB,CAAA,kBAAA,GAAW,IAAI,CAAC;AAClC,iBAAkB,CAAA,kBAAA,GAAW,IAAI,CAAC;AAClC,iBAAiB,CAAA,iBAAA,GAAW,IAAI,CAAC;AACjC,iBAAiB,CAAA,iBAAA,GAAW,IAAI,CAAC;AACjC,iBAAkB,CAAA,kBAAA,GAAW,IAAI,CAAC;AAClC,iBAAkB,CAAA,kBAAA,GAAW,IAAI,CAAC;AAClC,iBAAwB,CAAA,wBAAA,GAAW,IAAI,CAAC;AACxC,iBAAe,CAAA,eAAA,GAAW,IAAI,CAAC;AAC/B,iBAAmB,CAAA,mBAAA,GAAW,IAAI,CAAC;AACnC,iBAAsB,CAAA,sBAAA,GAAW,IAAI,CAAC;AACtC,iBAAiB,CAAA,iBAAA,GAAW,IAAI,CAAC;AACjC,iBAAiB,CAAA,iBAAA,GAAW,IAAI,CAAC;AACjC,iBAAqB,CAAA,qBAAA,GAAW,IAAI,CAAC;AACrC,iBAA4B,CAAA,4BAAA,GAAW,IAAI,CAAC;AAC5C,iBAAc,CAAA,cAAA,GAAW,IAAI,CAAC;AAC9B,iBAAY,CAAA,YAAA,GAAW,IAAI,CAAC;AAG5B,iBAAiB,CAAA,iBAAA,GAAW,IAAI,CAAC;AACjC,iBAAmB,CAAA,mBAAA,GAAW,IAAI,CAAC;AACnC,iBAAmB,CAAA,mBAAA,GAAW,IAAI,CAAC;AACnC,iBAAY,CAAA,YAAA,GAAW,IAAI,CAAC;AAC5B,iBAAgB,CAAA,gBAAA,GAAW,IAAI,CAAC;AAChC,iBAAa,CAAA,aAAA,GAAW,IAAI,CAAC;AAC7B,iBAAyB,CAAA,yBAAA,GAAW,IAAI,CAAC;AACzC,iBAAgB,CAAA,gBAAA,GAAW,IAAI,CAAC;AAChC,iBAAqB,CAAA,qBAAA,GAAW,IAAI,CAAC;AAErC,iBAAoB,CAAA,oBAAA,GAAW,IAAI,CAAC;AAEpC,iBAAyB,CAAA,yBAAA,GAAW,IAAI,CAAC;AACzC,iBAAyB,CAAA,yBAAA,GAAW,IAAI,CAAC;AACzC,iBAAyB,CAAA,yBAAA,GAAW,IAAI,CAAC;AACzC,iBAAsC,CAAA,sCAAA,GAAW,IAAI,CAAC;AACtD,iBAAsC,CAAA,sCAAA,GAAW,IAAI;;MCvV1D,UAAU,CAAA;AACrB,IAAA,OAAO,WAAW,CAAE,GAAW,EAAE,UAAU,EAAA;AACzC,QAAA,WAAW,CAAE,GAAG,EAAE,UAAU,CAAC,CAAC;KAC/B;AACF;;MCJY,aAAa,CAAA;AAIxB,IAAA,OAAO,aAAa,GAAA;AAClB,QAAA,IAAI,EAAE,GAAc,IAAI,SAAS,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB;;AAPM,aAAM,CAAA,MAAA,GAAW,IAAI,CAAC;AACtB,aAAM,CAAA,MAAA,GAAW,IAAI;;MCCjB,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,IAAI,EAAU,CAAC;AACnD,QAAA,IAAa,CAAA,aAAA,GAAW,IAAI,CAAC;QAC7B,IAAA,CAAA,SAAS,GACE,EAAC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;KAqBpF;IAnBQ,OAAO,KAAK,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,gBAAgB,GAAgB,IAAI,WAAW,EAAE,CAAC;AACtD,QAAA,IAAG,WAAW,EAAE;AACd,YAAA,gBAAgB,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;AAEzD,YAAA,gBAAgB,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;AAC/D,YAAA,gBAAgB,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;AAC3D,YAAA,gBAAgB,CAAC,SAAS,GAAG,EAAC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,SAAS;AAC9F,gBAAA,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,SAAS,EAAC,CAAC;AACjI,SAAA;AACD,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,EAAC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;AACzF,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;AACF;;ACrBW,IAAA,QAIX;AAJD,CAAA,UAAY,OAAO,EAAA;IACjB,OAAA,CAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,OAAA,CAAA,OAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACP,OAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA,CAAA;MAOY,MAAM,CAAA;AAoVjB,IAAA,WAAA,GAAA;AAlVA,QAAA,IAAQ,CAAA,QAAA,GAAqB,CAAC,CAAC;AAK/B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;KA8U3B;IA5UD,WAAW,QAAQ,CAAC,KAAa,EAAA;AAC/B,QAAA,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;KACzB;AAED,IAAA,WAAW,QAAQ,GAAA;AACjB,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC5B,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;AAChC,SAAA;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;KACxB;IAOD,UAAU,CAAC,QAA0B,EAAE,UAAmB,EAAA;QACxD,IAAI;AAEF,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAY9B,SAAA;AACD,QAAA,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,aAAa,CAAC,wBAAwB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAC1D,SAAA;KACF;AAQD,IAAA,SAAS,CAAC,QAA2B,EAAA;AACnC,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AACxB,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;;AAElC,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC7B;AAEO,IAAA,WAAW,CAAC,QAA0B,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;KACnC;IAEO,WAAW,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC;KAC9C;IAED,8BAA8B,GAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,CAAC;KAC1J;IAED,sCAAsC,GAAA;AACpC,QAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,CAAC;KACnO;IAMD,UAAU,CAAC,GAAW,EAAE,eAAwB,EAAE,OAAmB,GAAA,OAAO,CAAC,IAAI,EAAA;QAE/E,IAAI,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,IAAI,IAAI,eAAe,EAAE;YAC5D,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,EACjK,GAAG,CAAC,CAAC;AAE1B,YAAA,QAAQ,OAAO;gBACb,KAAK,OAAO,CAAC,KAAK;AAChB,oBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACnB,MAAM;gBACR,KAAK,OAAO,CAAC,OAAO;AAClB,oBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClB,MAAM;AACR,gBAAA;AACE,oBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,aAAA;AACF,SAAA;KACF;AAMD,IAAA,gBAAgB,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,8BAA8B,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1H,SAAA;KACF;AAMD,IAAA,wBAAwB,CAAC,GAAW,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,sCAAsC,EAAE,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACzD,SAAA;KACF;IAID,iBAAiB,CAAC,GAAW,EAAE,QAAiB,EAAA;AAE9C,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,EAAE;AACzF,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACzD,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,GAAG,aAAa,CAAC,MAAM,GAAG,6GAA6G,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAChM,aAAA;AACF,SAAA;KACF;AAMD,IAAA,aAAa,CAAC,GAAW,EAAA;AAEvB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACrF,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3C,SAAA;KACF;AAMD,IAAA,aAAa,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC7F,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;KACF;AASD,IAAA,eAAe,CAAC,gBAAyC,EAAE,SAAiB,EAAE,cAAsB,EAAE,QAAgB,EAAE,QAAgB,EAAE,YAAoB,EAAE,UAAkB,EAAE,WAAmB,EAAE,aAAqB,EAAA;AAC5N,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,EAAE;YAC5C,IAAI,IAAI,GAAW,WAAW,CAAC;AAC/B,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAW,yDAAyD,CAAC;AACjF,YAAA,IAAI,OAAO,GAAU,IAAI,KAAK,CAAM,EAAE,CAAC,CAAC;YAIxC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC;YAClD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,KAAK,uBAAuB,CAAC,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC;AAC/F,YAAA,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACvB,YAAA,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;AAC5B,YAAA,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AACtB,YAAA,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YACtB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;YACpE,IAAI,QAAQ,GAAW,CAAC,CAAC;AACzB,YAAA,IAAI,QAAa,CAAC;YAClB,QAAQ,GAAG,UAAU,CAAC;AACtB,YAAA,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAC7B,YAAA,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACnB,YAAA,OAAO,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC;YAC5B,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,YAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,SAAA;KACF;IAMD,qBAAqB,CAAC,WAAwB,EAAE,eAAuB,EAAA;AACrE,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,WAAW,EAAE;AAIlD,YAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9D,SAAA;KACF;IAUD,oBAAoB,GAAA;QAClB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAOxD;AAMD,IAAA,eAAe,CAAC,GAAW,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KAChG;IASD,mBAAmB,CAAC,OAAY,EAAE,GAAY,EAAA;QAC5C,IAAI,OAAO,YAAY,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,OAAO,KAAK,IAAI,IAAI,OAAO,YAAY,SAAS,CAAC,EAAE;AAChF,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KAC1C;AAED,IAAA,0BAA0B,CAAC,GAAW,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KAChG;AAEO,IAAA,qBAAqB,CAAC,EAAa,EAAA;QACzC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE;AACnE,YAAA,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO;AACpF,SAAA,CAAC,CAAC,CAAC;KACL;IAEO,qBAAqB,CAAC,EAAS,EAAE,OAAe,EAAA;QACtD,IAAI,iBAAiB,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AAE3G,YAAA,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACnJ;IAEO,qBAAqB,CAAC,EAAa,EAAE,GAAW,EAAA;QACtD,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE;YACxE,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO;AACzF,SAAA,CAAC,CAAC,CAAC;KACL;IAOD,iBAAiB,CAAC,OAAY,EAAE,GAAY,EAAA;QAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE;YAC9C,IAAI,OAAO,YAAY,SAAS;AAC9B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;iBAC/B,IAAI,OAAO,YAAY,KAAK;AAC/B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACrC,SAAA;;AAEC,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KAC1C;AAED,IAAA,wBAAwB,CAAC,GAAW,EAAA;AAElC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC5C,YAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACtE,SAAA;KACF;AAEO,IAAA,mBAAmB,CAAC,EAAa,EAAA;QACvC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;KAChI;AAEO,IAAA,mBAAmB,CAAC,EAAS,EAAA;QACnC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;YACxD,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO;AAC3C,SAAA,CAAC,CAAC,CAAC;KACL;IAEO,mBAAmB,CAAC,EAAa,EAAE,GAAW,EAAA;QACpD,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE;YACtE,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO;AACzF,SAAA,CAAC,CAAC,CAAC;KACL;AAED,IAAA,eAAe,CAAC,UAAsB,EAAE,aAAqB,EAAE,UAAkB,EAAA;QAE/E,IAAI,UAAU,KAAK,IAAI,EAAE;YACvB,UAAU,GAAG,cAAc,CAAC;AAC7B,SAAA;QACD,IAAI,aAAa,GAAkB,IAAI,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACxF,QAAA,IAAI,MAAM,GAAmB,UAAU,CAAC,SAAS,EAAE,CAAC;QACpD,IAAI,KAAK,GAAmB,MAAM,CAAC;AACnC,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACnD,YAAA,IAAI,UAAU,GAAiB,KAAK,CAAC,CAAC,CAAC,CAAC;AACxC,YAAA,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;YAElC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE5C,IAAI,aAAa,KAAK,CAAC,EAAE;AACvB,gBAAA,aAAa,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;gBACtD,MAAM;AACP,aAAA;AACF,SAAA;QACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;KACjD;IAKD,KAAK,GAAA;KAEJ;;AAjVM,MAAQ,CAAA,QAAA,GAAW,IAAI;;ACtBpB,IAAA,gBAIX;AAJD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;IAEtB,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA;;MCVY,iBAAiB,CAAA;IAI5B,WAAY,CAAA,EAAU,EAAE,MAAc,EAAA;AAHtC,QAAA,IAAK,CAAA,KAAA,GAAW,IAAI,CAAC;AACrB,QAAA,IAAS,CAAA,SAAA,GAAW,IAAI,CAAC;AAGvB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;KACzB;AACF,CAAA;MAEY,YAAY,CAAA;AAsLvB,IAAA,WAAA,GAAA;KACC;;AAtLe,YAAW,CAAA,WAAA,GAAW,aAAa,CAAC;AACpC,YAAY,CAAA,YAAA,GAAW,cAAc,CAAC;AACtC,YAAY,CAAA,YAAA,GAAW,cAAc,CAAC;AACtC,YAAU,CAAA,UAAA,GAAW,YAAY,CAAC;AAClC,YAAQ,CAAA,QAAA,GAAW,UAAU,CAAC;AAC9B,YAAgB,CAAA,gBAAA,GAAW,kBAAkB,CAAC;AAC9C,YAAW,CAAA,WAAA,GAAW,aAAa,CAAC;AACpC,YAAa,CAAA,aAAA,GAAW,eAAe,CAAC;AACxC,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAA0B,CAAA,0BAAA,GAAW,4BAA4B,CAAC;AAClE,YAA+B,CAAA,+BAAA,GAAW,iCAAiC,CAAC;AAC5E,YAAkC,CAAA,kCAAA,GAAW,oCAAoC,CAAC;AAClF,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAA8B,CAAA,8BAAA,GAAW,gCAAgC,CAAC;AAC1E,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAAkB,CAAA,kBAAA,GAAW,oBAAoB,CAAC;AAClD,YAAiB,CAAA,iBAAA,GAAW,mBAAmB,CAAC;AAChD,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAAiB,CAAA,iBAAA,GAAW,mBAAmB,CAAC;AAChD,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAA0B,CAAA,0BAAA,GAAW,4BAA4B,CAAC;AAClE,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAA8B,CAAA,8BAAA,GAAW,gCAAgC,CAAC;AAC1E,YAAgC,CAAA,gCAAA,GAAW,kCAAkC,CAAC;AAC9E,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAA0B,CAAA,0BAAA,GAAW,4BAA4B,CAAC;AAClE,YAA4B,CAAA,4BAAA,GAAW,8BAA8B,CAAC;AACtE,YAAkB,CAAA,kBAAA,GAAW,oBAAoB,CAAC;AAClD,YAA0B,CAAA,0BAAA,GAAW,4BAA4B,CAAC;AAClE,YAA0B,CAAA,0BAAA,GAAW,4BAA4B,CAAC;AAClE,YAAgC,CAAA,gCAAA,GAAW,kCAAkC,CAAC;AAC9E,YAAqB,CAAA,qBAAA,GAAW,uBAAuB,CAAC;AACxD,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAAiC,CAAA,iCAAA,GAAW,mCAAmC,CAAC;AAChF,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAA4B,CAAA,4BAAA,GAAW,8BAA8B,CAAC;AACtE,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAA+B,CAAA,+BAAA,GAAW,iCAAiC,CAAC;AAC5E,YAAkB,CAAA,kBAAA,GAAW,oBAAoB,CAAC;AAClD,YAA0B,CAAA,0BAAA,GAAW,4BAA4B,CAAC;AAClE,YAAkB,CAAA,kBAAA,GAAW,oBAAoB,CAAC;AAClD,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAAqB,CAAA,qBAAA,GAAW,uBAAuB,CAAC;AACxD,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAqB,CAAA,qBAAA,GAAW,uBAAuB,CAAC;AACxD,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAAqB,CAAA,qBAAA,GAAW,uBAAuB,CAAC;AACxD,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAsC,CAAA,sCAAA,GAAW,wCAAwC,CAAC;AAC1F,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAc,CAAA,cAAA,GAAW,gBAAgB,CAAC;AAC1C,YAAkB,CAAA,kBAAA,GAAW,oBAAoB,CAAC;AAClD,YAAkB,CAAA,kBAAA,GAAW,oBAAoB,CAAC;AAClD,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAgB,CAAA,gBAAA,GAAW,kBAAkB,CAAC;AAC9C,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAA+B,CAAA,+BAAA,GAAW,iCAAiC,CAAC;AAC5E,YAAgB,CAAA,gBAAA,GAAW,kBAAkB,CAAC;AAC9C,YAAqB,CAAA,qBAAA,GAAW,uBAAuB,CAAC;AACxD,YAAa,CAAA,aAAA,GAAW,eAAe,CAAC;AACxC,YAAiB,CAAA,iBAAA,GAAW,mBAAmB,CAAC;AAChD,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAA2B,CAAA,2BAAA,GAAW,6BAA6B,CAAC;AACpE,YAAa,CAAA,aAAA,GAAW,eAAe,CAAC;AACxC,YAAa,CAAA,aAAA,GAAW,eAAe,CAAC;AACxC,YAAa,CAAA,aAAA,GAAW,eAAe,CAAC;AACxC,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAA0B,CAAA,0BAAA,GAAW,4BAA4B,CAAC;AAClE,YAAoC,CAAA,oCAAA,GAAW,sCAAsC,CAAC;AACtF,YAAiB,CAAA,iBAAA,GAAW,mBAAmB,CAAC;AAChD,YAAe,CAAA,eAAA,GAAW,iBAAiB,CAAC;AAC5C,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAkC,CAAA,kCAAA,GAAW,oCAAoC,CAAC;AAClF,YAA+B,CAAA,+BAAA,GAAW,iCAAiC,CAAC;AAC5E,YAAgC,CAAA,gCAAA,GAAW,kCAAkC,CAAC;AAC9E,YAAgC,CAAA,gCAAA,GAAW,kCAAkC,CAAC;AAC9E,YAA4B,CAAA,4BAAA,GAAW,8BAA8B,CAAC;AACtE,YAAe,CAAA,eAAA,GAAW,iBAAiB,CAAC;AAC5C,YAAmB,CAAA,mBAAA,GAAW,qBAAqB,CAAC;AACpD,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAAiC,CAAA,iCAAA,GAAW,mCAAmC,CAAC;AAChF,YAAW,CAAA,WAAA,GAAW,aAAa,CAAC;AACpC,YAAS,CAAA,SAAA,GAAW,WAAW,CAAC;AAChC,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAAuB,CAAA,uBAAA,GAAW,yBAAyB,CAAC;AAC5D,YAA+B,CAAA,+BAAA,GAAW,iCAAiC,CAAC;AAC5E,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAAsB,CAAA,sBAAA,GAAW,wBAAwB,CAAC;AAC1D,YAA2C,CAAA,2CAAA,GAAW,6CAA6C,CAAC;AACpG,YAAW,CAAA,WAAA,GAAW,aAAa,CAAC;AACpC,YAAY,CAAA,YAAA,GAAW,cAAc,CAAC;AACtC,YAAoB,CAAA,oBAAA,GAAW,sBAAsB,CAAC;AACtD,YAAiB,CAAA,iBAAA,GAAW,mBAAmB,CAAC;AAChD,YAAqB,CAAA,qBAAA,GAAW,uBAAuB,CAAC;AACxD,YAAyB,CAAA,yBAAA,GAAW,2BAA2B,CAAC;AAChE,YAA0C,CAAA,0CAAA,GAAW,4CAA4C,CAAC;AAClG,YAA4C,CAAA,4CAAA,GAAW,8CAA8C,CAAC;AACtG,YAA6B,CAAA,6BAAA,GAAW,+BAA+B,CAAC;AACxE,YAA2C,CAAA,2CAAA,GAAW,6CAA6C,CAAC;AACpG,YAAgD,CAAA,gDAAA,GAAW,kDAAkD,CAAC;AAC9G,YAAiC,CAAA,iCAAA,GAAW,mCAAmC,CAAC;AAChF,YAAwB,CAAA,wBAAA,GAAW,0BAA0B,CAAC;AAC9D,YAA+C,CAAA,+CAAA,GAAW,iDAAiD,CAAC;AAC5G,YAA4B,CAAA,4BAAA,GAAW,8BAA8B,CAAC;AACtE,YAAkC,CAAA,kCAAA,GAAW,oCAAoC,CAAC;AAClF,YAA2C,CAAA,2CAAA,GAAW,6CAA6C,CAAC;AACpG,YAAwC,CAAA,wCAAA,GAAW,0CAA0C,CAAC;AAC9F,YAA6C,CAAA,6CAAA,GAAW,+CAA+C,CAAC;AACxG,YAA4B,CAAA,4BAAA,GAAW,8BAA8B,CAAC;AACtE,YAAqC,CAAA,qCAAA,GAAW,uCAAuC,CAAC;AACxF,YAAyC,CAAA,yCAAA,GAAW,2CAA2C,CAAC;AAChG,YAA8B,CAAA,8BAAA,GAAW,gCAAgC,CAAC;AAC1E,YAAiC,CAAA,iCAAA,GAAW,mCAAmC,CAAC;AAChF,YAAwC,CAAA,wCAAA,GAAW,0CAA0C,CAAC;AAC9F,YAA8B,CAAA,8BAAA,GAAW,gCAAgC,CAAC;AAC1E,YAAqC,CAAA,qCAAA,GAAW,uCAAuC,CAAC;AACxF,YAAkC,CAAA,kCAAA,GAAW,oCAAoC,CAAC;AAClF,YAAgC,CAAA,gCAAA,GAAW,kCAAkC,CAAC;AAE9E,YAAA,CAAA,eAAe,GAAwB;AACrD,IAAA,IAAI,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,IAAI,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,IAAI,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,IAAI,iBAAiB,CAAC,YAAY,EAAE,wHAAwH,CAAC,EAAE,IAAI,iBAAiB,CAAC,UAAU,EAAE,sEAAsE,CAAC,EAAE,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,oCAAoC,CAAC,EAAE,IAAI,iBAAiB,CAAC,aAAa,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,eAAe,EAAE,2CAA2C,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,4DAA4D,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,eAAe,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,iCAAiC,CAAC,EAAE,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,oCAAoC,EAAE,4CAA4C,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,gCAAgC,EAAE,6CAA6C,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,wCAAwC,CAAC;AAChnD,IAAA,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,8BAA8B,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,mCAAmC,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,gDAAgD,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,2CAA2C,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,uCAAuC,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,sCAAsC,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,0CAA0C,CAAC,EAAE,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,EAAE,IAAI,iBAAiB,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,mBAAmB,EAAE,oDAAoD,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,8BAA8B,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,mDAAmD,CAAC,EAAE,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,sCAAsC,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,kCAAkC,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,0CAA0C,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,kDAAkD,CAAC;AAC5uD,IAAA,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,EAAE,IAAI,iBAAiB,CAAC,gCAAgC,EAAE,sEAAsE,CAAC,EAAE,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,iDAAiD,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,2CAA2C,CAAC,EAAE,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,4BAA4B,CAAC,EAAE,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,iDAAiD,CAAC,EAAE,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,2DAA2D,CAAC,EAAE,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,0DAA0D,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,iCAAiC,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,uCAAuC,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,uCAAuC,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,uCAAuC,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,6BAA6B,CAAC,EAAE,IAAI,iBAAiB,CAAC,mCAAmC,EAAE,4CAA4C,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,qDAAqD,CAAC;AAC13D,IAAA,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,oFAAoF,CAAC,EAAE,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,2DAA2D,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,uCAAuC,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,uBAAuB,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,gEAAgE,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,sCAAsC,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,sEAAsE,CAAC,EAAE,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,2DAA2D,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,kCAAkC,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,0EAA0E,CAAC,EAAE,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,8FAA8F,CAAC,EAAE,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,0BAA0B,CAAC,EAAE,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,4CAA4C,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,EAAE,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,iCAAiC,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;AAC95D,IAAA,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,mCAAmC,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,4DAA4D,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,mDAAmD,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,mEAAmE,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,kEAAkE,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,uEAAuE,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,6DAA6D,CAAC,EAAE,IAAI,iBAAiB,CAAC,wCAAwC,EAAE,8IAA8I,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,0CAA0C,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,oFAAoF,CAAC,EAAE,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,wCAAwC,CAAC,EAAE,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,EAAE,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,cAAc,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAAE,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,uFAAuF,CAAC,EAAE,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,sFAAsF,CAAC;AACtgE,IAAA,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,wFAAwF,CAAC,EAAE,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,gDAAgD,CAAC,EAAE,IAAI,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,IAAI,iBAAiB,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,cAAc,CAAC,EAAE,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,QAAQ,CAAC,EAAE,IAAI,iBAAiB,CAAC,eAAe,EAAE,wCAAwC,CAAC,EAAE,IAAI,iBAAiB,CAAC,eAAe,EAAE,wCAAwC,CAAC,EAAE,IAAI,iBAAiB,CAAC,eAAe,EAAE,2DAA2D,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,aAAa,CAAC,EAAE,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,EAAE,IAAI,iBAAiB,CAAC,sCAAsC,EAAE,gEAAgE,CAAC,EAAE,IAAI,iBAAiB,CAAC,mBAAmB,EAAE,wEAAwE,CAAC,EAAE,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,qCAAqC,CAAC,EAAE,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,4EAA4E,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,oDAAoD,CAAC,EAAE,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,4DAA4D,CAAC,EAAE,IAAI,iBAAiB,CAAC,oCAAoC,EAAE,4BAA4B,CAAC;AAC9uD,IAAA,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,IAAI,CAAC,EAAE,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,KAAK,CAAC,EAAE,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,KAAK,CAAC,EAAE,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,uGAAuG,CAAC,EAAE,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,IAAI,iBAAiB,CAAC,qBAAqB,EAAE,wCAAwC,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,oBAAoB,CAAC,EAAE,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,uCAAuC,CAAC,EAAE,IAAI,iBAAiB,CAAC,mCAAmC,EAAE,mDAAmD,CAAC,EAAE,IAAI,iBAAiB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,6FAA6F,CAAC,EAAE,IAAI,iBAAiB,CAAC,yBAAyB,EAAE,+CAA+C,CAAC,EAAE,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,+DAA+D,CAAC,EAAE,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,yBAAyB,CAAC,EAAE,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,oEAAoE,CAAC;AACt7C,IAAA,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,mEAAmE,CAAC;AAC3H,IAAA,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,iEAAiE,CAAC,EAAE,IAAI,iBAAiB,CAAC,6CAA6C,EAAE,sDAAsD,CAAC,EAAE,IAAI,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,IAAI,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC;AACtV,IAAA,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,EAAE,IAAI,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,yCAAyC,CAAC,EAAE,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,mEAAmE,CAAC,EAAE,IAAI,iBAAiB,CAAC,4CAA4C,EAAE,qBAAqB,CAAC,EAAE,IAAI,iBAAiB,CAAC,8CAA8C,EAAE,mBAAmB,CAAC,EAAE,IAAI,iBAAiB,CAAC,+BAA+B,EAAE,oDAAoD,CAAC,EAAE,IAAI,iBAAiB,CAAC,6CAA6C,EAAE,2FAA2F,CAAC,EAAE,IAAI,iBAAiB,CAAC,kDAAkD,EAAE,sDAAsD,CAAC,EAAE,IAAI,iBAAiB,CAAC,mCAAmC,EAAE,mGAAmG,CAAC,EAAE,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,mCAAmC,CAAC,EAAE,IAAI,iBAAiB,CAAC,iDAAiD,EAAE,mGAAmG,CAAC,EAAE,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,2BAA2B,CAAC,EAAE,IAAI,iBAAiB,CAAC,oCAAoC,EAAE,+BAA+B,CAAC,EAAE,IAAI,iBAAiB,CAAC,6CAA6C,EAAE,wCAAwC,CAAC,EAAE,IAAI,iBAAiB,CAAC,0CAA0C,EAAE,4CAA4C,CAAC,EAAE,IAAI,iBAAiB,CAAC,+CAA+C,EAAE,gDAAgD,CAAC,EAAE,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,gCAAgC,CAAC,EAAE,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,oDAAoD,CAAC,EAAE,IAAI,iBAAiB,CAAC,2CAA2C,EAAE,kDAAkD,CAAC;IAClpE,IAAI,iBAAiB,CAAC,gCAAgC,EAAE,0DAA0D,CAAC,EAAE,IAAI,iBAAiB,CAAC,mCAAmC,EAAE,4HAA4H,CAAC,EAAE,IAAI,iBAAiB,CAAC,0CAA0C,EAAE,mGAAmG,CAAC,EAAE,IAAI,iBAAiB,CAAC,gCAAgC,EAAE,iCAAiC,CAAC,EAAE,IAAI,iBAAiB,CAAC,uCAAuC,EAAE,qCAAqC,CAAC,EAAE,IAAI,iBAAiB,CAAC,oCAAoC,EAAE,qGAAqG,CAAC,EAAE,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,4GAA4G,CAAC;CACt+B;;MC3LU,KAAK,CAAA;AAIhB,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAIhC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAK,CAAC;KAChC;IAGD,GAAG,GAAA;QACD,IAAI,WAAW,GAAM,IAAI,CAAC;AAE1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACpB;AAID,IAAA,GAAG,CAAC,GAAM,EAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KACxB;IAGD,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;KACpC;IAGD,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC9B;AACF;;MC3CY,UAAU,CAAA;AAMrB,IAAA,OAAO,eAAe,GAAA;QACpB,OAAO,UAAU,CAAC,YAAY,CAAC;KAChC;AAED,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;AAED,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;AAED,IAAA,OAAO,QAAQ,GAAA;QACb,OAAO,UAAU,CAAC,KAAK,CAAC;KACzB;AAED,IAAA,OAAO,eAAe,GAAA;AACpB,QAAA,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,OAAe,EAAA;AAC5B,QAAA,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;QAC1B,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;IAED,OAAO,OAAO,CAAC,OAAe,EAAA;AAC5B,QAAA,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;QAC1B,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;IAED,OAAO,QAAQ,CAAC,QAAgB,EAAA;AAC9B,QAAA,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC5B,OAAO,UAAU,CAAC,KAAK,CAAC;KACzB;;AAtCc,UAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC9B,UAAI,CAAA,IAAA,GAAW,GAAG,CAAC;AACnB,UAAI,CAAA,IAAA,GAAW,GAAG,CAAC;AACnB,UAAK,CAAA,KAAA,GAAW,GAAG;;MCCvB,qBAAqB,CAAA;AAMhC,IAAA,OAAO,aAAa,CAAC,KAAuB,EAAE,KAAuB,EAAA;AACnE,QAAA,OAAO,KAAK,KAAK,KAAK,KAAK,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,KAAK,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;KACpf;IAED,OAAO,UAAU,CAAC,IAAsB,EAAA;QACtC,OAAO,IAAI,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,KAAK,gBAAgB,CAAC,WAAW,CAAC;KAChF;IAED,OAAO,WAAW,CAAC,IAAsB,EAAA;QACvC,OAAO,IAAI,KAAK,gBAAgB,CAAC,KAAK,IAAI,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC;KAC1E;IAKD,OAAO,aAAa,CAAC,IAAsB,EAAA;AACzC,QAAA,OAAO,IAAI,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,KAAK,gBAAgB,CAAC,OAAO,CAAC;KAC9G;IAKD,OAAO,aAAa,CAAC,IAAsB,EAAA;AACzC,QAAA,OAAO,IAAI,KAAK,gBAAgB,CAAC,OAAO,CAAC;KAC1C;IAKD,OAAO,YAAY,CAAC,IAAsB,EAAA;AACxC,QAAA,OAAO,IAAI,KAAK,gBAAgB,CAAC,MAAM,CAAC;KACzC;IAMD,OAAO,oBAAoB,CAAC,IAAsB,EAAA;QAChD,OAAO,IAAI,KAAK,gBAAgB,CAAC,KAAK,IAAI,IAAI,KAAK,gBAAgB,CAAC,OAAO,CAAC;KAC7E;AAOD,IAAA,OAAO,wBAAwB,CAAC,KAAuB,EAAE,KAAuB,EAAA;AAC9E,QAAA,OAAO,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAC/G;AAED,IAAA,OAAO,4BAA4B,CAAC,KAAuB,EAAE,KAAuB,EAAA;QAClF,IAAI,mBAAmB,GAAY,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,mBAAmB,GAAY,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAErF,IAAI,mBAAmB,IAAI,mBAAmB,EAAE;AAC9C,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACI,aAAA;AACH,YAAA,IAAI,SAAS,GAAY,KAAK,KAAK,gBAAgB,CAAC,IAAI,CAAC;AACzD,YAAA,IAAI,SAAS,GAAY,KAAK,KAAK,gBAAgB,CAAC,IAAI,CAAC;AACzD,YAAA,QAAQ,CAAC,mBAAmB,IAAI,SAAS,MAAM,mBAAmB,IAAI,SAAS,CAAC,EAAE;AACnF,SAAA;KAEF;AAQD,IAAA,OAAO,iBAAiB,CAAC,eAAiC,EAAE,oBAAsC,EAAA;QAChG,IAAI,gBAAgB,GAAY,KAAK,CAAC;AAEtC,QAAA,QAAQ,eAAe;YACrB,KAAK,gBAAgB,CAAC,KAAK,CAAC;YAC5B,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,KAAK,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,OAAO;oBACtG,oBAAoB,KAAK,gBAAgB,CAAC,IAAI,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,IAAI;AAChG,oBAAA,oBAAoB,KAAK,gBAAgB,CAAC,OAAO,EAAE;oBACnD,gBAAgB,GAAG,IAAI,CAAC;AACzB,iBAAA;gBACD,MAAM;YAER,KAAK,gBAAgB,CAAC,OAAO;gBAC3B,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,OAAO,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,KAAK;oBACtG,oBAAoB,KAAK,gBAAgB,CAAC,OAAO,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,OAAO;oBACtG,oBAAoB,KAAK,gBAAgB,CAAC,IAAI,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,IAAI,EAAE;oBAClG,gBAAgB,GAAG,IAAI,CAAC;AACzB,iBAAA;gBACD,MAAM;YAER,KAAK,gBAAgB,CAAC,OAAO;AAAE,gBAAA;oBAC7B,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,OAAO,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,KAAK;wBACtG,oBAAoB,KAAK,gBAAgB,CAAC,OAAO,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,OAAO,EAAE;wBACxG,gBAAgB,GAAG,IAAI,CAAC;AACzB,qBAAA;AACF,iBAAA;gBACC,MAAM;YACR,KAAK,gBAAgB,CAAC,IAAI,CAAC;YAC3B,KAAK,gBAAgB,CAAC,IAAI;gBACxB,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,KAAK,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,OAAO;oBACtG,oBAAoB,KAAK,gBAAgB,CAAC,OAAO,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,OAAO;oBACtG,oBAAoB,KAAK,gBAAgB,CAAC,IAAI,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,IAAI,EAAE;oBAClG,gBAAgB,GAAG,IAAI,CAAC;AACzB,iBAAA;gBACD,MAAM;YACR,KAAK,gBAAgB,CAAC,IAAI;AACxB,gBAAA,IAAI,oBAAoB,KAAK,gBAAgB,CAAC,IAAI,EAAE;oBAClD,gBAAgB,GAAG,IAAI,CAAC;AACzB,iBAAA;gBACD,MAAM;AACT,SAAA;AACD,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,WAAA,GAAA;KACC;AACF;;MC5HY,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;AAeU,QAAA,IAAQ,CAAA,QAAA,GAAQ,IAAI,CAAC;KAsB9B;AA9BC,IAAA,WAAW,QAAQ,GAAA;AACjB,QAAA,IAAI,mBAAmB,CAAC,SAAS,KAAK,IAAI;AACxC,YAAA,mBAAmB,CAAC,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAE5D,OAAO,mBAAmB,CAAC,SAAS,CAAC;KACtC;IAQM,IAAI,GAAA;AAET,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC1B,SAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACX;IAKM,KAAK,GAAA;AACV,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,QAAQ,IAAI,IAAI,EAAE;AAEpB,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA;KACF;;AAlCc,mBAAS,CAAA,SAAA,GAAG,IAAI;;ACHjC,MAAM,SAAS,GAAW,CAAC,CAAC;MAIf,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;AAwCU,QAAA,IAAQ,CAAA,QAAA,GAAW,SAAS,CAAC;KAwRtC;AAtRC,IAAA,OAAO,WAAW,GAAA;AAChB,QAAA,IAAI,WAAW,CAAC,SAAS,KAAK,IAAI,EAAE;AAClC,YAAA,WAAW,CAAC,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC;AAC3C,SAAA;QACD,OAAO,WAAW,CAAC,SAAS,CAAC;KAC9B;AAED,IAAA,OAAO,WAAW,GAAA;QAChB,OAAO,WAAW,CAAC,QAAQ,CAAC;KAC7B;IAED,OAAO,SAAS,CAAC,MAAc,EAAA;QAC7B,IAAI,IAAI,GAAY,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC7C,QAAA,IAAI,IAAI,EAAE;YACR,MAAM,GAAG,CAAC,CAAC;AACZ,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACrC;IAED,OAAO,eAAe,CAAC,KAAa,EAAA;QAClC,IAAI,IAAI,GAAY,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;AAC5C,QAAA,IAAI,IAAI,EAAE;YACR,KAAK,GAAG,CAAC,CAAC;AACX,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACrC;IAcD,iBAAiB,CAAC,OAAe,EAAE,MAAc,EAAA;AAC/C,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAG,CAAC,CAAC;AACZ,SAAA;AACI,aAAA;AACH,YAAA,IAAI,GAAG,GAAW,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpC,OAAO,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,gBAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACf,aAAA;YACD,IAAI,OAAO,KAAK,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACnG,gBAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACf,aAAA;AACD,YAAA,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAgBD,IAAA,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,OAAgB,EAAA;AAC/D,QAAA,IAAI,GAAW,CAAC;AAChB,QAAA,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;YAC7B,GAAG,GAAG,CAAC,CAAC;AACT,SAAA;AACI,aAAA;AACH,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACxB,OAAO,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,gBAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACf,aAAA;YACD,IAAI,OAAO,KAAK,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACnG,gBAAA,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACf,aAAA;AACF,SAAA;AACD,QAAA,IAAI,MAAc,CAAC;AACnB,QAAA,IAAI,OAAO,EAAE;YACX,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;AACI,aAAA;YACH,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAaO,eAAe,CAAC,OAAe,EAAE,KAAa,EAAA;AACpD,QAAA,IAAI,CAAC,GAAW,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACjD,aAAA;YACD,OAAO,CAAC,GAAG,CAAC,EAAE;gBACZ,IAAI,KAAK,KAAK,CAAC,EAAE;oBACf,IAAI,OAAO,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBACpF,MAAM;AACP,qBAAA;AACF,iBAAA;AACI,qBAAA;oBACH,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,wBAAA,IAAI,IAAI,GAAW,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;wBAC5E,IAAI,OAAO,KAAK,IAAI,EAAE;4BACpB,MAAM;AACP,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACX,aAAA;AACF,SAAA;AACD,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,SAAA;AACI,aAAA;YACH,MAAM,IAAI,GAAW,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,YAAA,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChC,MAAM,GAAG,CAAC,CAAC;AACZ,aAAA;AACI,iBAAA;gBACH,MAAM,GAAG,CAAC,CAAC;AACZ,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAaO,IAAA,OAAO,mBAAmB,CAAC,OAAe,EAAE,UAAkB,EAAE,WAAmB,EAAA;QACzF,IAAI,MAAM,GAAW,IAAI,CAAC;QAC1B,IAAI,YAAY,GAAW,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAW,WAAW,CAAC;AAC5B,QAAA,OAAO,CAAC,GAAG,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE;AAC3C,YAAA,IAAI,UAAkB,CAAC;AACvB,YAAA,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE;gBACpE,UAAU,GAAG,CAAC,CAAC;AAChB,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE;oBACpE,UAAU,GAAG,CAAC,CAAC;AAChB,iBAAA;AACI,qBAAA;AACH,oBAAA,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE;wBACpE,UAAU,GAAG,CAAC,CAAC;AAChB,qBAAA;AAAM,yBAAA;AAEL,wBAAA,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE;4BACtB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE;AACzG,gCAAA,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;AACjC,6BAAA;AACF,yBAAA;AACD,wBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACV,SAAS;AACV,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACvC,MAAM;AACP,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAWO,IAAA,OAAO,sBAAsB,CAAC,UAAkB,EAAE,WAAmB,EAAA;QAC3E,IAAI,UAAU,GAAW,CAAC,CAAC;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAW,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClE,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE;gBACrD,UAAU,GAAG,CAAC,CAAC;AAChB,aAAA;AACI,iBAAA;gBACH,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE;oBACrD,UAAU,GAAG,CAAC,CAAC;AAChB,iBAAA;AACI,qBAAA;oBACH,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE;wBACrD,UAAU,GAAG,CAAC,CAAC;AAChB,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,IAAI,UAAU,GAAG,CAAC,EAAE;gBAClB,MAAM;AACP,aAAA;AACF,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;IAWD,iBAAiB,CAAC,OAAe,EAAE,UAAkB,EAAA;AACnD,QAAA,IAAI,gBAAgB,GAAW,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AACvF,QAAA,IAAI,MAAc,CAAC;QACnB,IAAI,gBAAgB,KAAK,IAAI,EAAE;YAC7B,MAAM,GAAG,CAAC,CAAC;AACZ,SAAA;AACI,aAAA;YACH,IAAI,mBAAmB,GAAW,WAAW,CAAC,sBAAsB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,mBAAmB,KAAK,CAAC,EAAE;gBAC7B,MAAM,GAAG,CAAC,CAAC;AACZ,aAAA;AACI,iBAAA;gBACH,IAAI,iBAAiB,GAAW,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;gBAC5F,MAAM,GAAG,iBAAiB,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAOD,IAAA,aAAa,CAAC,aAAqB,EAAA;QAEjC,IAAI,YAAY,GAAa,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1D,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,MAAM,GAAa,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD,gBAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/F,IAAI,OAAO,GAAa,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,oBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnG,WAAW,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChE,WAAW,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChE,WAAW,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAE7D,WAAW,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1E,WAAW,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1E,WAAW,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1E,WAAW,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;KACF;;AAvTc,WAAS,CAAA,SAAA,GAAgB,IAAI,CAAC;AAE9B,WAAA,CAAA,QAAQ,GAAa;AAClC,IAAA,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CACvD,CAAC;AACa,WAAA,CAAA,SAAS,GAAa;IACnC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CACvF,CAAC;AACa,WAAA,CAAA,QAAQ,GAAe;AACpC,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC;AAClB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;CACjB,CAAC;AACa,WAAA,CAAA,eAAe,GAAe;AAC3C,IAAA,CAAI,CAAC,EAAG,CAAC,EAAG,CAAC,EAAI,CAAC,CAAC;AACnB,IAAA,CAAC,IAAI,EAAG,CAAC,EAAG,CAAC,EAAE,GAAG,CAAC;AACnB,IAAA,CAAC,IAAI,EAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;AACnB,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AACnB,IAAA,CAAC,IAAI,EAAG,CAAC,EAAG,CAAC,EAAI,CAAC,CAAC;AACnB,IAAA,CAAC,IAAI,EAAG,CAAC,EAAG,CAAC,EAAE,GAAG,CAAC;AACnB,IAAA,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,IAAA,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACb,IAAA,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACd;;MCtCU,UAAU,CAAA;AAmBrB,IAAA,WAAA,GAAA;AAbA,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAC5B,QAAA,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;KAczB;AAND,IAAA,OAAO,CAAC,OAAe,EAAA;AACrB,QAAA,OAAO,CAAC,CAAC,IAAI,OAAO,IAAI,OAAO,IAAI,CAAC,KAAK,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,CAAC;KAC3E;;AAfM,UAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;AACnC,UAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAE3B,UAAW,CAAA,WAAA,GAAW,EAAE;;MCRpB,SAAS,CAAA;AAWpB,IAAA,WAAA,CAAY,IAAA,GAAe,OAAO,CAAC,KAAK,EAAA;AARhC,QAAA,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;AACvB,QAAA,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAA0B,IAAI,IAAI,EAAE,CAAC;AAOnD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KACtB;IAOD,OAAO,SAAS,CAAC,GAAW,EAAE,SAAiB,EAAE,aAAsB,IAAI,EAAA;AACzE,QAAA,IAAI,SAAS,GAAiB,IAAI,IAAI,EAAU,CAAC;QACjD,IAAI,KAAK,GAAW,IAAI,CAAC;AAEzB,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAClB,SAAA;AAED,QAAA,IAAI,MAAM,GAAa,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtD,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAIpD,YAAA,IAAI,UAAU,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;gBACpE,MAAM;AACP,aAAA;AAED,YAAA,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,YAAA,IAAI,UAAU,EAAE;AAEd,gBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACf,oBAAA,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AACrB,oBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACvB,wBAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,qBAAA;AACF,iBAAA;qBAEI,IAAI,KAAK,KAAK,EAAE;oBACnB,KAAK,GAAG,GAAG,CAAC;AACf,aAAA;YAED,IAAI,KAAK,KAAK,IAAI;AAChB,gBAAA,MAAM,IAAI,oBAAoB,CAAC,kEAAkE,CAAC,CAAC;AAErG,YAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvB,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;IAOM,OAAO,QAAQ,CAAC,GAAW,EAAA;QAEhC,IAAI,eAAe,GAAkB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEnE,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;gBACnB,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,SAAS;AACV,aAAA;AAED,YAAA,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;AACd,gBAAA,KAAK,GAAG;AACN,oBAAA,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM;AACR,gBAAA;oBACE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM;AACT,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,eAAe,CAAC,QAAQ,EAAE,EAAE;KACrC;IAOM,OAAO,MAAM,CAAC,GAAW,EAAA;QAE9B,IAAI,aAAa,GAAkB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAErE,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,QAAQ,GAAG,CAAC,CAAC,CAAC;AACZ,gBAAA,KAAK,IAAI;AACP,oBAAA,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC7B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,IAAI;AACP,oBAAA,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,GAAG;AACN,oBAAA,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,MAAM;AACR,gBAAA,KAAK,IAAI;AACP,oBAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;AACR,gBAAA,KAAK,IAAI;AACP,oBAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;AACR,gBAAA;oBACE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,MAAM;AACT,aAAA;AACF,SAAA;AAED,QAAA,QAAQ,aAAa,CAAC,QAAQ,EAAE,EAAE;KACnC;IAOD,OAAO,SAAS,CAAC,GAAW,EAAA;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;KAC3C;IAID,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;AAC/C,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,KAAK,IAAI,OAAO,GAAW,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACzF,IAAI,OAAO,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAG7C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,GAAG,EAAE;gBAC9C,IAAI,QAAQ,GAAW,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;gBAE3H,IAAI,QAAQ,KAAK,CAAC,CAAC;AACjB,oBAAA,OAAO,IAAI,CAAC;;AAEZ,oBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;AAC5D,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAID,IAAA,eAAe,CAAC,UAAkB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;KAC5E;IAID,sBAAsB,GAAA;QACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,UAAU,GAAW,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAE/F,IAAI,KAAK,GAAW,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,OAAO,KAAK,CAAC;KACd;IAGD,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KACtF;IAGD,OAAO,MAAM,CAAC,QAAgB,EAAA;QAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KACvC;IAGD,OAAO,UAAU,CAAC,QAAgB,EAAA;AAChC,QAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;KAC5B;IAGD,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,GAAW,EAAA;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;KACzC;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;QACrB,IAAI,IAAI,KAAK,IAAI;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,aAAA;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACtB,SAAA;KACF;AAMD,IAAA,qBAAqB,CAAC,YAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KACtB;IAGD,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnC;IAGD,GAAG,GAAA;AACD,QAAA,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAEzC,QAAA,IAAI,CAAC,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,UAAU,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;KAClC;AAGD,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KACtB;IAiBD,yBAAyB,GAAA;AAEvB,QAAA,IAAI,UAAU,GAAW,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3C,QAAA,IAAI,eAAe,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAI7G,QAAA,IAAI,gBAAgB,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;QACjG,IAAI,gBAAgB,KAAK,CAAC,CAAC;AACzB,YAAA,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAG1C,IAAI,eAAe,GAAW,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjJ,IAAI,eAAe,KAAK,CAAC,CAAC;YAExB,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;;YAElI,eAAe,GAAG,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QAGnE,IAAI,YAAY,GAAW,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AAGjE,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AAEnC,QAAA,OAAO,YAAY,CAAC;KACrB;IAED,2BAA2B,GAAA;AAEzB,QAAA,IAAI,UAAU,GAAW,IAAI,CAAC,UAAU,EAAE,CAAC;AAG3C,QAAA,IAAI,eAAe,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,GAAG,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAElG,IAAI,eAAe,KAAK,CAAC,CAAC;YAExB,OAAO,OAAO,CAAC,KAAK,CAAC;QAGvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAG7B,IAAI,YAAY,GAAW,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AAGjE,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAE7B,QAAA,OAAO,YAAY,CAAC;KACrB;IAeD,QAAQ,CAAC,aAAsB,EAAE,aAAsB,EAAA;AACrD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;KACtD;IAWO,UAAU,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KAC9B;IAaO,UAAU,CAAC,aAAqB,EAAE,aAAqB,EAAA;AAC7D,QAAA,IAAI,cAAc,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7E,QAAA,IAAI,iBAAiB,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC;AAC5E,QAAA,IAAI,eAAe,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC;AAE7F,QAAA,IAAI,UAAU,GAAW,cAAc,GAAG,iBAAiB,CAAC;AAC5D,QAAA,IAAI,UAAU,GAAW,eAAe,GAAG,cAAc,CAAC;AAE1D,QAAA,IAAI,OAAO,GAAkB,IAAI,aAAa,EAAE,CAAC;QACjD,IAAI,iBAAiB,GAAG,CAAC;AACvB,YAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,UAAU,GAAG,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAE/D,QAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAI,UAAU,GAAG,CAAC;AAChB,YAAA,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAE7D,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AACxC,YAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAExB,QAAA,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,UAAU,GAAW,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC/F,QAAA,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;YAC9D,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,SAAA;KACF;;AA9Zc,SAAA,CAAA,aAAa,GAAa,CAAC,GAAG,EAAE,GAAG,CAAC;;;;"}
1
+ {"version":3,"file":"magic-xpa-utils.mjs","sources":["../../../../projects/utils/src/UtilStrByteMode.ts","../../../../projects/utils/src/Rtf.ts","../../../../projects/utils/src/StrUtil.ts","../../../../projects/utils/src/Misc.ts","../../../../projects/utils/src/Base64.ts","../../../../projects/utils/src/ChoiceUtils.ts","../../../../projects/utils/src/Constants.ts","../../../../projects/utils/src/XMLConstants.ts","../../../../projects/utils/src/DateTimeUtils.ts","../../../../projects/utils/src/PICInterface.ts","../../../../projects/utils/src/DateUtil.ts","../../../../projects/utils/src/enums.ts","../../../../projects/utils/src/InternalInterface.ts","../../../../projects/utils/src/JSON_Utils.ts","../../../../projects/utils/src/PlatformUtils.ts","../../../../projects/utils/src/RequestInfo.ts","../../../../projects/utils/src/Logger.ts","../../../../projects/utils/src/MagicConstants.ts","../../../../projects/utils/src/MsgInterface.ts","../../../../projects/utils/src/Queue.ts","../../../../projects/utils/src/Randomizer.ts","../../../../projects/utils/src/StorageAttribute.ts","../../../../projects/utils/src/SyncExecutionHelper.ts","../../../../projects/utils/src/UtilDateJpn.ts","../../../../projects/utils/src/UtilImeJpn.ts","../../../../projects/utils/src/Xml/XmlParser.ts"],"sourcesContent":["/// <summary>JPN: DBCS support\r\n/// Utility Class for String\r\n/// In this class, considering DBCS, strings are counted by the number\r\n/// of bytes, not the number of characters.\r\n/// </summary>\r\n/// <author> Toshiro Nakayoshi (MSJ) </author>\r\nimport {Encoding, StringBuilder} from \"@magic-xpa/mscorelib\";\r\n\r\nexport class UtilStrByteMode {\r\n public static Encoding: Encoding = Encoding.UTF8;\r\n // TODO : need to check what to do with CultureInfo\r\n static strNavigatorLang: string = window.navigator.language;\r\n private static _bLocaleDefLangJPN: boolean = UtilStrByteMode.strNavigatorLang.startsWith('ja');\r\n private static _bLocaleDefLangCHN: boolean = UtilStrByteMode.strNavigatorLang.startsWith('zh');\r\n private static _bLocaleDefLangKOR: boolean = UtilStrByteMode.strNavigatorLang.startsWith('ko');\r\n\r\n /// <summary> Checks the environment whether it is running on DBCS environment\r\n /// Returns true if the language code for the current default Locale is\r\n /// DBCS language (in non-Unicode encoding).\r\n ///\r\n /// </summary>\r\n /// <returns> true if DBCS, or false if SBCS\r\n /// </returns>\r\n static isLocaleDefLangDBCS(): boolean {\r\n return UtilStrByteMode._bLocaleDefLangJPN || UtilStrByteMode._bLocaleDefLangCHN || UtilStrByteMode._bLocaleDefLangKOR;\r\n }\r\n\r\n /// <summary> Checks whether the language code for the current default Locale\r\n /// is JAPANESE.\r\n ///\r\n /// </summary>\r\n /// <returns> true if JAPANESE, or false if not\r\n /// </returns>\r\n static isLocaleDefLangJPN(): boolean {\r\n return UtilStrByteMode._bLocaleDefLangJPN;\r\n }\r\n\r\n /// <summary> Checks whether the language code for the current default Locale\r\n /// is KOREAN.\r\n ///\r\n /// </summary>\r\n /// <returns> true if KOREAN, or false if not\r\n /// </returns>\r\n static isLocaleDefLangKOR(): boolean {\r\n return UtilStrByteMode._bLocaleDefLangKOR;\r\n }\r\n\r\n static isKoreanCharacter(c: number): boolean {\r\n return (44032 <= /*'가'*/c && c <= 55203/*'힣'*/) || (4352 <= /*'ᄀ'*/c && c <= 4607/*'ᇿ'*/) || (12592 <= /*'㄰'*/c && c <= 12687/*'㆏'*/) || (43360 <= /*'ꥠ'*/c && c <= 43391/*'꥿'*/) || (55216 <= /*'ힰ'*/c && c <= 55295/*'퟿'*/);\r\n }\r\n\r\n /// <summary> Length of String\r\n /// Returns the number of bytes (in default encoding).\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <returns> the number of bytes (in default encoding)\r\n ///\r\n /// Example: lenB(\"abXYc\")\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// 7.\r\n /// </returns>\r\n static lenB(strVal: string): number {\r\n // convert to byte[] by default-encoding\r\n return UtilStrByteMode.Encoding.GetByteCount(strVal);\r\n }\r\n\r\n /// <summary> Substring of String\r\n /// Extracts a specified number of characters (a substring) from a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"ofs:\">starting position (byte) of the substring\r\n /// </param>\r\n /// <param name=\"len:\">number of bytes to be extracted (i.e. bytes of substring)\r\n /// </param>\r\n /// <returns> substring\r\n ///\r\n /// Example: midB(\"abXYc\", 2, 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \"bX \".\r\n /// </returns>\r\n static midB(strVal: string, ofs: number, len: number): string {\r\n let intValidMaxIndex: number = -1; // param #1 of substring\r\n let intValidMinIndex: number = -1; // param #2 of substring\r\n let bHeadSpace: boolean = false; // flag: need to add space\r\n let bEndSpace: boolean = false; // flag: need to add space\r\n\r\n let strRet: string;\r\n\r\n // check and modify ofs & len\r\n if (len <= 0)\r\n return \"\";\r\n\r\n if (ofs <= 0) {\r\n ofs = 0;\r\n intValidMinIndex = 0;\r\n bHeadSpace = false;\r\n }\r\n\r\n let intByteLength: number = UtilStrByteMode.lenB(strVal);\r\n\r\n if (intByteLength < ofs)\r\n return \"\";\r\n\r\n let LenMax: number = intByteLength - ofs;\r\n if (LenMax < len)\r\n len = LenMax;\r\n\r\n // set MinIndex and MaxIndex for substring\r\n intByteLength = 0;\r\n\r\n for (let intIndex: number = 0; intIndex < strVal.length; intIndex = intIndex + 1) {\r\n let s: string = strVal.substr(intIndex, 1);\r\n intByteLength = intByteLength + UtilStrByteMode.Encoding.GetByteCount(s);\r\n\r\n if (intValidMinIndex === -1) {\r\n if (intByteLength === ofs) {\r\n intValidMinIndex = intIndex + 1;\r\n bHeadSpace = false;\r\n }\r\n else if (intByteLength > ofs) {\r\n intValidMinIndex = intIndex + 1;\r\n bHeadSpace = true;\r\n }\r\n }\r\n\r\n if (intValidMaxIndex === -1) {\r\n if (intByteLength === ofs + len) {\r\n intValidMaxIndex = intIndex;\r\n bEndSpace = false;\r\n break;\r\n }\r\n else if (intByteLength > ofs + len) {\r\n intValidMaxIndex = intIndex - 1;\r\n bEndSpace = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // prepare for substring\r\n let strbufAddingBuf: StringBuilder = new StringBuilder(len);\r\n\r\n // execute Mid\r\n if (bHeadSpace) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n\r\n if (intValidMinIndex <= intValidMaxIndex) {\r\n strbufAddingBuf.Append(strVal.substr(intValidMinIndex, intValidMaxIndex + 1 - intValidMinIndex));\r\n }\r\n\r\n if (bEndSpace) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n\r\n strRet = strbufAddingBuf.ToString();\r\n strbufAddingBuf = null;\r\n\r\n return strRet;\r\n }\r\n\r\n /// <summary> Get Characters from Left of String\r\n /// Returns a specified number of bytes from the left side of a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"len:\">number of bytes to be retured\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: leftB(\"abXYc\", 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \"abX\".\r\n /// </returns>\r\n static leftB(strVal: string, len: number): string {\r\n return UtilStrByteMode.midB(strVal, 0, len);\r\n }\r\n\r\n /// <summary> Get Characters from Right of String\r\n /// Returns a specified number of bytes from the right side of a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"len:\">number of bytes to be retured\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: rightB(\"abXYc\", 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \" Yc\".\r\n /// </returns>\r\n static rightB(strVal: string, len: number): string {\r\n let byteFldsValLen: number = UtilStrByteMode.lenB(strVal);\r\n\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n let ofs: number = byteFldsValLen - len;\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n return UtilStrByteMode.midB(strVal, ofs, len);\r\n }\r\n\r\n /// <summary> Insert String\r\n /// Inserts one string into another.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">A string that represents the target string.\r\n /// </param>\r\n /// <param name=\"strSource:\">A string that represents the source string.\r\n /// </param>\r\n /// <param name=\"ofs:\">A number that represents the starting position (byte) in\r\n /// the target.\r\n /// </param>\r\n /// <param name=\"len:\">A number that represents the number of bytes from the\r\n /// source that will be inserted into the target.\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: insB(\"abXYc\", \"de\", 4, 1)\r\n /// Where 'a', 'b', 'c', 'd' and 'e' are SBCS, and 'X' and 'Y' are DBCS,\r\n /// it returns \"ab d Yc\".\r\n /// </returns>\r\n static insB(strTarget: string, strSource: string, ofs: number, len: number): string {\r\n\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if (ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n let intTargetLenB: number = UtilStrByteMode.lenB(strTarget);\r\n let intSourceLenB: number = UtilStrByteMode.lenB(strSource);\r\n let strbufRetVal: StringBuilder = new StringBuilder(ofs + len);\r\n\r\n strbufRetVal.Append(UtilStrByteMode.leftB(strTarget, ofs));\r\n for (let intAddSpaceLen: number = ofs - intTargetLenB; intAddSpaceLen > 0; intAddSpaceLen = intAddSpaceLen - 1) {\r\n strbufRetVal.Append(' ');\r\n }\r\n strbufRetVal.Append(UtilStrByteMode.leftB(strSource, len));\r\n for (let i: number = len - intSourceLenB; i > 0; i = i - 1) {\r\n strbufRetVal.Append(' ');\r\n }\r\n strbufRetVal.Append(UtilStrByteMode.rightB(strTarget, intTargetLenB - ofs));\r\n return strbufRetVal.ToString();\r\n }\r\n\r\n /// <summary> Delete Characters\r\n /// Delete characters from a string.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strVal:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"ofs:\">The position (byte) of the first character to be deleted.\r\n /// </param>\r\n /// <param name=\"len:\">The number of characters to be deleted, beginning with\r\n /// position start and proceeding rightward.\r\n /// </param>\r\n /// <returns> output string\r\n ///\r\n /// Example: delB(\"abXYc\", 2, 4)\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// \"a c\".\r\n /// </returns>\r\n static delB(strVal: string, ofs: number, len: number): string {\r\n\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if ( ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n let intValLenB: number = UtilStrByteMode.lenB(strVal);\r\n if (ofs + len > intValLenB) {\r\n len = intValLenB - ofs;\r\n }\r\n let strRet: string;\r\n if (len <= 0) {\r\n strRet = strVal;\r\n }\r\n else {\r\n let intRightSideLenB: number = intValLenB - ofs - len;\r\n if (intRightSideLenB < 0) {\r\n strRet = strVal;\r\n }\r\n else {\r\n let strbufRetVal: StringBuilder = new StringBuilder(ofs + intRightSideLenB);\r\n strbufRetVal.Append(UtilStrByteMode.leftB(strVal, ofs));\r\n strbufRetVal.Append(UtilStrByteMode.rightB(strVal, intRightSideLenB));\r\n strRet = strbufRetVal.ToString();\r\n }\r\n }\r\n return strRet;\r\n }\r\n\r\n /// <summary> In-String Search\r\n /// Returns a number that represents the first position (byte) of a\r\n /// substring within a string.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">string (in Unicode)\r\n /// </param>\r\n /// <param name=\"strSearch:\">string which will be the search argument in string\r\n /// </param>\r\n /// <returns> number, 0 if not found\r\n ///\r\n /// Example: instrB(\"abXYc\", \"Y\")\r\n /// Where 'a', 'b' and 'c' are SBCS, and 'X' and 'Y' are DBCS, it returns\r\n /// 5.\r\n /// </returns>\r\n static instrB(strTarget: string, strSearch: string): number {\r\n\r\n if (strSearch.length === 0) {\r\n // nothing to look for\r\n return 0;\r\n }\r\n\r\n let ofs: number = strTarget.indexOf(strSearch);\r\n\r\n if (ofs < 0) {\r\n // not found\r\n return 0;\r\n }\r\n\r\n return UtilStrByteMode.lenB(strTarget.substr(0, ofs)) + 1;\r\n }\r\n\r\n /// <summary> Replace Substring Within a String (Byte Mode)\r\n /// Replaces a substring within a string with another substring.\r\n /// If a DBCS character is divided in two, it will be replace to a space.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">target string where the replacement will take place.\r\n /// </param>\r\n /// <param name=\"strOrigin:\">string that provides the substring to be copied to\r\n /// target.\r\n /// </param>\r\n /// <param name=\"ofs:\">the first position (byte) in the target string that will\r\n /// receive the substring from origin.\r\n /// </param>\r\n /// <param name=\"len:\">the number of bytes that will be moved from origin to\r\n /// target, starting from the leftmost character of origin.\r\n /// </param>\r\n /// <returns> string containing modified target string\r\n ///\r\n /// Example: repB(\"abXYc\", \"de\", 4, 2)\r\n /// Where 'a', 'b', 'c', 'd' and 'e' are SBCS, and 'X' and 'Y' are DBCS,\r\n /// it returns \"ab de c\".\r\n /// </returns>\r\n static repB(strTarget: string, strOrigin: string, ofs: number, len: number): string {\r\n let strbufAddingBuf: StringBuilder = new StringBuilder();\r\n\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if (ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n strbufAddingBuf.Append(UtilStrByteMode.leftB(strTarget, ofs));\r\n\r\n let intAddSpaceLen: number = ofs - UtilStrByteMode.lenB(strTarget);\r\n for (; intAddSpaceLen > 0; intAddSpaceLen--)\r\n strbufAddingBuf.Append(' ');\r\n\r\n\r\n strbufAddingBuf.Append(UtilStrByteMode.leftB(strOrigin, len));\r\n\r\n let intRightLen: number = UtilStrByteMode.lenB(strTarget) - (ofs + len);\r\n if (intRightLen > 0) {\r\n strbufAddingBuf.Append(UtilStrByteMode.rightB(strTarget, intRightLen));\r\n }\r\n\r\n // add blanks to the end\r\n intAddSpaceLen = len - UtilStrByteMode.lenB(strOrigin);\r\n for (; intAddSpaceLen > 0; intAddSpaceLen--) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n\r\n return strbufAddingBuf.ToString();\r\n }\r\n\r\n /// <summary> Replace Substring Within a String (Character Mode)\r\n /// Replaces a substring within a string with another substring.\r\n ///\r\n /// </summary>\r\n /// <param name=\"strTarget:\">target string where the replacement will take place.\r\n /// </param>\r\n /// <param name=\"strOrigin:\">string that provides the substring to be copied to\r\n /// target.\r\n /// </param>\r\n /// <param name=\"ofs:\">the first position (character) in the target string that\r\n /// will receive the substring from origin.\r\n /// </param>\r\n /// <param name=\"len:\">the number of characters that will be moved from origin\r\n /// to target, starting from the leftmost character of origin.\r\n /// </param>\r\n /// <returns> string containing modified target string\r\n ///\r\n /// Example: repB(\"abXYc\", \"de\", 4, 2)\r\n /// Whether each character is SBCS or DBCS, it returns \"abXde\".\r\n /// </returns>\r\n static repC(strTarget: string, strOrigin: string, ofs: number, len: number): string {\r\n let strbufAddingBuf: StringBuilder = new StringBuilder();\r\n if (ofs < 0) {\r\n ofs = 0;\r\n }\r\n else {\r\n if (ofs >= 1) {\r\n ofs = ofs - 1;\r\n }\r\n }\r\n if (len < 0) {\r\n len = 0;\r\n }\r\n strbufAddingBuf.Append(strTarget.substr(0, ofs));\r\n\r\n // add blanks between strTarget and strOrigin\r\n let intAddSpaceLen: number = ofs - strTarget.length;\r\n for (; intAddSpaceLen > 0; intAddSpaceLen--)\r\n strbufAddingBuf.Append(' ');\r\n\r\n strbufAddingBuf.Append(strOrigin.substr(0, len));\r\n\r\n let intRightLen: number = strTarget.length - (ofs + len);\r\n\r\n if (intRightLen > 0) {\r\n strbufAddingBuf.Append(strTarget.substr(ofs + len));\r\n }\r\n for (let i: number = len - strOrigin.length; i > 0; i = i - 1) {\r\n strbufAddingBuf.Append(' ');\r\n }\r\n return strbufAddingBuf.ToString();\r\n }\r\n\r\n /// <summary> Checks whether a character is 1 byte (halfwidth) or not (fullwidth)\r\n /// Returns true if the character is represented by 1 byte in non-Unicode\r\n /// encoding.\r\n /// </summary>\r\n /// <param name=\"letter:\">a character to be checked.\r\n /// </param>\r\n /// <returns> true if the character is halfwidth (SBCS), or false if it is\r\n /// fullwidth (DBCS).\r\n /// </returns>\r\n static isHalfWidth(str: string): boolean {\r\n\r\n let letter: number = str.charCodeAt(0);\r\n if (32 <= /*' '*/letter && letter <= 126/*'~'*/) {\r\n return true\r\n }\r\n else {\r\n let len: number = UtilStrByteMode.lenB(str);\r\n if (len === 1)\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /// <summary> Checks whether a character is halfwidth digit letter\r\n /// Do not use \"Character.isDigit\" which cannot distinguish between\r\n /// halfwidth digit letter(SBCS) and fullwidth difit letter(DBCS).\r\n /// </summary>\r\n /// <param name=\"letter:\">a character to be checked.\r\n /// </param>\r\n /// <returns> true if the character is halfwidth digit letter, or\r\n /// false if it is DBCS or not digit letter.\r\n /// </returns>\r\n static isDigit(letter: string): boolean {\r\n return 48 <= /*'0'*/letter.charCodeAt(0) && letter.charCodeAt(0) <= 57/*'9'*/;\r\n }\r\n\r\n /// <summary>Checks whether a character is one of those supported for # Alpha Mask</summary>\r\n /// <param name=\"letter:\">a character to be checked.\r\n /// </param>\r\n /// <returns> true if the character is halfwidth digit letter, or\r\n /// false if it is DBCS or not digit letter.\r\n /// </returns>\r\n static asNumeric(letter: string): boolean {\r\n let result: boolean;\r\n switch (letter.charCodeAt(0)) {\r\n case 42:/*'*'*/\r\n case 43:/*'+'*/\r\n case 44:/*','*/\r\n case 45:/*'-'*/\r\n case 46:/*'.'*/\r\n case 47:/*'/'*/\r\n result = true;\r\n break;\r\n default:\r\n result = false;\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> Converts a position for the 1st string (Source) to a position for\r\n /// the 2nd string (Dest).\r\n /// If a double byte character exists in the strings, the position for the\r\n /// Source could be different from the position for the Dest.\r\n /// (DBCS Support)\r\n ///\r\n /// </summary>\r\n /// <param name=\"strSource:\">Source string\r\n /// </param>\r\n /// <param name=\"strDest:\">Dest string\r\n /// </param>\r\n /// <param name=\"pos:\">position in the Source string\r\n /// </param>\r\n /// <param name=\"isAdvance:\">advance or retreat the ret pos if a DBCS char is split\r\n /// </param>\r\n /// <returns> position in the Dest string\r\n ///\r\n /// Example: convPos(\"abcYZ\", \"YZabc\", 4)\r\n /// It returns 4, if the all characters in the strings are SBCS.\r\n ///\r\n /// If 'a', 'b' and 'c' are SBCS, and 'Y' and 'Z' are DBCS, it\r\n /// returns 3.\r\n /// pos\r\n /// Unicode index 0 1 2 3 [4]\r\n /// +-------------+\r\n /// Source string |a|b|c| Y | Z |\r\n /// +-------------+\r\n /// ANSI index 0 1 2 3 4[5]6\r\n /// +-------------+\r\n /// Dest string | Y | Z |a|b|c|\r\n /// +-------------+\r\n /// Unicode index 0 1 2[3]4\r\n /// ret\r\n /// </returns>\r\n static convPos(strSource: string, strDest: string, pos: number, isAdvance: boolean): number {\r\n let retPos: number;\r\n if (pos < 0)\r\n return 0;\r\n\r\n if (pos > strSource.length)\r\n pos = strSource.length;\r\n\r\n // add blanks to the Dest string if it is shorter than the Src string\r\n let diffLen: number = UtilStrByteMode.lenB(strSource) - UtilStrByteMode.lenB(strDest);\r\n if (diffLen > 0) {\r\n let stringBuilder: StringBuilder = new StringBuilder(strDest);\r\n for (; diffLen > 0; diffLen--)\r\n stringBuilder.Append(' ');\r\n\r\n strDest = stringBuilder.ToString();\r\n }\r\n\r\n let byteSource: Uint8Array = UtilStrByteMode.Encoding.GetBytes(strSource.substr(0, pos));\r\n let strLeftB: string = UtilStrByteMode.leftB(strDest, byteSource.length);\r\n retPos = strLeftB.length;\r\n if (!isAdvance && retPos > 0 && strLeftB.charCodeAt(retPos - 1) === 32/*' '*/ && strDest.charCodeAt(retPos - 1) !== 32/*' '*/) {\r\n retPos = retPos - 1;\r\n }\r\n\r\n return retPos;\r\n }\r\n /// <summary> return the number of characters of picture which corresponds to\r\n /// given string.\r\n /// </summary>\r\n /// <param name=\"str:\">given string\r\n /// </param>\r\n /// <param name=\"picture:\">picture\r\n /// </param>\r\n /// <returns> minimal length of picture\r\n /// Example: getMinLenPicture(\"ZZ20/11/\", \"JJJJYY/MM/DD\") [ZZ is DBCS]\r\n /// It returns 10.\r\n /// </returns>\r\n /// (DBCS Support)\r\n static getMinLenPicture(str: string, picture: string): number {\r\n let len: number = 0;\r\n\r\n if (UtilStrByteMode.lenB(picture) - UtilStrByteMode.lenB(str) > 0) {\r\n len = UtilStrByteMode.convPos(str, picture, str.length, false);\r\n }\r\n else\r\n len = picture.length;\r\n\r\n return len;\r\n }\r\n\r\n /// <summary>\r\n /// </summary> Compares two specified strings in the DBCS sort order and returns an integer\r\n /// that indicates their relative position.\r\n /// <param name=\"str1:\">The first string to compare.\r\n /// </param>\r\n /// <param name=\"str2:\">The second string to compare.\r\n /// </param>\r\n /// <returns>an integer that indicates the lexical relationship between the two strings.\r\n /// -1: str1 is less than str2.\r\n /// 0: str1 equals str2.\r\n /// 1: str1 is greater than str2.\r\n /// </returns>\r\n static strcmp(str1: string, str2: string): number {\r\n let array1: Uint8Array = UtilStrByteMode.Encoding.GetBytes(str1);\r\n let array2: Uint8Array = UtilStrByteMode.Encoding.GetBytes(str2);\r\n\r\n for (let i: number = 0; i < array1.length && i < array2.length; i++) {\r\n if (array1[i] > array2[i]) {\r\n return 1;\r\n }\r\n else if (array1[i] < array2[i]) {\r\n return -1;\r\n }\r\n }\r\n\r\n if (array1.length > array2.length)\r\n return 1;\r\n\r\n if (array1.length < array2.length)\r\n return -1;\r\n else\r\n return 0;\r\n }\r\n}\r\n","import {Encoding, Hashtable, NChar, NNumber, Stack, StringBuilder} from \"@magic-xpa/mscorelib\";\r\nimport {UtilStrByteMode} from \"./UtilStrByteMode\";\r\n\r\n//@dynamic\r\nexport class Rtf_SYMBOL {\r\n szKeyword: string = null;\r\n /* RTF keyword */\r\n kwd: Rtf_KWD = null;\r\n /* base action to take */\r\n idxInRgprop: any = null;\r\n /* index into property table if kwd == kwdProp */\r\n\r\n /* index into destination table if kwd == kwdDest */\r\n\r\n /* character to print if kwd == kwdChar */\r\n constructor(keyWord: string, kwd: Rtf_KWD, idxInRgprop: any) {\r\n this.szKeyword = keyWord;\r\n this.kwd = kwd;\r\n this.idxInRgprop = idxInRgprop;\r\n }\r\n}\r\n// @dynamic\r\nexport class Rtf_PROP {\r\n actn: Rtf_ACTN = null;\r\n /* size of value */\r\n prop: Rtf_PROPTYPE = null;\r\n\r\n /* structure containing value */\r\n\r\n constructor(actn: Rtf_ACTN, prop: Rtf_PROPTYPE) {\r\n this.actn = actn;\r\n this.prop = prop;\r\n }\r\n}\r\n\r\nclass Rtf_StackSave {\r\n rds: Rtf_RDS = null;\r\n ris: Rtf_RIS = null;\r\n}\r\n\r\nexport enum Rtf_KWD {\r\n CHAR,\r\n DEST,\r\n PROP,\r\n SPEC\r\n}\r\n\r\nexport enum Rtf_PROPTYPE {\r\n CHP,\r\n PAP,\r\n SEP,\r\n DOP\r\n}\r\n\r\nexport enum Rtf_ACTN {\r\n SPEC,\r\n BYTE,\r\n WORD\r\n}\r\n\r\nexport enum Rtf_IPFN {\r\n BIN,\r\n HEX,\r\n SKIP_DEST,\r\n BREAK,\r\n NEW,\r\n FONT,\r\n CHARSET,\r\n UNICODE\r\n}\r\n\r\nexport enum Rtf_IDEST {\r\n PICT,\r\n COLOR,\r\n SKIP\r\n}\r\n\r\n/* types of properties */\r\nexport enum Rtf_IPROP {\r\n BOLD = 0,\r\n ITALIC,\r\n UNDERLINE,\r\n FONT,\r\n SIZE,\r\n COLOR,\r\n RED,\r\n GREEN,\r\n BLUE,\r\n LEFT_IND,\r\n RIGHT_IND,\r\n FIRST_IND,\r\n COLS,\r\n PGN_X,\r\n PGN_Y,\r\n XA_PAGE,\r\n YA_PAGE,\r\n XA_LEFT,\r\n XA_RIGHT,\r\n YA_TOP,\r\n YA_BOTTOM,\r\n PGN_START,\r\n SBK,\r\n PGN_FORMAT,\r\n FACING_P,\r\n LANDSCAPE,\r\n JUST,\r\n PARD,\r\n PLAIN,\r\n SECTD,\r\n BULLET,\r\n XA_BULLET,\r\n MAX\r\n}\r\n\r\n/* Rtf Destination State */\r\nexport enum Rtf_RDS {\r\n NORM,\r\n COLOR,\r\n SKIP,\r\n NEW\r\n}\r\n\r\nexport enum Rtf_ErrorRtf {\r\n OK,\r\n STACK_UNDERFLOW,\r\n STACK_OVERFLOW,\r\n UNMATCHED_BRACE,\r\n INVALID_HEX,\r\n BAD_TABLE,\r\n ASSERTION,\r\n END_OF_FILE,\r\n BUFFER_TOO_SMALL\r\n}\r\n\r\n// TODO :\r\n// Rtf_RtfChar should actually be enum.\r\n// But computed string values are not allowed to be defined in enum.\r\n// So, we cannot have String.fromCharCode(XXX).\r\n// We have 2 options:\r\n// 1. Convert this enum into a class with all static readonly items.\r\n// 2. Keep it as enum with numeric values (char codes).\r\n// Going with #1 now, since @2 makes the code ugly.\r\n// Will evalaute later if required.\r\nexport class Rtf_RtfChar {\r\n static readonly CR = String.fromCharCode(0x0d);\r\n static readonly LF = String.fromCharCode(0x0A);\r\n static readonly TAB = String.fromCharCode(0x09);\r\n static readonly BULLET = String.fromCharCode(0x95);\r\n static readonly TILDA = String.fromCharCode(0xA0);\r\n static readonly DASH = String.fromCharCode(0xAD);\r\n static readonly DASH_CHAR = '-';\r\n static readonly QUOTE = '\\'';\r\n static readonly DBLQUOTE = '\"';\r\n static readonly OPENINGBRACE = '{';\r\n static readonly CLOSINGBRACE = '}';\r\n static readonly BACKSLASH = '\\\\';\r\n}\r\n\r\nexport enum Rtf_RIS {\r\n NORM,\r\n BIN,\r\n HEX,\r\n UNICODE\r\n}\r\n\r\nexport class Rtf {\r\n private _group: number = 0;\r\n private _cbBin: number = 0;\r\n private _lParam: number = 0;\r\n private _skipDestIfUnk: boolean = false;\r\n private _outputOnce: boolean = false;\r\n private _processCrlfSpecial: boolean = false;\r\n private _destState: Rtf_RDS = null;\r\n private _internalState: Rtf_RIS = null;\r\n private _stack: Stack<Rtf_StackSave> = null;\r\n private _index: number = 0;\r\n private _fontNum: number = 0;\r\n private readonly _charsetTable: Hashtable<number, number> = new Hashtable<number, number>();\r\n private readonly _codePageTable: Hashtable<number, number> = new Hashtable<number, number>();\r\n private static readonly RTF_PREFIX: string = \"{\\\\rtf\";\r\n private static readonly CHAR_PAR: string = \"par\";\r\n\r\n /* Property descriptions */\r\n private static readonly rgprop: Rtf_PROP[] = [\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.PAP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.PAP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.PAP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.SEP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.SEP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.SEP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.WORD, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.SEP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.SEP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.DOP), new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.DOP),\r\n new Rtf_PROP(Rtf_ACTN.BYTE, Rtf_PROPTYPE.PAP), new Rtf_PROP(Rtf_ACTN.SPEC, Rtf_PROPTYPE.PAP),\r\n new Rtf_PROP(Rtf_ACTN.SPEC, Rtf_PROPTYPE.CHP), new Rtf_PROP(Rtf_ACTN.SPEC, Rtf_PROPTYPE.SEP)\r\n ];\r\n\r\n /* Keyword descriptions */\r\n private static readonly rgsymRtf: Rtf_SYMBOL[] = [\r\n new Rtf_SYMBOL(\"b\", Rtf_KWD.PROP, Rtf_IPROP.BOLD), new Rtf_SYMBOL(\"ul\", Rtf_KWD.PROP, Rtf_IPROP.UNDERLINE),\r\n new Rtf_SYMBOL(\"i\", Rtf_KWD.PROP, Rtf_IPROP.ITALIC), new Rtf_SYMBOL(\"li\", Rtf_KWD.PROP, Rtf_IPROP.LEFT_IND),\r\n new Rtf_SYMBOL(\"ri\", Rtf_KWD.PROP, Rtf_IPROP.RIGHT_IND), new Rtf_SYMBOL(\"fi\", Rtf_KWD.PROP, Rtf_IPROP.FIRST_IND),\r\n new Rtf_SYMBOL(\"cols\", Rtf_KWD.PROP, Rtf_IPROP.COLS), new Rtf_SYMBOL(\"sbknone\", Rtf_KWD.PROP, Rtf_IPROP.SBK),\r\n new Rtf_SYMBOL(\"sbkcol\", Rtf_KWD.PROP, Rtf_IPROP.SBK), new Rtf_SYMBOL(\"sbkeven\", Rtf_KWD.PROP, Rtf_IPROP.SBK),\r\n new Rtf_SYMBOL(\"sbkodd\", Rtf_KWD.PROP, Rtf_IPROP.SBK), new Rtf_SYMBOL(\"sbkpage\", Rtf_KWD.PROP, Rtf_IPROP.SBK),\r\n new Rtf_SYMBOL(\"pgnx\", Rtf_KWD.PROP, Rtf_IPROP.PGN_X), new Rtf_SYMBOL(\"pgny\", Rtf_KWD.PROP, Rtf_IPROP.PGN_Y),\r\n new Rtf_SYMBOL(\"pgndec\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT), new Rtf_SYMBOL(\"pgnucrm\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT),\r\n new Rtf_SYMBOL(\"pgnlcrm\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT), new Rtf_SYMBOL(\"pgnucltr\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT),\r\n new Rtf_SYMBOL(\"pgnlcltr\", Rtf_KWD.PROP, Rtf_IPROP.PGN_FORMAT), new Rtf_SYMBOL(\"qc\", Rtf_KWD.PROP, Rtf_IPROP.JUST),\r\n new Rtf_SYMBOL(\"ql\", Rtf_KWD.PROP, Rtf_IPROP.JUST), new Rtf_SYMBOL(\"qr\", Rtf_KWD.PROP, Rtf_IPROP.JUST),\r\n new Rtf_SYMBOL(\"qj\", Rtf_KWD.PROP, Rtf_IPROP.JUST), new Rtf_SYMBOL(\"paperw\", Rtf_KWD.PROP, Rtf_IPROP.XA_PAGE),\r\n new Rtf_SYMBOL(\"paperh\", Rtf_KWD.PROP, Rtf_IPROP.YA_PAGE), new Rtf_SYMBOL(\"margl\", Rtf_KWD.PROP, Rtf_IPROP.XA_LEFT),\r\n new Rtf_SYMBOL(\"margr\", Rtf_KWD.PROP, Rtf_IPROP.XA_RIGHT), new Rtf_SYMBOL(\"margt\", Rtf_KWD.PROP, Rtf_IPROP.YA_TOP),\r\n new Rtf_SYMBOL(\"margb\", Rtf_KWD.PROP, Rtf_IPROP.YA_BOTTOM), new Rtf_SYMBOL(\"pgnstart\", Rtf_KWD.PROP, Rtf_IPROP.PGN_START),\r\n new Rtf_SYMBOL(\"facingp\", Rtf_KWD.PROP, Rtf_IPROP.FACING_P), new Rtf_SYMBOL(\"landscape\", Rtf_KWD.PROP, Rtf_IPROP.LANDSCAPE),\r\n new Rtf_SYMBOL(\"par\", Rtf_KWD.CHAR, Rtf_RtfChar.LF), new Rtf_SYMBOL(\"\\0x0a\", Rtf_KWD.CHAR, Rtf_RtfChar.LF),\r\n new Rtf_SYMBOL(\"\\0x0d\", Rtf_KWD.CHAR, Rtf_RtfChar.LF), new Rtf_SYMBOL(\"tab\", Rtf_KWD.CHAR, Rtf_RtfChar.TAB),\r\n new Rtf_SYMBOL(\"ldblquote\", Rtf_KWD.CHAR, Rtf_RtfChar.DBLQUOTE), new Rtf_SYMBOL(\"rdblquote\", Rtf_KWD.CHAR, Rtf_RtfChar.DBLQUOTE),\r\n new Rtf_SYMBOL(\"lquote\", Rtf_KWD.CHAR, Rtf_RtfChar.QUOTE), new Rtf_SYMBOL(\"rquote\", Rtf_KWD.CHAR, Rtf_RtfChar.QUOTE),\r\n new Rtf_SYMBOL(\"bullet\", Rtf_KWD.CHAR, Rtf_RtfChar.BULLET), new Rtf_SYMBOL(\"endash\", Rtf_KWD.CHAR, Rtf_RtfChar.DASH_CHAR),\r\n new Rtf_SYMBOL(\"emdash\", Rtf_KWD.CHAR, Rtf_RtfChar.DASH_CHAR), new Rtf_SYMBOL(\"~\", Rtf_KWD.CHAR, Rtf_RtfChar.TILDA),\r\n new Rtf_SYMBOL(\"-\", Rtf_KWD.CHAR, Rtf_RtfChar.DASH), new Rtf_SYMBOL(\"{\", Rtf_KWD.CHAR, Rtf_RtfChar.OPENINGBRACE),\r\n new Rtf_SYMBOL(\"}\", Rtf_KWD.CHAR, Rtf_RtfChar.CLOSINGBRACE), new Rtf_SYMBOL(\"\\\\\", Rtf_KWD.CHAR, Rtf_RtfChar.BACKSLASH),\r\n new Rtf_SYMBOL(\"bin\", Rtf_KWD.SPEC, Rtf_IPFN.BIN), new Rtf_SYMBOL(\"*\", Rtf_KWD.SPEC, Rtf_IPFN.SKIP_DEST),\r\n new Rtf_SYMBOL(\"'\", Rtf_KWD.SPEC, Rtf_IPFN.HEX), new Rtf_SYMBOL(\"f\", Rtf_KWD.SPEC, Rtf_IPFN.FONT),\r\n new Rtf_SYMBOL(\"fcharset\", Rtf_KWD.SPEC, Rtf_IPFN.CHARSET), new Rtf_SYMBOL(\"u\", Rtf_KWD.SPEC, Rtf_IPFN.UNICODE),\r\n new Rtf_SYMBOL(\"author\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"buptim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"colortbl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"comment\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"creatim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"doccomm\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"fonttbl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"footer\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"footerf\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"footerl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"footerr\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"footnote\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"ftncn\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"ftnsep\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"ftnsepc\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"header\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"headerf\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"headerl\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"headerr\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"info\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"keywords\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"operator\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"pict\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"printim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"private1\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"revtim\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"rxe\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"stylesheet\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"subject\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"tc\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"title\", Rtf_KWD.DEST, Rtf_IDEST.SKIP), new Rtf_SYMBOL(\"txe\", Rtf_KWD.DEST, Rtf_IDEST.SKIP),\r\n new Rtf_SYMBOL(\"xe\", Rtf_KWD.DEST, Rtf_IDEST.SKIP)\r\n ];\r\n\r\n /// <summary> Constructor\r\n /// </summary>\r\n constructor() {\r\n this._stack = new Stack<Rtf_StackSave>();\r\n this._group = 0;\r\n this._cbBin = 0;\r\n this._lParam = 0;\r\n this._outputOnce = false;\r\n this._skipDestIfUnk = false;\r\n this._processCrlfSpecial = false;\r\n this._destState = Rtf_RDS.NORM;\r\n this._internalState = Rtf_RIS.NORM;\r\n this._fontNum = 0;\r\n if (UtilStrByteMode.isLocaleDefLangDBCS()) {\r\n this.setCodePageTable();\r\n }\r\n }\r\n\r\n /// <summary> Checks if the blob has a Rtf data or not\r\n ///\r\n /// </summary>\r\n /// <param name=\"str\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n static isRtf(str: string): boolean {\r\n let isRtf: boolean = false;\r\n if (str !== null && str.startsWith(this.RTF_PREFIX)) {\r\n isRtf = true;\r\n }\r\n return isRtf;\r\n }\r\n\r\n /// <summary> Converts Rtf Text to Plain Text\r\n /// Step 1: Isolate RTF keywords and send them to ParseKeyword; Push and pop state at the start and end of\r\n /// RTF groups Send text to ParseChar for further processing.\r\n ///\r\n /// </summary>\r\n /// <param name=\"rtfTxt\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n public toTxt(rtfTxt: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let cNibble: number = 2;\r\n let b: number = 0;\r\n let currPos: number = 0;\r\n let skipNewline: boolean = false;\r\n let blobStrLen: number;\r\n let blobChar: string;\r\n let ec: Rtf_ErrorRtf;\r\n let dbcsBytes: Uint8Array = new Uint8Array(2);\r\n let skipParseChar: boolean = false;\r\n let charset: number = 0;\r\n let codePage: number = 0;\r\n\r\n this._outputOnce = false;\r\n this._processCrlfSpecial = false;\r\n blobStrLen = rtfTxt.length;\r\n this._index = 0;\r\n this._destState = Rtf_RDS.NORM;\r\n if (rtfTxt === null || blobStrLen === 0 || !Rtf.isRtf(rtfTxt)) {\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n while (this._index < blobStrLen) {\r\n blobChar = rtfTxt[this._index];\r\n this._index++;\r\n\r\n if (this._group < 0)\r\n return Rtf_ErrorRtf.STACK_UNDERFLOW;\r\n\r\n /* if we're parsing binary data, handle it directly */\r\n if (this._internalState === Rtf_RIS.BIN) {\r\n if ((ec = this.ParseChar(blobChar, outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n }\r\n else {\r\n switch (blobChar) {\r\n case Rtf_RtfChar.OPENINGBRACE:\r\n skipNewline = false;\r\n if ((ec = this.PushState()) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n break;\r\n\r\n case Rtf_RtfChar.CLOSINGBRACE:\r\n skipNewline = true;\r\n if ((ec = this.PopState()) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n break;\r\n\r\n case Rtf_RtfChar.BACKSLASH:\r\n skipNewline = false;\r\n if ((ec = this.ParseKeyword(rtfTxt, outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n break;\r\n\r\n case Rtf_RtfChar.LF:\r\n case Rtf_RtfChar.CR: /* cr and lf are noise characters... */\r\n if (this._processCrlfSpecial) {\r\n /* Once we reach the 0x0a while ProcessCRLFSpecial_, reset the ProcessCRLFSpecial_ */\r\n if (blobChar === Rtf_RtfChar.LF) {\r\n this._processCrlfSpecial = false;\r\n }\r\n }\r\n else {\r\n /*---------------------------------------------------------------*/\r\n /* skip new lines coming only from the RTF header 1/1/98 - #2390 */\r\n /*---------------------------------------------------------------*/\r\n /* Skip the LF (0x0a) if we are not in the ProcessCRLFSpecial_ */\r\n if (blobChar === Rtf_RtfChar.LF || (blobChar === Rtf_RtfChar.CR && skipNewline && !this._outputOnce))\r\n break;\r\n }\r\n /* falls through */\r\n\r\n default:\r\n if (blobChar !== Rtf_RtfChar.CR)\r\n skipNewline = false;\r\n if (this._internalState === Rtf_RIS.NORM) {\r\n if ((ec = this.ParseChar(blobChar, outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n }\r\n else if (this._internalState === Rtf_RIS.UNICODE) {\r\n if ((ec = this.ParseChar(String.fromCharCode(this._lParam), outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n this._internalState = Rtf_RIS.NORM;\r\n }\r\n else {\r\n /* parsing hex data */\r\n if (this._internalState !== Rtf_RIS.HEX)\r\n return Rtf_ErrorRtf.ASSERTION;\r\n b = b << 4;\r\n if (NChar.IsDigit(blobChar))\r\n b += blobChar.charCodeAt(0) - '0'.charCodeAt(0);\r\n else {\r\n if (NChar.IsLower(blobChar)) {\r\n if (blobChar < 'a' || blobChar > 'f')\r\n return Rtf_ErrorRtf.INVALID_HEX;\r\n b += 10 + blobChar.charCodeAt(0) - 'a'.charCodeAt(0);\r\n }\r\n else {\r\n if (blobChar < 'A' || blobChar > 'F')\r\n return Rtf_ErrorRtf.INVALID_HEX;\r\n b += 10 + blobChar.charCodeAt(0) - 'A'.charCodeAt(0);\r\n }\r\n }\r\n cNibble--;\r\n if (cNibble === 0) {\r\n if (UtilStrByteMode.isLocaleDefLangDBCS()) {\r\n charset = this.getCharset(this._fontNum);\r\n\r\n // leading byte of a double-byte character\r\n if (!skipParseChar && Rtf.is1stByte(b, charset)) {\r\n dbcsBytes[0] = b;\r\n dbcsBytes[1] = 0;\r\n skipParseChar = true;\r\n }\r\n else {\r\n // trailing byte of a double-byte character\r\n if (skipParseChar && Rtf.is2ndByte(b, charset))\r\n dbcsBytes[1] = b;\r\n // single-byte character\r\n else {\r\n dbcsBytes[0] = b;\r\n dbcsBytes[1] = 0;\r\n }\r\n\r\n // convert DBCS to Unicode\r\n codePage = this.getCodePage(charset);\r\n let workStr: string = Encoding.GetEncoding(codePage).GetString(dbcsBytes, 0, 2);\r\n b = workStr.charCodeAt(0);\r\n skipParseChar = false;\r\n }\r\n }\r\n if (!skipParseChar) {\r\n if ((ec = this.ParseChar(String.fromCharCode(b), outputTxt)) !== Rtf_ErrorRtf.OK)\r\n return ec;\r\n }\r\n cNibble = 2;\r\n b = 0;\r\n this._internalState = Rtf_RIS.NORM;\r\n }\r\n }\r\n /* end else (ris != risNorm) */\r\n break;\r\n }\r\n /* switch */\r\n }\r\n /* else (ris != risBin) */\r\n }\r\n /* while */\r\n\r\n if (this._group < 0)\r\n return Rtf_ErrorRtf.STACK_UNDERFLOW;\r\n if (this._group > 0)\r\n return Rtf_ErrorRtf.UNMATCHED_BRACE;\r\n\r\n /*-------------------------------------------------------------------*/\r\n /* Eliminate suffix of carrige return + line feed */\r\n /* (Check last characters - just in case format is not the expected) */\r\n /*-------------------------------------------------------------------*/\r\n currPos = outputTxt.Length;\r\n if (currPos >= 3 && (outputTxt.get_Item(currPos - 3) === Rtf_RtfChar.CR && outputTxt.get_Item(currPos - 2) === Rtf_RtfChar.LF && outputTxt.get_Item(currPos - 1) === Rtf_RtfChar.CR || outputTxt.get_Item(currPos - 3) === Rtf_RtfChar.LF && outputTxt.get_Item(currPos - 2) === Rtf_RtfChar.CR && outputTxt.get_Item(currPos - 1) === Rtf_RtfChar.CR))\r\n outputTxt.Remove(currPos - 3, 3);\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Route the character to the appropriate destination stream.\r\n ///\r\n /// </summary>\r\n /// <param name=\"ch\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private ParseChar(ch: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let ret: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n\r\n if (this._internalState === Rtf_RIS.BIN && --this._cbBin <= 0) {\r\n this._internalState = Rtf_RIS.NORM;\r\n }\r\n\r\n if (this._destState === Rtf_RDS.SKIP) {\r\n }\r\n /* Toss this character. */\r\n else if (this._destState === Rtf_RDS.NORM) {\r\n /* Output a character. Properties are valid at this point. */\r\n ret = this.PrintChar(ch, outputTxt);\r\n }\r\n else {\r\n /* handle other destinations.... */\r\n }\r\n return ret;\r\n }\r\n\r\n /// <summary> Send a character to the output file.\r\n ///\r\n /// </summary>\r\n /// <param name=\"ch\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private PrintChar(ch: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n /* Allow carrige return + line feed in text, but remove bullet sign */\r\n /*------------------------------------------------------------------*/\r\n if ((ch >= ' ' || ch === Rtf_RtfChar.CR || ch === Rtf_RtfChar.LF) && ch !== String.fromCharCode(183)) {\r\n outputTxt.Append(ch);\r\n }\r\n\r\n if (ch >= ' ') {\r\n this._outputOnce = true;\r\n }\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Save relevant info on a linked list of SAVE structures.\r\n ///\r\n /// </summary>\r\n /// <returns>\r\n /// </returns>\r\n private PushState(): Rtf_ErrorRtf {\r\n let stackSave: Rtf_StackSave = new Rtf_StackSave();\r\n\r\n if (stackSave === null) {\r\n return Rtf_ErrorRtf.STACK_OVERFLOW;\r\n }\r\n\r\n stackSave.rds = this._destState;\r\n stackSave.ris = this._internalState;\r\n this._internalState = Rtf_RIS.NORM;\r\n\r\n this._stack.push(stackSave);\r\n this._group++;\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Always restore relevant info from the top of the SAVE list.\r\n ///\r\n /// </summary>\r\n /// <returns>\r\n /// </returns>\r\n private PopState(): Rtf_ErrorRtf {\r\n let savedPop: Rtf_StackSave = this._stack.pop();\r\n\r\n if (savedPop === null) {\r\n return Rtf_ErrorRtf.STACK_UNDERFLOW;\r\n }\r\n\r\n this._destState = savedPop.rds;\r\n this._internalState = savedPop.ris;\r\n\r\n this._group--;\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Step 2: get a control word (and its associated value) and call TranslateKeyword to dispatch the control.\r\n ///\r\n /// </summary>\r\n /// <param name=\"rtfTxt\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private ParseKeyword(rtfTxt: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let ch: string;\r\n let fNeg: boolean = false;\r\n let szKeyword: string = \"\";\r\n let szParameter: string = \"\";\r\n\r\n if ((ch = rtfTxt[this._index++]) === String.fromCharCode(0)) {\r\n return Rtf_ErrorRtf.END_OF_FILE;\r\n }\r\n\r\n /* a control symbol; no delimiter. */\r\n if (!NChar.IsLetter(ch)) {\r\n szKeyword = szKeyword + ch;\r\n return this.TranslateKeyword(szKeyword, outputTxt);\r\n }\r\n\r\n for (; NChar.IsLetter(ch); ch = rtfTxt[this._index++])\r\n szKeyword = szKeyword + ch;\r\n\r\n if (ch === '-') {\r\n fNeg = true;\r\n if ((ch = rtfTxt[this._index++]) === String.fromCharCode(0))\r\n return Rtf_ErrorRtf.END_OF_FILE;\r\n }\r\n\r\n if (NChar.IsDigit(ch)) {\r\n for (; NChar.IsDigit(ch); ch = rtfTxt[this._index++])\r\n szParameter = szParameter + ch;\r\n\r\n this._lParam = NNumber.Parse(szParameter);\r\n\r\n if (fNeg)\r\n this._lParam = -this._lParam;\r\n }\r\n if (ch !== ' ')\r\n this._index--;\r\n\r\n if (szKeyword === Rtf.CHAR_PAR) {\r\n /* if we get a RTF sequence of \\par[0xd][0xa], ie a \\par kwd followed */\r\n /* immidiately by the CR and LF, then ignore the \\par kwd. otherwise */\r\n /* we will translate the \\par - which translates to a LF (0xa) and also */\r\n /* the following 0x0d is translated to 0x0a, thus resulting in TWO LF's */\r\n /* being inserted instead of just one LF. So by skipping [\\par] and */\r\n /* translating only the [0xd 0xa] will result in only one LF appearing */\r\n /* - which is the desired behaviour */\r\n if (rtfTxt[this._index] === Rtf_RtfChar.CR && rtfTxt[this._index + 1] === Rtf_RtfChar.LF)\r\n this._processCrlfSpecial = true;\r\n }\r\n\r\n if (this._processCrlfSpecial) {\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n else {\r\n return this.TranslateKeyword(szKeyword, outputTxt);\r\n }\r\n }\r\n\r\n /// <summary> Step 3. Search rgsymRtf for szKeyword and evaluate it appropriately.\r\n ///\r\n /// </summary>\r\n /// <param name=\"szKeyword\">\r\n /// </param>\r\n /// <param name=\"outputTxt\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private TranslateKeyword(szKeyword: string, outputTxt: StringBuilder): Rtf_ErrorRtf {\r\n let result: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n let isym: number;\r\n\r\n /* search for szKeyword in rgsymRtf */\r\n for (isym = 0; isym < Rtf.rgsymRtf.length; isym++) {\r\n if (szKeyword === Rtf.rgsymRtf[isym].szKeyword) {\r\n break;\r\n }\r\n }\r\n\r\n /* control word not found */\r\n if (isym === Rtf.rgsymRtf.length) {\r\n if (this._skipDestIfUnk) {\r\n /* if this is a new destination */\r\n this._destState = Rtf_RDS.SKIP;\r\n /* skip the destination */\r\n }\r\n\r\n /* else just discard it */\r\n this._skipDestIfUnk = false;\r\n }\r\n else {\r\n result = Rtf_ErrorRtf.BAD_TABLE;\r\n\r\n /* found it! use kwd and idxInRgprop to determine what to do with it. */\r\n this._skipDestIfUnk = false;\r\n\r\n if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.PROP) {\r\n result = this.validateProp(<Rtf_IPROP>Rtf.rgsymRtf[isym].idxInRgprop);\r\n }\r\n else if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.CHAR) {\r\n result = this.ParseChar((Rtf.rgsymRtf[isym].idxInRgprop), outputTxt);\r\n }\r\n else if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.DEST) {\r\n result = this.changeDestState();\r\n }\r\n else if (Rtf.rgsymRtf[isym].kwd === Rtf_KWD.SPEC) {\r\n result = this.ParseSpecialKeyword(<Rtf_IPFN>Rtf.rgsymRtf[isym].idxInRgprop);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /// <summary> Validate the property identified by _iprop_ to the value _val_.\r\n /// previously called Applypropchange\r\n /// </summary>\r\n /// <param name=\"iprop\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private validateProp(iprop: Rtf_IPROP): Rtf_ErrorRtf {\r\n let ret: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n\r\n if (this._destState === Rtf_RDS.SKIP) {\r\n /* If we're skipping text, */\r\n return ret;\r\n /* don't do anything. */\r\n }\r\n\r\n /* validate prop */\r\n if (Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.DOP && Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.SEP &&\r\n Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.PAP && Rtf.rgprop[iprop].prop !== Rtf_PROPTYPE.CHP &&\r\n Rtf.rgprop[iprop].actn !== Rtf_ACTN.SPEC) {\r\n ret = Rtf_ErrorRtf.BAD_TABLE;\r\n }\r\n\r\n if (Rtf.rgprop[iprop].actn !== Rtf_ACTN.BYTE && Rtf.rgprop[iprop].actn !== Rtf_ACTN.WORD && Rtf.rgprop[iprop].actn !== Rtf_ACTN.SPEC) {\r\n ret = Rtf_ErrorRtf.BAD_TABLE;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n /// <summary> Change to the destination state.\r\n /// previously called ChangeDest\r\n /// </summary>\r\n /// <returns>\r\n /// </returns>\r\n private changeDestState(): Rtf_ErrorRtf {\r\n if (this._destState === Rtf_RDS.SKIP) {\r\n /* if we're skipping text, */\r\n return Rtf_ErrorRtf.OK;\r\n /* don't do anything */\r\n }\r\n\r\n this._destState = Rtf_RDS.SKIP;\r\n /* when in doubt, skip it... */\r\n\r\n return Rtf_ErrorRtf.OK;\r\n }\r\n\r\n /// <summary> Evaluate an RTF control that needs special processing.\r\n ///\r\n /// </summary>\r\n /// <param name=\"ipfn\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private ParseSpecialKeyword(ipfn: Rtf_IPFN): Rtf_ErrorRtf {\r\n let ret: Rtf_ErrorRtf = Rtf_ErrorRtf.OK;\r\n\r\n if (!UtilStrByteMode.isLocaleDefLangDBCS()) {\r\n if (this._destState === Rtf_RDS.SKIP && ipfn !== Rtf_IPFN.BIN) {\r\n /* if we're skipping, and it's not */\r\n return ret;\r\n /* the \\bin keyword, ignore it. */\r\n }\r\n\r\n if (ipfn === Rtf_IPFN.FONT || ipfn === Rtf_IPFN.CHARSET || ipfn === Rtf_IPFN.UNICODE) {\r\n return ret;\r\n }\r\n }\r\n else {\r\n if (this._destState === Rtf_RDS.SKIP && ipfn !== Rtf_IPFN.BIN && ipfn !== Rtf_IPFN.FONT &&\r\n ipfn !== Rtf_IPFN.CHARSET && ipfn !== Rtf_IPFN.UNICODE) {\r\n return ret;\r\n }\r\n }\r\n\r\n if (ipfn === Rtf_IPFN.BIN) {\r\n this._internalState = Rtf_RIS.BIN;\r\n this._cbBin = this._lParam;\r\n }\r\n else if (ipfn === Rtf_IPFN.SKIP_DEST) {\r\n this._skipDestIfUnk = true;\r\n }\r\n else if (ipfn === Rtf_IPFN.HEX) {\r\n this._internalState = Rtf_RIS.HEX;\r\n }\r\n else if (ipfn === Rtf_IPFN.FONT) {\r\n this._fontNum = <number>this._lParam;\r\n }\r\n else if (ipfn === Rtf_IPFN.CHARSET) {\r\n this._charsetTable.set_Item(this._fontNum, <number>this._lParam);\r\n }\r\n else if (ipfn === Rtf_IPFN.UNICODE) {\r\n this._internalState = Rtf_RIS.UNICODE;\r\n }\r\n else {\r\n ret = Rtf_ErrorRtf.BAD_TABLE;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n private static is1stByte(dbcsBytes: number, charset: number): boolean {\r\n let ret: boolean = false;\r\n\r\n if (dbcsBytes > 255)\r\n return ret;\r\n\r\n switch (charset) {\r\n case 128:\r\n ret = (129 <= dbcsBytes && dbcsBytes <= 159) || (224 <= dbcsBytes && dbcsBytes <= 254);\r\n break;\r\n case 129:\r\n case 134:\r\n case 136:\r\n ret = (129 <= dbcsBytes);\r\n break;\r\n default:\r\n break;\r\n }\r\n return ret;\r\n }\r\n\r\n /// <summary> Checks if the byte is within the trailing byte range.\r\n ///\r\n /// </summary>\r\n /// <param name=\"dbcsBytes\">\r\n /// </param>\r\n /// <param name=\"charset\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private static is2ndByte(dbcsBytes: number, charset: number): boolean {\r\n let ret: boolean = false;\r\n if (dbcsBytes > 255)\r\n return ret;\r\n\r\n switch (charset) {\r\n case 128:\r\n ret = (dbcsBytes !== 127) && (64 <= dbcsBytes && dbcsBytes <= 252);\r\n break;\r\n case 129:\r\n case 134:\r\n case 136:\r\n ret = (64 <= dbcsBytes);\r\n break;\r\n default:\r\n break;\r\n }\r\n return ret;\r\n }\r\n\r\n /// <summary> Create a hashtable of codepage associated with charset.\r\n ///\r\n /// </summary>\r\n /// <param>\r\n /// <returns>\r\n /// </returns>\r\n private setCodePageTable(): void {\r\n // add elements with key (charset) and value (codepage) into the table.\r\n this._codePageTable.set_Item(0, 1252); // ANSI_CHARSET\r\n this._codePageTable.set_Item(128, 932); // SHIFTJIS_CHARSET\r\n this._codePageTable.set_Item(129, 949); // HANGUL_CHARSET\r\n this._codePageTable.set_Item(134, 936); // GB2312_CHARSET\r\n this._codePageTable.set_Item(136, 950); // CHINESEBIG5_CHARSET\r\n this._codePageTable.set_Item(161, 1253); // GREEK_CHARSET\r\n this._codePageTable.set_Item(162, 1254); // TURKISH_CHARSET\r\n this._codePageTable.set_Item(177, 1255); // HEBREW_CHARSET\r\n this._codePageTable.set_Item(178, 1256); // ARABIC _CHARSET\r\n this._codePageTable.set_Item(186, 1257); // BALTIC_CHARSET\r\n this._codePageTable.set_Item(204, 1251); // RUSSIAN_CHARSET\r\n this._codePageTable.set_Item(222, 874); // THAI_CHARSET\r\n this._codePageTable.set_Item(238, 1250); // EASTEUROPE_CHARSET\r\n }\r\n\r\n /// <summary> Get codepage corresponding to the specified charset.\r\n ///\r\n /// </summary>\r\n /// <param name=\"charset\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private getCodePage(charset: number): number {\r\n let codePage: number = 0;\r\n\r\n if (this._codePageTable.ContainsKey(charset)) {\r\n codePage = this._codePageTable.get_Item(charset);\r\n }\r\n\r\n return codePage;\r\n }\r\n\r\n /// <summary> Get charset corresponding to the specified font index.\r\n ///\r\n /// </summary>\r\n /// <param name=\"font\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n private getCharset(font: number): number {\r\n let charset: number = 0;\r\n\r\n if (this._charsetTable.ContainsKey(font)) {\r\n charset = this._charsetTable.get_Item(font);\r\n }\r\n return charset;\r\n }\r\n}\r\n","import {List, NString, RefParam, StringBuilder, isNullOrUndefined} from \"@magic-xpa/mscorelib\";\r\nimport {UtilStrByteMode} from \"./UtilStrByteMode\";\r\nimport {Rtf} from \"./Rtf\";\r\n\r\nconst HTML_BACKSLASH: string = \"&#092;\";\r\nconst HTML_COMMA: string = \"&#044;\";\r\nconst HTML_HYPHEN: string = \"&#045;\";\r\nconst STR_2_HTML: number = 1;\r\nconst TASK_PATH_DELIMITER: string = \"@@||@@\";\r\nexport const SEQ_2_HTML: number = 2;\r\nexport const HTML_2_STR: number = 3;\r\nconst HTML_2_SEQ: number = 4;\r\nexport const SEQ_2_STR: number = 5;\r\n\r\nexport class StrUtil {\r\n private static _paddingSpaces: string = null;\r\n\r\n /// <summary> trim the end of the string</summary>\r\n static mem_trim(str: string, len: number): number {\r\n let result: number;\r\n if (len > 0) {\r\n if (len > str.length) {\r\n result = -1;\r\n return result;\r\n }\r\n while (len > 0 && str[len - 1] === ' ') {\r\n len = len - 1;\r\n }\r\n }\r\n result = len;\r\n return result;\r\n }\r\n\r\n static memmove(dest: string, destCount: number, src: string, srcCount: number, len: number): string {\r\n let stringBuilder: StringBuilder = new StringBuilder(dest.length + len);\r\n if (UtilStrByteMode.isLocaleDefLangJPN() && dest.length < destCount) {\r\n stringBuilder.Append(NString.FromChar(' ', destCount));\r\n }\r\n else {\r\n stringBuilder.Append(dest.substr(0, destCount));\r\n }\r\n stringBuilder.Append(src.substr(srcCount, len));\r\n\r\n if (stringBuilder.Length < dest.length) {\r\n stringBuilder.Append(dest.substr(stringBuilder.Length));\r\n }\r\n return stringBuilder.ToString();\r\n }\r\n\r\n static memcpy(dest: string, destCount: number, src: string, scrCount: number, count: number): string;\r\n static memcpy(dest: string[], destCount: number, src: string[], srcCount: number, count: number): void;\r\n static memcpy(dest: any, destCount: number, src: any, scrCountOrSrcCount: number, count: number): string {\r\n if (arguments.length === 5 && (dest === null || dest.constructor === String) && (destCount === null || destCount.constructor === Number) && (src === null || src.constructor === String) && (scrCountOrSrcCount === null || scrCountOrSrcCount.constructor === Number) && (count === null || count.constructor === Number)) {\r\n return StrUtil.memcpy_0(dest, destCount, src, scrCountOrSrcCount, count);\r\n }\r\n StrUtil.memcpy_1(dest, destCount, src, scrCountOrSrcCount, count);\r\n }\r\n\r\n /// <summary>\r\n /// copy part of string into another string, like memcpy of C, but 4 string only\r\n /// </summary>\r\n /// <param name = \"dest\">string</param>\r\n /// <param name = \"destCount\">of counter start from in destignation string</param>\r\n /// <param name = \"src\">string</param>\r\n /// <param name = \"scrCount\">of counter start from in source string</param>\r\n /// <param name = \"count\"></param>\r\n /// <returns> new value of destignation string</returns>\r\n private static memcpy_0(dest: string, destCount: number, src: string, scrCount: number, count: number): string {\r\n let stringBuilder: StringBuilder = new StringBuilder(dest.substr(0, destCount));\r\n\r\n if (scrCount + count < src.length) {\r\n stringBuilder.Append(src.substr(scrCount, count - scrCount));\r\n }\r\n else {\r\n stringBuilder.Append(src.substr(scrCount));\r\n }\r\n let size: number = dest.length - destCount - count;\r\n if (size > 0) {\r\n stringBuilder.Append(dest.substr(destCount + count));\r\n }\r\n return stringBuilder.ToString();\r\n }\r\n\r\n private static memcpy_1(dest: string[], destCount: number, src: string[], srcCount: number, count: number): void {\r\n while (count > 0 && destCount < dest.length && srcCount < src.length) {\r\n dest[destCount++] = src[srcCount++];\r\n count = count - 1;\r\n }\r\n }\r\n\r\n static memset(dest: string, destCount: number, inVal: string, counter: number): string;\r\n static memset(dest: string[], destCount: number, inVal: string, counter: number): void;\r\n static memset(dest: any, destCount: number, inVal: string, counter: number): string {\r\n if (arguments.length === 4 && (dest === null || dest.constructor === String) && (destCount === null || destCount.constructor === Number) && (inVal === null || inVal.constructor === Number) && (counter === null || counter.constructor === Number)) {\r\n return StrUtil.memset_0(dest, destCount, inVal, counter);\r\n }\r\n StrUtil.memset_1(dest, destCount, inVal, counter);\r\n }\r\n\r\n /// <summary>\r\n /// insert to string chars n times\r\n /// </summary>\r\n /// <param name = \"dest\">string</param>\r\n /// <param name = \"destCount\">of counter start from in destignation string to start insertion of char from</param>\r\n /// <param name = \"inVal\">2 insert</param>\r\n /// <param name = \"counter\">- number of times to insert the char</param>\r\n /// <returns> new value of destignation string</returns>\r\n private static memset_0(dest: string, destCount: number, inVal: string, counter: number): string {\r\n let first: StringBuilder = new StringBuilder(dest.substr(0, destCount));\r\n while (counter > 0) {\r\n first.Append(inVal);\r\n counter = counter - 1;\r\n }\r\n\r\n if (first.Length < dest.length) {\r\n first.Append(dest.substr(first.Length));\r\n }\r\n return first.ToString();\r\n }\r\n\r\n private static memset_1(dest: string[], destCount: number, inVal: string, counter: number): void {\r\n while (counter > 0 && destCount < dest.length) {\r\n dest[destCount++] = inVal;\r\n counter = counter - 1;\r\n }\r\n }\r\n\r\n static strstr(str: string, substr: string): string {\r\n let from: number = str.indexOf(substr);\r\n let result: string;\r\n if (from < 0) {\r\n result = null;\r\n }\r\n else {\r\n result = str.substr(from);\r\n }\r\n return result;\r\n }\r\n\r\n /*******************************/\r\n /// <summary>\r\n /// Reverses string values.\r\n /// </summary>\r\n /// <param name=\"text\">The StringBuilder object containing the string to be reversed.</param>\r\n /// <returns>The reversed string contained in a StringBuilder object.</returns>\r\n static ReverseString(text: StringBuilder): StringBuilder {\r\n // TODO: use string.Reverse()\r\n let array: string[] = NString.ToCharArray(text.ToString());\r\n array.reverse();\r\n return new StringBuilder(NString.FromChars(array));\r\n }\r\n\r\n /// <summary> remove spaces from the right side of string</summary>\r\n /// <param name=\"str\">the string to trim\r\n /// </param>\r\n static rtrim(str: string): string {\r\n return StrUtil.rtrimWithNull(str, false);\r\n }\r\n\r\n /// <summary> remove spaces and/or Null chars from the right side of string</summary>\r\n /// <param name=\"str\">the string to trim\r\n /// </param>\r\n /// <param name=\"trimNullChars\">Whether to remove NULL characters or not\r\n /// </param>\r\n static rtrimWithNull(str: string, trimNullChars: boolean): string {\r\n let result: string;\r\n if (typeof str === \"undefined\" || str === null || str.length === 0) {\r\n result = str;\r\n }\r\n else {\r\n let idx: number = str.length - 1;\r\n if (trimNullChars) {\r\n\r\n while (idx >= 0 && (str[idx] === ' ' || str[idx] === String.fromCharCode(0)/*'\u0000'*/)) {\r\n idx = idx - 1;\r\n }\r\n }\r\n else {\r\n while (idx >= 0 && str[idx] === ' ') {\r\n idx = idx - 1;\r\n }\r\n }\r\n idx = idx + 1;\r\n\r\n if (idx < str.length) {\r\n result = str.substr(0, idx);\r\n }\r\n else {\r\n result = str;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> remove spaces from the left side of string</summary>\r\n /// <param name=\"str\">the string to trim\r\n /// </param>\r\n static ltrim(str: string): string {\r\n let length: number = str.length;\r\n let i: number = 0;\r\n let result: string;\r\n if (str === null || length === 0) {\r\n result = str;\r\n }\r\n else {\r\n while (i < length && str[i] === ' '/*' '*/) {\r\n i = i + 1;\r\n }\r\n\r\n if (i > 0) {\r\n str = str.substr(i);\r\n }\r\n result = str;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>This function for Deleting String from end & start of input\r\n /// String\r\n /// </summary>\r\n /// <param name=\"str\">String , which can include strToDelete spaces on input\r\n /// </param>\r\n /// <param name=\"strToDelete\">need delete this String from start/end of str.\r\n /// </param>\r\n /// <returns> String without strToDelete on end & start,\r\n /// or 'null' if Sting hasn't not characters inside\r\n /// </returns>\r\n static DeleteStringsFromEnds(str: string, strToDelete: string): string {\r\n if (str.startsWith(strToDelete)) {\r\n str = str.substr(strToDelete.length);\r\n }\r\n if (str.endsWith(strToDelete)) {\r\n str = str.substr(0, str.length - strToDelete.length);\r\n }\r\n let result: string;\r\n if (str.length === 0) {\r\n result = null;\r\n }\r\n else {\r\n result = str;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> pad a string with trailing spaces up to the given length</summary>\r\n /// <param name=\"str\">the string to pad\r\n /// </param>\r\n /// <param name=\"len\">the expected length after padding\r\n /// </param>\r\n static padStr(str: string, len: number): string {\r\n let padLen: number = len - str.length;\r\n\r\n if (padLen > 0) {\r\n if (StrUtil._paddingSpaces === null || StrUtil._paddingSpaces.length < padLen) {\r\n StrUtil._paddingSpaces = NString.FromChar(' ', padLen);\r\n }\r\n let stringBuilder: StringBuilder = new StringBuilder(len);\r\n stringBuilder.Append(str);\r\n stringBuilder.Append(StrUtil._paddingSpaces, 0, padLen);\r\n str = stringBuilder.ToString();\r\n }\r\n return str;\r\n }\r\n\r\n /// <summary> this method will serve as a string tokenizer instead of using the c# split method\r\n /// since there are diffrences btween java tokenizer and c# split\r\n /// the implimentation given by the conversion tool is not Sufficient\r\n /// </summary>\r\n /// <param name=\"source\">- the source string to be converted\r\n /// </param>\r\n /// <param name=\"delim\">- the string of delimiters used to split the string (each character in the String is a delimiter\r\n /// </param>\r\n /// <returns> array of token according which is the same as string tokenizer in java\r\n /// </returns>\r\n static tokenize(source: string, delim: string|RegExp): string[] {\r\n // It is mentioned in the comment that we should not use String.Split()\r\n // because its behavior is different than Java's tokenizer.\r\n // So, we were suppose to use our own implementation (the commented code below).\r\n // But all these years, we were calling XmlParser.getToken() which was actually\r\n // using String.Split(). And we didn't face any problem.\r\n // So, it seems that we do not have problem in using String.Split().\r\n // But now, we can improve the performance here...\r\n // XmlParser.getTokens() was getting a String[] using String.Split().\r\n // It was then creating a List<String> from this String[] and was returning it to\r\n // tokenize().\r\n // tokenize() was again converting this List<String> back to String[].\r\n // So why not call String.Split() directly?\r\n return source.split(delim);\r\n /*\r\nString [] tokens = null;\r\n\r\nchar [] delimArry = delim.toCharArray();\r\n\r\n//since java discards delimiters from the start and end of the string and c# does not\r\n//we need to remove them manually\r\n// source = source.TrimEnd(delimArry);\r\n// source = source.TrimStart(delimArry);\r\nsource = source.trim();\r\n\r\n//now that we have remove starting and ending delimiters we can split\r\ntokens = source.Split(delimArry);\r\n\r\n/*\r\n* only one problem: if we have two Subsequent delimiters for example :\r\n* the delimiter is ';' and the string is: \"first;;second;third\"\r\n* then in java String tokenizer will give us only 3 tokens :first,second and third\r\n* while is c# split wethod will return 4 tokens: first,empty string,second and third\r\n* we need to deal with that\r\n*/\r\n /*\r\n List res = new List();\r\n for (int i = 0 ; i < tokens.length; i++)\r\n {\r\n if (tokens[i] != \"\" )\r\n res.addItem(tokens[i]);\r\n }\r\n\r\n return (String [])(res.getAllItems (String.class));*/\r\n\r\n\r\n }\r\n\r\n /// <summary>\r\n /// translate from string to hexa dump char by char\r\n /// </summary>\r\n /// <param name = \"string\">to translate it to the byte stream</param>\r\n /// <param name = \"minLength\">the minimal length of hexa digits for each char</param>\r\n /// <returns> the byte stream in form of string</returns>\r\n static stringToHexaDump(str: string, minLength: number): string {\r\n let stringBuilder: StringBuilder = new StringBuilder(str.length * minLength);\r\n for (let indx: number = 0; indx < str.length; indx = indx + 1) {\r\n let currInt: number = str.charCodeAt(indx);\r\n let hexStr: string = currInt.toString(16);\r\n while (hexStr.length < minLength) {\r\n hexStr = \"0\" + hexStr;\r\n }\r\n stringBuilder.Append(hexStr);\r\n }\r\n return stringBuilder.ToString().toUpperCase();\r\n }\r\n\r\n static searchAndReplace(str: string, from: string, to: string): string;\r\n static searchAndReplace(str: string, from: string[], to: string[]): string;\r\n static searchAndReplace(str: string, from: any, to: any): string {\r\n if (arguments.length === 3 && (str === null || str.constructor === String) && (from === null || from.constructor === String) && (to === null || to.constructor === String)) {\r\n return StrUtil.searchAndReplace_0(str, from, to);\r\n }\r\n return StrUtil.searchAndReplace_1(str, from, to);\r\n }\r\n\r\n /// <summary> replace every appearance of 'from' in 'str' with 'to'</summary>\r\n /// <param name=\"str\">the working base source string </param>\r\n /// <param name=\"from\">the string to replace </param>\r\n /// <param name=\"to\">the string use instead 'from' </param>\r\n /// <returns> modified String </returns>\r\n private static searchAndReplace_0(str: string, from: string, to: string): string {\r\n let lastSubStr: number = 0;\r\n let startSubStr: number;\r\n let result: string;\r\n\r\n if ((startSubStr = str.indexOf(from)) === -1) {\r\n result = str;\r\n }\r\n else {\r\n let stringBuilder: StringBuilder = new StringBuilder(str.length);\r\n while (startSubStr !== -1) {\r\n stringBuilder.Append(str.substr(lastSubStr, startSubStr - lastSubStr) + to);\r\n startSubStr = startSubStr + from.length;\r\n lastSubStr = startSubStr;\r\n startSubStr = str.indexOf(from, lastSubStr);\r\n }\r\n stringBuilder.Append(str.substr(lastSubStr));\r\n result = stringBuilder.ToString();\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> replace every appearance of strings of 'from' in 'str' with the according string in 'to'</summary>\r\n /// <param name=\"str\">the working base source string </param>\r\n /// <param name=\"from\">the string to replace </param>\r\n /// <param name=\"to\">the string use instead 'from' </param>\r\n /// <returns> modified String </returns>\r\n private static searchAndReplace_1(str: string, from: string[], to: string[]): string {\r\n let lastSubStr: number = 0;\r\n let sarIndex: number = 0;\r\n let fromCopy: string[] = from.slice();\r\n let startSubStr: number;\r\n let SARindex: RefParam<number> = new RefParam(0);\r\n startSubStr = StrUtil.indexOf(str, fromCopy, lastSubStr, SARindex);\r\n sarIndex = SARindex.value;\r\n if (startSubStr === -1)\r\n return str;\r\n\r\n let result: string;\r\n let tmpBuf: StringBuilder = new StringBuilder(str.length);\r\n while (startSubStr !== -1) {\r\n tmpBuf.Append(str.substr(lastSubStr, startSubStr - lastSubStr) + to[sarIndex]);\r\n startSubStr += fromCopy[sarIndex].length;\r\n lastSubStr = startSubStr;\r\n startSubStr = StrUtil.indexOf(str, fromCopy, lastSubStr, SARindex);\r\n sarIndex = SARindex.value;\r\n };\r\n tmpBuf.Append(str.substr(lastSubStr));\r\n result = tmpBuf.ToString();\r\n\r\n return result;\r\n }\r\n\r\n /// <summary> this functions is for use by the searchAndReplace() function -\r\n /// searches the offset of the strings from the array in the given string\r\n /// and returns the minimum offset found and sets the index of the found string\r\n /// to SARindex\r\n /// </summary>\r\n /// <param name=\"str\">the string to search in </param>\r\n /// <param name=\"strings\">an array of strings to search for </param>\r\n /// <param name=\"offset\">where to start the search </param>\r\n private static indexOf(str: string, strings: string[], offset: number, SARindex: RefParam<number>): number {\r\n let minOffset: number = -1;\r\n for (let i: number = 0; i < strings.length; i = i + 1) {\r\n if (!(strings[i] === null)) {\r\n let resultOffset: number = str.indexOf(strings[i], offset);\r\n\r\n if (resultOffset === -1) {\r\n strings[i] = null;\r\n }\r\n else {\r\n if (resultOffset < minOffset || minOffset === -1) {\r\n minOffset = resultOffset;\r\n SARindex.value = i;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let result: number;\r\n if (minOffset > -1) {\r\n result = minOffset;\r\n }\r\n else {\r\n SARindex.value = -1;\r\n result = -1;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> replace tokens in user string by vector values </summary>\r\n /// <param name=\"userString\">- user buffer like \"User %d, %d string\"\r\n /// </param>\r\n /// <param name=\"token\">- token used in user string - i.e. \"%d\"\r\n /// </param>\r\n /// <param name=\"occurrence\">- number of token where replace will take part (1 for first occurrence)\r\n /// </param>\r\n /// <param name=\"value\">- value to be inserted insted of token\r\n /// </param>\r\n static replaceStringTokens(userString: string, token: string, occurrence: number, val: string): string {\r\n let tokenLen: number = token.length;\r\n let currPosition: number = 0;\r\n let newString: string = userString;\r\n\r\n if (val !== null) {\r\n let num2: number = 0;\r\n while (num2 < occurrence && currPosition !== -1) {\r\n currPosition = userString.indexOf(token, currPosition + ((num2 === 0) ? 0 : tokenLen));\r\n num2 = num2 + 1;\r\n }\r\n\r\n if (currPosition !== -1) {\r\n newString = userString.substr(0, currPosition) + val + userString.substr(currPosition + tokenLen, userString.length - (currPosition + tokenLen));\r\n }\r\n }\r\n return newString;\r\n }\r\n\r\n static makePrintableTokens(source: string, type: string): string;\r\n static makePrintableTokens(source: string, type: number): string;\r\n static makePrintableTokens(source: List<string>, type: number): string;\r\n static makePrintableTokens(source: any, type: any): string | void{\r\n if (arguments.length === 2 && (source === null || source.constructor === String) && (type === null || type.constructor === Number)) {\r\n return StrUtil.makePrintableTokens_0(source, type);\r\n }\r\n StrUtil.makePrintableTokens_1(source, type);\r\n }\r\n\r\n /// <summary>\r\n /// converts special characters in a token to a printable format\r\n /// </summary>\r\n /// <param name = \"source\">a token </param>\r\n /// <param name = \"type\">type of conversion: STR_2_HTML, SEQ_2_HTML, HTML_2_SEQ, HTML_2_STR, SEQ_2_STR </param>\r\n /// <returns> token with converted special characters </returns>\r\n static makePrintableTokens_0(source: string, type: number): string {\r\n let escStr: string[] = [\r\n \"\\\\\", \"-\", \",\"\r\n ];\r\n let escSeq: string[] = [\r\n \"\\\\\\\\\", \"\\\\-\", \"\\\\,\"\r\n ];\r\n let escHtm: string[] = [\r\n HTML_BACKSLASH, HTML_HYPHEN, HTML_COMMA\r\n ];\r\n let result: string;\r\n switch (type) {\r\n case STR_2_HTML:\r\n result = StrUtil.searchAndReplace(source, escStr, escHtm);\r\n break;\r\n case SEQ_2_HTML:\r\n result = StrUtil.searchAndReplace(source, escSeq, escHtm);\r\n break;\r\n case HTML_2_SEQ:\r\n result = StrUtil.searchAndReplace(source, escHtm, escSeq);\r\n break;\r\n case HTML_2_STR:\r\n result = StrUtil.searchAndReplace(source, escHtm, escStr);\r\n break;\r\n case SEQ_2_STR:\r\n result = StrUtil.searchAndReplace(source, escSeq, escStr);\r\n break;\r\n default:\r\n result = source;\r\n break;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// converts special characters in a tokens collection to a printable format\r\n /// </summary>\r\n /// <param name = \"source\">vector of strings before tokenaizer </param>\r\n /// <param name = \"type\">type of conversion: STR_2_HTML, SEQ_2_HTML, HTML_2_SEQ, HTML_2_STR </param>\r\n private static makePrintableTokens_1(source: List<string>, type: number): void {\r\n if (source !== null) {\r\n let length: number = source.length;\r\n for (let i: number = 0; i < length; i = i + 1) {\r\n let currElm: string = source.get_Item(i);\r\n source.set_Item(i, StrUtil.makePrintableTokens_0(currElm, type));\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// change non-printable characters like \"new line\" and \"line feed\" to their\r\n /// printable representation\r\n /// </summary>\r\n /// <param name = \"source\">is the string with non-printable characters </param>\r\n /// <returns> the new string where all the non-printable characters are converted </returns>\r\n static makePrintable(source: string): string {\r\n let from: string[] = [\r\n \"\\n\", \"\\r\", \"'\", \"\\\\\", \"\\\"\", \"\\0\"\r\n ];\r\n let to: string[] = [\r\n \"\\\\n\", \"\\\\r\", \"\\\\'\", \"\\\\\\\\\", \"\\\\\\\"\", \"\\\\0\"\r\n ];\r\n return StrUtil.searchAndReplace(source, from, to);\r\n }\r\n\r\n /// <summary>\r\n /// change non-printable characters like \"new line\" and \"line feed\" to their\r\n /// printable representation (simplified version for range error message)\r\n /// </summary>\r\n /// <param name = \"source\">is the string with non-printable characters </param>\r\n /// <returns> the new string where all the non-printable characters are converted </returns>\r\n static makePrintable2(source: string): string {\r\n let from: string[] = [\r\n \"\\n\", \"\\r\", \"\\0\"\r\n ];\r\n let to: string[] = [\r\n \"\\\\n\", \"\\\\r\", \"\\\\0\"\r\n ];\r\n return StrUtil.searchAndReplace(source, from, to);\r\n }\r\n\r\n /// <summary>\r\n ///\r\n /// </summary>\r\n /// <param name=\"s\"></param>\r\n /// <param name=\"len\"></param>\r\n /// <returns></returns>\r\n static ZstringMake(s: string, len: number): string {\r\n len = StrUtil.mem_trim(s, len);\r\n return s.substr(0, len);\r\n }\r\n\r\n /// <summary>(public)\r\n /// returns plain text from rtf text\r\n /// </summary>\r\n /// <param name=\"rtfText\">refer to the summary</param>\r\n /// <returns>refer to the summary</returns>\r\n static GetPlainTextfromRtf(rtfText: string): string {\r\n if (Rtf.isRtf(rtfText)) {\r\n let rtf: Rtf = new Rtf();\r\n let outputTxt: StringBuilder = new StringBuilder(\"\");\r\n rtf.toTxt(rtfText, outputTxt);\r\n rtfText = outputTxt.ToString();\r\n }\r\n return rtfText;\r\n }\r\n\r\n /// <summary>\r\n /// Returns true if the string arrays str1 & str2 are equal\r\n /// </summary>\r\n /// <param name=\"str1\"></param>\r\n /// <param name=\"str2\"></param>\r\n /// <returns></returns>\r\n static StringsArraysEqual(str1: string[], str2: string[]): boolean {\r\n let result: boolean;\r\n if (str1 === null && str2 === null) {\r\n result = true;\r\n }\r\n else {\r\n if (str1 === null || str2 === null) {\r\n result = false;\r\n }\r\n else {\r\n if (str1.length !== str2.length) {\r\n result = false;\r\n }\r\n else {\r\n for (let index: number = 0; index < <number>str1.length; index = index + 1) {\r\n if ((str1[index] !== str2[index])) {\r\n result = false;\r\n return result;\r\n }\r\n }\r\n result = true;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// The code is copied from tsk_open_bnd_wild and SearchAndReplaceWildChars\r\n /// The refactoring is not performed for backwards compatibility\r\n /// The code replaces special charachters :* ? with recieved filler\r\n /// </summary>\r\n /// <returns></returns>\r\n static SearchAndReplaceWildChars(buf: string, len: number, filler: string): string {\r\n buf = NString.PadRight(buf, len);\r\n\r\n let escChar: boolean = false;\r\n let tmpBuf: StringBuilder = new StringBuilder(len);\r\n for (let i: number = 0; i < len; i = i + 1) {\r\n switch (buf[i]) {\r\n case ('\\\\'): {\r\n let isNextCharWild: boolean = true;\r\n\r\n //If next char is not wild , then copy '\\', if this is first char.\r\n if ((i + 1 < len) && (buf[i + 1] != '*' && buf[i + 1] != '\\\\'))\r\n isNextCharWild = false;\r\n if (escChar || !isNextCharWild)\r\n tmpBuf.Append(buf[i]);\r\n escChar = !escChar;\r\n }\r\n break;\r\n case ('*'):\r\n if (escChar)\r\n tmpBuf.Append(buf[i]);\r\n else {\r\n tmpBuf.Append(filler, len - tmpBuf.Length);\r\n }\r\n escChar = false;\r\n break;\r\n case '?':\r\n tmpBuf.Append(filler);\r\n escChar = false;\r\n break;\r\n default:\r\n tmpBuf.Append(buf[i]);\r\n escChar = false;\r\n break;\r\n }\r\n }\r\n\r\n let text: string = tmpBuf.ToString();\r\n return NString.TrimEnd(NString.TrimEnd(text, ['\\0']));\r\n }\r\n\r\n /// <summary>\r\n /// Remove the task path delimiter from the error string.\r\n /// </summary>\r\n /// <param name = \"source\">string with delimiter </param>\r\n /// <returns> string for console error </returns>\r\n static getConsoleErorString(source: string): string {\r\n let consoleErorString: string = \"\";\r\n\r\n if (!isNullOrUndefined(source))\r\n consoleErorString = this.searchAndReplace(source, TASK_PATH_DELIMITER, \"\");\r\n\r\n return consoleErorString;\r\n }\r\n\r\n /// <summary>\r\n /// Remove the task path from the error string.\r\n /// </summary>\r\n /// <param name = \"source\">string with delimiter </param>\r\n /// <returns> string for console error </returns>\r\n static getMsgBoxErorString(source: string): string {\r\n let tokens: string [];\r\n let msgBoxErorString: StringBuilder = new StringBuilder(\"\");\r\n\r\n if (!isNullOrUndefined(source)){\r\n tokens = this.tokenize(source, TASK_PATH_DELIMITER);\r\n\r\n for (let i:number = 0; i < tokens.length; i++)\r\n {\r\n msgBoxErorString.Append(tokens[i]);\r\n i++;\r\n }\r\n }\r\n\r\n\r\n\r\n return msgBoxErorString.toString();\r\n }\r\n}\r\n","// In order to convert some functionality to Visual C#, the Java Language Conversion Assistant\r\n// creates \"support classes\" that duplicate the original functionality.\r\n//\r\n// Support classes replicate the functionality of the original code, but in some cases they are\r\n// substantially different architecturally. Although every effort is made to preserve the\r\n// original architecture of the application in the converted project, the user should be aware that\r\n// the primary goal of these support classes is to replicate functionality, and that at times\r\n// the architecture of the resulting solution may differ somewhat.\r\n\r\n\r\nimport {\r\n Exception, StringBuilder,\r\n NString, NNumber,\r\n DateTime, RefParam\r\n} from \"@magic-xpa/mscorelib\";\r\n\r\n\r\n\r\n/// <summary>\r\n/// Contains conversion support elements such as classes, interfaces and static methods.\r\n/// </summary>\r\nexport class Misc {\r\n\r\n /// <summary>\r\n /// Writes the exception stack trace to the received stream\r\n /// </summary>\r\n /// <param name=\"throwable\">Exception to obtain information from</param>\r\n /// <param name=\"stream\">Output sream used to write to</param>\r\n static WriteStackTrace(throwable: Exception): void {\r\n console.log(throwable.Message);\r\n console.log(throwable.StackTrace);\r\n }\r\n\r\n /// <summary>\r\n /// Receives a byte array and returns it transformed in an byte array\r\n /// </summary>\r\n /// <param name=\"byteArray\">Byte array to process</param>\r\n /// <returns>The transformed array</returns>\r\n static ToSByteArray(byteArray: Uint8Array): Int8Array {\r\n let sbyteArray: Int8Array = null;\r\n if (byteArray !== null) {\r\n sbyteArray = new Int8Array(byteArray.length);\r\n for (let i: number = 0; i < byteArray.length; i = i + 1) {\r\n sbyteArray[i] = <number>byteArray[i];\r\n }\r\n }\r\n return sbyteArray;\r\n }\r\n\r\n /// <summary>\r\n /// Receives sbyte array and returns it transformed in a byte array\r\n /// </summary>\r\n /// <param name=\"sbyteArray\">sbyte array to process</param>\r\n /// <returns>The transformed array</returns>\r\n static ToByteArray(sbyteArray: Int8Array): Uint8Array {\r\n let byteArray: Uint8Array = null;\r\n if (sbyteArray !== null) {\r\n byteArray = new Uint8Array(sbyteArray.length);\r\n for (let i: number = 0; i < sbyteArray.length; i = i + 1) {\r\n byteArray[i] = <number>sbyteArray[i];\r\n }\r\n }\r\n return byteArray;\r\n }\r\n\r\n /// <summary> Compares number of bytes in two byte arrays</summary>\r\n /// <param name=\"source\"></param>\r\n /// <param name=\"destination\"></param>\r\n /// <param name=\"numberOfBytes\"></param>\r\n /// <returns> boolen true if equal</returns>\r\n static CompareByteArray(source: Uint8Array, destination: Uint8Array, numberOfBytes: number): boolean {\r\n if (source.length >= numberOfBytes && destination.length >= numberOfBytes) {\r\n for (let len: number = 0; len < numberOfBytes; len++) {\r\n if (source[len] !== destination[len])\r\n return false;\r\n }\r\n }\r\n else\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n /// <summary>\r\n /// Performs an unsigned bitwise right shift with the specified number\r\n /// </summary>\r\n /// <param name=\"number\">Number to operate on</param>\r\n /// <param name=\"bits\">Ammount of bits to shift</param>\r\n /// <returns>The resulting number from the shift operation</returns>\r\n // TODO: instead of calling URShift(number, bits), we can use((uint)number) >> bits.\r\n static URShift(number: number, bits: number): number {\r\n let result: number;\r\n if (number >= 0) {\r\n result = number >> bits;\r\n }\r\n else {\r\n result = (number >> bits) + (2 << ~bits);\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// get system's time in milliseconds\r\n /// </summary>\r\n /// <returns></returns>\r\n static getSystemMilliseconds(): number {\r\n // TODO - check if we need this adjustment\r\n return Math.floor((DateTime.Now.Ticks - 621355968000000000) / 10000);\r\n }\r\n\r\n /// <summary>\r\n /// Compares 2 int arrays\r\n /// </summary>\r\n /// <param name=\"arrayOne\"></param>\r\n /// <param name=\"arrayTwo\"></param>\r\n /// <returns>true if arrays are equal else false</returns>\r\n static CompareIntArrays(arrayOne: number[], arrayTwo: number[]): boolean {\r\n let areEqual: boolean = false;\r\n if (arrayOne === arrayTwo) {\r\n areEqual = true;\r\n }\r\n else {\r\n if (arrayOne !== null && arrayTwo !== null) {\r\n if (arrayOne.length === arrayTwo.length) {\r\n for (let i: number = 0; i < arrayOne.length; i = i + 1) {\r\n if (arrayOne[i] !== arrayTwo[i]) {\r\n break;\r\n }\r\n areEqual = true;\r\n }\r\n }\r\n }\r\n }\r\n return areEqual;\r\n }\r\n\r\n /// <summary>\r\n /// Returns the comma separated string for the values passed in int array.\r\n /// </summary>\r\n /// <param name=\"values\">Integer array</param>\r\n /// <returns>comma separated string</returns>\r\n static GetCommaSeperatedString(intArray: number[]): string {\r\n let temp: StringBuilder = new StringBuilder();\r\n for (let val: number = 0; val < intArray.length; val = val + 1) {\r\n let value: number = intArray[val];\r\n if (temp.Length > 0) {\r\n temp.Append(\",\");\r\n }\r\n temp.Append(value);\r\n }\r\n return temp.ToString();\r\n }\r\n\r\n /// <summary>\r\n /// Returns int array out of comma separated string\r\n /// </summary>\r\n /// <param name=\"value\">comma separated string</param>\r\n /// <returns>Integer array</returns>\r\n static GetIntArray(commaSeparatedValue: string): number[] {\r\n let intArray: number[] = new Array<number>(0);\r\n\r\n if (!NString.IsNullOrEmpty(commaSeparatedValue)) {\r\n let vals: string[] = commaSeparatedValue.split(',');\r\n intArray = new Array<number>(vals.length);\r\n\r\n let outInt: RefParam<number> = new RefParam(0);\r\n for (let iCtr: number = 0; iCtr < vals.length; iCtr = iCtr + 1) {\r\n NNumber.TryParse(vals[iCtr], outInt);\r\n intArray[iCtr] = outInt.value;\r\n }\r\n }\r\n\r\n return intArray;\r\n }\r\n\r\n static IsWebUrl(fileName: string): boolean {\r\n return fileName.toLowerCase().startsWith(\"http\");\r\n }\r\n}\r\n","import {Encoding, ApplicationException, ISO_8859_1_Encoding} from \"@magic-xpa/mscorelib\";\r\nimport {StrUtil} from \"./StrUtil\";\r\nimport {Misc} from \"./Misc\";\r\n\r\nexport class Base64{\r\n private static _base64EncMap: Uint8Array = Base64.initializeEncMap();\r\n private static _base64DecMap: Uint8Array = Base64.initializeDecMap();\r\n\r\n\r\n static encode(str: string): string;\r\n static encode(str: string, isUseEnvCharset: boolean, encoding: Encoding): string;\r\n static encode(str: string, isUseEnvCharset?: any, encoding?: Encoding): any {\r\n if (arguments.length === 1)\r\n return Base64.encode_1(str, false, null);\r\n else\r\n return Base64.encode_1(str, isUseEnvCharset, encoding);\r\n }\r\n\r\n /// <summary> Encodes string using the base64-encoding.\r\n /// If isUseEnvCharset is true, use the specific charset when converting\r\n /// string to byte array. (DBCS support)\r\n /// </summary>\r\n /// <param name=\"str\">the string </param>\r\n /// <param name=\"isUseEnvCharset\"> </param>\r\n /// <param name=\"encoding\"> Environment.Encoding </param>\r\n /// <returns> the base64-encoded str </returns>\r\n private static encode_1(str: string, isUseEnvCharset: boolean, encoding: Encoding): string {\r\n let result: string;\r\n if (str === null) {\r\n result = null;\r\n }\r\n else {\r\n if (str === \"\") {\r\n result = str;\r\n }\r\n else {\r\n try {\r\n if (isUseEnvCharset === false){\r\n result = btoa(str);\r\n }\r\n else {\r\n let instance: Encoding = ISO_8859_1_Encoding.ISO_8859_1;\r\n let encoding2: Encoding = isUseEnvCharset ? encoding : instance;\r\n let ba: Uint8Array = Base64.encodeBytes(encoding2.GetBytes(str));\r\n result = instance.GetString(ba, 0, ba.length);\r\n } \r\n }\r\n catch (ex) {\r\n throw new ApplicationException(ex.Message);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> This method encodes the given byte[] using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8).\r\n /// </summary>\r\n /// <param name=\"data\">the data </param>\r\n /// <returns> the base64-encoded data </returns>\r\n private static encodeBytes(data: Uint8Array): Uint8Array {\r\n\r\n if (data === null)\r\n return null;\r\n\r\n let dest: Uint8Array = new Uint8Array(Math.floor((data.length + 2) / 3) * 4);\r\n let sidx: number = 0;\r\n let didx: number = 0;\r\n\r\n // 3-byte to 4-byte conversion + 0-63 to ASCII printable conversion\r\n while (sidx < data.length - 2) {\r\n dest[didx++] = Base64._base64EncMap[Misc.URShift(<number>data[sidx], 2) & 63];\r\n dest[didx++] = Base64._base64EncMap[(Misc.URShift(<number>data[sidx + 1], 4) & 15) | (<number>data[sidx] << 4 & 63)];\r\n dest[didx++] = Base64._base64EncMap[(Misc.URShift(<number>data[sidx + 2], 6) & 3) | (<number>data[sidx + 1] << 2 & 63)];\r\n dest[didx++] = Base64._base64EncMap[<number>(data[sidx + 2] & 63)];\r\n sidx = sidx + 3;\r\n }\r\n\r\n if (sidx < data.length) {\r\n dest[didx++] = Base64._base64EncMap[Misc.URShift(<number>data[sidx], 2) & 63];\r\n if (sidx < data.length - 1) {\r\n dest[didx++] = Base64._base64EncMap[(Misc.URShift(<number>data[sidx + 1], 4) & 15) | (<number>data[sidx] << 4 & 63)];\r\n dest[didx++] = Base64._base64EncMap[<number>data[sidx + 1] << 2 & 63];\r\n }\r\n else {\r\n dest[didx++] = Base64._base64EncMap[<number>data[sidx] << 4 & 63];\r\n }\r\n }\r\n\r\n // add padding\r\n while (didx < dest.length) {\r\n dest[didx] = 61;\r\n didx = didx + 1;\r\n }\r\n\r\n return dest;\r\n }\r\n\r\n static decode(str: string): string;\r\n static decode(str: string, encoding: Encoding): string;\r\n static decode(str: string, encoding?: Encoding): any {\r\n if (arguments.length === 1)\r\n encoding = null;\r\n\r\n return Base64.decode_1(str, encoding);\r\n }\r\n\r\n /// <summary> This method decodes the given string using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8).\r\n /// </summary>\r\n /// <param name=\"str\">the base64-encoded string. </param>\r\n /// <param name=\"encoding\">Environment.Encoding or null.</param>\r\n /// <returns> the decoded str.</returns>\r\n private static decode_1(str: string, encoding: Encoding): string {\r\n\r\n let result: string;\r\n if (str === null) {\r\n result = null;\r\n }\r\n else {\r\n if (str === \"\") {\r\n result = str;\r\n }\r\n else {\r\n try {\r\n if (encoding === null || encoding === undefined){\r\n result = atob(str);\r\n }\r\n else {\r\n let instance: ISO_8859_1_Encoding = ISO_8859_1_Encoding.ISO_8859_1;\r\n let array: Uint8Array = Base64.decodeBytes(instance.GetBytes(str));\r\n let encoding2: Encoding = (encoding !== null) ? encoding : instance;\r\n result = encoding2.GetString(array, 0, array.length);\r\n } \r\n }\r\n catch (ex) {\r\n throw new ApplicationException(ex.Message);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> This method decodes the given byte[] using the base64-encoding\r\n /// specified in RFC-2045 (Section 6.8).\r\n /// </summary>\r\n /// <param name=\"data\">the base64-encoded data.</param>\r\n /// <returns> the decoded <var>data</va\r\n private static decodeBytes(data: Uint8Array): Uint8Array {\r\n if (data === null)\r\n return null;\r\n\r\n let tail: number = data.length;\r\n while (data[tail - 1] === '='.charCodeAt(0)) {\r\n tail = tail - 1;\r\n }\r\n let dest: Uint8Array = new Uint8Array(tail - Math.floor(data.length / 4));\r\n\r\n // ASCII printable to 0-63 conversion\r\n for (let idx: number = 0; idx < data.length; idx = idx + 1) {\r\n data[idx] = Base64._base64DecMap[data[idx]];\r\n }\r\n\r\n // 4-byte to 3-byte conversion\r\n let sidx: number = 0;\r\n let didx: number;\r\n for (didx = 0; didx < dest.length - 2; didx = didx + 3) {\r\n dest[didx] = (((data[sidx] << 2) & 255) | (Misc.URShift(data[sidx + 1], 4) & 3));\r\n dest[didx + 1] = (((data[sidx + 1] << 4) & 255) | (Misc.URShift(data[sidx + 2], 2) & 15));\r\n dest[didx + 2] = (((data[sidx + 2] << 6) & 255) | (data[sidx + 3] & 63));\r\n sidx = sidx + 4;\r\n }\r\n\r\n if (didx < dest.length)\r\n dest[didx] = (((data[sidx] << 2) & 255) | (Misc.URShift(data[sidx + 1], 4) & 3));\r\n if ((didx = didx + 1) < dest.length)\r\n dest[didx] = (((data[sidx + 1] << 4) & 255) | (Misc.URShift(data[sidx + 2], 2) & 15));\r\n\r\n return dest;\r\n }\r\n\r\n /// <summary> decoded and return an hex representation of the data</summary>\r\n static decodeToHex(str: string): string {\r\n if (str === null)\r\n return null;\r\n if (str === \"\")\r\n return str;\r\n\r\n return StrUtil.stringToHexaDump(Base64.decode(str), 2);\r\n }\r\n\r\n /// <summary> decodes a string to byte array</summary>\r\n static decodeToByte(str: string): Uint8Array {\r\n if (str === null)\r\n return null;\r\n\r\n // QCR 740918 if we have and empty expression it is sent from the server as empty string\r\n // and changed locally to a string with one blank either way they are not valid base64 encoded\r\n // string and should not be decoded.\r\n if (str === \"\" || str === \" \")\r\n return new Uint8Array(0);\r\n\r\n try {\r\n let instance: Encoding = ISO_8859_1_Encoding.ISO_8859_1;\r\n return Base64.decodeBytes(instance.GetBytes(str));\r\n }\r\n catch (ex) {\r\n throw new ApplicationException(ex.Message);\r\n }\r\n }\r\n\r\n private static initializeEncMap() {\r\n return new Uint8Array([\r\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,\r\n 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,\r\n 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54,\r\n 55, 56, 57, 43, 47\r\n ]);\r\n\r\n }\r\n\r\n private static initializeDecMap() {\r\n let decMap: Uint8Array = new Uint8Array(128);\r\n\r\n for (let i: number = 0; i < Base64._base64EncMap.length; i = i + 1) {\r\n decMap[Base64._base64EncMap[i]] = i;\r\n }\r\n\r\n return decMap;\r\n }\r\n}\r\n","import {NString, StringBuilder} from \"@magic-xpa/mscorelib\";\r\nimport {SEQ_2_STR, StrUtil} from \"./StrUtil\";\r\n\r\nexport class ChoiceUtils {\r\n\r\n /// <summary>\r\n /// init the display Value from string\r\n /// </summary>\r\n /// <param name = \"choiceDispStr\">the all substring separated with comma.\r\n /// The behavior:\r\n /// a. when have \"\\\" before char a-z need to ignore the \\ put the a-z char\r\n /// b. when \"\\,\" -> \",\"\r\n /// c. when \"\\-\" -> \"-\"\r\n /// d. when \"\\\\\" -> \"\\\"\r\n /// e. when \"\\\\\\\\\" -> \"\\\\\"\r\n /// the display can be all string. and we don't need to check validation according to the dataType(as we do in Link\r\n /// </param>\r\n static GetDisplayListFromString(choiceDispStr: string, removeAccelerators: boolean, shouldMakePrintable: boolean, shouldTrimOptions: boolean): string[] {\r\n let fromHelp = new Array(\"\\\\\\\\\", \"\\\\-\", \"\\\\,\");\r\n let toHelp = new Array(\"XX\", \"XX\", \"XX\");\r\n choiceDispStr = NString.TrimEnd(choiceDispStr);\r\n let helpStrDisp: string = StrUtil.searchAndReplace(choiceDispStr, fromHelp, toHelp);\r\n let sTok: String[] = StrUtil.tokenize(helpStrDisp, \",\");\r\n let size: number = (helpStrDisp !== \"\" ? sTok.length : 0);\r\n let tokenBuffer: StringBuilder;\r\n let helpTokenDisp: string, token: string;\r\n let currPosDisp: number = 0, nextPosDisp = 0, tokenPosDisp, i = 0;\r\n let choiceDisp = new Array(size);\r\n for (; i < size; i++) {\r\n nextPosDisp = currPosDisp;\r\n nextPosDisp = helpStrDisp.indexOf(',', nextPosDisp);\r\n if (nextPosDisp === currPosDisp)\r\n token = helpTokenDisp = \"\";\r\n else if (nextPosDisp === -1) {\r\n token = choiceDispStr.substr(currPosDisp);\r\n helpTokenDisp = helpStrDisp.substr(currPosDisp);\r\n }\r\n else {\r\n token = choiceDispStr.substr(currPosDisp, (nextPosDisp) - (currPosDisp));\r\n helpTokenDisp = helpStrDisp.substr(currPosDisp, (nextPosDisp) - (currPosDisp));\r\n }\r\n currPosDisp = nextPosDisp + 1;\r\n if (token != null) {\r\n token = StrUtil.ltrim(token);\r\n if (removeAccelerators)\r\n token = ChoiceUtils.RemoveAcclCharFromOptions(new StringBuilder(token));\r\n helpTokenDisp = StrUtil.ltrim(helpTokenDisp);\r\n if (removeAccelerators)\r\n helpTokenDisp = ChoiceUtils.RemoveAcclCharFromOptions(new StringBuilder(helpTokenDisp));\r\n }\r\n if (helpTokenDisp.indexOf('\\\\') >= 0) {\r\n tokenBuffer = new StringBuilder();\r\n for (; tokenPosDisp < helpTokenDisp.length; tokenPosDisp++)\r\n if (helpTokenDisp[tokenPosDisp] !== '\\\\')\r\n tokenBuffer.Append(token[tokenPosDisp]);\r\n else if (tokenPosDisp === helpTokenDisp.length - 1)\r\n tokenBuffer.Append(' ');\r\n token = tokenBuffer.ToString();\r\n }\r\n if (shouldMakePrintable) {\r\n token = StrUtil.makePrintableTokens(token, SEQ_2_STR);\r\n if (shouldTrimOptions) {\r\n let temp: string = NString.TrimEnd(token);\r\n if (temp.length === 0)\r\n choiceDisp[i] = \" \";\r\n else choiceDisp[i] = NString.TrimEnd(token);\r\n }\r\n else choiceDisp[i] = token;\r\n }\r\n else choiceDisp[i] = token;\r\n }\r\n return choiceDisp;\r\n }\r\n\r\n static RemoveAcclCharFromOptions(OptionStr: StringBuilder): string {\r\n let i: number = 0;\r\n if (OptionStr != null) {\r\n for (; i < OptionStr.Length;) {\r\n if (OptionStr.get_Item(i) === '&') {\r\n if (i < OptionStr.Length - 1 && OptionStr.get_Item(i + 1) === ('&'))\r\n i++;\r\n OptionStr = OptionStr.Remove(i, 1);\r\n }\r\n else i++;\r\n }\r\n }\r\n return (OptionStr != null ? OptionStr.ToString() : null);\r\n }\r\n}\r\n","import {Int32} from \"@magic-xpa/mscorelib\";\r\n\r\n//This class contains all the constants which are used in MgxpaRIA.exe as well as in MgGui.dll.\r\nexport class Constants {\r\n /// <summary> Null Arithmetic values</summary>\r\n static readonly NULL_ARITH_NULLIFY: string = 'N';\r\n static readonly NULL_ARITH_USE_DEF: string = 'U';\r\n\r\n /// <summary> select program : select mode property</summary>\r\n static readonly SELPRG_MODE_BEFORE: string = 'B';\r\n static readonly SELPRG_MODE_AFTER: string = 'A';\r\n static readonly SELPRG_MODE_PROMPT: string = 'P';\r\n\r\n /// <summary> move in View</summary>\r\n static readonly MOVE_UNIT_TABLE: string = 'T';\r\n static readonly MOVE_UNIT_PAGE: string = 'P';\r\n static readonly MOVE_UNIT_ROW: string = 'R';\r\n static readonly MOVE_UNIT_TREE_NODE: string = 'E';\r\n\r\n static readonly MOVE_DIRECTION_NONE: string = ' ';\r\n static readonly MOVE_DIRECTION_BEGIN: string = 'B';\r\n static readonly MOVE_DIRECTION_PREV: string = 'P';\r\n static readonly MOVE_DIRECTION_NEXT: string = 'N';\r\n static readonly MOVE_DIRECTION_END: string = 'E';\r\n static readonly MOVE_DIRECTION_PARENT: string = 'A';\r\n static readonly MOVE_DIRECTION_FIRST_SON: string = 'F';\r\n static readonly MOVE_DIRECTION_NEXT_SIBLING: string = 'X';\r\n static readonly MOVE_DIRECTION_PREV_SIBLING: string = 'V';\r\n\r\n /// <summary> refresh types for a task form</summary>\r\n static readonly TASK_REFRESH_FORM: string = 'F';\r\n static readonly TASK_REFRESH_TABLE: string = 'T';\r\n static readonly TASK_REFRESH_TREE_AND_FORM: string = 'R';\r\n static readonly TASK_REFRESH_CURR_REC: string = 'C';\r\n static readonly TASK_REFRESH_NONE: string = 'N';\r\n\r\n static readonly TASK_MODE_QUERY: string = 'E';\r\n static readonly TASK_MODE_MODIFY: string = 'M';\r\n static readonly TASK_MODE_CREATE: string = 'C';\r\n static readonly TASK_MODE_DELETE: string = 'D';\r\n static readonly TASK_MODE_NONE = ' ';\r\n\r\n /// <summary> task level</summary>\r\n static readonly TASK_LEVEL_NONE: string = ' ';\r\n static readonly TASK_LEVEL_TASK: string = 'T';\r\n static readonly TASK_LEVEL_RECORD: string = 'R';\r\n static readonly TASK_LEVEL_CONTROL: string = 'C';\r\n\r\n /// <summary> special records constants</summary>\r\n static readonly MG_DATAVIEW_FIRST_RECORD: number = Int32.MinValue;\r\n static readonly MG_DATAVIEW_LAST_RECORD: number = Int32.MaxValue;\r\n\r\n /// <summary> action states for keyboard mapping</summary>\r\n static readonly ACT_STT_TBL_SCREEN_MODE: number = 0x0001;\r\n static readonly ACT_STT_TBL_LEFT_TO_RIGHT: number = 0x0002;\r\n static readonly ACT_STT_TBL_SCREEN_TOP: number = 0x0004;\r\n static readonly ACT_STT_TBL_SCREEN_END: number = 0x0008;\r\n static readonly ACT_STT_TBL_ROW_START: number = 0x0010;\r\n static readonly ACT_STT_TBL_ROW_END: number = 0x0020;\r\n static readonly ACT_STT_EDT_LEFT_TO_RIGHT: number = 0x0040;\r\n static readonly ACT_STT_EDT_FORM_TOP: number = 0x0080;\r\n static readonly ACT_STT_EDT_FORM_END: number = 0x0100;\r\n static readonly ACT_STT_EDT_LINE_START: number = 0x0200;\r\n static readonly ACT_STT_EDT_LINE_END: number = 0x0400;\r\n static readonly ACT_STT_EDT_EDITING: number = 0x0800;\r\n static readonly ACT_STT_TREE_PARK: number = 0x1000;\r\n static readonly ACT_STT_TREE_EDITING: number = 0x2000;\r\n\r\n static readonly ForwardSlashWebUsage: string = \"web\"; // refer to a forward slash as a relative web url.\r\n static readonly HTTP_PROTOCOL: string = \"http://\";\r\n static readonly HTTPS_PROTOCOL: string = \"https://\";\r\n static readonly FILE_PROTOCOL: string = \"file://\";\r\n\r\n /// <summary>threads constants</summary>\r\n static readonly MG_GUI_THREAD: string = \"MG_GUI_THREAD\";\r\n static readonly MG_WORK_THREAD: string = \"MG_WORK_THREAD\";\r\n static readonly MG_TIMER_THREAD: string = \"MG_TIMER_THREAD\";\r\n\r\n /// <summary>\r\n /// property name for the runtime designer\r\n /// </summary>\r\n static readonly ConfigurationFilePropertyName: string = \"Configuration file\";\r\n static readonly WinPropText: string = \"Text\";\r\n static readonly WinPropLayer: string = \"Layer\";\r\n static readonly WinPropX1: string = \"X1\";\r\n static readonly WinPropX2: string = \"X2\";\r\n static readonly WinPropY1: string = \"Y1\";\r\n static readonly WinPropY2: string = \"Y2\";\r\n static readonly WinPropIsTransparent: string = \"IsTransparent\";\r\n static readonly WinPropName: string = \"Name\";\r\n static readonly WinPropVisible: string = \"Visible\";\r\n static readonly WinPropVisibleLayerList: string = \"VisibleLayerList\";\r\n static readonly TabOrderPropertyTermination: string = \"ForTabOrder\";\r\n\r\n static readonly SByteMaxValue = 127;\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","export class XMLConstants {\r\n static readonly MG_TAG_XML: string = \"xml\";\r\n static readonly MG_TAG_XML_END: string = \"/xml\";\r\n\r\n static readonly TAG_TERM: string = \"/>\";\r\n static readonly TAG_OPEN: string = \"<\";\r\n static readonly TAG_CLOSE: string = \">\";\r\n static readonly XML_ATTR_DELIM: string = \"\\\"\";\r\n static readonly START_TAG: string = \"\\n <\";\r\n static readonly END_TAG: string = \"</\";\r\n static readonly XML_TAB: string = \" \";\r\n\r\n static readonly MG_ATTR_ID: string = \"id\";\r\n\r\n static readonly MG_TAG_XML_END_TAGGED: string = XMLConstants.END_TAG + XMLConstants.MG_TAG_XML + XMLConstants.TAG_CLOSE;\r\n static readonly MG_TAG_OPEN: string = XMLConstants.TAG_OPEN + XMLConstants.MG_TAG_XML + \" \" + XMLConstants.MG_ATTR_ID + \"=\\\"MGDATA\\\">\";\r\n static readonly MG_TAG_TASK: string = \"task\";\r\n static readonly MG_TAG_TASK_END: string = \"/task\";\r\n static readonly MG_TAG_RECOMPUTE: string = \"recompute\";\r\n\r\n //TODO: this class contains the constants which are used for XML parsing.\r\n //Check if we can move it to Util.dll\r\n static readonly MG_ATTR_VB_VIEW_ROWIDX: string = \"db_view_rowidx\";\r\n static readonly MG_ATTR_CONTROL_ISN: string = \"controlIsn\";\r\n static readonly MG_HOR_ALIGMENT_IS_INHERITED: string = \"horizontalAlignmentIsFromSystemDefault\";\r\n\r\n // MainHeaders\r\n static readonly MAX_PATH: number = 260;\r\n static readonly FILE_NAME_SIZE: number = XMLConstants.MAX_PATH + 1;\r\n\r\n static readonly CDATA_START: string = \"<![CDATA[\";\r\n static readonly CDATA_END: string = \"]]>\";\r\n\r\n static readonly MG_ATTR_VALUE: string = \"val\";\r\n static readonly MG_ATTR_STUDIO_VALUE: string = \"studioValue\";\r\n static readonly MG_ATTR_NAME: string = \"name\";\r\n static readonly MG_ATTR_TYPE: string = \"type\";\r\n static readonly MG_ATTR_SIZE: string = \"size\";\r\n static readonly MG_ATTR_VAR_NAME: string = \"var_name\";\r\n static readonly MG_ATTR_VAR_DISP_NAME: string = \"var_disp_name\";\r\n static readonly MG_ATTR_VEC_CELLS_SIZE: string = \"vecCellsSize\";\r\n static readonly MG_ATTR_VEC_CELLS_ATTR: string = \"vec_cells_attr\";\r\n static readonly MG_ATTR_VEC_CELLS_CONTENT: string = \"CellContentType\";\r\n static readonly MG_ATTR_NULLVALUE: string = \"nullvalue\";\r\n static readonly MG_ATTR_NULLDISPLAY: string = \"nulldisplay\";\r\n static readonly MG_ATTR_NULLDEFAULT: string = \"nulldefault\";\r\n static readonly MG_ATTR_DB_MODIFIABLE: string = \"db_modifiable\";\r\n static readonly MG_ATTR_DEFAULTVALUE: string = \"defaultvalue\";\r\n static readonly MG_ATTR_NULLALLOWED: string = \"nullallowed\";\r\n static readonly MG_ATTR_BLOB_CONTENT: string = \"ContentType\";\r\n static readonly MG_ATTR_PART_OF_DATAVIEW: string = \"partOfDataview\";\r\n static readonly MG_ATTR_DATA_TYPE: string = \"dataType\";\r\n static readonly MG_ATTR_DATA_CTRL: string = \"data_ctrl\";\r\n static readonly MG_ATTR_LINKED_PARENT: string = \"linked_parent\";\r\n static readonly MG_ATTR_CONTAINER: string = \"container\";\r\n static readonly MG_ATTR_IS_FRAMESET: string = \"isFrameSet\";\r\n static readonly MG_ATTR_IS_LIGAL_RC_FORM: string = \"isLegalRcForm\";\r\n static readonly MG_ATTR_USERSTATE_ID: string = \"userStateId\";\r\n static readonly MG_ATTR_PB_IMAGES_NUMBER: string = \"PBImagesNumber\";\r\n static readonly MG_ATTR_FORM_ISN: string = \"formIsn\";\r\n static readonly MG_ATTR_TASKID: string = \"taskid\";\r\n static readonly MG_ATTR_IS_MODAL: string = \"IsModal\";\r\n static readonly MG_ATTR_TASK_IS_SERIALIZATION_PARTIAL: string = \"isSerializationPartial\";\r\n static readonly MG_ATTR_XML_TRUE: string = \"1\";\r\n static readonly MG_ATTR_XML_FALSE: string = \"0\";\r\n static readonly MG_ATTR_TOOLKIT_PARENT_TASK: string = \"toolkit_parent_task\";\r\n static readonly MG_ATTR_CTL_IDX: string = \"ctl_idx\";\r\n static readonly MG_ATTR_MAINPRG: string = \"mainprg\";\r\n static readonly MG_ATTR_NULL_ARITHMETIC: string = \"nullArithmetic\";\r\n static readonly MG_ATTR_INTERACTIVE: string = \"interactive\";\r\n static readonly MG_ATTR_IS_OFFLINE: string = \"IsOffline\";\r\n static readonly MG_ATTR_RETURN_VALUE_EXP: string = \"returnValueExp\";\r\n static readonly MG_ATTR_PARALLEL: string = \"ParallelExecution\";\r\n static readonly MG_ATTR_OPEN_WIN: string = \"OpenWin\";\r\n static readonly MG_ATTR_ALLOW_EVENTS: string = \"AllowEvents\";\r\n static readonly MG_ATTR_ISPRG: string = \"isPrg\";\r\n static readonly MG_ATTR_APPL_GUID: string = \"applicationGuid\";\r\n static readonly MG_ATTR_PROGRAM_ISN: string = \"programIsn\";\r\n static readonly MG_ATTR_TASK_ISN: string = \"taskIsn\";\r\n static readonly MG_ATTR_ROUTER_PATH: string = \"RouterPath\";\r\n static readonly MG_ATTR_IN_DEFAULT_ROUTER_OUTLET: string = \"InDefaultRouterOutlet\";\r\n static readonly MG_ATTR_EXPAND: string = \"expand\";\r\n static readonly MG_ATTR_EXP: string = \"exp\";\r\n static readonly MG_ATTR_ERROR_EXP: string = \"errorExp\";\r\n static readonly MG_ATTR_ERROR: string = \"errorMsg\";\r\n static readonly MG_ATTR_IS_GENERIC: string = \"isGeneric\";\r\n static readonly MG_ATTR_HASHCODE: string = \"hashCode\";\r\n static readonly MG_ATTR_PICTURE: string = \"picture\";\r\n static readonly MG_ATTR_STORAGE: string = \"storage\";\r\n static readonly MG_ATTR_DITIDX: string = \"ditidx\";\r\n static readonly MG_ATTR_ICON_FILE_NAME: string = \"iconFileName\";\r\n static readonly MG_ATTR_SYS_CONTEXT_MENU: string = \"systemContextMenu\";\r\n static readonly MG_TAG_FLDH: string = \"fldh\";\r\n static readonly MG_TAG_DVHEADER: string = \"dvheader\";\r\n static readonly MG_ATTR_MENUS_FILE_NAME: string = \"menusFileName\";\r\n static readonly MG_ATTR_MENU_CONTENT: string = \"MenusContent\";\r\n static readonly MG_ATTR_SORT_BY_RECENTLY_USED: string = \"SortWindowListByRecentlyUsed\";\r\n\r\n static readonly MG_ATTR_CONTROL_Z_ORDER: string = \"zorder\";\r\n\r\n static readonly MG_TAG_PROP: string = \"prop\";\r\n static readonly MG_TAG_CONTROL: string = \"control\";\r\n static readonly MG_TAG_FORM: string = \"form\";\r\n static readonly MG_TAG_FORM_PROPERTIES: string = \"propertiesForm\";\r\n static readonly MG_TAG_FORMS: string = \"forms\";\r\n static readonly MG_TAG_TREE: string = \"tree\";\r\n static readonly MG_TAG_NODE: string = \"node\";\r\n static readonly MG_TAG_FLD: string = \"fld\";\r\n static readonly MG_ATTR_CHILDREN_RETRIEVED: string = \"children_retrieved\";\r\n\r\n static readonly MG_TAG_HELPTABLE: string = \"helptable\";\r\n static readonly MG_TAG_HELPITEM: string = \"helpitem\";\r\n\r\n static readonly MG_ATTR_FULLNAME: string = \"fullname\";\r\n static readonly MG_ATTR_ISSPECIFIC: string = \"isSpecific\";\r\n static readonly MG_ATTR_IS_GUI_THREAD_EXECUTION: string = \"isGuiThreadExecution\";\r\n\r\n static readonly MG_TAG_TASKDEFINITIONID_ENTRY: string = \"taskDefinitionId\";\r\n static readonly MG_TAG_OBJECT_REFERENCE: string = \"objectRef\";\r\n\r\n //Help types\r\n static readonly MG_ATTR_HLP_TYP_TOOLTIP: string = \"T\";\r\n static readonly MG_ATTR_HLP_TYP_PROMPT: string = \"P\";\r\n static readonly MG_ATTR_HLP_TYP_URL: string = \"U\";\r\n static readonly MG_ATTR_HLP_TYP_INTERNAL: string = \"I\";\r\n static readonly MG_ATTR_HLP_TYP_WINDOWS: string = \"W\";\r\n\r\n //Internal help attributes.\r\n static readonly MG_ATTR_INTERNAL_HELP_TYPE: string = \"type\";\r\n static readonly MG_ATTR_INTERNAL_HELP_NAME: string = \"name\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEX: string = \"framex\";\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEY: string = \"framey\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEDX: string = \"famedx\";\r\n static readonly MG_ATTR_INTERNAL_HELP_FRAMEDY: string = \"framedy\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_SIZEDX: string = \"sizedx\";\r\n static readonly MG_ATTR_INTERNAL_HELP_SIZEDY: string = \"sizedy\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FACTORX: string = \"factorx\";\r\n static readonly MG_ATTR_INTERNAL_HELP_FACTORY: string = \"factory\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_BORDERSTYLE: string = \"borderstyle\";\r\n static readonly MG_ATTR_INTERNAL_TITLE_BAR: string = \"titlebar\";\r\n static readonly MG_ATTR_INTERNAL_HELP_SYSTEM_MENU: string = \"sysmenu\";\r\n\r\n static readonly MG_ATTR_INTERNAL_HELP_FONT_TABLE_INDEX: string = \"fonttableindex\";\r\n\r\n //Windows help attributes.\r\n static readonly MG_ATTR_WINDOWS_HELP_FILE: string = \"file\";\r\n static readonly MG_ATTR_WINDOWS_HELP_COMMAND: string = \"command\";\r\n static readonly MG_ATTR_WINDOWS_HELP_KEY: string = \"key\";\r\n\r\n //Print data attributes.\r\n static readonly MG_TAG_PRINT_DATA: string = \"Print_data\";\r\n static readonly MG_TAG_PRINT_DATA_END: string = \"/Print_data\";\r\n static readonly MG_TAG_RECORD: string = \"Record\";\r\n static readonly MG_TAG_RECORD_END: string = \"/Record\";\r\n\r\n //Custom Validators attributes.\r\n static readonly MG_TAG_CUSTOM_VALIDATORS: string = \"CustomValidators\";\r\n static readonly MG_TAG_CUSTOM_VALIDATORS_END: string = \"/CustomValidators\";\r\n static readonly MG_TAG_CUSTOM_VALIDATOR: string = \"CustomValidator\";\r\n\r\n // date/time formats for DateTimeUtils\r\n //TODO: isolate to a different file?\r\n static readonly ERROR_LOG_TIME_FORMAT: string = \"HH:mm:ss.S\";\r\n static readonly ERROR_LOG_DATE_FORMAT: string = \"DD/MM/YYYY\";\r\n static readonly HTTP_ERROR_TIME_FORMAT: string = \"HH:mm:ss\";\r\n static readonly CACHED_DATE_TIME_FORMAT: string = \"DD/MM/YYYY HH:mm:ss\";\r\n\r\n //webs constants\r\n static readonly MG_TAG_WS_READ_REQUEST: string = \"Read\";\r\n static readonly MG_TAG_WS_CREATE_REQUEST: string = \"Create\";\r\n static readonly MG_TAG_WS_CREATE_REQUEST_END: string = \"/Create\";\r\n static readonly MG_TAG_WS_UPDATE_REQUEST: string = \"Update\";\r\n static readonly MG_TAG_WS_UPDATE_REQUEST_END: string = \"/Update\";\r\n static readonly MG_TAG_WS_DELETE_REQUEST: string = \"Delete\";\r\n static readonly MG_TAG_WS_DELETE_REQUEST_END: string = \"/Delete\";\r\n static readonly MG_TAG_WS_MANIPULATE_REQUEST: string = \"Manipulate\";\r\n static readonly MG_TAG_WS_MANIPULATE_REQUEST_END: string = \"/Manipulate\";\r\n\r\n static readonly MG_TAG_WS_DATABASE: string = \"Database\";\r\n static readonly MG_TAG_WS_DATASOURCE: string = \"Datasource\";\r\n static readonly MG_TAG_WS_COLUMNS: string = \"Columns\";\r\n static readonly MG_TAG_WS_COLUMN: string = \"string\";\r\n static readonly MG_TAG_WS_RANGES: string = \"Ranges\";\r\n static readonly MG_TAG_WS_RANGES_END: string = \"/Ranges\";\r\n static readonly MG_TAG_WS_MIN: string = \"Min\";\r\n static readonly MG_TAG_WS_MAX: string = \"Max\";\r\n static readonly MG_TAG_WS_RECORD: string = \"Row\";\r\n static readonly MG_TAG_WS_RECORD_END: string = \"/Row\";\r\n static readonly MG_TAG_WS_WHERE: string = \"Where\";\r\n static readonly MG_TAG_WS_WHERE_END: string = \"/Where\";\r\n\r\n static readonly MG_TAG_WS_RESPONSE: string = \"Response\";\r\n static readonly MG_TAG_WS_ERROR: string = \"Error\";\r\n static readonly MG_TAG_WS_ERROR_CODE: string = \"errorCode\";\r\n static readonly MG_TAG_WS_DESCRIPTION: string = \"description\";\r\n\r\n static readonly MG_TAG_MENUS_OPEN: string = \"Menus\";\r\n static readonly MG_TAG_MENUS_CLOSE: string = \"/Menus\";\r\n static readonly MG_TAG_MENU: string = \"Menu\";\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import {DateTime, Exception, StringBuilder} from \"@magic-xpa/mscorelib\";\r\nimport {XMLConstants} from \"./XMLConstants\";\r\n\r\nexport class DateTimeUtils {\r\n\r\n /// <summary> returns the number in a 2 digit string\r\n private static int2str(n: number): string {\r\n return (n > 9) ? n.toString() : (\"0\" + n);\r\n }\r\n\r\n static ToString(dateTime: DateTime, format: string, logger: any): string {\r\n let dateTimeString: string;\r\n try {\r\n dateTimeString = dateTime.Format(format);\r\n }\r\n catch (ex) {\r\n if (ex instanceof Exception) {\r\n if (format === XMLConstants.CACHED_DATE_TIME_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Day) + \"/\" + DateTimeUtils.int2str(dateTime.Month) + \"/\" + dateTime.Year + \" \" +\r\n DateTimeUtils.int2str(dateTime.Hour) + \":\" + DateTimeUtils.int2str(dateTime.Minute) + \":\" +\r\n DateTimeUtils.int2str(dateTime.Second);\r\n }\r\n else {\r\n if (format === XMLConstants.ERROR_LOG_TIME_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Hour) + \":\" +\r\n DateTimeUtils.int2str(dateTime.Minute) + \":\" +\r\n DateTimeUtils.int2str(dateTime.Second) + \".\";\r\n if (dateTime.Millisecond % 100 > 50) {\r\n dateTimeString = dateTimeString + (Math.floor(dateTime.Millisecond / 100) + 1);\r\n }\r\n else {\r\n dateTimeString = dateTimeString + Math.floor(dateTime.Millisecond / 100);\r\n }\r\n }\r\n else {\r\n if (format === XMLConstants.ERROR_LOG_DATE_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Day) + \"/\" + DateTimeUtils.int2str(dateTime.Month) + \"/\" + dateTime.Year;\r\n }\r\n else {\r\n\r\n if (format === XMLConstants.HTTP_ERROR_TIME_FORMAT) {\r\n dateTimeString = DateTimeUtils.int2str(dateTime.Hour) + \":\" + DateTimeUtils.int2str(dateTime.Minute) + \":\" + DateTimeUtils.int2str(dateTime.Second) + \".\";\r\n }\r\n else {\r\n logger.WriteExceptionToLogWithMsg(ex.Message);\r\n let dateTimeTmpString: StringBuilder = new StringBuilder();\r\n dateTimeString = dateTimeTmpString.ToString();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else\r\n throw ex;\r\n }\r\n return dateTimeString;\r\n }\r\n}\r\n","/// <summary>\r\n/// An interface to define the constantes used by the Picture mechanism.\r\n/// </summary>\r\n\r\nexport class PICInterface {\r\n //--------------------------------------------------------------------------\r\n // TEMP!\r\n //--------------------------------------------------------------------------\r\n\r\n static readonly PIC_X: number = 1;\r\n static readonly PIC_U: number = 2;\r\n static readonly PIC_L: number = 3;\r\n static readonly PIC_N: number = 4;\r\n static readonly PIC_YY: number = 5;\r\n static readonly PIC_YYYY: number = 6;\r\n static readonly PIC_MMD: number = 7;\r\n static readonly PIC_MMM: number = 8;\r\n static readonly PIC_DD: number = 9;\r\n static readonly PIC_DDD: number = 10;\r\n static readonly PIC_DDDD: number = 11;\r\n static readonly PIC_W: number = 12;\r\n static readonly PIC_WWW: number = 13;\r\n static readonly PIC_HH: number = 14;\r\n static readonly PIC_MMT: number = 15;\r\n static readonly PIC_SS: number = 16;\r\n static readonly PIC_PM: number = 17;\r\n static readonly PIC_HYYYYY: number = 18; // Hebrew year\r\n static readonly PIC_HL: number = 19; // Hebrew thousand year\r\n static readonly PIC_HDD: number = 20; // Hebrew day of month\r\n static readonly PIC_MS: number = 21; // Milliseconds\r\n static readonly PIC_LOCAL: number = 23; // the space between PIC_LOCAL and PIC_MAX_OP\r\n static readonly PIC_MAX_MSK_LEN: number = 100;\r\n\r\n // JPN: Japanese date picture support\r\n static readonly PIC_JY1: number = PICInterface.PIC_LOCAL + 0; // the name of an era (1 byte)\r\n static readonly PIC_JY2: number = PICInterface.PIC_LOCAL + 1; // the name of an era (2 bytes)\r\n static readonly PIC_JY4: number = PICInterface.PIC_LOCAL + 2; // the name of an era (4 bytes)\r\n static readonly PIC_YJ: number = PICInterface.PIC_LOCAL + 3; // a year of an era\r\n static readonly PIC_BB: number = PICInterface.PIC_LOCAL + 4; // a day of the week (2, 4 or 6 bytes)\r\n\r\n // DBCS pictures for iSeries\r\n static readonly PIC_J: number = PICInterface.PIC_LOCAL + 5; // DBCS only (with SO/SI)\r\n static readonly PIC_T: number = PICInterface.PIC_LOCAL + 6; // All SBCS or All DBCS (with SO/SI)\r\n static readonly PIC_G: number = PICInterface.PIC_LOCAL + 7; // DBCS only (without SO/SI)\r\n static readonly PIC_S: number = PICInterface.PIC_LOCAL + 8; // SBCS only\r\n static readonly PIC_MAX_OP: number = 31; // is reserved for DLL\"s picture\r\n static readonly NULL_CHAR: number = -1;\r\n static readonly DB_STR_MAX: number = 255;\r\n static readonly DAYSINFOURCENT: number = 146097; // ((365*4+1)*25-1)*4+1 */\r\n static readonly DAYSINCENTURY: number = 36524; // (365*4+1)*25-1 */\r\n static readonly DAYSINFOURYEAR: number = 1461; // 365*4+1 */\r\n static readonly DAYSINYEAR: number = 365;\r\n static readonly DAYSINMONTH: number = 31;\r\n static readonly DATE_BUDDHIST_GAP: number = 543; // years above the gregorian date\r\n static readonly DEFAULT_DATE: string = \"693961\";\r\n static readonly DEFAULT_TIME: string = \"0\";\r\n static readonly date_day_tab: number[] = [\r\n 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365\r\n ];\r\n\r\n static readonly date_month_str: string[] = [\r\n \" \", \"January \", \"February \", \"March \", \"April \", \"May \", \"June \", \"July \", \"August \", \"September \", \"October \", \"November \", \"December \"\r\n ];\r\n\r\n static readonly date_dow_str: string[] = [\r\n \" \", \"Sunday \", \"Monday \", \"Tuesday \", \"Wednesday \", \"Thursday \", \"Friday \", \"Saturday \"\r\n ];\r\n\r\n //public final static readonly int DEF_century = 1920;\r\n //public final static readonly Nchar DEF_date_mode = 'E';\r\n // vec of pictures that can be given a numeric char only\r\n static readonly NumDirective: number[] = [\r\n 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16\r\n ];\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {PICInterface} from \"./PICInterface\";\r\n\r\nconst DATE_MONTH_LEN: number = 10;\r\nconst DATE_DOW_LEN: number = 10;\r\n\r\nexport class DateUtil {\r\n\r\n private static readonly _localMonths: string[] = new Array<string>(13);\r\n private static readonly _localDays: string[] = new Array<string>(8);\r\n\r\n /// <summary>\r\n /// extract the vector which contains the names of the months, as specified by the\r\n /// language CAB\r\n /// </summary>\r\n static getLocalMonths(names: string): string[] {\r\n let monthLen: number = DATE_MONTH_LEN;\r\n\r\n // if it's the first time then access the language CAB and take the values\r\n if (typeof DateUtil._localMonths[0] === \"undefined\") {\r\n\r\n //cut the string into separate values\r\n if (names !== null) {\r\n DateUtil._localMonths[0] = PICInterface.date_month_str[0];\r\n for (let i: number = 1; i < DateUtil._localMonths.length; i = i + 1) {\r\n\r\n if (i * monthLen >= names.length) {\r\n DateUtil._localMonths[i] = names.substr((i - 1) * monthLen);\r\n while (monthLen - DateUtil._localMonths[i].length > 0) {\r\n DateUtil._localMonths[i] = DateUtil._localMonths[i] + \" \";\r\n }\r\n }\r\n else {\r\n DateUtil._localMonths[i] = names.substr((i - 1) * monthLen, i * monthLen - (i - 1) * monthLen);\r\n }\r\n }\r\n }\r\n else {\r\n for (let i: number = 0; i < DateUtil._localMonths.length; i = i + 1) {\r\n DateUtil._localMonths[i] = PICInterface.date_month_str[i];\r\n }\r\n }\r\n }\r\n return DateUtil._localMonths;\r\n }\r\n\r\n /// <summary>\r\n /// extract the vector which contains the names of the days, as specified by the\r\n /// language CAB\r\n /// </summary>\r\n static getLocalDays(names: string): string[] {\r\n let dowLen: number = DATE_DOW_LEN;\r\n\r\n // if it's the first time then access the language CAB and take the values\r\n if (typeof DateUtil._localDays[0] === \"undefined\") {\r\n\r\n //cut the string into separate values\r\n if (names !== null) {\r\n DateUtil._localDays[0] = PICInterface.date_dow_str[0];\r\n for (let i: number = 1; i < DateUtil._localDays.length; i = i + 1) {\r\n\r\n if (i * dowLen >= names.length) {\r\n DateUtil._localDays[i] = names.substr((i - 1) * dowLen);\r\n while (dowLen - DateUtil._localDays[i].length > 0) {\r\n DateUtil._localDays[i] = DateUtil._localDays[i] + \" \";\r\n }\r\n }\r\n else {\r\n DateUtil._localDays[i] = names.substr((i - 1) * dowLen, i * dowLen - (i - 1) * dowLen);\r\n }\r\n }\r\n }\r\n else {\r\n for (let i: number = 0; i < DateUtil._localMonths.length; i = i + 1) {\r\n DateUtil._localMonths[i] = PICInterface.date_dow_str[i];\r\n }\r\n }\r\n }\r\n return DateUtil._localDays;\r\n }\r\n}\r\n","export enum Logger_MessageDirection {\r\n MessageLeaving,\r\n MessageEntering\r\n}\r\n\r\nexport enum Logger_LogLevels {\r\n None,\r\n RequestInfo,\r\n Server,\r\n ServerMessages,\r\n Support,\r\n Gui,\r\n Development,\r\n Basic\r\n}\r\n\r\nexport enum Priority {\r\n LOWEST = 1,\r\n LOW,\r\n HIGH\r\n}\r\n\r\nexport enum TableBehaviour {\r\n LimitedItems = 1,\r\n UnlimitedItems\r\n}\r\n\r\nexport enum HttpStatusCode {\r\n Unused\r\n}\r\nexport enum MgControlType {\r\n CTRL_TYPE_NONE = '0',\r\n CTRL_TYPE_BUTTON = 'B',\r\n CTRL_TYPE_CHECKBOX = 'C',\r\n CTRL_TYPE_RADIO = 'R',\r\n CTRL_TYPE_COMBO = 'D',\r\n CTRL_TYPE_LIST = 'E',\r\n CTRL_TYPE_TEXT = 'T',\r\n CTRL_TYPE_GROUP = 'G',\r\n CTRL_TYPE_TAB = 'J',\r\n CTRL_TYPE_TABLE = 'A',\r\n CTRL_TYPE_COLUMN = 'K',\r\n CTRL_TYPE_LABEL = 'L',\r\n CTRL_TYPE_IMAGE = 'I',\r\n CTRL_TYPE_SUBFORM = 'F',\r\n CTRL_TYPE_BROWSER = 'W',\r\n CTRL_TYPE_STATUS_BAR = '1',\r\n CTRL_TYPE_SB_LABEL = '2',\r\n CTRL_TYPE_SB_IMAGE = '3',\r\n CTRL_TYPE_FRAME_SET = 'P',\r\n CTRL_TYPE_CONTAINER = 'Q',\r\n CTRL_TYPE_FRAME_FORM = 'U',\r\n CTRL_TYPE_LINE = 'X'\r\n}\r\n\r\nexport enum DitType {\r\n None = 1,\r\n Edit,\r\n Button,\r\n Combobox,\r\n Listbox,\r\n Radiobox,\r\n Tab,\r\n Checkbox,\r\n Image,\r\n Static,\r\n Line,\r\n Group,\r\n Table,\r\n Slider,\r\n Ole,\r\n Hotspot,\r\n StaticTable,\r\n Sound,\r\n Html,\r\n Java,\r\n Activex,\r\n Frame,\r\n Subform,\r\n Hypertext,\r\n Browser,\r\n Opaque\r\n}\r\n\r\nexport enum BorderType {\r\n Thin = 1,\r\n Thick,\r\n NoBorder\r\n}\r\n\r\nexport enum GradientStyle {\r\n None = 1,\r\n Horizontal,\r\n HorizontalSymmetric,\r\n HorizontalWide,\r\n Vertical,\r\n VerticalSymmetric,\r\n VerticalWide,\r\n DiagonalLeft,\r\n DiagonalLeftSymmetric,\r\n DiagonalRight,\r\n DiagonalRightSymmetric,\r\n CornerTopLeft,\r\n CornerTopRight,\r\n CornerBottomLeft,\r\n CornerBottomRight,\r\n Center\r\n}\r\n\r\nexport enum AlignmentTypeHori {\r\n Left = 1,\r\n Center,\r\n Right\r\n}\r\n\r\nexport enum TabbingOrderType {\r\n Automatically = 1,\r\n Manual\r\n}\r\n\r\nexport enum AllowedDirectionType {\r\n Both = 1,\r\n Foreword,\r\n Backward\r\n}\r\n\r\nexport enum AlignmentTypeVert {\r\n Top = 1,\r\n Center,\r\n Bottom\r\n}\r\n\r\nexport enum HtmlAlignmentType {\r\n TextVertTop = 1,\r\n TextVertCenter,\r\n TextVertBottom,\r\n TextHoriLeft,\r\n TextHoriRight\r\n}\r\n\r\nexport enum SideType {\r\n Top = 1,\r\n Right,\r\n Bottom,\r\n Left\r\n}\r\n\r\nexport enum SelprgMode {\r\n Before = 'B',\r\n After = 'A',\r\n Prompt = 'P'\r\n}\r\n\r\nexport enum WinCptn {\r\n Half = 1,\r\n On,\r\n Off\r\n}\r\n\r\nexport enum WinHtmlType {\r\n Get = 1,\r\n Post,\r\n Link\r\n}\r\n\r\nexport enum WinUom {\r\n Dlg = 1,\r\n Mm,\r\n Inch,\r\n Pix\r\n}\r\n\r\nexport enum ControlStyle {\r\n TwoD = 1,\r\n ThreeD,\r\n ThreeDSunken,\r\n Windows3d,\r\n Windows,\r\n Emboss,\r\n NoBorder\r\n}\r\n\r\nexport enum CtrlLineType {\r\n Normal = 1,\r\n Dash,\r\n Dot,\r\n Dashdot,\r\n Dashdotdot\r\n}\r\n\r\nexport enum CtrlTextType {\r\n Default = 1,\r\n Bullet,\r\n Number\r\n}\r\n\r\nexport enum CtrlLineDirection {\r\n Asc = 1,\r\n Des\r\n}\r\n\r\nexport enum CtrlOleDisplayType {\r\n Icon = 1,\r\n Content,\r\n Any\r\n}\r\n\r\nexport enum CtrlOleStoreType {\r\n Link = 1,\r\n Embeded,\r\n Any\r\n}\r\n\r\nexport enum CtrlButtonType {\r\n Submit = 1,\r\n Clear,\r\n Default\r\n}\r\n\r\nexport enum CtrlImageStyle {\r\n Tiled = 1,\r\n Copied,\r\n ScaleFit,\r\n ScaleFill,\r\n Distorted\r\n}\r\n\r\nexport enum TabControlTabsWidth {\r\n FitToText = 1,\r\n Fixed,\r\n FillToRight,\r\n FixedInLine\r\n}\r\n\r\nexport enum CheckboxMainStyle {\r\n None = 0,\r\n Box = 1,\r\n Button,\r\n Switch\r\n}\r\n\r\nexport enum RbAppearance {\r\n None = 0,\r\n Radio = 1,\r\n Button\r\n}\r\n\r\nexport enum HelpCommand {\r\n Context = 1,\r\n Contents,\r\n Setcontents,\r\n Contextpopup,\r\n Key,\r\n Command,\r\n Forcefile,\r\n Helponhelp,\r\n Quit\r\n}\r\n\r\nexport enum FormExpandType {\r\n None = 1,\r\n OnePage,\r\n MultiPage\r\n}\r\n\r\nexport enum DitAttribute {\r\n Alpha = 1,\r\n Unicode,\r\n Numeric,\r\n Boolean,\r\n Date,\r\n Time,\r\n Memo,\r\n Blob\r\n}\r\n\r\nexport enum DspInterface {\r\n Text = 1,\r\n Gui,\r\n Html,\r\n Java,\r\n Frame,\r\n Merge,\r\n Webonline,\r\n Browser\r\n}\r\n\r\nexport enum PrgExecPlace {\r\n Before = 1,\r\n After,\r\n Prompt\r\n}\r\n\r\nexport enum SliderType {\r\n Vertical = 1,\r\n Horizontal\r\n}\r\n\r\nexport enum CtrlButtonTypeGui {\r\n None = 0,\r\n Push = 1,\r\n Image,\r\n Hypertext,\r\n TextOnImage\r\n}\r\n\r\nexport enum ImageEffects {\r\n Normal = 1,\r\n WipeDown,\r\n WipeUp,\r\n WipeRight,\r\n WipeLeft,\r\n Pixel,\r\n SmallBox,\r\n MediumBox,\r\n LargeBox,\r\n Hline,\r\n Vline,\r\n Vmiddle,\r\n Hmiddle,\r\n Hinterlace,\r\n Vinterlace,\r\n OutToIn,\r\n InToOut,\r\n OtiInterlace1,\r\n ItoInterlace2,\r\n SpiralIn3,\r\n SpiralOut4\r\n}\r\n\r\nexport enum CtrlHotspotType {\r\n Square = 1,\r\n Circle\r\n}\r\n\r\nexport enum SubformType {\r\n Program = 1,\r\n Subtask,\r\n Form,\r\n None\r\n}\r\n\r\nexport enum DatabaseDefinitionType {\r\n String = 1,\r\n Normal\r\n}\r\n\r\nexport enum DatabaseOperations {\r\n Insert = 1,\r\n Update,\r\n Delete,\r\n Where,\r\n None\r\n}\r\n\r\nexport enum DataTranslation {\r\n Ansi = 1,\r\n Oem,\r\n Unicode\r\n}\r\n\r\nexport enum WindowPosition {\r\n Customized = 1,\r\n DefaultBounds,\r\n CenteredToParent,\r\n CenteredToMagic,\r\n CenteredToDesktop,\r\n DefaultLocation,\r\n CenteredToWindow\r\n}\r\n\r\nexport enum FldStyle {\r\n None = 1,\r\n Activex,\r\n Ole,\r\n Vector,\r\n Dotnet\r\n}\r\n\r\nexport enum FieldComType {\r\n Obj = 1,\r\n Ref\r\n}\r\n\r\nexport enum ListboxSelectionMode {\r\n Single = 1,\r\n Multiple\r\n}\r\n\r\nexport enum SplitWindowType {\r\n None = 1,\r\n Vertical,\r\n Horizontal\r\n}\r\n\r\nexport enum SplitPrimaryDisplay {\r\n Default = 1,\r\n Left,\r\n Right,\r\n Top,\r\n Bottom\r\n}\r\n\r\nexport enum AutoFit {\r\n None = 1,\r\n AsControl,\r\n AsCalledForm\r\n}\r\n\r\nexport enum WindowType {\r\n Default = 1,\r\n Sdi,\r\n ChildWindow,\r\n SplitterChildWindow,\r\n Floating,\r\n Modal,\r\n ApplicationModal,\r\n Tool,\r\n FitToMdi,\r\n MdiChild,\r\n MdiFrame,\r\n Overlay,\r\n LogonApplicationWindow = 'a',\r\n TkDockChild = 'b'\r\n}\r\n\r\nexport enum StartupMode {\r\n Default = 1,\r\n Maximize,\r\n Minimize\r\n}\r\n\r\nexport enum ColumnUpdateStyle {\r\n Absolute = 1,\r\n Differential,\r\n AsTable\r\n}\r\n\r\nexport enum CallUdpConvention {\r\n C = 'C',\r\n Standard = 'S',\r\n Fast = 'F'\r\n}\r\n\r\nexport enum CallUDPType {\r\n Background = 'B',\r\n GUI = 'G'\r\n}\r\n\r\nexport enum VerifyMode {\r\n Error = 'E',\r\n Warning = 'W',\r\n Revert = 'R'\r\n}\r\n\r\nexport enum VerifyDisplay {\r\n Box = 'B',\r\n Status = 'S',\r\n None = 'N'\r\n}\r\n\r\nexport enum VerifyImage {\r\n Exclamation = 'E',\r\n Critical = 'C',\r\n Question = 'Q',\r\n Information = 'I',\r\n None = 'N'\r\n}\r\n\r\nexport enum VerifyButtons {\r\n Ok = 'O',\r\n OkCancel = 'K',\r\n AbortRetryIgnore = 'A',\r\n YesNoCancel = 'Y',\r\n YesNo = 'N',\r\n RetryCancel = 'R'\r\n}\r\n\r\nexport enum CallComOption {\r\n Method = 1,\r\n GetProp,\r\n SetProp\r\n}\r\n\r\nexport enum CallWsStyle {\r\n Rpc = 1,\r\n Document\r\n}\r\n\r\nexport enum CallOsShow {\r\n Hide = 1,\r\n Normal,\r\n Maximize,\r\n Minimize\r\n}\r\n\r\nexport enum LogicUnit {\r\n Remark = 1,\r\n Task,\r\n Group,\r\n Record,\r\n Variable,\r\n Control,\r\n Event,\r\n Function,\r\n SeqFlow\r\n}\r\n\r\nexport enum LogicLevel {\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n Verification = 'V',\r\n Change = 'C'\r\n}\r\n\r\nexport enum BrkScope {\r\n Task = 'T',\r\n Subtree = 'S',\r\n Global = 'G'\r\n}\r\n\r\nexport enum LDir {\r\n Default = 'A',\r\n Reversed = 'D'\r\n}\r\n\r\nexport enum Order {\r\n Ascending = 'A',\r\n Descending = 'D'\r\n}\r\n\r\nexport enum LnkEval_Cond {\r\n Record = 'R',\r\n Task = 'T'\r\n}\r\n\r\nexport enum Access {\r\n NoAccess = ' ',\r\n Read = 'R',\r\n Write = 'W'\r\n}\r\n\r\nexport enum DbShare {\r\n NoShare = ' ',\r\n Write = 'W',\r\n Read = 'R',\r\n None = 'N'\r\n}\r\n\r\nexport enum DbOpen {\r\n Normal = 'N',\r\n Fast = 'F',\r\n Damaged = 'D',\r\n Reindex = 'R'\r\n}\r\n\r\nexport enum DbDelUpdMode {\r\n Position = 'P',\r\n PositionAndSelectedFields = 'S',\r\n PositionAndUpdatedFields = 'U',\r\n AsTable = 'T',\r\n None = 'N'\r\n}\r\n\r\nexport enum RaiseAt {\r\n Container = 1,\r\n TaskInFocus\r\n}\r\n\r\nexport enum EngineDirect {\r\n None = ' ',\r\n AbortTask = 'A',\r\n Rollback = 'B',\r\n AutoRetry = 'R',\r\n UserRetry = 'U',\r\n Ignore = 'I',\r\n AsStrategy = 'S',\r\n Continue = 'C'\r\n}\r\n\r\nexport enum FlowDirection {\r\n Forward = 'F',\r\n Backward = 'B',\r\n Combined = 'C'\r\n}\r\n\r\nexport enum FlwMode {\r\n Fast = 'F',\r\n Step = 'S',\r\n Combine = 'B',\r\n Before = 'J',\r\n After = 'Z'\r\n}\r\n\r\n\r\n\r\nexport enum BottomPositionInterval {\r\n NoneRowHeight = 1,\r\n RowHeight\r\n}\r\n\r\nexport enum ExecOn {\r\n None,\r\n Optimized,\r\n Client,\r\n Server\r\n}\r\n\r\n\r\nexport enum Storage {\r\n AlphaString = 1,\r\n AlphaLstring,\r\n AlphaZtring,\r\n NumericSigned,\r\n NumericUnsigned,\r\n NumericFloat,\r\n NumericFloatMs,\r\n NumericFloatDec,\r\n NumericPackedDec,\r\n NumericNumeric,\r\n NumericCharDec,\r\n NumericString,\r\n NumericMagic,\r\n NumericCisam,\r\n BooleanInteger,\r\n BooleanDbase,\r\n DateInteger,\r\n DateInteger1901,\r\n DateString,\r\n DateYymd,\r\n DateMagic,\r\n DateMagic1901,\r\n TimeInteger,\r\n TimeString,\r\n TimeHmsh,\r\n TimeMagic,\r\n MemoString,\r\n MemoMagic,\r\n Blob,\r\n NumericExtFloat,\r\n UnicodeString,\r\n UnicodeZstring,\r\n AnsiBlob,\r\n UnicodeBlob\r\n}\r\n\r\nexport enum StorageAttributeType {\r\n Alpha = 'A',\r\n Numeric = 'N',\r\n Boolean = 'B',\r\n Date = 'D',\r\n Time = 'T',\r\n Blob = 'O',\r\n Unicode = 'U',\r\n String = 'S',\r\n BlobOle = 'L',\r\n BlobActiveX = 'X',\r\n BlobVector = 'V',\r\n BlobDotNet = 'E',\r\n BlobJava = 'J',\r\n None = ' '\r\n}\r\n\r\nexport enum BrkLevel {\r\n Task = 'T',\r\n Group = 'G',\r\n All = 'A',\r\n Record = 'R',\r\n Control = 'C',\r\n Handler = 'H',\r\n MainProgram = 'M',\r\n Variable = 'V',\r\n Function = 'F',\r\n Remark = 'K',\r\n RM_Compat = 'M',\r\n SubForm = 'U',\r\n Event = 'E',\r\n OPStatOnChange = 'O'\r\n}\r\n\r\nexport enum MediaOrientation {\r\n Portrait = 'P',\r\n Landscape = 'L'\r\n}\r\n\r\nexport enum MediaFormat {\r\n Page = 'P',\r\n Line = 'L',\r\n None = 'N'\r\n}\r\n\r\nexport enum CharacterSet {\r\n Ansi,\r\n Oem,\r\n Unicode = 3,\r\n Utf8\r\n}\r\n\r\nexport enum MediaAccess {\r\n Read = 'R',\r\n Write = 'W',\r\n Append = 'A',\r\n Direct = 'D',\r\n AppendFlush = 'F',\r\n Create = 'C'\r\n}\r\n\r\nexport enum PaperSize {\r\n Default = 'D',\r\n Letter = 'L',\r\n A4 = 'A',\r\n Folio = 'F',\r\n Quarto = 'Q',\r\n Tabloid = 'T',\r\n Ledger = 'R',\r\n Legal_8_14 = 'G',\r\n Statement = 'S',\r\n Executive_7_10 = 'X',\r\n A3 = '3',\r\n A5 = '5',\r\n Note = 'N',\r\n Envelope_3_8 = 'E',\r\n B4 = 'B',\r\n B5_v = 'V',\r\n UserDefined = 'U',\r\n B5 = 'W',\r\n C5 = 'C',\r\n Legal = 'g',\r\n Multipurpose = 'M',\r\n Executive = 'x',\r\n EnvelopeB4 = 'v',\r\n EnvelopeB5 = 'p',\r\n EnvelopeC6 = '6',\r\n EnvelopeDL = 'o',\r\n EnvelopeMonarch = 'h',\r\n Envelope9 = '9',\r\n Envelope10 = '0',\r\n Envelope11 = '1'\r\n}\r\n\r\nexport enum PaperSizePdfDisabled {\r\n Default = 'D',\r\n Letter = 'L',\r\n A4 = 'A',\r\n Folio = 'F',\r\n Quarto = 'Q',\r\n Tabloid = 'T',\r\n Ledger = 'R',\r\n Legal_8_14 = 'G',\r\n Statement = 'S',\r\n Executive_7_10 = 'X',\r\n A3 = '3',\r\n A5 = '5',\r\n Note = 'N',\r\n Envelope_3_8 = 'E',\r\n B4 = 'B',\r\n B5_v = 'V'\r\n}\r\n\r\nexport enum PaperSizePdfEnabled {\r\n Default = 'D',\r\n UserDefined = 'U',\r\n Letter = 'L',\r\n A4 = 'A',\r\n A3 = '3',\r\n Legal = 'g',\r\n B5 = 'B',\r\n C5 = 'C',\r\n Multipurpose = 'M',\r\n B4 = '4',\r\n A5 = '5',\r\n Folio = 'F',\r\n Executive = 'x',\r\n EnvelopeB4 = 'v',\r\n EnvelopeB5 = 'p',\r\n EnvelopeC6 = '6',\r\n EnvelopeDL = 'o',\r\n EnvelopeMonarch = 'h',\r\n Envelope9 = '9',\r\n Envelope10 = '0',\r\n Envelope11 = '1'\r\n}\r\n\r\nexport enum Area {\r\n Detail = 'N',\r\n Header = 'H',\r\n Footer = 'F',\r\n PageHeader = 'P',\r\n PageFooter = 'G'\r\n}\r\n\r\nexport enum DisplayTextType {\r\n Edit,\r\n Query\r\n}\r\n\r\nexport enum LogicHeaderType {\r\n None = ' ',\r\n Remark = 'K',\r\n Task = 'T',\r\n Function = 'F',\r\n Handler = 'H',\r\n Record = 'R',\r\n Variable = 'V',\r\n Control = 'C',\r\n Group = 'G',\r\n All = 'A',\r\n MainProgram = 'P',\r\n RecordCompat = 'M',\r\n SubForm = 'U',\r\n Event = 'E'\r\n}\r\n\r\nexport enum LogicOperationType {\r\n None = 'x',\r\n Remark = ' ',\r\n Update = 'U',\r\n Call = 'C',\r\n Invoke = 'I',\r\n RaiseEvent = 'R',\r\n Evaluate = 'A',\r\n Block = 'B',\r\n Verify = 'E',\r\n Form = 'F',\r\n Variable = 'V'\r\n}\r\n\r\nexport enum Opr {\r\n Remark,\r\n SelFld,\r\n Stop,\r\n BeginLink,\r\n EndLink,\r\n BeginBlock,\r\n EndBlock,\r\n Call,\r\n EvaluateExpression,\r\n UpdateFld,\r\n WriteFile,\r\n ReadFile,\r\n DataviewSrc,\r\n UserExit,\r\n RaiseEvent\r\n}\r\n\r\nexport enum DataViewHeaderType {\r\n None = ' ',\r\n Remark = 'R',\r\n Declare = 'D',\r\n MainSource = 'M',\r\n DirectSQL = 'Q',\r\n LinkQuery = 'L',\r\n LinkWrite = 'W',\r\n LinkCreate = 'C',\r\n LinkIJoin = 'I',\r\n LinkOJoin = 'O',\r\n EndLink = 'E'\r\n}\r\n\r\nexport enum DataViewOperationType {\r\n Remark = ' ',\r\n Column = 'C',\r\n Virtual = 'V',\r\n Parameter = 'P',\r\n LinkedColumn = 'L'\r\n}\r\n\r\nexport enum LoadedValues {\r\n None,\r\n HeaderOnly,\r\n Failed,\r\n Full\r\n}\r\n\r\nexport enum YesNoValues {\r\n Yes = 1,\r\n No = 0\r\n}\r\n\r\nexport enum TrueFalseValues {\r\n True = 1,\r\n False = 0\r\n}\r\n\r\nexport enum HelpType {\r\n Internal = 'I',\r\n Prompt = 'P',\r\n Windows = 'W',\r\n Tooltip = 'T',\r\n URL = 'U'\r\n}\r\n\r\nexport enum NullArithmetic {\r\n Nullify,\r\n UseDefault\r\n}\r\n\r\nexport enum ModelClass {\r\n Help = 'A',\r\n Field = 'B',\r\n Browser = 'C',\r\n GUI0 = 'D',\r\n GUI1 = 'E',\r\n TextBased = 'F',\r\n Frameset = 'G',\r\n Merge = 'H',\r\n RCDisplay = 'I',\r\n RCFrame = 'J',\r\n GuiFrame = 'K'\r\n}\r\n\r\nexport enum CompTypes {\r\n Magicxpa = 'U',\r\n DotNet = 'D'\r\n}\r\n\r\nexport enum TaskFlow {\r\n Undefined = 'U',\r\n Online = 'O',\r\n Batch = 'B',\r\n Browser = 'R',\r\n RichClient = 'C'\r\n}\r\n\r\nexport enum RemarkType {\r\n RegularOperation,\r\n Dataviewheader,\r\n TaskLogic\r\n}\r\n\r\nexport enum VeeMode {\r\n None = ' ',\r\n Parameter = 'P',\r\n Virtual = 'V',\r\n Real = 'R',\r\n Column = 'C',\r\n LinkCol = 'L'\r\n}\r\n\r\nexport enum VeeDiffUpdate {\r\n AsTable = 'T',\r\n Absolute = 'N',\r\n Differential = 'Y',\r\n None = 0\r\n}\r\n\r\nexport enum VeePartOfDataview {\r\n Undefined = 'U'\r\n}\r\n\r\nexport enum DataviewType {\r\n MainTable = 'M',\r\n DSQL = 'Q',\r\n Declaration = 'D'\r\n}\r\n\r\nexport enum TabbingCycleType {\r\n RemainInCurrentRecord = 'R',\r\n MoveToNextRecord = 'N',\r\n MoveToParentTask = 'P'\r\n}\r\n\r\nexport enum LockingStrategy {\r\n Immediate = 'I',\r\n OnModify = 'O',\r\n AfterModify = 'A',\r\n BeforeUpdate = 'B',\r\n Minimum = 'M'\r\n}\r\n\r\nexport enum TransBegin {\r\n Update = 'U',\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n OnLock = 'L',\r\n None = 'N',\r\n BeforeTask = 'T',\r\n Group = 'G'\r\n}\r\n\r\nexport enum ErrStrategy {\r\n Recover = 'R',\r\n Abort = 'A'\r\n}\r\n\r\nexport enum CacheStrategy {\r\n Pos = 'P',\r\n PosData = 'D',\r\n None = 'N',\r\n AsTable = 'T'\r\n}\r\n\r\nexport enum ExeState {\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n Update = 'U',\r\n Main = 'M',\r\n Before = 'B',\r\n AfterOnChange = 'O',\r\n Verify = 'V',\r\n Change = 'C'\r\n}\r\n\r\nexport enum TransMode {\r\n Deferred = 'D',\r\n NestedDeffered = 'N',\r\n Physical = 'P',\r\n WithinActiveTrans = 'W',\r\n None = 'O'\r\n}\r\n\r\nexport enum PositionUsage {\r\n RangeOn = 'O',\r\n RangeFrom = 'F',\r\n Locate = 'L'\r\n}\r\n\r\nexport enum LnkMode {\r\n Query = 'R',\r\n Write = 'W',\r\n Create = 'A',\r\n IJoin = 'J',\r\n OJoin = 'O'\r\n}\r\n\r\nexport enum InitialMode {\r\n Modify = 'M',\r\n Create = 'C',\r\n Delete = 'D',\r\n Query = 'E',\r\n AsParent = 'P',\r\n Locate = 'L',\r\n Range = 'R',\r\n Key = 'K',\r\n Sort = 'S',\r\n Files = 'O',\r\n Options = 'N',\r\n ByExp = 'B'\r\n}\r\n\r\nexport enum KeyMode {\r\n Normal = 'N',\r\n Insert = 'I',\r\n Append = 'A'\r\n}\r\n\r\nexport enum BoxDir {\r\n Vertical = 'V',\r\n Horizontal = 'H'\r\n}\r\n\r\nexport enum EndMode {\r\n Before = 'B',\r\n After = 'A',\r\n Immediate = 'I'\r\n}\r\n\r\nexport enum UniqueTskSort {\r\n AccordingToIndex = 'A',\r\n Unique = 'U'\r\n}\r\n\r\nexport enum BrkType {\r\n Prefix = 'P',\r\n Suffix = 'S',\r\n Main = 'M',\r\n User = 'U',\r\n Error = 'E',\r\n Verify = 'V',\r\n ChoiceChange = 'C'\r\n}\r\n\r\nexport enum ErrorClassific {\r\n Any,\r\n RecLocked,\r\n DupKey,\r\n ConstrFail,\r\n TriggerFail,\r\n RecUpdated,\r\n RowsAffected,\r\n UpdateFail,\r\n Unmapped,\r\n ExecSql,\r\n BadSqlCmd,\r\n BadIni,\r\n BaName,\r\n Damaged,\r\n Unlocked,\r\n BadOpen,\r\n BadClose,\r\n RsrcLocked,\r\n RecLockedNoBuf,\r\n NoDef,\r\n RecLockedNow,\r\n WrnRetry,\r\n RecLockedMagic,\r\n ReadOnly,\r\n WrnCreated,\r\n Capacity,\r\n TransCommit,\r\n TransOpen,\r\n TransAbort,\r\n BadDef,\r\n InvalidOwnr,\r\n ClrOwnrFail,\r\n AlterTbl,\r\n SortTbl,\r\n CanotRemove,\r\n CanotRename,\r\n WrnLogActive,\r\n TargetFileExist,\r\n FileIsView,\r\n CanotCopy,\r\n Stop,\r\n StrBadName,\r\n InsertIntoAll,\r\n BadQry,\r\n FilterAfterInsert,\r\n GetUserPwdDst,\r\n WrnCacheTooBig,\r\n LostRec,\r\n FileLocked,\r\n MaxConnEx,\r\n Deadlock,\r\n BadCreate,\r\n FilNotExist,\r\n Unused,\r\n IdxCreateFail,\r\n ConnectFail,\r\n Fatal,\r\n InsertFail,\r\n DeleteFail,\r\n InErrorZone,\r\n NoRec,\r\n NotExist,\r\n GetUserPwd,\r\n WrnCancel,\r\n NotSupportedFunc,\r\n ModifyWithinTrans,\r\n LoginPwd,\r\n None\r\n}\r\n\r\nexport enum ComponentItemType {\r\n Models,\r\n DataSources,\r\n Programs,\r\n Helps,\r\n Rights,\r\n Events,\r\n Functions\r\n}\r\n\r\nexport enum FieldComAlloc {\r\n Auto = 1,\r\n None\r\n}\r\n\r\nexport enum BlobContent {\r\n Unknown = '0',\r\n Ansi = '1',\r\n Unicode = '2',\r\n Binary = '3'\r\n}\r\n\r\nexport enum DBHRowIdentifier {\r\n RowId = 'R',\r\n Default = 'D',\r\n UniqueKey = 'U'\r\n}\r\n\r\nexport enum UseSQLCursor {\r\n Yes = 'Y',\r\n No = 'N',\r\n Default = 'D'\r\n}\r\n\r\nexport enum DBHCache {\r\n Pos = 'P',\r\n PosData = 'D',\r\n None = 'N',\r\n AsTable = 'T'\r\n}\r\n\r\nexport enum Resident {\r\n No = 'N',\r\n Immediate = 'I',\r\n OnDemand = 'D',\r\n ImmediateAndClient = 'C',\r\n ImmediateAndBrowser = 'B'\r\n}\r\n\r\nexport enum CheckExist {\r\n CheckYes = 'Y',\r\n CheckNo = 'N',\r\n CheckDB = 'D'\r\n}\r\n\r\nexport enum ValType {\r\n ZString = 1,\r\n MagicNum,\r\n Boolean,\r\n UString\r\n}\r\n\r\nexport enum FldStorage {\r\n AlphaString = 1,\r\n AlphaLString,\r\n AlphaZString,\r\n NumericSigned,\r\n NumericUnsigned,\r\n NumericFloat,\r\n NumericFloatMS,\r\n NumericFloatDec,\r\n NumericPackedDec,\r\n NumericNumeric,\r\n NumericCharDec,\r\n NumericString,\r\n NumericMagic,\r\n NumericCisam,\r\n NumericExtFloat = 30,\r\n BooleanInteger = 15,\r\n BooleanDBase,\r\n DateInteger,\r\n DateInteger1901,\r\n DateString,\r\n DateYYMD,\r\n DateMagic,\r\n DateMagic1901,\r\n TimeInteger,\r\n TimeString,\r\n TimeHMSH,\r\n TimeMagic,\r\n MemoString,\r\n MemoMagic,\r\n Blob,\r\n UnicodeString = 31,\r\n UnicodeZString,\r\n AnsiBlob,\r\n UnicodeBlob\r\n}\r\n\r\nexport enum DriverDB {\r\n Btrv,\r\n Prevesive2000,\r\n RMS,\r\n MySQL,\r\n DBase,\r\n Cache,\r\n DB2AS400,\r\n FoxBase,\r\n Clipper,\r\n SyBase,\r\n Cics = 12,\r\n Oracle,\r\n Informix,\r\n Ingres,\r\n AS400,\r\n DB2 = 18,\r\n Odbc,\r\n MS6,\r\n Memory,\r\n RMCOB\r\n}\r\n\r\nexport enum ExportType {\r\n EntireProject = 'A',\r\n Models = 'E',\r\n DataSources = 'F',\r\n Programs = 'P',\r\n Helps = 'H',\r\n Rights = 'R',\r\n Menus = 'M',\r\n CompositeResources = 'O',\r\n ApplicationProperties = 'C'\r\n}\r\n\r\nexport enum TriggerType {\r\n System = 'S',\r\n Timer = 'T',\r\n Expression = 'E',\r\n Internal = 'I',\r\n None = 'N',\r\n Component = 'C',\r\n User = 'U',\r\n Error = 'R',\r\n ComEvent = 'X',\r\n DotNetEvent = 'D',\r\n PublicUserEvent = 'P',\r\n UserFunc = 'F'\r\n}\r\n\r\nexport enum ItemMasks {\r\n Undefined = 0,\r\n ActiveInClient = 1,\r\n MagicSqlFunc = 4,\r\n CacheAlways = 8,\r\n CacheSometimes = 16,\r\n RtSearchExecAllowed = ' ',\r\n ArgAttrAsResult = '@',\r\n CalcResAttr = 128,\r\n PossibleReentrance = 256,\r\n ForceClientExecBrowserClient = 512,\r\n ForceServerExecBrowserClient = 1024,\r\n FuncNotSupportedBrowserClient = 2048,\r\n ForceClientExecRichClient = 4096,\r\n ForceServerExecRichClient = 8192,\r\n FuncNotSupportedRichClient = 16384,\r\n FuncNotSupportedOnlineBatch = 32768,\r\n ForceMixExecRichClient = 65536,\r\n ForceUnknownExecRichClient = 131072\r\n}\r\n\r\nexport enum UpdateMode {\r\n Incremental = 'I',\r\n Normal = 'N'\r\n}\r\n\r\nexport enum BlockTypes {\r\n If = 'I',\r\n Else = 'E',\r\n EndBlock = 'N',\r\n Loop = 'L'\r\n}\r\n\r\nexport enum FormOperationType {\r\n Input = 'I',\r\n Output = 'O'\r\n}\r\n\r\nexport enum FormPage {\r\n Skip = 'S',\r\n Auto = 'A',\r\n Top = 'T'\r\n}\r\n\r\nexport enum FormDelimiter {\r\n Column = 'C',\r\n Single = 'S',\r\n Double = 'D'\r\n}\r\n\r\nexport enum CallOperationMode {\r\n Program = 'P',\r\n SubTask = 'T',\r\n ByExp = 'E',\r\n ByName = 'B',\r\n Remote = 'R',\r\n Com = 'C',\r\n OsCommand = 'O',\r\n UDP = 'U',\r\n WebS = 'W',\r\n WebSLite = 'L',\r\n DotNet = 46\r\n}\r\n\r\nexport enum RowType {\r\n Header = 1,\r\n Operation\r\n}\r\n\r\nexport enum ForceExit {\r\n None = 'N',\r\n Control = 'C',\r\n PreRecordUpdate = 'R',\r\n PostRecordUpdate = 'P',\r\n Ignore = 'I',\r\n Editing = 'E'\r\n}\r\n\r\nexport enum MediaType {\r\n None = 'N',\r\n GraphicalPrinter = 'G',\r\n Printer = 'P',\r\n Console = 'C',\r\n File = 'F',\r\n Requester = 'R',\r\n XMLDirect = 'D',\r\n Variable = 'V'\r\n}\r\n\r\nexport enum OSType {\r\n Android = 'A',\r\n IOS = 'I'\r\n}\r\n\r\nexport enum APGMode {\r\n Execute = 'E',\r\n Generate = 'G'\r\n}\r\n\r\nexport enum APGOption {\r\n Browse = 'B',\r\n Export = 'E',\r\n Import = 'I',\r\n Print = 'P',\r\n Browser = 'R',\r\n RichClient = 'H'\r\n}\r\n\r\nexport enum APGDisplayMode {\r\n Line = 'L',\r\n Screen = 'S',\r\n None = 'N'\r\n}\r\n\r\nexport enum APGFormSize {\r\n AsModel = 'M',\r\n AsContent = 'C',\r\n AsContentWithinMDI = 'D'\r\n}\r\n\r\nexport enum APGType {\r\n Single = 'S',\r\n Multiple = 'M',\r\n Program = 'P'\r\n}\r\n\r\nexport enum APGInvokedFrom {\r\n TablesRepository = 1,\r\n ProgramsRepository\r\n}\r\n\r\nexport enum MgModelType {\r\n Model = 'M',\r\n Var = 'V'\r\n}\r\n\r\nexport enum CallbackType {\r\n ProgressBar,\r\n Import,\r\n FormEditor,\r\n CollectionChanges\r\n}\r\n\r\nexport enum Axis {\r\n X,\r\n Y\r\n}\r\n\r\nexport enum ModelAttrHelp {\r\n Internal = 'A',\r\n Windows = 'B'\r\n}\r\n\r\nexport enum ModelAttrField {\r\n Alpha = 'A',\r\n Numeric = 'C',\r\n Unicode = 'B',\r\n Logical = 'D',\r\n Date = 'E',\r\n Time = 'F',\r\n Blob = 'G',\r\n OLE = 'H',\r\n ActiveX = 'I',\r\n Vector = 'J',\r\n DotNet = 'K'\r\n}\r\n\r\nexport enum ModelAttrGui0 {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Button = 'D',\r\n Check = 'E',\r\n Radio = 'F',\r\n Tab = 'G',\r\n List = 'H',\r\n Combo = 'I',\r\n Line = 'J',\r\n Slider = 'K',\r\n Table = 'L',\r\n Column = 'M',\r\n Image = 'N',\r\n Ole = 'O',\r\n Redit = 'P',\r\n Activex = 'R',\r\n Subform = 'S',\r\n Browser = 'O'\r\n}\r\n\r\nexport enum ModelAttrGui1 {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Line = 'D',\r\n Table = 'E',\r\n Column = 'F',\r\n Image = 'G',\r\n Redit = 'H'\r\n}\r\n\r\nexport enum ModelAttrText {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Line = 'D'\r\n}\r\n\r\nexport enum ModelAttrRichClient {\r\n Form = 'A',\r\n Edit = 'B',\r\n Label = 'C',\r\n Button = 'D',\r\n Check = 'E',\r\n Radio = 'F',\r\n Tab = 'G',\r\n List = 'H',\r\n Combo = 'I',\r\n Group = 'J',\r\n Table = 'K',\r\n Column = 'L',\r\n Image = 'M',\r\n Subform = 'N',\r\n Browser = 'O',\r\n Line = 'Q'\r\n}\r\n\r\nexport enum ModelAttrFramesetForm {\r\n Form = 'A',\r\n Frame = 'B'\r\n}\r\n\r\nexport enum ModelAttRichClientFrameSet {\r\n Form = 'A',\r\n Frame = 'B'\r\n}\r\n\r\nexport enum ModelAttrBrowser {\r\n Form = 'A',\r\n Edit = 'B',\r\n Static = 'C',\r\n Button = 'D',\r\n Check = 'E',\r\n Radio = 'F',\r\n List = 'G',\r\n Combo = 'H',\r\n Table = 'I',\r\n Image = 'J',\r\n Subform = 'K',\r\n Iframe = 'L',\r\n Opaque = 'M'\r\n}\r\n\r\nexport enum ModelAttGuiFrame {\r\n Form = 'A',\r\n Frame = 'B'\r\n}\r\n\r\nexport enum ModelAttMerge {\r\n Form = 'A'\r\n}\r\n\r\nexport enum DbhKeyMode {\r\n Unique = 'S',\r\n NonUnique = 'N'\r\n}\r\n\r\nexport enum DbhKeyDirection {\r\n OneWay = 'A',\r\n TwoWay = 'B'\r\n}\r\n\r\nexport enum DbhKeyRangeMode {\r\n Quick = 'Q',\r\n Full = 'F'\r\n}\r\n\r\nexport enum DbhKeyIndexType {\r\n Real = 'R',\r\n Virtual = 'V'\r\n}\r\n\r\nexport enum DbhSegmentDirection {\r\n Ascending = 'A',\r\n Descending = 'D'\r\n}\r\n\r\nexport enum ChoiceControlStyle {\r\n ListBox = 1,\r\n ComboBox,\r\n Tab,\r\n RadioButton\r\n}\r\n\r\nexport enum Recursion {\r\n None,\r\n First,\r\n Second,\r\n FirstOpen\r\n}\r\n\r\nexport enum ViewSelectType {\r\n IncludeInView,\r\n ExcludeFromView\r\n}\r\n\r\nexport enum RangeMode {\r\n From = 'F',\r\n To = 'T',\r\n Equal = 'E'\r\n}\r\n\r\nexport enum TableType {\r\n Table = 'T',\r\n View = 'V',\r\n Undefined = 'U'\r\n}\r\n\r\nexport enum DatabaseDataType {\r\n XmlDataSource = 'X',\r\n DatabaseDataSource = 'D'\r\n}\r\n\r\nexport enum LogicHeaderAction {\r\n None,\r\n CreateVariableChangeParameters,\r\n DeleteVariableChangeParameters,\r\n ReplaceVariableChangeParameters,\r\n CreateEventParameters\r\n}\r\n\r\nexport enum DatabaseFilters {\r\n EnvironmentDatabaseAll = 'A',\r\n EnvironmentDatabaseSql = 'S',\r\n EnvironmentDatabaseCanLoadDefinition = 'D',\r\n EnvironmentDatabaseIsam = 'I',\r\n EnvironmentDatabaseXmlOnly = 'X',\r\n EnvironmentDatabaseOnly = 'O',\r\n EnvironmentDatabaseCanLoadDefinitionAndXml = 'G'\r\n}\r\n\r\nexport enum FieldViewModelType {\r\n DataSource,\r\n DataView,\r\n Logic\r\n}\r\n\r\nexport enum SourceContextType {\r\n CurrentContext = 'C',\r\n MainContext = 'M'\r\n}\r\n\r\nexport enum ViewRefreshMode {\r\n None,\r\n CurrentLocation,\r\n UseTaskLocate,\r\n FirstRecord\r\n}\r\n\r\nexport enum LineManipulationType {\r\n None,\r\n RepeatEntries,\r\n MoveEntries,\r\n OverwriteCurrent\r\n}\r\n\r\nexport enum DataViewOutputType {\r\n Xml = 'X',\r\n ClientFile = 'C'\r\n}\r\n\r\nexport enum UndoRedoAction {\r\n Undo,\r\n Redo\r\n}\r\n\r\nexport enum OrientationLock {\r\n No = 1,\r\n Portrait,\r\n Landscape\r\n}\r\n\r\nexport enum EnterAnimation {\r\n Default = 1,\r\n Left,\r\n Right,\r\n Top,\r\n Bottom,\r\n Flip,\r\n Fade,\r\n None\r\n}\r\n\r\nexport enum ExitAnimation {\r\n Default = 1,\r\n Left,\r\n Right,\r\n Top,\r\n Bottom,\r\n Flip,\r\n Fade,\r\n None\r\n}\r\n\r\nexport enum KeyboardTypes {\r\n Default = 1,\r\n Numeric,\r\n URL,\r\n NumberPad,\r\n PhonePad,\r\n NamePhonePad,\r\n Email\r\n}\r\n\r\nexport enum KeyboardReturnKeys {\r\n Default = 1,\r\n Go,\r\n Next,\r\n Previous,\r\n Search,\r\n Done\r\n}\r\n\r\nexport enum OpenEditDialog {\r\n Default = 1,\r\n Yes,\r\n No\r\n}\r\n\r\nexport enum FrameLayoutTypes {\r\n TwoFramesHorizontal = 7901,\r\n TwoFramesVertical = 7902,\r\n ThreeFramesBottom = 7903,\r\n ThreeFramesRight = 7904,\r\n ThreeFramesTop = 7905,\r\n ThreeFramesLeft = 7906\r\n}\r\n\r\nexport enum LineDirection {\r\n Horizontal,\r\n Vertical,\r\n NESW,\r\n NWSE\r\n}\r\n\r\nexport enum ScrollBarThumbType {\r\n Incremental = 1,\r\n Absolute\r\n}\r\n\r\nexport enum StorageAttribute {\r\n NONE = ' ',\r\n ALPHA = 'A',\r\n NUMERIC = 'N',\r\n DATE = 'D',\r\n TIME = 'T',\r\n BOOLEAN = 'B',\r\n MEMO = 'M',\r\n BLOB = 'O',\r\n BLOB_VECTOR = 'V',\r\n UNICODE = 'U',\r\n SKIP = '0',\r\n DOTNET = 'E'\r\n}\r\n\r\nexport enum NotifyCollectionChangedAction {\r\n Add,\r\n Remove,\r\n Replace,\r\n Move,\r\n Reset\r\n}\r\n","/// <summary> this interface defines the internal events codes</summary>\r\nexport class InternalInterface {\r\n static readonly MG_ACT_NONE: number = 0;\r\n static readonly MG_ACT_CHAR: number = 1;\r\n static readonly MG_ACT_OLE2: number = 3;\r\n static readonly MG_ACT_EDT_MARKPRVCH: number = 4;\r\n static readonly MG_ACT_EDT_MARKNXTCH: number = 5;\r\n static readonly MG_ACT_EDT_MARKTOBEG: number = 6;\r\n static readonly MG_ACT_EDT_MARKTOEND: number = 7;\r\n static readonly MG_ACT_MENU_BAR: number = 8;\r\n static readonly MG_ACT_EDT_BEGFLD: number = 9;\r\n static readonly MG_ACT_EDT_ENDFLD: number = 10;\r\n static readonly MG_ACT_CUT: number = 11;\r\n static readonly MG_ACT_CLOSE: number = 13;\r\n static readonly MG_ACT_EXIT: number = 14;\r\n static readonly MG_ACT_DISPLAY_REFRESH: number = 15;\r\n static readonly MG_ACT_RESTORE_DEFAULTS: number = 16;\r\n static readonly MG_ACT_BUTTON: number = 18;\r\n static readonly MG_ACT_JUMP_TO_ROW: number = 19;\r\n static readonly MG_ACT_COMMUNICATIONS: number = 22;\r\n static readonly MG_ACT_OPEN_APPLICATION: number = 23;\r\n static readonly MG_ACT_ACT_CLOSE_APPL: number = 24;\r\n static readonly MG_ACT_TOOLKIT_RUNTIME: number = 25;\r\n static readonly MG_ACT_KEYBOARD_MAPPING: number = 26;\r\n static readonly MG_ACT_SHELL_TO_OS: number = 27;\r\n static readonly MG_ACT_EXIT_SYSTEM: number = 28;\r\n static readonly MG_ACT_RTO_MODIFY: number = 30;\r\n static readonly MG_ACT_RTO_CREATE: number = 31;\r\n static readonly MG_ACT_RTO_QUERY: number = 32;\r\n static readonly MG_ACT_CANCEL: number = 33;\r\n static readonly MG_ACT_ZOOM: number = 34;\r\n static readonly MG_ACT_DELLINE: number = 36;\r\n static readonly MG_ACT_CRELINE: number = 37;\r\n static readonly MG_ACT_REPEAT_ENTRY: number = 39;\r\n static readonly MG_ACT_MOVE_ENTRY: number = 40;\r\n static readonly MG_ACT_OVERWRITE_ENTRY: number = 41;\r\n static readonly MG_ACT_SELECT: number = 42;\r\n static readonly MG_ACT_EDT_PRVCHAR: number = 43;\r\n static readonly MG_ACT_EDT_NXTCHAR: number = 44;\r\n static readonly MG_ACT_EDT_PRVTAB: number = 45;\r\n static readonly MG_ACT_EDT_NXTTAB: number = 46;\r\n static readonly MG_ACT_EDT_PRVWORD: number = 47;\r\n static readonly MG_ACT_EDT_NXTWORD: number = 48;\r\n static readonly MG_ACT_EDT_PRVLINE: number = 49;\r\n static readonly MG_ACT_EDT_NXTLINE: number = 50;\r\n static readonly MG_ACT_EDT_PRVPAGE: number = 51;\r\n static readonly MG_ACT_EDT_NXTPAGE: number = 52;\r\n static readonly MG_ACT_EDT_BEGLINE: number = 53;\r\n static readonly MG_ACT_EDT_ENDLINE: number = 54;\r\n static readonly MG_ACT_EDT_BEGPAGE: number = 55;\r\n static readonly MG_ACT_EDT_ENDPAGE: number = 56;\r\n static readonly MG_ACT_EDT_BEGFORM: number = 57;\r\n static readonly MG_ACT_EDT_ENDFORM: number = 58;\r\n static readonly MG_ACT_EDT_DELCURCH: number = 59;\r\n static readonly MG_ACT_EDT_DELPRVCH: number = 60;\r\n static readonly MG_ACT_EDT_BEGNXTLINE: number = 61;\r\n static readonly MG_ACT_TBL_PRVFLD: number = 62;\r\n static readonly MG_ACT_TBL_NXTFLD: number = 63;\r\n static readonly MG_ACT_TBL_PRVLINE: number = 64;\r\n static readonly MG_ACT_TBL_NXTLINE: number = 65;\r\n static readonly MG_ACT_TBL_PRVPAGE: number = 66;\r\n static readonly MG_ACT_TBL_NXTPAGE: number = 67;\r\n static readonly MG_ACT_TBL_BEGLINE: number = 68;\r\n static readonly MG_ACT_TBL_ENDLINE: number = 69;\r\n static readonly MG_ACT_TBL_BEGPAGE: number = 70;\r\n static readonly MG_ACT_TBL_ENDPAGE: number = 71;\r\n static readonly MG_ACT_TBL_BEGTBL: number = 72;\r\n static readonly MG_ACT_TBL_ENDTBL: number = 73;\r\n static readonly MG_ACT_TAB_NEXT: number = 75;\r\n static readonly MG_ACT_RT_COPYFLD: number = 77;\r\n static readonly MG_ACT_ENVIRONMENT: number = 78;\r\n\r\n static readonly MG_ACT_SERVERS: number = 80;\r\n static readonly MG_ACT_DATABASES: number = 81;\r\n static readonly MG_ACT_LOGICALPNAMES: number = 82;\r\n static readonly MG_ACT_PRINTERS: number = 83;\r\n static readonly MG_ACT_TASK_EVENTS: number = 85;\r\n static readonly MG_ACT_MENUS: number = 86;\r\n static readonly MG_ACT_TYPES: number = 87;\r\n static readonly MG_ACT_TABLES: number = 88;\r\n static readonly MG_ACT_PROGRAMS: number = 89;\r\n static readonly MG_ACT_HELP_SCREENS: number = 90;\r\n static readonly MG_ACT_USER_IDS: number = 91;\r\n static readonly MG_ACT_EXPORT_IMPORT: number = 93;\r\n static readonly MG_ACT_MARK_SUBTREE: number = 95;\r\n static readonly MG_ACT_REPEAT_SUBTREE: number = 96;\r\n static readonly MG_ACT_MOVE_SUBTREE: number = 97;\r\n static readonly MG_ACT_OVERWRITE_SUBTREE: number = 98;\r\n static readonly MG_ACT_CREATE_PARENT: number = 99;\r\n static readonly MG_ACT_CREATE_SUBTASK: number = 100;\r\n static readonly MG_ACT_DELETE_SUBTREE: number = 101;\r\n static readonly MG_ACT_EXPAND_TREE: number = 103;\r\n static readonly MG_ACT_SHRINK_TREE: number = 104;\r\n static readonly MG_ACT_AUTHORIZE: number = 105;\r\n static readonly MG_ACT_PROPERTIES: number = 106;\r\n static readonly MG_ACT_VIRTUAL_VARIABLES: number = 107;\r\n static readonly MG_ACT_EXPRESSION_RULES: number = 108;\r\n static readonly MG_ACT_FORMS: number = 109;\r\n static readonly MG_ACT_DB_TABLES: number = 110;\r\n static readonly MG_ACT_I_O_FILES: number = 111;\r\n static readonly MG_ACT_SORT: number = 112;\r\n static readonly MG_ACT_EDT_MARKPRVLINE: number = 113;\r\n static readonly MG_ACT_TASK_CONTROL: number = 114;\r\n static readonly MG_ACT_CHECK_SYNTAX: number = 115;\r\n static readonly MG_ACT_EXECUTE_PROGRAM: number = 116;\r\n static readonly MG_ACT_CROSS_REFERENCE: number = 117;\r\n static readonly MG_ACT_GENERATE_PROGRAM: number = 118;\r\n static readonly MG_ACT_GENERATE_FORM: number = 119;\r\n static readonly MG_ACT_EDIT_MAIN_FORM: number = 120;\r\n static readonly MG_ACT_MARK_NEXT_LINE: number = 121;\r\n static readonly MG_ACT_RTO_LOCATE: number = 122;\r\n static readonly MG_ACT_RTO_RANGE: number = 123;\r\n static readonly MG_ACT_VIEW_BY_KEY: number = 124;\r\n static readonly MG_ACT_SORT_RECORDS: number = 125;\r\n static readonly MG_ACT_REDIRECT_FILES: number = 126;\r\n static readonly MG_ACT_REPORT_GENERATOR: number = 127;\r\n static readonly MG_ACT_CLEAR_TEMPLATE: number = 128;\r\n static readonly MG_ACT_CLEAR_VALUE: number = 129;\r\n static readonly MG_ACT_DEFINE_EXPRESSION: number = 130;\r\n static readonly MG_ACT_FROM_VALUE: number = 131;\r\n static readonly MG_ACT_TO_VALUE: number = 132;\r\n static readonly MG_ACT_REDRAW_LAYOUT: number = 134;\r\n static readonly MG_ACT_DEFAULT_LAYOUT: number = 135;\r\n static readonly MG_ACT_COPY_LAYOUT: number = 136;\r\n static readonly MG_ACT_SHOW_FULL_LAYOUT: number = 137;\r\n static readonly MG_ACT_LEFT: number = 138;\r\n static readonly MG_ACT_RIGHT: number = 139;\r\n static readonly MG_ACT_TOP: number = 140;\r\n static readonly MG_ACT_BOTTOM: number = 141;\r\n static readonly MG_ACT_H_CENTER_OF_FORM: number = 142;\r\n static readonly MG_ACT_V_CENTER_OF_FORM: number = 143;\r\n static readonly MG_ACT_HORIZ_CENTER: number = 144;\r\n static readonly MG_ACT_VERTICAL_CENTER: number = 145;\r\n static readonly MG_ACT_ATTACH_TO_TABLE: number = 146;\r\n static readonly MG_ACT_MAXIMUM_WIDTH: number = 147;\r\n static readonly MG_ACT_EXTERNAL_EDITOR: number = 148;\r\n static readonly MG_ACT_MAXIMUM_HEIGHT: number = 153;\r\n static readonly MG_ACT_MINIMUM_WIDTH: number = 154;\r\n static readonly MG_ACT_USING_HELP: number = 155;\r\n static readonly MG_ACT_HELP: number = 156;\r\n static readonly MG_ACT_ABOUT: number = 157;\r\n static readonly MG_ACT_PRINT_DATA: number = 160;\r\n static readonly MG_ACT_RIGHTS: number = 161;\r\n static readonly MG_ACT_PRINTER_SETUP: number = 162;\r\n static readonly MG_ACT_RTO_SEARCH: number = 165;\r\n static readonly MG_ACT_SHOW_EXPRESSION: number = 166;\r\n static readonly MG_ACT_ACTION_LIST: number = 167;\r\n static readonly MG_ACT_KEYBOARD_LIST: number = 168;\r\n static readonly MG_ACT_APPLICATIONS: number = 173;\r\n static readonly MG_ACT_APPL_PROPERTIES: number = 174;\r\n static readonly MG_ACT_MINIMUM_HEIGHT: number = 176;\r\n static readonly MG_ACT_EDT_UNDO: number = 180;\r\n static readonly MG_ACT_RETURN_TO_TREE: number = 181;\r\n static readonly MG_ACT_GO_TO_TOP: number = 182;\r\n static readonly MG_ACT_FUNCTION_LIST: number = 183;\r\n static readonly MG_ACT_LOGON: number = 185;\r\n static readonly MG_ACT_EXECUTE_REPORT: number = 188;\r\n static readonly MG_ACT_OK: number = 189;\r\n static readonly MG_ACT_APPLICATIONS_LIST: number = 191;\r\n static readonly MG_ACT_SECRET_NAMES: number = 192;\r\n static readonly MG_ACT_RIGHTS_LIST: number = 193;\r\n static readonly MG_ACT_CHECK_TO_END: number = 194;\r\n static readonly MG_ACT_SQL_COMMAND: number = 195;\r\n static readonly MG_ACT_USER_GROUPS: number = 196;\r\n static readonly MG_ACT_TABLE_LOCATE: number = 197;\r\n static readonly MG_ACT_TABLE_LOCATE_NEXT: number = 198;\r\n static readonly MG_ACT_DBMS: number = 199;\r\n static readonly MG_ACT_SQL_KEYWORDS: number = 201;\r\n static readonly MG_ACT_SQL_OPERATORS: number = 202;\r\n static readonly MG_ACT_SQL_TABLES: number = 203;\r\n static readonly MG_ACT_SQL_COLUMNS: number = 204;\r\n static readonly MG_ACT_SQL_FLIP_DESC: number = 205;\r\n static readonly MG_ACT_SQL_ASSIST: number = 206;\r\n static readonly MG_ACT_PPD: number = 207;\r\n static readonly MG_ACT_NULL_SETTINGS: number = 208;\r\n static readonly MG_ACT_RT_EDT_NULL: number = 209;\r\n static readonly MG_ACT_PRINT_ATTRIBUTES: number = 211;\r\n static readonly MG_ACT_NORMAL: number = 212;\r\n\r\n static readonly MG_ACT_INDENT: number = 215;\r\n static readonly MG_ACT_BULLET: number = 216;\r\n static readonly MG_ACT_USER_ACTION_1: number = 219;\r\n static readonly MG_ACT_USER_ACTION_2: number = 220;\r\n static readonly MG_ACT_USER_ACTION_3: number = 221;\r\n static readonly MG_ACT_USER_ACTION_4: number = 222;\r\n static readonly MG_ACT_USER_ACTION_5: number = 223;\r\n static readonly MG_ACT_USER_ACTION_6: number = 224;\r\n static readonly MG_ACT_USER_ACTION_7: number = 225;\r\n static readonly MG_ACT_USER_ACTION_8: number = 226;\r\n static readonly MG_ACT_USER_ACTION_9: number = 227;\r\n static readonly MG_ACT_USER_ACTION_10: number = 228;\r\n static readonly MG_ACT_USER_ACTION_11: number = 229;\r\n static readonly MG_ACT_USER_ACTION_12: number = 230;\r\n static readonly MG_ACT_USER_ACTION_13: number = 231;\r\n static readonly MG_ACT_USER_ACTION_14: number = 232;\r\n static readonly MG_ACT_USER_ACTION_15: number = 233;\r\n static readonly MG_ACT_USER_ACTION_16: number = 234;\r\n static readonly MG_ACT_USER_ACTION_17: number = 235;\r\n static readonly MG_ACT_USER_ACTION_18: number = 236;\r\n static readonly MG_ACT_USER_ACTION_19: number = 237;\r\n static readonly MG_ACT_USER_ACTION_20: number = 238;\r\n static readonly MG_ACT_CLIP_COPY: number = 239;\r\n static readonly MG_ACT_CLIP_PASTE: number = 240;\r\n\r\n static readonly MG_ACT_CTRL_HIT: number = 242;\r\n static readonly MG_ACT_PAGE_HEADER: number = 243;\r\n static readonly MG_ACT_PAGE_FOOTER: number = 244;\r\n static readonly MG_ACT_HIT: number = 245;\r\n static readonly MG_ACT_INSERT_OBJECT: number = 246;\r\n static readonly MG_ACT_PASTE_LINK: number = 247;\r\n static readonly MG_ACT_CONTROL_NAME_LIST: number = 248;\r\n static readonly MG_ACT_WINSIZE: number = 249;\r\n static readonly MG_ACT_WINMOVE: number = 250;\r\n static readonly MG_ACT_LANGUAGES: number = 251;\r\n static readonly MG_ACT_DDF_MAKE: number = 252;\r\n static readonly MG_ACT_UPDATE_LINK: number = 253;\r\n static readonly MG_ACT_HTML_STYLES: number = 254;\r\n static readonly MG_ACT_UNINDENT: number = 255;\r\n static readonly MG_ACT_ALIGN_LEFT: number = 256;\r\n static readonly MG_ACT_ALIGN_RIGHT: number = 257;\r\n static readonly MG_ACT_CENTER: number = 258;\r\n static readonly MG_ACT_ADD_HYPERLINK: number = 259;\r\n static readonly MG_ACT_DELETE_HYPERLINK: number = 260;\r\n static readonly MG_ACT_CHECK_OBJECT_LIST: number = 265;\r\n static readonly MG_ACT_TBL_PLACEMENT: number = 267;\r\n static readonly MG_ACT_COL_SORT: number = 268;\r\n static readonly MG_ACT_USERS_LIST: number = 269;\r\n static readonly MG_ACT_SERVICES: number = 270;\r\n static readonly MG_ACT_COPY_SUBTREE: number = 271;\r\n static readonly MG_ACT_PASTE_SUBTREE: number = 272;\r\n static readonly MG_ACT_VISUAL_CONNECTION: number = 273;\r\n static readonly MG_ACT_SQL_WHERE_CLAUSE: number = 274;\r\n static readonly MG_ACT_LOCKING_ABORT: number = 276;\r\n static readonly MG_ACT_TAB_PREV: number = 275;\r\n static readonly MG_ACT_LOCKING_RETRY: number = 277;\r\n static readonly MG_ACT_LOCKING_DETAILS: number = 278;\r\n static readonly MG_ACT_EDT_MARKALL: number = 286;\r\n static readonly MG_ACT_MONITOR_DEBUGGER: number = 287;\r\n static readonly MG_ACT_RT_REFRESH_RECORD: number = 293;\r\n static readonly MG_ACT_RT_REFRESH_SCREEN: number = 294;\r\n static readonly MG_ACT_RT_REFRESH_VIEW: number = 295;\r\n static readonly MG_ACT_COMPONENTS: number = 297;\r\n static readonly MG_ACT_MODELS: number = 299;\r\n static readonly MG_ACT_WEB_ON_DBLICK: number = 301;\r\n static readonly MG_ACT_WEB_CLICK: number = 302;\r\n static readonly MG_ACT_MM_CTRL_TBL_NXTLINE: number = 314;\r\n static readonly MG_ACT_MM_CTRL_TBL_PRVLINE: number = 315;\r\n static readonly MG_ACT_MM_CTRL_TBL_PRVPAGE: number = 316;\r\n static readonly MG_ACT_MM_CTRL_TBL_NXTPAGE: number = 317;\r\n static readonly MG_ACT_MM_SHIFT_TBL_NXTLINE: number = 318;\r\n static readonly MG_ACT_MM_SHIFT_TBL_PRVLINE: number = 319;\r\n static readonly MG_ACT_MM_SHIFT_TBL_PRVPAGE: number = 320;\r\n static readonly MG_ACT_MM_SHIFT_TBL_NXTPAGE: number = 321;\r\n static readonly MG_ACT_BROWSER_ESC: number = 340;\r\n static readonly MG_ACT_CLOSE_ALL_WIN: number = 370;\r\n static readonly MG_ACT_EXT_EVENT: number = 377;\r\n static readonly MG_ACT_TREE_EXPAND: number = 378;\r\n static readonly MG_ACT_TREE_COLLAPSE: number = 379;\r\n static readonly MG_ACT_TREE_CRE_SON: number = 380;\r\n static readonly MG_ACT_TREE_SELCHANGING: number = 381;\r\n static readonly MG_ACT_TREE_RENAME_RT: number = 382;\r\n static readonly MG_ACT_TREE_MOVETO_PARENT: number = 383;\r\n static readonly MG_ACT_TREE_MOVETO_FIRSTCHILD: number = 384;\r\n static readonly MG_ACT_TREE_MOVETO_PREVSIBLING: number = 385;\r\n static readonly MG_ACT_TREE_MOVETO_NEXTSIBLING: number = 386;\r\n static readonly MG_ACT_ROLLBACK: number = 387;\r\n static readonly MG_ACT_RT_QUIT: number = 393;\r\n\r\n static readonly MG_ACT_TREE_RENAME_RT_EXIT: number = 413;\r\n static readonly MG_ACT_SERVER_TERMINATION: number = 420;\r\n static readonly MG_ACT_SUBFORM_REFRESH: number = 432;\r\n static readonly MG_ACT_CONTEXT_MENU: number = 439;\r\n static readonly MG_ACT_NEXT_RT_WINDOW: number = 462;\r\n static readonly MG_ACT_PREV_RT_WINDOW: number = 463;\r\n static readonly MG_ACT_EMPTY_DATAVIEW: number = 521;\r\n static readonly MG_ACT_BROWSER_STS_TEXT_CHANGE: number = 529;\r\n static readonly MG_ACT_TBL_REORDER: number = 539;\r\n static readonly MG_ACT_CTRL_MODIFY: number = 544;\r\n static readonly MG_ACT_SUBFORM_OPEN: number = 545;\r\n static readonly MG_ACT_COL_CLICK: number = 555;\r\n static readonly MG_ACT_POST_REFRESH_BY_PARENT: number = 559;\r\n static readonly MG_ACT_COMBO_DROP_DOWN: number = 560;\r\n static readonly MG_ACT_RAISE_BUTTON_EVENT: number = 561;\r\n static readonly MG_ACT_UPDATE_DN_CONTROL_VALUE: number = 562;\r\n static readonly MG_ACT_GET_DATAVIEW_CONTENT: number = 563;\r\n static readonly MG_ACT_PRESS: number = 564;\r\n static readonly MG_ACT_MULTI_MARK_HIT: number = 565;\r\n static readonly MG_ACT_DVCONTROL_ROW_CHANGE: number = 566;\r\n static readonly MG_ACT_DVCONTROL_UPDATE_COLUMN_VALUE: number = 567;\r\n static readonly MG_ACT_SWITCH_TO_OFFLINE: number = 568;\r\n static readonly MG_ACT_UNAVAILABLE_SERVER: number = 569;\r\n static readonly MG_ACT_UPDATE_DATAVIEW_TO_DATASOURCE: number = 571;\r\n static readonly MG_ACT_ENABLE_EVENTS: number = 573;\r\n static readonly MG_ACT_WRITE_ERROR_TO_SERVER_LOG: number = 574;\r\n static readonly MG_ACT_OPEN_FORM_DESIGNER: number = 578;\r\n static readonly MG_ACT_FETCH_DATA_CONTROL_VALUES: number = 579;\r\n static readonly MG_ACT_COL_FILTER: number = 580;\r\n static readonly MG_ACT_INDEX_CHANGE: number = 585;\r\n static readonly MG_ACT_WEBCLIENT_ROUTE: number = 594;\r\n static readonly MG_ACT_ENTER_ROW_EDITING:number = 595;\r\n static readonly MG_ACT_SUBFORM_CLOSE: number = 597;\r\n static readonly MG_ACT_NO_PROG_EXE_RIGHTS: number = 619;\r\n\r\n static readonly MG_ACT_CRELINE_ABOVE: number = 634;\r\n static readonly MG_ACT_CONTEXT_TERMINATION: number = 635;\r\n static readonly MG_ACT_CONTEXT_TIMEOUT_RESET: number = 636;\r\n static readonly MG_ACT_CONTEXT_REMOVE: number = 647;\r\n\r\n static readonly MG_ACT_TOT_CNT:number = 648;\r\n\r\n // NEW INTERNAL EVENTS\r\n static readonly MG_ACT_TASK_PREFIX: number = 1001;\r\n static readonly MG_ACT_TASK_SUFFIX: number = 1002;\r\n static readonly MG_ACT_REC_PREFIX: number = 1003;\r\n static readonly MG_ACT_REC_SUFFIX: number = 1004;\r\n static readonly MG_ACT_CTRL_PREFIX: number = 1005;\r\n static readonly MG_ACT_CTRL_SUFFIX: number = 1006;\r\n static readonly MG_ACT_CTRL_VERIFICATION: number = 1007;\r\n static readonly MG_ACT_VARIABLE: number = 1008;\r\n static readonly MG_ACT_DATAVIEW_TOP: number = 1013;\r\n static readonly MG_ACT_DATAVIEW_BOTTOM: number = 1014;\r\n static readonly MG_ACT_CACHE_PREV: number = 1015;\r\n static readonly MG_ACT_CACHE_NEXT: number = 1016;\r\n static readonly MG_ACT_CYCLE_NEXT_REC: number = 1017;\r\n static readonly MG_ACT_CYCLE_NEXT_DELETE_REC: number = 1018;\r\n static readonly MG_ACT_COMPUTE: number = 1020;\r\n static readonly MG_ACT_DUMMY: number = 1111;\r\n\r\n // INTERNAL EVENTS for WebClient\r\n static readonly MG_ACT_CTRL_FOCUS: number = 2001;\r\n static readonly MG_ACT_CTRL_MOUSEUP: number = 2002;\r\n static readonly MG_ACT_CTRL_KEYDOWN: number = 2003;\r\n static readonly MG_ACT_TIMER: number = 2004;\r\n static readonly MG_ACT_SELECTION: number = 2005;\r\n static readonly MG_ACT_RESIZE: number = 2006;\r\n static readonly MG_ACT_ROW_DATA_CURR_PAGE: number = 2007;\r\n static readonly MG_ACT_DV_TO_GUI: number = 2008;\r\n static readonly MG_ACT_DISABLE_EVENTS: number = 2010;\r\n // toggle insert is temp 539 , it should match the code in online once it will be created.\r\n static readonly MG_ACT_TOGGLE_INSERT: number = 2011;\r\n\r\n static readonly MG_ACT_INCREMENTAL_LOCATE: number = 2017;\r\n static readonly MG_ACT_MOVE_TO_FIRST_CTRL: number = 2018;\r\n static readonly MG_ACT_SET_EXTERNAL_VALUE: number = 2019;\r\n static readonly MG_ACT_CTRL_FOCUS_ON_NON_MAGIC_CONTROL: number = 2020;\r\n static readonly MG_ACT_FETCH_RECORDS_AHEAD_FROM_SERVER: number = 2021; // for paginated table, fetch records in background depending on PROP_TYPE_SERVER_READ_AHEAD\r\n\r\n\r\n\r\n static BuiltinEvent(eventCode: number): boolean {\r\n return eventCode >= 1000 || eventCode === InternalInterface.MG_ACT_POST_REFRESH_BY_PARENT;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import { parseString } from 'xml2js';\r\n\r\nexport class JSON_Utils {\r\n static JSONFromXML (xml: string, onComplete) {\r\n parseString (xml, onComplete);\r\n }\r\n}\r\n","import {Exception} from \"@magic-xpa/mscorelib\";\r\n\r\nexport class OSEnvironment {\r\n static EolSeq: string = \"\\n\";\r\n static TabSeq: string = \"\\t\";\r\n\r\n static getStackTrace(): string {\r\n let ex: Exception = new Exception();\r\n ex.errorLevel++; // we need to remove the line which contains call to this method\r\n return ex.StackTrace;\r\n }\r\n}\r\n","import {List} from \"@magic-xpa/mscorelib\";\r\n\r\n/// <summary>\r\n/// The class is responsible to maintain the Request information while sending a request to server\r\n/// </summary>\r\nexport class RequestInfo {\r\n serverCallAt: string;\r\n runtimeTaskTree: List<string> = new List<string>();\r\n roundtripTime: number = null;\r\n extraInfo: {contentLength: number, contextID: string, sessionCounter: number, timeStamp: string} =\r\n {contentLength: 0, contextID: null, sessionCounter: 0, timeStamp: null};\r\n\r\n public static clone(requestInfo: RequestInfo): RequestInfo {\r\n let requestInfoClone: RequestInfo = new RequestInfo();\r\n if(requestInfo) {\r\n requestInfoClone.serverCallAt = requestInfo.serverCallAt;\r\n\r\n requestInfoClone.runtimeTaskTree = requestInfo.runtimeTaskTree;\r\n requestInfoClone.roundtripTime = requestInfo.roundtripTime;\r\n requestInfoClone.extraInfo = {contentLength: requestInfo.extraInfo.contentLength, contextID: requestInfo.extraInfo.contextID,\r\n sessionCounter: requestInfo.extraInfo.sessionCounter, timeStamp: requestInfo.extraInfo.timeStamp};\r\n }\r\n return requestInfoClone;\r\n }\r\n\r\n public clear(): void {\r\n this.roundtripTime = null;\r\n this.serverCallAt = null;\r\n this.extraInfo = {contentLength: 0, contextID: null, sessionCounter: 0, timeStamp: null};\r\n this.runtimeTaskTree = null;\r\n }\r\n}\r\n\r\n","import {Logger_LogLevels, Logger_MessageDirection} from \"./enums\";\r\nimport {DateTime, Debug, Exception, NString, StackTrace, StringBuilder, Thread, isNullOrUndefined} from \"@magic-xpa/mscorelib\";\r\nimport {OSEnvironment} from \"./PlatformUtils\";\r\nimport {DateTimeUtils} from \"./DateTimeUtils\";\r\nimport {XMLConstants} from \"./XMLConstants\";\r\nimport * as JSStackTrace from 'stacktrace-js';\r\nimport {RequestInfo} from \"./RequestInfo\";\r\nimport {StrUtil} from \"./StrUtil\";\r\nimport JSStackFrame = JSStackTrace.StackFrame;\r\n\r\nexport enum LogType {\r\n info = 1,\r\n warning,\r\n error\r\n}\r\n\r\n\r\n/// <summary>\r\n/// Logger class will take care of client side logging . It will check for various log levels and accordingly will write messages in log file.\r\n/// </summary>\r\n//@dynamic\r\nexport class Logger {\r\n static instance: Logger = null;\r\n LogLevel: Logger_LogLevels = 0; // InternalLogLevel\r\n\r\n /// <summary>\r\n /// While writing the error messages in the file play the beep.\r\n /// </summary>\r\n ShouldBeep: boolean = false;\r\n\r\n static set Instance(value: Logger) {\r\n Logger.instance = value;\r\n }\r\n\r\n static get Instance(): Logger {\r\n if (Logger.instance === null) {\r\n Logger.instance = new Logger();\r\n }\r\n return Logger.instance;\r\n }\r\n\r\n/// <summary>\r\n /// Initialize logger\r\n /// </summary>\r\n /// <param name=\"logLevel\"></param>\r\n /// <param name=\"internalLogSync\"></param>\r\n Initialize(logLevel: Logger_LogLevels, shouldBeep: boolean): void {\r\n try {\r\n // let logSync: LogSyncMode = LogSyncMode.Session;\r\n this.LogLevel = logLevel;\r\n this.ShouldBeep = shouldBeep;\r\n\r\n // TODO: implement\r\n// String strLogSync = internalLogSync;\r\n// if (!string.IsNullOrEmpty(strLogSync))\r\n// {\r\n// if (strLogSync.StartsWith(\"M\", StringComparison.CurrentCultureIgnoreCase))\r\n// logSync = LogSyncMode.Message;\r\n// else if (strLogSync.StartsWith(\"F\", StringComparison.CurrentCultureIgnoreCase))\r\n// logSync = LogSyncMode.Flush;\r\n// }\r\n//\r\n }\r\n catch (e) {\r\n this.WriteDevToLog(\"ClientManager.init(): \" + e.Message);\r\n }\r\n }\r\n\r\n /// <summary></summary>\r\n /// <param name=\"logLevel\"></param>\r\n /// <returns></returns>\r\n\r\n ShouldLog(logLevel: Logger_LogLevels): boolean;\r\n ShouldLog(): boolean;\r\n ShouldLog(logLevel?: Logger_LogLevels): boolean {\r\n if (arguments.length === 1)\r\n return this.ShouldLog_0(logLevel);\r\n else\r\n return this.ShouldLog_1();\r\n }\r\n\r\n private ShouldLog_0(logLevel: Logger_LogLevels): boolean {\r\n return this.LogLevel === logLevel;\r\n }\r\n\r\n private ShouldLog_1(): boolean {\r\n return this.LogLevel > Logger_LogLevels.None;\r\n }\r\n\r\n ShouldLogServerRelatedMessages(): boolean {\r\n return (this.ShouldLogExtendedServerRelatedMessages() || Logger.Instance.ShouldLog(Logger_LogLevels.Server)) && this.LogLevel !== Logger_LogLevels.Basic;\r\n }\r\n\r\n ShouldLogExtendedServerRelatedMessages(): boolean {\r\n return (Logger.Instance.ShouldLog(Logger_LogLevels.ServerMessages) || Logger.Instance.ShouldLog(Logger_LogLevels.Support) || Logger.Instance.ShouldLog(Logger_LogLevels.Development)) && this.LogLevel !== Logger_LogLevels.Basic;\r\n }\r\n\r\n /// <summary></summary>\r\n /// <param name=\"msg\"></param>\r\n /// <param name=\"openIfNecessary\">open the log file if not opened yet</param>\r\n\r\n WriteToLog(msg: string, openIfNecessary: boolean, logType: LogType = LogType.info): void {\r\n\r\n if (this.LogLevel > Logger_LogLevels.None || openIfNecessary) {\r\n msg = NString.Format(\"{0} {1}\", (this.LogLevel === Logger_LogLevels.Basic) ? new Date().toISOString() : DateTimeUtils.ToString(DateTime.Now, XMLConstants.ERROR_LOG_TIME_FORMAT, this),\r\n msg);\r\n\r\n switch (logType) {\r\n case LogType.error:\r\n console.error(msg);\r\n break;\r\n case LogType.warning:\r\n console.warn(msg);\r\n break;\r\n default:\r\n console.log(msg);\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a server access to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteServerToLog(msg: string): void {\r\n if (this.ShouldLogServerRelatedMessages()) {\r\n this.WriteToLog(NString.Format(\"Server, Thread={0}: \", Thread.CurrentThread.ManagedThreadId) + msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a server access to the log, including the content\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteServerMessagesToLog(msg: string): void {\r\n if (this.ShouldLogExtendedServerRelatedMessages()) {\r\n this.WriteToLog(\"Server#: \" + msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>Write a QC message to the log</summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteSupportToLog(msg: string, skipLine: boolean): void {\r\n\r\n if (this.LogLevel >= Logger_LogLevels.Support && this.LogLevel !== Logger_LogLevels.Basic) {\r\n if (skipLine) {\r\n this.WriteToLog(\"SUPPORT: \" + msg, false, LogType.info);\r\n }\r\n else {\r\n this.WriteToLog(\"SUPPORT: \" + msg + OSEnvironment.EolSeq + \"-----------------------------------------------------------------------------------------------------------\", false, LogType.info);\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a performance message to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteGuiToLog(msg: string): void {\r\n\r\n if (this.LogLevel >= Logger_LogLevels.Gui && this.LogLevel !== Logger_LogLevels.Basic) {\r\n this.WriteToLog(msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// write a developer message to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteDevToLog(msg: string): void {\r\n if (this.LogLevel >= Logger_LogLevels.Development && this.LogLevel !== Logger_LogLevels.Basic) {\r\n this.WriteToLog(\"DEV: \" + msg, false, LogType.info);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Writes a basic level entry to log\r\n /// </summary>\r\n /// <param name=\"messageDirection\">message direction relative to the current module (RIA client). Can be either MessageEntering or MessageLeaving</param>\r\n /// <param name=\"statusCode\">HTTP status code</param>\r\n /// <param name=\"contentLength\">length of the http message</param>\r\n /// <param name=\"httpHeaders\">HTTP headers</param>\r\n WriteBasicToLog(messageDirection: Logger_MessageDirection, contextID: string, sessionCounter: number, clientID: string, serverID: string, responseTime: number, statusCode: string, httpHeaders: string, contentLength: number): void {\r\n if (this.LogLevel === Logger_LogLevels.Basic) {\r\n let text: string = httpHeaders;\r\n text = text.trim();\r\n text = NString.Replace(text, \"\\r\\n\", \"|\");\r\n let arg_E4_0: string = \"RIA,{0}_{1},{2},{3},{4},{5},-,{6},{7},{8},{9},{10},{11}\";\r\n let expr_3E: any[] = new Array<any>(12);\r\n\r\n // TODO : need to check How to handle Process class.\r\n // expr_3E[0] = Process.GetCurrentProcess().Id;\r\n expr_3E[1] = Thread.CurrentThread.ManagedThreadId;\r\n expr_3E[2] = new Date().toISOString();\r\n expr_3E[3] = ((messageDirection === Logger_MessageDirection.MessageLeaving) ? \"MSGL\" : \"MSGE\");\r\n expr_3E[4] = contextID;\r\n expr_3E[5] = sessionCounter;\r\n expr_3E[6] = clientID;\r\n expr_3E[7] = serverID;\r\n expr_3E[8] = ((responseTime !== 0) ? responseTime.toString() : \"-\");\r\n let arg_D3_1: number = 9;\r\n let arg_D3_2: any;\r\n arg_D3_2 = statusCode;\r\n expr_3E[arg_D3_1] = arg_D3_2;\r\n expr_3E[10] = text;\r\n expr_3E[11] = contentLength;\r\n let value: string = NString.Format(arg_E4_0, expr_3E);\r\n console.log(value);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Writes request information to log\r\n /// </summary>\r\n /// <param name=\"clientSession\">The clientSession object to be logged</param>\r\n WriteRequestInfoToLog(requestInfo: RequestInfo, extraMessageStr: string): void {\r\n if (this.LogLevel === Logger_LogLevels.RequestInfo) {\r\n\r\n // Chrome debugger automatically recomputes logged objects.\r\n // Hence, clone the requestInfo object to print the details at the time of logging\r\n console.log(extraMessageStr, RequestInfo.clone(requestInfo));\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Writes a request exception basic level entry to log\r\n /// </summary>\r\n /// <param name=\"contextID\"></param>\r\n /// <param name=\"sessionCounter\"></param>\r\n /// <param name=\"clientID\"></param>\r\n /// <param name=\"serverID\"></param>\r\n /// <param name=\"ex\">the logged exception</param>\r\n WriteBasicErrorToLog(): void {\r\n Debug.Assert(this.LogLevel === Logger_LogLevels.Basic);\r\n\r\n // TODO : Need to check how to handle Process\r\n // let value: string = NString.Format(\"RIA,{0}_{1},{2},{3},{4},{5},-,{6},{7},-,-,-,{8} {9}\", [\r\n // Process.GetCurrentProcess().Id, Thread.CurrentThread.ManagedThreadId, DateTime.UtcNow.ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\"), \"RES\", contextID, sessionCounter, clientID, serverID, ex.GetType(), ex.Message\r\n // ]);\r\n // NConsole.WriteLine(value);\r\n }\r\n\r\n /// <summary>\r\n /// Write an error to the log\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteErrorToLog(msg: string): void {\r\n this.WriteToLog(\"MagicWeb [ERROR]: \" + StrUtil.getConsoleErorString(msg), true, LogType.error);\r\n }\r\n\r\n /// <summary>\r\n /// Write an internal error to the log. Also prints stack trace along with the message\r\n /// </summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteExceptionToLog(ex: Exception): void;\r\n WriteExceptionToLog(ex: Error): void;\r\n WriteExceptionToLog(ex: Exception, msg: string): void;\r\n WriteExceptionToLog(msgOrEx: any, msg?: string): void {\r\n if (msgOrEx instanceof Error) {\r\n this.WriteExceptionToLog_2(msgOrEx, msg);\r\n return;\r\n }\r\n if (arguments.length === 1 && (msgOrEx !== null || msgOrEx instanceof Exception)) {\r\n this.WriteExceptionToLog_1(msgOrEx);\r\n return;\r\n }\r\n\r\n this.WriteExceptionToLog_3(msgOrEx, msg);\r\n }\r\n\r\n WriteExceptionToLogWithMsg(msg: string): void {\r\n this.WriteToLog(\"MagicWeb [ERROR]: \" + StrUtil.getConsoleErorString(msg), true, LogType.error);\r\n }\r\n\r\n private WriteExceptionToLog_1(ex: Exception): void {\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0} : {1}{2}{3}{4}\", [\r\n ex.GetType(), OSEnvironment.EolSeq, ex.StackTrace, OSEnvironment.EolSeq, ex.Message\r\n ]));\r\n }\r\n\r\n private WriteExceptionToLog_2(ex: Error, message: string): void {\r\n if (isNullOrUndefined(message))\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0}{1}{2}\", [ex.stack, OSEnvironment.EolSeq, ex.message]));\r\n else\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0}{1}{2}{4}{5}\", [message, OSEnvironment.EolSeq, ex.stack, OSEnvironment.EolSeq, ex.message]));\r\n }\r\n\r\n private WriteExceptionToLog_3(ex: Exception, msg: string): void {\r\n this.WriteExceptionToLogWithMsg(NString.Format(\"{0}, {1} : {2}{3}{4}{5}\", [\r\n ex.GetType(), msg, OSEnvironment.EolSeq, ex.StackTrace, OSEnvironment.EolSeq, ex.Message\r\n ]));\r\n }\r\n\r\n /// <summary> write a warning to the log</summary>\r\n /// <param name=\"msg\">the message to write to the log</param>\r\n WriteWarningToLog(ex: Exception): void;\r\n WriteWarningToLog(ex: Exception, msg: string): void;\r\n WriteWarningToLog(ex: Error): void;\r\n WriteWarningToLog(msgOrEx: any, msg?: string): void {\r\n if (arguments.length === 1 && msgOrEx !== null) {\r\n if (msgOrEx instanceof Exception)\r\n this.WriteWarningToLog_1(msgOrEx);\r\n else if (msgOrEx instanceof Error)\r\n this.WriteWarningToLog_2(msgOrEx);\r\n }\r\n else\r\n this.WriteWarningToLog_3(msgOrEx, msg);\r\n }\r\n\r\n WriteWarningToLogWithMsg(msg: string): void {\r\n\r\n if (this.LogLevel !== Logger_LogLevels.Basic) {\r\n this.WriteToLog(\"MagicWeb [WARNING]: \" + msg, true, LogType.warning);\r\n }\r\n }\r\n\r\n private WriteWarningToLog_1(ex: Exception): void {\r\n this.WriteWarningToLogWithMsg(ex.GetType() + \" : \" + OSEnvironment.EolSeq + ex.StackTrace + OSEnvironment.EolSeq + ex.Message);\r\n }\r\n\r\n private WriteWarningToLog_2(ex: Error): void {\r\n this.WriteWarningToLogWithMsg(NString.Format(\"{0}{1}{2}\", [\r\n ex.stack, OSEnvironment.EolSeq, ex.message\r\n ]));\r\n }\r\n\r\n private WriteWarningToLog_3(ex: Exception, msg: string): void {\r\n this.WriteWarningToLogWithMsg(NString.Format(\"{0}, {1} : {2}{3}{4}{5}\", [\r\n ex.GetType(), msg, OSEnvironment.EolSeq, ex.StackTrace, OSEnvironment.EolSeq, ex.Message\r\n ]));\r\n }\r\n\r\n WriteStackTrace(stackTrace: StackTrace, framesToPrint: number, traceTitle: string): void {\r\n\r\n if (traceTitle === null) {\r\n traceTitle = \"Stack trace:\";\r\n }\r\n let stringBuilder: StringBuilder = new StringBuilder(traceTitle + OSEnvironment.EolSeq);\r\n let frames: JSStackFrame[] = stackTrace.GetFrames();\r\n let array: JSStackFrame[] = frames;\r\n for (let i: number = 0; i < array.length; i = i + 1) {\r\n let stackFrame: JSStackFrame = array[i];\r\n framesToPrint = framesToPrint - 1;\r\n\r\n stringBuilder.Append(stackFrame.toString());\r\n\r\n if (framesToPrint === 0) {\r\n stringBuilder.Append(\"\\t... more stack frames ...\\n\");\r\n break;\r\n }\r\n }\r\n this.WriteToLog(stringBuilder.ToString(), true);\r\n }\r\n\r\n /// <summary>\r\n /// Flush the log writer.\r\n /// </summary>\r\n Flush(): void {\r\n\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n","export enum MagicProperties {\r\n LineDivider = \"line_divider\",\r\n ImageFile = \"image_file\",\r\n Wallpaper = \"wallpaper\",\r\n}\r\n\r\nexport enum BindingLevel\r\n{\r\n Control = 1,\r\n Character\r\n}\r\n","export class DefaultMsgDetails {\r\n MsgID: string = null;\r\n MsgString: string = null;\r\n\r\n constructor(ID: string, MsgStr: string) {\r\n this.MsgID = ID;\r\n this.MsgString = MsgStr;\r\n }\r\n}\r\n\r\nexport class MsgInterface {\r\n static readonly STR_ERR_NUM: string = \"STR_ERR_NUM\";\r\n static readonly STR_ERR_DATE: string = \"STR_ERR_DATE\";\r\n static readonly STR_ERR_TIME: string = \"STR_ERR_TIME\";\r\n static readonly MONTHS_PTR: string = \"MONTHS_PTR\";\r\n static readonly DAYS_PTR: string = \"DAYS_PTR\";\r\n static readonly STR_ERR_NEGETIVE: string = \"STR_ERR_NEGETIVE\";\r\n static readonly STR_RNG_TXT: string = \"STR_RNG_TXT\";\r\n static readonly EDT_ERR_STR_1: string = \"EDT_ERR_STR_1\";\r\n static readonly STR_ERR_PIPE_CONNECTION: string = \"STR_ERR_PIPE_CONNECTION\";\r\n static readonly FMERROR_STR_BAD_NAME: string = \"FMERROR_STR_BAD_NAME\";\r\n static readonly FMERROR_STR_BAD_DAMAGED: string = \"FMERROR_STR_BAD_DAMAGED\";\r\n static readonly FMERROR_STR_BAD_BADCREATE: string = \"FMERROR_STR_BAD_BADCREATE\";\r\n static readonly FMERROR_STR_FILE_LOCKED: string = \"FMERROR_STR_FILE_LOCKED\";\r\n static readonly FMERROR_STR_BAD_UNEXPECTED: string = \"FMERROR_STR_BAD_UNEXPECTED\";\r\n static readonly FMERROR_STR_BAD_SERVER_NOTFOUND: string = \"FMERROR_STR_BAD_SERVER_NOTFOUND\";\r\n static readonly FMERROR_STR_BAD_SERVER_INIT_FAILED: string = \"FMERROR_STR_BAD_SERVER_INIT_FAILED\";\r\n static readonly FMERROR_STR_UNLOCKED: string = \"FMERROR_STR_UNLOCKED\";\r\n static readonly FMERROR_STR_BAD_DB_INIT_FAILED: string = \"FMERROR_STR_BAD_DB_INIT_FAILED\";\r\n static readonly FMERROR_STR_BAD_LOCK_OPEN: string = \"FMERROR_STR_BAD_LOCK_OPEN\";\r\n static readonly FMERROR_STR_BAD_BADOPEN: string = \"FMERROR_STR_BAD_BADOPEN\";\r\n static readonly FMERROR_STR_BAD_BADDEF: string = \"FMERROR_STR_BAD_BADDEF\";\r\n static readonly FMERROR_STR_DUP_KEY: string = \"FMERROR_STR_DUP_KEY\";\r\n static readonly FMERROR_STR_COMM_LOADED: string = \"FMERROR_STR_COMM_LOADED\";\r\n static readonly FMERROR_STR_COMM_CONNECT: string = \"FMERROR_STR_COMM_CONNECT\";\r\n static readonly FMERROR_STR_READONLY: string = \"FMERROR_STR_READONLY\";\r\n static readonly FMERROR_STR_BAD_BADCLOSE: string = \"FMERROR_STR_BAD_BADCLOSE\";\r\n static readonly FMERROR_STR_REC_LOCKED: string = \"FMERROR_STR_REC_LOCKED\";\r\n static readonly FMERROR_STR_TRANS_OPEN: string = \"FMERROR_STR_TRANS_OPEN\";\r\n static readonly FMERROR_STR_COMMIT: string = \"FMERROR_STR_COMMIT\";\r\n static readonly FMERROR_STR_ABORT: string = \"FMERROR_STR_ABORT\";\r\n static readonly FMERROR_STR_RSRC_LOCKED: string = \"FMERROR_STR_RSRC_LOCKED\";\r\n static readonly FMERROR_STR_NODEF: string = \"FMERROR_STR_NODEF\";\r\n static readonly FMERROR_STR_DEADLOCK: string = \"FMERROR_STR_DEADLOCK\";\r\n static readonly FMERROR_STR_DB_PROT: string = \"FMERROR_STR_DB_PROT\";\r\n static readonly FMERROR_STR_OWNR_ALRDY_SET: string = \"FMERROR_STR_OWNR_ALRDY_SET\";\r\n static readonly FMERROR_STR_INVALID_OWNR: string = \"FMERROR_STR_INVALID_OWNR\";\r\n static readonly FMERROR_STR_CLR_OWNR_FAIL: string = \"FMERROR_STR_CLR_OWNR_FAIL\";\r\n static readonly FMERROR_STR_NO_DATABASE: string = \"FMERROR_STR_NO_DATABASE\";\r\n static readonly FMERROR_STR_DBMS_ALTER_FAIL: string = \"FMERROR_STR_DBMS_ALTER_FAIL\";\r\n static readonly FMERROR_STR_TRANS_LOCK: string = \"FMERROR_STR_TRANS_LOCK\";\r\n static readonly FMERROR_STR_EXTUSE_MULU_CNFLCT: string = \"FMERROR_STR_EXTUSE_MULU_CNFLCT\";\r\n static readonly FMERROR_STR_DB_GW_VERSION_CNFLCT: string = \"FMERROR_STR_DB_GW_VERSION_CNFLCT\";\r\n static readonly FMERROR_STR_DB_CANOT_REMOVE: string = \"FMERROR_STR_DB_CANOT_REMOVE\";\r\n static readonly FMERROR_STR_DB_CANOT_RENAME: string = \"FMERROR_STR_DB_CANOT_RENAME\";\r\n static readonly FMERROR_STR_DB_BAD_SQL_CMD: string = \"FMERROR_STR_DB_BAD_SQL_CMD\";\r\n static readonly FMERROR_STR_REC_LOCKED_NOBUF: string = \"FMERROR_STR_REC_LOCKED_NOBUF\";\r\n static readonly FMERROR_STR_REOPEN: string = \"FMERROR_STR_REOPEN\";\r\n static readonly FMERROR_STR_REC_LOCKED_NOW: string = \"FMERROR_STR_REC_LOCKED_NOW\";\r\n static readonly FMERROR_STR_DBMS_SORT_FAIL: string = \"FMERROR_STR_DBMS_SORT_FAIL\";\r\n static readonly FMERROR_STR_NO_OLD_DATABASE_DBMS: string = \"FMERROR_STR_NO_OLD_DATABASE_DBMS\";\r\n static readonly FMERROR_STR_BAD_LOGIN: string = \"FMERROR_STR_BAD_LOGIN\";\r\n static readonly FMERROR_STR_ERR_EXEC_SQL: string = \"FMERROR_STR_ERR_EXEC_SQL\";\r\n static readonly FMERROR_STR_ERR_UPDATE_FAIL: string = \"FMERROR_STR_ERR_UPDATE_FAIL\";\r\n static readonly FMERROR_STR_ERR_INSERT_FAIL: string = \"FMERROR_STR_ERR_INSERT_FAIL\";\r\n static readonly FMERROR_STR_ERR_DELETE_FAIL: string = \"FMERROR_STR_ERR_DELETE_FAIL\";\r\n static readonly FMERROR_STR_PRINTER: string = \"FMERROR_STR_PRINTER\";\r\n static readonly FMERROR_STR_FIL_NOT_EXIST: string = \"FMERROR_STR_FIL_NOT_EXIST\";\r\n static readonly FMERROR_STR_COMM_GWY_COMPTABILITY: string = \"FMERROR_STR_COMM_GWY_COMPTABILITY\";\r\n static readonly FMERROR_STR_CACHE_TOO_BIG: string = \"FMERROR_STR_CACHE_TOO_BIG\";\r\n static readonly FMERROR_STR_NO_ROWS_AFFECTED: string = \"FMERROR_STR_NO_ROWS_AFFECTED\";\r\n static readonly FMERROR_STR_TARGET_FILE_EXIST: string = \"FMERROR_STR_TARGET_FILE_EXIST\";\r\n static readonly FMERROR_STR_FILE_IS_VIEW: string = \"FMERROR_STR_FILE_IS_VIEW\";\r\n static readonly FMERROR_STR_DB_CANOT_COPY: string = \"FMERROR_STR_DB_CANOT_COPY\";\r\n static readonly FMERROR_STR_HLP_NOT_EXIST: string = \"FMERROR_STR_HLP_NOT_EXIST\";\r\n static readonly FMERROR_STR_UNUSABLE_FILE: string = \"FMERROR_STR_UNUSABLE_FILE\";\r\n static readonly FMERROR_STR_DB_BAD_QUERY: string = \"FMERROR_STR_DB_BAD_QUERY\";\r\n static readonly FMERROR_STR_NO_HDLS: string = \"FMERROR_STR_NO_HDLS\";\r\n static readonly FMERROR_STR_MAX_CONNS_REACHED: string = \"FMERROR_STR_MAX_CONNS_REACHED\";\r\n static readonly FMERROR_STR_CONSTRAINT_FAIL: string = \"FMERROR_STR_CONSTRAINT_FAIL\";\r\n static readonly FMERROR_STR_TRIGGER_FAIL: string = \"FMERROR_STR_TRIGGER_FAIL\";\r\n static readonly FMERROR_STR_MODIFY_WITHIN_TRANS: string = \"FMERROR_STR_MODIFY_WITHIN_TRANS\";\r\n static readonly EXPTAB_TSK_MODE_RT: string = \"EXPTAB_TSK_MODE_RT\";\r\n static readonly EXPTAB_ERR_CALL_MAIN_PRG_1: string = \"EXPTAB_ERR_CALL_MAIN_PRG_1\";\r\n static readonly LOCATE_STR_ERR_EOF: string = \"LOCATE_STR_ERR_EOF\";\r\n static readonly RT_STR_REC_NOTFOUND: string = \"RT_STR_REC_NOTFOUND\";\r\n static readonly RT_STR_PRG_NOTFOUND: string = \"RT_STR_PRG_NOTFOUND\";\r\n static readonly RT_STR_NO_RECS_IN_RNG: string = \"RT_STR_NO_RECS_IN_RNG\";\r\n static readonly RT_STR_FLD_MUST_UPDATED: string = \"RT_STR_FLD_MUST_UPDATED\";\r\n static readonly RT_STR_TSK_NO_SCREEN: string = \"RT_STR_TSK_NO_SCREEN\";\r\n static readonly RT_STR_CRSR_CANT_PARK: string = \"RT_STR_CRSR_CANT_PARK\";\r\n static readonly RT_STR_MODE_NOTALLOWED: string = \"RT_STR_MODE_NOTALLOWED\";\r\n static readonly RT_STR_NON_MODIFIABLE: string = \"RT_STR_NON_MODIFIABLE\";\r\n static readonly RT_STR_UPDATE_IN_QUERY: string = \"RT_STR_UPDATE_IN_QUERY\";\r\n static readonly RT_STR_LOAD_RES_FAIL: string = \"RT_STR_LOAD_RES_FAIL\";\r\n static readonly RT_STR_NO_CREATE_ON_TREE: string = \"RT_STR_NO_CREATE_ON_TREE\";\r\n static readonly TSKR_ERR_NOTEXIST_COMP: string = \"TSKR_ERR_NOTEXIST_COMP\";\r\n static readonly TSK_ERR_BCSUBFORM_WRONG_EXP: string = \"TSK_ERR_BCSUBFORM_WRONG_EXP\";\r\n static readonly TSK_ERR_NESTED_BCSUBFORM: string = \"TSK_ERR_NESTED_BCSUBFORM\";\r\n static readonly TSK_ERR_CHANGE_CACHED_NESTED_BCSUBFORM: string = \"TSK_ERR_CHANGE_CACHED_NESTED_BCSUBFORM\";\r\n static readonly TSK_ERR_SUBFORM_DSQL: string = \"TSK_ERR_SUBFORM_DSQL\";\r\n static readonly TSK_ERR_DSQL_SELECT_ONLY: string = \"TSK_ERR_DSQL_SELECT_ONLY\";\r\n static readonly CSTIO_STR_ERR2: string = \"CSTIO_STR_ERR2\";\r\n static readonly CONFIRM_STR_DELETE: string = \"CONFIRM_STR_DELETE\";\r\n static readonly CONFIRM_STR_CANCEL: string = \"CONFIRM_STR_CANCEL\";\r\n static readonly CONFIRM_STR_WINDOW_TITLE: string = \"CONFIRM_STR_WINDOW_TITLE\";\r\n static readonly WARNING_STR_WINDOW_TITLE: string = \"WARNING_STR_WINDOW_TITLE\";\r\n static readonly BRKTAB_STR_ERROR: string = \"BRKTAB_STR_ERROR\";\r\n static readonly USRINP_STR_BADPASSW: string = \"USRINP_STR_BADPASSW\";\r\n static readonly USRINP_STR_BADPASSW_WEBSERVER: string = \"USRINP_STR_BADPASSW_WEBSERVER\";\r\n static readonly USRINP_STR_BADPASSW_PROXYSERVER: string = \"USRINP_STR_BADPASSW_PROXYSERVER\";\r\n static readonly CRF_STR_CONF_UPD: string = \"CRF_STR_CONF_UPD\";\r\n static readonly MENU_STR_ERROR_ENABLE: string = \"MENU_STR_ERROR_ENABLE\";\r\n static readonly GUI_OK_BUTTON: string = \"GUI_OK_BUTTON\";\r\n static readonly GUI_CANCEL_BUTTON: string = \"GUI_CANCEL_BUTTON\";\r\n static readonly BRKTAB_STOP_MODE_TITLE: string = \"BRKTAB_STOP_MODE_TITLE\";\r\n static readonly BRKTAB_STR_ERR_FORM: string = \"BRKTAB_STR_ERR_FORM\";\r\n static readonly BROWSER_OPT_INFO_SERVER_STR: string = \"BROWSER_OPT_INFO_SERVER_STR\";\r\n static readonly STR_ERR_PIC_J: string = \"STR_ERR_PIC_J\";\r\n static readonly STR_ERR_PIC_S: string = \"STR_ERR_PIC_S\";\r\n static readonly STR_ERR_PIC_T: string = \"STR_ERR_PIC_T\";\r\n static readonly TASKRULE_STR_APPLICATION: string = \"TASKRULE_STR_APPLICATION\";\r\n static readonly DITDEF_STR_ERR_WINDOW_TYPE: string = \"DITDEF_STR_ERR_WINDOW_TYPE\";\r\n static readonly DITDEF_STR_ERR_SUBFORM_PROG_PARALLEL: string = \"DITDEF_STR_ERR_SUBFORM_PROG_PARALLEL\";\r\n static readonly DATEHEB_MONTH_STR: string = \"DATEHEB_MONTH_STR\";\r\n static readonly DATEHEB_DOW_STR: string = \"DATEHEB_DOW_STR\";\r\n static readonly CHK_ERR_CALL_FROM_RICH_CLIENT: string = \"CHK_ERR_CALL_FROM_RICH_CLIENT\";\r\n static readonly RC_STR_F7_UNEXPECTED_ERR: string = \"RC_STR_F7_UNEXPECTED_ERR\";\r\n static readonly STR_ERR_MAX_VAR_SIZE: string = \"STR_ERR_MAX_VAR_SIZE\";\r\n static readonly STR_RC_RECENT_ACTIVITY_TOOLTIP_HDR: string = \"STR_RC_RECENT_ACTIVITY_TOOLTIP_HDR\";\r\n static readonly STR_RC_RECENT_ACTIVITY_TIME_LBL: string = \"STR_RC_RECENT_ACTIVITY_TIME_LBL\";\r\n static readonly STR_RC_RECENT_ACTIVITY_DATA_UNIT: string = \"STR_RC_RECENT_ACTIVITY_DATA_UNIT\";\r\n static readonly STR_RC_RECENT_ACTIVITY_TIME_UNIT: string = \"STR_RC_RECENT_ACTIVITY_TIME_UNIT\";\r\n static readonly STR_PAGE_LOADING_IN_PROGRESS: string = \"STR_PAGE_LOADING_IN_PROGRESS\";\r\n static readonly STR_CANNOT_PARK: string = \"STR_CANNOT_PARK\";\r\n static readonly STR_RESTART_SESSION: string = \"STR_RESTART_SESSION\";\r\n static readonly STR_ERR_INACCESSIBLE_URL: string = \"STR_ERR_INACCESSIBLE_URL\";\r\n static readonly STR_ERR_SESSION_CLOSED: string = \"STR_ERR_SESSION_CLOSED\";\r\n static readonly STR_ERR_SESSION_CLOSED_INACTIVITY: string = \"STR_ERR_SESSION_CLOSED_INACTIVITY\";\r\n static readonly STR_MINUTES: string = \"STR_MINUTES\";\r\n static readonly STR_HOURS: string = \"STR_HOURS\";\r\n static readonly STR_ERR_AUTHORIZATION_FAILURE: string = \"STR_ERR_AUTHORIZATION_FAILURE\";\r\n static readonly STR_WARN_UNLOAD_TIMEOUT: string = \"STR_WARN_UNLOAD_TIMEOUT\";\r\n static readonly STR_WARN_PARALLEL_NOT_SUPPORTED: string = \"STR_WARN_PARALLEL_NOT_SUPPORTED\";\r\n static readonly DN_ERR_MDI_FRAME_ISNOT_OPENED: string = \"DN_ERR_MDI_FRAME_ISNOT_OPENED\";\r\n static readonly ERR_CANNOT_HANDLE_WEB_REQUEST: string = \"ERR_CANNOT_HANDLE_WEB_REQUEST\";\r\n static readonly STR_MDI_FRAME_MISMATCH: string = \"STR_MDI_FRAME_MISMATCH\";\r\n static readonly CHK_ERR_OFFLINE_NOT_SUPPORT_FRAME_INTERFACE: string = \"CHK_ERR_OFFLINE_NOT_SUPPORT_FRAME_INTERFACE\";\r\n static readonly STR_USER_ID: string = \"STR_USER_ID\";\r\n static readonly STR_PASSWORD: string = \"STR_PASSWORD\";\r\n static readonly STR_LOGON_PARAMETERS: string = \"STR_LOGON_PARAMETERS\";\r\n static readonly STR_LOGON_CAPTION: string = \"STR_LOGON_CAPTION\";\r\n static readonly STR_LOGON_INSTRUCTION: string = \"STR_LOGON_INSTRUCTION\";\r\n static readonly STR_GENERIC_ERROR_MESSAGE: string = \"STR_GENERIC_ERROR_MESSAGE\";\r\n static readonly STR_GENERIC_ERROR_CONNECTION_PROBLEM_TITLE: string = \"STR_GENERIC_ERROR_CONNECTION_PROBLEM_TITLE\";\r\n static readonly STR_GENERIC_ERROR_CONNECTION_PROBLEM_MESSAGE: string = \"STR_GENERIC_ERROR_CONNECTION_PROBLEM_MESSAGE\";\r\n static readonly FMERROR_STR_TRANS_OPEN_FAILED: string = \"FMERROR_STR_TRANS_OPEN_FAILED\";\r\n static readonly STR_ERR_CANNOT_CALL_OFFLINE_BYNAME_OR_BYEXP: string = \"STR_ERR_CANNOT_CALL_OFFLINE_BYNAME_OR_BYEXP\";\r\n static readonly RT_STR_DELETE_MODE_WITHOUT_MAINSOURCE_NOTALLOWED: string = \"RT_STR_DELETE_MODE_WITHOUT_MAINSOURCE_NOTALLOWED\";\r\n static readonly RC_ERROR_INCOMPATIBLE_DATASOURCES: string = \"RC_ERROR_INCOMPATIBLE_DATASOURCES\";\r\n static readonly RC_ERROR_INVALID_SOURCES: string = \"RC_ERROR_INVALID_SOURCES\";\r\n static readonly RC_ERROR_OFFLINE_NEXT_EXECUTION_INVALID_SOURCES: string = \"RC_ERROR_OFFLINE_NEXT_EXECUTION_INVALID_SOURCES\";\r\n static readonly RC_ERR_ANDROID_LOAD_FROM_URL: string = \"RC_ERR_ANDROID_LOAD_FROM_URL\";\r\n static readonly STR_CLIENT_DB_DEL_OPERATION_FAILED: string = \"STR_CLIENT_DB_DEL_OPERATION_FAILED\";\r\n static readonly STR_DATAVIEW_TO_DATASOURCE_OPERATION_FAILED: string = \"STR_DATAVIEW_TO_DATASOURCE_OPERATION_FAILED\";\r\n static readonly STR_CLIENT_DB_DISCONNECT_DATASOURCE_OPEN: string = \"STR_CLIENT_DB_DISCONNECT_DATASOURCE_OPEN\";\r\n static readonly STR_CLIENT_DB_DISCONNECT_DATASOURCE_NOT_EXIST: string = \"STR_CLIENT_DB_DISCONNECT_DATASOURCE_NOT_EXIST\";\r\n static readonly FMERROR_STR_INVALID_PASSWORD: string = \"FMERROR_STR_INVALID_PASSWORD\";\r\n static readonly STR_MOBILE_TAB_CONTROL_CANNOT_BE_USED: string = \"STR_MOBILE_TAB_CONTROL_CANNOT_BE_USED\";\r\n static readonly STR_MOBILE_CONTROLS_CANNOT_BE_OUTSIDE_TAB: string = \"STR_MOBILE_CONTROLS_CANNOT_BE_OUTSIDE_TAB\";\r\n static readonly STR_MOBILE_TAB_CONTROL_LAYER_0: string = \"STR_MOBILE_TAB_CONTROL_LAYER_0\";\r\n static readonly STR_MOBILE_TAB_DISPLAY_LIST_ERROR: string = \"STR_MOBILE_TAB_DISPLAY_LIST_ERROR\";\r\n static readonly RC_ERROR_ARG_TYPE_STRING_NUMBER_MISMATCH: string = \"RC_ERROR_ARG_TYPE_STRING_NUMBER_MISMATCH\";\r\n static readonly RC_ERROR_ILLEGAL_ARG_ATTR_TYPE: string = \"RC_ERROR_ILLEGAL_ARG_ATTR_TYPE\";\r\n static readonly RC_ERROR_ILLEGAL_RETURN_VAL_ATTR_TYPE: string = \"RC_ERROR_ILLEGAL_RETURN_VAL_ATTR_TYPE\";\r\n static readonly STR_ERR_WEBCLIENT_PROGRAM_RELOADED: string = \"STR_ERR_WEBCLIENT_PROGRAM_RELOADED\";\r\n static readonly STR_ERR_EXECUTED_PROGRAM_CHANGED: string = \"STR_ERR_EXECUTED_PROGRAM_CHANGED\";\r\n\r\n static readonly DefaultMessages: DefaultMsgDetails[] = [\r\n new DefaultMsgDetails(\"STR_ERR_NUM\", \"Invalid number\"), new DefaultMsgDetails(\"STR_ERR_DATE\", \"Invalid date\"), new DefaultMsgDetails(\"STR_ERR_TIME\", \"Invalid time\"), new DefaultMsgDetails(\"MONTHS_PTR\", \"January February March April May June July August September October November December\"), new DefaultMsgDetails(\"DAYS_PTR\", \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\"), new DefaultMsgDetails(\"STR_ERR_NEGETIVE\", \"Control value must be non-negative\"), new DefaultMsgDetails(\"STR_RNG_TXT\", \"Valid control input range is:\"), new DefaultMsgDetails(\"EDT_ERR_STR_1\", \"Numeric format is limited to %d.%d digits\"), new DefaultMsgDetails(\"STR_ERR_PIPE_CONNECTION\", \"The connection to the runtime engine was lost. Process ID \"), new DefaultMsgDetails(\"FMERROR_STR_BAD_NAME\", \"Invalid data source name:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_DAMAGED\", \"Damaged data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_BADCREATE\", \"Create error:\"), new DefaultMsgDetails(\"FMERROR_STR_FILE_LOCKED\", \"Unable to lock the data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_UNEXPECTED\", \"Unexpected error, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_SERVER_NOTFOUND\", \"Server not found, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_SERVER_INIT_FAILED\", \"Server initialization failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_UNLOCKED\", \"Releasing failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_DB_INIT_FAILED\", \"Database initialization error, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_LOCK_OPEN\", \"Failed to open lock file, data source:\"),\r\n new DefaultMsgDetails(\"FMERROR_STR_BAD_BADOPEN\", \"Failed to open, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_BADDEF\", \"Definition mismatch, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DUP_KEY\", \"Duplicate index, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_COMM_LOADED\", \"Communication Gateway not loaded, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_COMM_CONNECT\", \"Failed to connect to server, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_READONLY\", \"Cannot modify Read Only, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_BADCLOSE\", \"Failed to close, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_REC_LOCKED\", \"Waiting for locked row, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_TRANS_OPEN\", \"Failed to open transaction, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_COMMIT\", \"Failed to commit transaction\"), new DefaultMsgDetails(\"FMERROR_STR_ABORT\", \"Failed to abort transaction\"), new DefaultMsgDetails(\"FMERROR_STR_RSRC_LOCKED\", \"Waiting for lock in database:\"), new DefaultMsgDetails(\"FMERROR_STR_NODEF\", \"Database definition cannot be loaded, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DEADLOCK\", \"Deadlock error, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_PROT\", \"Exceeded database protection limits, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_OWNR_ALRDY_SET\", \"Access Key already set, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_INVALID_OWNR\", \"Invalid Access Key, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_CLR_OWNR_FAIL\", \"Failed to clear Access Key, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_NO_DATABASE\", \"Unknown database, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DBMS_ALTER_FAIL\", \"Warning - Database failed to alter, data source:\"),\r\n new DefaultMsgDetails(\"FMERROR_STR_TRANS_LOCK\", \"Waiting to open transaction\"), new DefaultMsgDetails(\"FMERROR_STR_EXTUSE_MULU_CNFLCT\", \"Access External Use Database when MultiUser flag is No, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_GW_VERSION_CNFLCT\", \"Database gateway version mismatch, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_CANOT_REMOVE\", \"Failed to delete, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_CANOT_RENAME\", \"Failed to rename, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_BAD_SQL_CMD\", \"Invalid SQL command, database:\"), new DefaultMsgDetails(\"FMERROR_STR_REC_LOCKED_NOBUF\", \"Waiting to fetch locked row, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_REOPEN\", \"Failed to reopen, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_REC_LOCKED_NOW\", \"Row locked in data source:\"), new DefaultMsgDetails(\"FMERROR_STR_DBMS_SORT_FAIL\", \"Warning - Database failed to sort, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_NO_OLD_DATABASE_DBMS\", \"Warning - Previous DBMS or database unknown, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_BAD_LOGIN\", \"Server login failed. Invalid user/password, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_EXEC_SQL\", \"Error in executing SQL command:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_UPDATE_FAIL\", \"Update operation failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_INSERT_FAIL\", \"Insert operation failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_ERR_DELETE_FAIL\", \"Delete operation failed, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_PRINTER\", \"Incorrect printer setup\"), new DefaultMsgDetails(\"FMERROR_STR_FIL_NOT_EXIST\", \"Data source does not exist:\"), new DefaultMsgDetails(\"FMERROR_STR_COMM_GWY_COMPTABILITY\", \"Communication gateways are not compatible:\"), new DefaultMsgDetails(\"FMERROR_STR_CACHE_TOO_BIG\", \"Not enough memory - Cache not started, data source:\"),\r\n new DefaultMsgDetails(\"FMERROR_STR_NO_ROWS_AFFECTED\", \"Operation failed. Record has been changed by another user or process, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_TARGET_FILE_EXIST\", \"Target data source exists. Create failed for data source:\"), new DefaultMsgDetails(\"FMERROR_STR_FILE_IS_VIEW\", \"Cannot create/drop/copy a view, view:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_CANOT_COPY\", \"Failed to copy, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_HLP_NOT_EXIST\", \"Failed to open, file:\"), new DefaultMsgDetails(\"FMERROR_STR_UNUSABLE_FILE\", \"Team Development: Data source inaccessible due to maintenance:\"), new DefaultMsgDetails(\"FMERROR_STR_DB_BAD_QUERY\", \"Bad Open Query Selection Expression:\"), new DefaultMsgDetails(\"FMERROR_STR_NO_HDLS\", \"Reached maximum Magic xpa file handlers. No available handlers left.\"), new DefaultMsgDetails(\"FMERROR_STR_MAX_CONNS_REACHED\", \"Unable to connect to Server: Maximum connections reached.\"), new DefaultMsgDetails(\"FMERROR_STR_CONSTRAINT_FAIL\", \"Constraint failure, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_TRIGGER_FAIL\", \"Trigger failure, data source:\"), new DefaultMsgDetails(\"FMERROR_STR_MODIFY_WITHIN_TRANS\", \"Data source can be modified only from within a transaction, data source:\"), new DefaultMsgDetails(\"EXPTAB_TSK_MODE_RT\", \"&Modify,&Create,&Delete,&Query,As &Parent,&Locate,&Range,&Key,&Sort,&Files,&Options,By &Exp \"), new DefaultMsgDetails(\"EXPTAB_ERR_CALL_MAIN_PRG_1\", \"Cannot call Main Program\"), new DefaultMsgDetails(\"LOCATE_STR_ERR_EOF\", \"Record not found - positioned at beginning\"), new DefaultMsgDetails(\"RT_STR_REC_NOTFOUND\", \"Row not found in data source:\"), new DefaultMsgDetails(\"RT_STR_PRG_NOTFOUND\", \"Program not found\"), new DefaultMsgDetails(\"RT_STR_NO_RECS_IN_RNG\", \"No records within defined range\"), new DefaultMsgDetails(\"RT_STR_FLD_MUST_UPDATED\", \"Control must be updated\"), new DefaultMsgDetails(\"RT_STR_TSK_NO_SCREEN\", \"Task without screen\"),\r\n new DefaultMsgDetails(\"RT_STR_CRSR_CANT_PARK\", \"Cursor cannot park on any control\"), new DefaultMsgDetails(\"RT_STR_MODE_NOTALLOWED\", \"Initial Task mode not allowed\"), new DefaultMsgDetails(\"RT_STR_NON_MODIFIABLE\", \"Non-modifiable control\"), new DefaultMsgDetails(\"RT_STR_UPDATE_IN_QUERY\", \"Warning - Modify operation canceled due to task Query mode\"), new DefaultMsgDetails(\"RT_STR_LOAD_RES_FAIL\", \"Failed to load resident data source, data source:\"), new DefaultMsgDetails(\"RT_STR_NO_CREATE_ON_TREE\", \"Cannot open a task having a tree control with no data to display.\"), new DefaultMsgDetails(\"TSKR_ERR_NOTEXIST_COMP\", \"Component used by the task does not exist or could not be opened\"), new DefaultMsgDetails(\"TSK_ERR_BCSUBFORM_WRONG_EXP\", \"a cached sub-form has server side expression in Range/Locate/SqlWhere\"), new DefaultMsgDetails(\"TSK_ERR_NESTED_BCSUBFORM\", \"A cached sub-form can not have a non-cached nested sub-form\"), new DefaultMsgDetails(\"TSK_ERR_CHANGE_CACHED_NESTED_BCSUBFORM\", \"A cached sub-form can not have a non-cached nested sub-form. The nested subform cache was changed since it uses server side range expression\"), new DefaultMsgDetails(\"TSK_ERR_SUBFORM_DSQL\", \"DSQL task is not supported as a sub-form\"), new DefaultMsgDetails(\"TSK_ERR_DSQL_SELECT_ONLY\", \"Only statements that retrieve data are allowed in a DSQL deferred transaction task\"), new DefaultMsgDetails(\"CSTIO_STR_ERR2\", \"User not authorized for this operation\"), new DefaultMsgDetails(\"CONFIRM_STR_DELETE\", \"Confirm Delete operation\"), new DefaultMsgDetails(\"CONFIRM_STR_CANCEL\", \"Confirm Cancel operation\"), new DefaultMsgDetails(\"CONFIRM_STR_WINDOW_TITLE\", \"Confirmation\"), new DefaultMsgDetails(\"WARNING_STR_WINDOW_TITLE\", \"Warning\"), new DefaultMsgDetails(\"BRKTAB_STR_ERROR\", \"Error\"), new DefaultMsgDetails(\"USRINP_STR_BADPASSW\", \"The application could not log you on. Make sure your user ID and password are correct\"), new DefaultMsgDetails(\"USRINP_STR_BADPASSW_WEBSERVER\", \"The Web Server could not log you on. Make sure your user ID and password are correct\"),\r\n new DefaultMsgDetails(\"USRINP_STR_BADPASSW_PROXYSERVER\", \"The Proxy Server could not log you on. Make sure your user ID and password are correct\"), new DefaultMsgDetails(\"CRF_STR_CONF_UPD\", \"Confirm update\"), new DefaultMsgDetails(\"MENU_STR_ERROR_ENABLE\", \"Enable/Disable of system action is not allowed\"), new DefaultMsgDetails(\"GUI_OK_BUTTON\", \"&OK\"), new DefaultMsgDetails(\"GUI_CANCEL_BUTTON\", \"&Cancel\"), new DefaultMsgDetails(\"BRKTAB_STOP_MODE_TITLE\", \"Error,Warning\"), new DefaultMsgDetails(\"BRKTAB_STR_ERR_FORM\", \"Invalid form\"), new DefaultMsgDetails(\"BROWSER_OPT_INFO_SERVER_STR\", \"Server\"), new DefaultMsgDetails(\"STR_ERR_PIC_J\", \"Single byte characters are not allowed\"), new DefaultMsgDetails(\"STR_ERR_PIC_S\", \"Double byte characters are not allowed\"), new DefaultMsgDetails(\"STR_ERR_PIC_T\", \"Mixed data of double byte and single byte are not allowed\"), new DefaultMsgDetails(\"TASKRULE_STR_APPLICATION\", \"Application\"), new DefaultMsgDetails(\"DITDEF_STR_ERR_WINDOW_TYPE\", \"Invalid Window Type.\"), new DefaultMsgDetails(\"DITDEF_STR_ERR_SUBFORM_PROG_PARALLEL\", \"A parallel program cannot be used as subform or frame program.\"), new DefaultMsgDetails(\"DATEHEB_MONTH_STR\", \"תשרי חשון כסלו טבת שבט אדר ניסן אייר סיון תמוז אב אלול אדר באדר א\"), new DefaultMsgDetails(\"DATEHEB_DOW_STR\", \"ראשוןשני שלישירביעיחמישישישי שבת \"), new DefaultMsgDetails(\"CHK_ERR_CALL_FROM_RICH_CLIENT\", \"Rich Client task/program can only call a Rich Client or batch task/program\"), new DefaultMsgDetails(\"RC_STR_F7_UNEXPECTED_ERR\", \"Unexpected error, Rich client could not be started\"), new DefaultMsgDetails(\"STR_ERR_MAX_VAR_SIZE\", \"Rich client task supports up to 2147483647 bytes variables\"), new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_TOOLTIP_HDR\", \"Recent Network Activities:\"),\r\n new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_TIME_LBL\", \"At\"), new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_DATA_UNIT\", \"KB.\"), new DefaultMsgDetails(\"STR_RC_RECENT_ACTIVITY_TIME_UNIT\", \"ms.\"), new DefaultMsgDetails(\"STR_PAGE_LOADING_IN_PROGRESS\", \"The loading of the page is still in progress. Press OK to wait for its completion or Cancel to abort.\"), new DefaultMsgDetails(\"STR_CANNOT_PARK\", \"Cannot park on control:\"), new DefaultMsgDetails(\"STR_RESTART_SESSION\", \"Would you like to start a new session?\"), new DefaultMsgDetails(\"STR_ERR_INACCESSIBLE_URL\", \"Inaccessible URL: \"), new DefaultMsgDetails(\"STR_ERR_SESSION_CLOSED\", \"This session was closed by the server\"), new DefaultMsgDetails(\"STR_ERR_SESSION_CLOSED_INACTIVITY\", \"This session was closed due to inactivity timeout\"), new DefaultMsgDetails(\"STR_MINUTES\", \"minutes\"), new DefaultMsgDetails(\"STR_HOURS\", \"hours\"), new DefaultMsgDetails(\"STR_ERR_AUTHORIZATION_FAILURE\", \"You do not have access rights to the application. Please contact your system administrator.\"), new DefaultMsgDetails(\"STR_WARN_UNLOAD_TIMEOUT\", \"This session was closed due to unload timeout\"), new DefaultMsgDetails(\"STR_WARN_PARALLEL_NOT_SUPPORTED\", \"Parallel program is not supported on mobile. Property ignored\"), new DefaultMsgDetails(\"DN_ERR_MDI_FRAME_ISNOT_OPENED\", \"MDI frame is not opened\"), new DefaultMsgDetails(\"ERR_CANNOT_HANDLE_RC_REQUEST\", \"Rich client requests cannot be handled when the online MDI is open\"),\r\n new DefaultMsgDetails(\"ERR_CANNOT_HANDLE_WEB_REQUEST\", \"Web client requests cannot be handled when the online MDI is open\"),\r\n new DefaultMsgDetails(\"STR_MDI_FRAME_MISMATCH\", \"The selected MDI Frame form cannot be used for the current task\"), new DefaultMsgDetails(\"CHK_ERR_OFFLINE_NOT_SUPPORT_FRAME_INTERFACE\", \"Frames interface is not supported in an offline task\"), new DefaultMsgDetails(\"STR_USER_ID\", \"User ID:\"), new DefaultMsgDetails(\"STR_PASSWORD\", \"Password:\"),\r\n new DefaultMsgDetails(\"STR_LOGON_PARAMETERS\", \"Logon Parameters\"), new DefaultMsgDetails(\"STR_LOGON_CAPTION\", \"Logon\"), new DefaultMsgDetails(\"STR_LOGON_INSTRUCTION\", \"Please enter your user ID and password.\"), new DefaultMsgDetails(\"STR_GENERIC_ERROR_MESSAGE\", \"An error occurred (%d). Please contact your system administrator.\"), new DefaultMsgDetails(\"STR_GENERIC_ERROR_CONNECTION_PROBLEM_TITLE\", \"Connection problem:\"), new DefaultMsgDetails(\"STR_GENERIC_ERROR_CONNECTION_PROBLEM_MESSAGE\", \"Try to reconnect?\"), new DefaultMsgDetails(\"FMERROR_STR_TRANS_OPEN_FAILED\", \"The transaction was already opened by another task\"), new DefaultMsgDetails(\"STR_ERR_CANNOT_CALL_OFFLINE_BYNAME_OR_BYEXP\", \"Offline programs cannot be called using the Call By Name or Call By Expression operations\"), new DefaultMsgDetails(\"RT_STR_DELETE_MODE_WITHOUT_MAINSOURCE_NOTALLOWED\", \"Deleted task mode is not allowed without main source\"), new DefaultMsgDetails(\"RC_ERROR_INCOMPATIBLE_DATASOURCES\", \"Failed to update the local data. Please clear the application cache or reinstall the application.\"), new DefaultMsgDetails(\"RC_ERROR_INVALID_SOURCES\", \"Failed to update the application.\"), new DefaultMsgDetails(\"RC_ERROR_OFFLINE_NEXT_EXECUTION_INVALID_SOURCES\", \"Failed to start the application. Please restart while the application is connected to the server.\"), new DefaultMsgDetails(\"RC_ERR_ANDROID_LOAD_FROM_URL\", \"Cannot access the server.\"), new DefaultMsgDetails(\"STR_CLIENT_DB_DEL_OPERATION_FAILED\", \"ClientDbDel opeartion failed.\"), new DefaultMsgDetails(\"STR_DATAVIEW_TO_DATASOURCE_OPERATION_FAILED\", \"DataViewToDataSource operation failed.\"), new DefaultMsgDetails(\"STR_CLIENT_DB_DISCONNECT_DATASOURCE_OPEN\", \"Failed to disconnect, data source is open.\"), new DefaultMsgDetails(\"STR_CLIENT_DB_DISCONNECT_DATASOURCE_NOT_EXIST\", \"Failed to disconnect, database does not exist.\"), new DefaultMsgDetails(\"FMERROR_STR_INVALID_PASSWORD\", \"Invalid Password, data source:\"), new DefaultMsgDetails(\"STR_MOBILE_TAB_CONTROL_CANNOT_BE_USED\", \"Tab control cannot be used in a container control.\"), new DefaultMsgDetails(\"STR_MOBILE_CONTROLS_CANNOT_BE_OUTSIDE_TAB\", \"Controls cannot be placed outside a tab control.\"),\r\n new DefaultMsgDetails(\"STR_MOBILE_TAB_CONTROL_LAYER_0\", \"Controls cannot be linked to layer 0 of the tab control.\"), new DefaultMsgDetails(\"STR_MOBILE_TAB_DISPLAY_LIST_ERROR\", \"The number of entries in the Display List property must be zero or match the number of entries in the Items List property.\"), new DefaultMsgDetails(\"RC_ERROR_ARG_TYPE_STRING_NUMBER_MISMATCH\", \"The number of characters in the argument type string does not match the number of total arguments\"), new DefaultMsgDetails(\"RC_ERROR_ILLEGAL_ARG_ATTR_TYPE\", \"Illegal argument attribute type\"), new DefaultMsgDetails(\"RC_ERROR_ILLEGAL_RETURN_VAL_ATTR_TYPE\", \"Illegal return value attribute type\"), new DefaultMsgDetails(\"STR_ERR_WEBCLIENT_PROGRAM_RELOADED\", \"Changes were done at the server side. Browser will be refreshed in order to get the latest changes.\"), new DefaultMsgDetails(\"STR_ERR_EXECUTED_PROGRAM_CHANGED\", \"Executed program changed at the server side. Browser will be refreshed in order to get the latest changes.\")\r\n ];\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {List} from \"@magic-xpa/mscorelib\";\r\n\r\n/// <summary> implementation of a general queue</summary>\r\nexport class Queue<T> {\r\n private _queueVec: List<T> = null;\r\n\r\n /// <summary> </summary>\r\n constructor() {\r\n this._queueVec = new List<T>();\r\n }\r\n\r\n /// <summary> returns the first object in the queue</summary>\r\n get(): any {\r\n let returnValue: T = null;\r\n\r\n if (this._queueVec.length > 0) {\r\n returnValue = this._queueVec.get_Item(0);\r\n this._queueVec.RemoveAt(0);\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n /// <summary> add an object to the end of the queue</summary>\r\n /// <param name=\"obj\">the object to add\r\n put(obj: T): void {\r\n this._queueVec.push(obj);\r\n }\r\n\r\n /// <summary> remove all the objects from the queue</summary>\r\n clear(): void {\r\n this._queueVec.Clear();\r\n }\r\n\r\n /// <summary> returns true if the queue is empty</summary>\r\n isEmpty(): boolean {\r\n return this._queueVec.length === 0;\r\n }\r\n\r\n /// <summary> returns size of the queue</summary>\r\n Size(): number {\r\n return this._queueVec.length;\r\n }\r\n}\r\n","export class Randomizer {\r\n private static _initialized: boolean = false;\r\n private static _mod: number = 0.0;\r\n private static _mul: number = 0.0;\r\n private static _seed: number = 0.0;\r\n\r\n static get_initialized(): boolean {\r\n return Randomizer._initialized;\r\n }\r\n\r\n static get_mod(): number {\r\n return Randomizer._mod;\r\n }\r\n\r\n static get_mul(): number {\r\n return Randomizer._mul;\r\n }\r\n\r\n static get_seed(): number {\r\n return Randomizer._seed;\r\n }\r\n\r\n static set_initialized(): void {\r\n Randomizer._initialized = true;\r\n }\r\n\r\n static set_mod(randMod: number): number {\r\n Randomizer._mod = randMod;\r\n return Randomizer._mod;\r\n }\r\n\r\n static set_mul(randMul: number): number {\r\n Randomizer._mul = randMul;\r\n return Randomizer._mul;\r\n }\r\n\r\n static set_seed(randSeed: number): number {\r\n Randomizer._seed = randSeed;\r\n return Randomizer._seed;\r\n }\r\n}\r\n","import {StorageAttribute} from \"./enums\";\r\n\r\n/// <summary>\r\n/// type checking for enum 'StorageAttribute'\r\n/// </summary>\r\nexport class StorageAttributeCheck {\r\n /// <summary>\r\n /// is the both types belong to the same inner data types\r\n /// </summary>\r\n /// <param name = \"type1\">data type</param>\r\n /// <param name = \"type2\">data type</param>\r\n static isTheSameType(type1: StorageAttribute, type2: StorageAttribute): boolean {\r\n return type1 === type2 || (StorageAttributeCheck.isTypeNumeric(type1) && StorageAttributeCheck.isTypeNumeric(type2)) || (StorageAttributeCheck.isTypeLogical(type1) && StorageAttributeCheck.isTypeLogical(type2)) || (StorageAttributeCheck.IsTypeAlphaOrUnicode(type1) && StorageAttributeCheck.IsTypeAlphaOrUnicode(type2)) || (StorageAttributeCheck.isTypeBlob(type1) && StorageAttributeCheck.isTypeBlob(type2)) || (StorageAttributeCheck.isTypeDotNet(type1) && StorageAttributeCheck.isTypeDotNet(type2));\r\n }\r\n\r\n static isTypeBlob(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.BLOB || type === StorageAttribute.BLOB_VECTOR;\r\n }\r\n\r\n static isTypeAlpha(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.ALPHA || type === StorageAttribute.MEMO;\r\n }\r\n\r\n /// <summary>\r\n /// is the both types belong to the NUMERIC inner type\r\n /// </summary>\r\n static isTypeNumeric(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.DATE || type === StorageAttribute.TIME || type === StorageAttribute.NUMERIC;\r\n }\r\n\r\n /// <summary>\r\n /// is the both types belong to the LOGICAL inner type\r\n /// </summary>\r\n static isTypeLogical(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.BOOLEAN;\r\n }\r\n\r\n /// <summary>\r\n /// is the type is DOTNET\r\n /// </summary>\r\n static isTypeDotNet(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.DOTNET;\r\n }\r\n\r\n /// <summary>\r\n /// is the type ALPHA or UNICODE\r\n /// </summary>\r\n /// <param name = \"type\">data type</param>\r\n static IsTypeAlphaOrUnicode(type: StorageAttribute): boolean {\r\n return type === StorageAttribute.ALPHA || type === StorageAttribute.UNICODE;\r\n }\r\n\r\n /// <summary>\r\n /// is the inner type ALPHA or UNICODE\r\n /// </summary>\r\n /// <param name = \"type1\">data type</param>\r\n /// <param name = \"type2\">data type</param>\r\n static StorageFldAlphaOrUnicode(type1: StorageAttribute, type2: StorageAttribute): boolean {\r\n return StorageAttributeCheck.IsTypeAlphaOrUnicode(type1) && StorageAttributeCheck.IsTypeAlphaOrUnicode(type2);\r\n }\r\n\r\n static StorageFldAlphaUnicodeOrBlob(type1: StorageAttribute, type2: StorageAttribute): boolean {\r\n let type1AlphaOrUnicode: boolean = StorageAttributeCheck.IsTypeAlphaOrUnicode(type1);\r\n let type2AlphaOrUnicode: boolean = StorageAttributeCheck.IsTypeAlphaOrUnicode(type2);\r\n\r\n if (type1AlphaOrUnicode && type2AlphaOrUnicode) {\r\n return true;\r\n }\r\n else {\r\n let type1Blob: boolean = type1 === StorageAttribute.BLOB;\r\n let type2Blob: boolean = type2 === StorageAttribute.BLOB;\r\n return ((type1AlphaOrUnicode && type2Blob) || (type2AlphaOrUnicode && type1Blob));\r\n }\r\n\r\n }\r\n\r\n /// <summary>\r\n /// Check if types are compatible or not.\r\n /// </summary>\r\n /// <param name=\"sourceAttribute\"></param>\r\n /// <param name=\"destinationAttribute\"></param>\r\n /// <returns></returns>\r\n static IsTypeCompatibile(sourceAttribute: StorageAttribute, destinationAttribute: StorageAttribute): boolean {\r\n let isTypeCompatible: boolean = false;\r\n\r\n switch (sourceAttribute) {\r\n case StorageAttribute.ALPHA:\r\n case StorageAttribute.UNICODE:\r\n if (destinationAttribute === StorageAttribute.ALPHA || destinationAttribute === StorageAttribute.UNICODE ||\r\n destinationAttribute === StorageAttribute.DATE || destinationAttribute === StorageAttribute.TIME ||\r\n destinationAttribute === StorageAttribute.NUMERIC) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n\r\n case StorageAttribute.NUMERIC:\r\n if (destinationAttribute === StorageAttribute.NUMERIC || destinationAttribute === StorageAttribute.ALPHA ||\r\n destinationAttribute === StorageAttribute.UNICODE || destinationAttribute === StorageAttribute.BOOLEAN ||\r\n destinationAttribute === StorageAttribute.DATE || destinationAttribute === StorageAttribute.TIME) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n\r\n case StorageAttribute.BOOLEAN: {\r\n if (destinationAttribute === StorageAttribute.BOOLEAN || destinationAttribute === StorageAttribute.ALPHA ||\r\n destinationAttribute === StorageAttribute.UNICODE || destinationAttribute === StorageAttribute.NUMERIC) {\r\n isTypeCompatible = true;\r\n }\r\n }\r\n break;\r\n case StorageAttribute.DATE:\r\n case StorageAttribute.TIME:\r\n if (destinationAttribute === StorageAttribute.ALPHA || destinationAttribute === StorageAttribute.UNICODE ||\r\n destinationAttribute === StorageAttribute.NUMERIC || destinationAttribute === StorageAttribute.BOOLEAN ||\r\n destinationAttribute === StorageAttribute.DATE || destinationAttribute === StorageAttribute.TIME) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n case StorageAttribute.BLOB:\r\n if (destinationAttribute === StorageAttribute.BLOB) {\r\n isTypeCompatible = true;\r\n }\r\n break;\r\n }\r\n return isTypeCompatible;\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n","/// <summary>\r\n/// Helper class for synchronized execution.\r\n/// It works by creating a promise and then waiting for the promise to be completed\r\n/// </summary>\r\n// @dynamic\r\nexport class SyncExecutionHelper {\r\n\r\n private static _instance = null;\r\n\r\n /// <summary>\r\n /// get instance of SyncExecutionHelper\r\n /// </summary>\r\n static get Instance(): SyncExecutionHelper {\r\n if (SyncExecutionHelper._instance === null)\r\n SyncExecutionHelper._instance = new SyncExecutionHelper();\r\n\r\n return SyncExecutionHelper._instance;\r\n }\r\n\r\n // resolver is caller when promise is fullfilled\r\n private resolver: any = null;\r\n\r\n /// <summary>\r\n /// To wait, create a promise and add wait for it to complete\r\n /// </summary>\r\n public Wait(): any {\r\n // Logger.Instance.WriteDevToLog(\"SyncExecutionHelper.Wait()\");\r\n return new Promise((resolve) => {\r\n this.resolver = resolve;\r\n }).then();\r\n }\r\n\r\n /// <summary>\r\n /// To resume call the resolver\r\n /// </summary>\r\n public Pulse() {\r\n let resolver = this.resolver;\r\n if (resolver != null) {\r\n // Logger.Instance.WriteDevToLog(\"SyncExecutionHelper.Pulse()\");\r\n resolver();\r\n }\r\n }\r\n}\r\n","import {PICInterface} from \"./PICInterface\";\r\nimport {UtilStrByteMode} from \"./UtilStrByteMode\";\r\nimport {NNumber} from \"@magic-xpa/mscorelib\";\r\n\r\nconst MAX_GENGO: number = 6;\r\n\r\n\r\n\r\nexport class UtilDateJpn {\r\n /// <summary>\r\n /// JPN: Japanese date picture support\r\n /// Utility Class for Japanese date\r\n /// </summary>\r\n /// <author> Toshiro Nakayoshi (MSJ)\r\n /// </author>\r\n\r\n private static _instance: UtilDateJpn = null;\r\n\r\n private static JweekStr: string[] = [\r\n \" \", \"日曜日\", \"月曜日\", \"火曜日\", \"水曜日\", \"木曜日\", \"金曜日\", \"土曜日\"\r\n ];\r\n private static JmonthStr: string[] = [\r\n \"\", \" 1月\", \" 2月\", \" 3月\", \" 4月\", \" 5月\", \" 6月\", \" 7月\", \" 8月\", \" 9月\", \"10月\", \"11月\", \"12月\"\r\n ];\r\n private static GengoStr: string[][] = [\r\n [\"?\", \"?\", \"????\"],\r\n [\"M\", \"m\", \"明治\"],\r\n [\"T\", \"t\", \"大正\"],\r\n [\"S\", \"s\", \"昭和\"],\r\n [\"H\", \"h\", \"平成\"],\r\n [\"R\", \"r\", \"令和\"],\r\n [\"?\", \"?\", \"??\"],\r\n [\"?\", \"?\", \"??\"],\r\n [\"?\", \"?\", \"??\"]\r\n ];\r\n private static StartDayOfGengo: number[][] = [\r\n [ 1, 1, 1, 1],\r\n [1868, 9, 8, 252],\r\n [1912, 6, 30, 212],\r\n [1926, 12, 25, 359],\r\n [1989, 1, 8, 8],\r\n [2019, 5, 1, 121],\r\n [0, 0, 0, 0], // reserve for extra gengo x 3\r\n [0, 0, 0, 0],\r\n [0, 0, 0, 0]\r\n ];\r\n\r\n // ---- gengo (the name of an era) ---------------------------------------\r\n private MaxGengo: number = MAX_GENGO;\r\n\r\n static getInstance(): UtilDateJpn {\r\n if (UtilDateJpn._instance === null) {\r\n UtilDateJpn._instance = new UtilDateJpn();\r\n }\r\n return UtilDateJpn._instance;\r\n }\r\n\r\n static getArrayDow(): string[] {\r\n return UtilDateJpn.JweekStr;\r\n }\r\n\r\n static getStrDow(intIdx: number): string {\r\n let flag: boolean = intIdx < 0 || 7 < intIdx;\r\n if (flag) {\r\n intIdx = 0;\r\n }\r\n return UtilDateJpn.JweekStr[intIdx];\r\n }\r\n\r\n static convertStrMonth(month: number): string {\r\n let flag: boolean = month < 0 || 12 < month;\r\n if (flag) {\r\n month = 0;\r\n }\r\n return UtilDateJpn.JmonthStr[month];\r\n }\r\n\r\n /// <summary>\r\n /// Convert a year (A.D.) into Japanese year of an era\r\n /// This method is modeled after \"date_jpn_year_ofs\" function in\r\n /// \"\\mglocal\\jpn\\jpndate_jpn.cpp\".\r\n /// </summary>\r\n /// <param name = \"intYear:\">year (A.D.)\r\n /// </param>\r\n /// <param name = \"intDoy:\">DOY\r\n /// </param>\r\n /// <returns> year of an era.\r\n /// if either param is invalid, it returns 0.\r\n /// </returns>\r\n date_jpn_year_ofs(intYear: number, intDoy: number): number {\r\n let result: number;\r\n if (intYear < 1 || intDoy < 1) {\r\n result = 0;\r\n }\r\n else {\r\n let num: number = this.MaxGengo - 1;\r\n while (intYear < UtilDateJpn.StartDayOfGengo[num][0]) {\r\n num = num - 1;\r\n }\r\n if (intYear === UtilDateJpn.StartDayOfGengo[num][0] && intDoy < UtilDateJpn.StartDayOfGengo[num][3]) {\r\n num = num - 1;\r\n }\r\n result = intYear - UtilDateJpn.StartDayOfGengo[num][0] + 1;\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Convert a year (A.D.) into a name of a Japanese era\r\n /// This method is modeled after \"date_jpn_yr_2_a\" function in\r\n /// \"\\mglocal\\jpn\\jpndate_jpn.cpp\".\r\n /// </summary>\r\n /// <param name = \"intYear:\">year (A.D.)\r\n /// </param>\r\n /// <param name = \"intDoy:\">DOY\r\n /// </param>\r\n /// <param name = \"isKanji:\">return a full name (true) or the first letter (false).\r\n /// </param>\r\n /// <returns> name of an era\r\n /// if either param is invalid, it returns \"?\".\r\n /// </returns>\r\n date_jpn_yr_2_a(intYear: number, intDoy: number, isKanji: boolean): string {\r\n let num: number;\r\n if (intYear < 1 || intDoy < 1) {\r\n num = 0;\r\n }\r\n else {\r\n num = this.MaxGengo - 1;\r\n while (intYear < UtilDateJpn.StartDayOfGengo[num][0]) {\r\n num = num - 1;\r\n }\r\n if (intYear === UtilDateJpn.StartDayOfGengo[num][0] && intDoy < UtilDateJpn.StartDayOfGengo[num][3]) {\r\n num = num - 1;\r\n }\r\n }\r\n let result: string;\r\n if (isKanji) {\r\n result = UtilDateJpn.GengoStr[num][2];\r\n }\r\n else {\r\n result = UtilDateJpn.GengoStr[num][0];\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Get the first year (A.D.) of a specified Japanese era\r\n /// This method is modeled after \"date_jpn_yr_4_a\" function in\r\n /// \"\\mglocal\\jpn\\jpndate_jpn.cpp\".\r\n /// </summary>\r\n /// <param name = \"ucp_str:\">name of a specified Japanese era\r\n /// </param>\r\n /// <param name = \"s_len:\">length (the number of bytes) of ucp_str\r\n /// </param>\r\n /// <returns> year (A.D.)\r\n /// </returns>\r\n private date_jpn_yr_4_a(ucp_str: string, s_len: number): number {\r\n let i: number = this.MaxGengo - 1;\r\n if (s_len > 0) {\r\n if (s_len > 1) {\r\n ucp_str = UtilStrByteMode.leftB(ucp_str, s_len);\r\n }\r\n while (i > 0) {\r\n if (s_len === 1) {\r\n if (ucp_str === UtilDateJpn.GengoStr[i][0] || ucp_str === UtilDateJpn.GengoStr[i][1]) {\r\n break;\r\n }\r\n }\r\n else {\r\n if (s_len > 1) {\r\n let text: string = UtilStrByteMode.leftB(UtilDateJpn.GengoStr[i][2], s_len);\r\n if (ucp_str === text) {\r\n break;\r\n }\r\n }\r\n }\r\n i = i - 1;\r\n }\r\n }\r\n let result: number;\r\n if (i > 0) {\r\n result = UtilDateJpn.StartDayOfGengo[i][0];\r\n }\r\n else {\r\n const text: string = ucp_str.substr(0, 1);\r\n if (text === \" \" || text === \"?\") {\r\n result = 1;\r\n }\r\n else {\r\n result = 0;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Get the name of an era in date string\r\n /// </summary>\r\n /// <param name = \"strDate:\">string of input strDate\r\n /// </param>\r\n /// <param name = \"strPicture:\">string of picture\r\n /// </param>\r\n /// <param name = \"intStartPos:\">start position to search\r\n /// </param>\r\n /// <returns> name of an era\r\n /// </returns>\r\n private static getEraNameStrInDate(strDate: string, strPicture: string, intStartPos: number): string {\r\n let result: string = null;\r\n let intPicIdxOfs: number = 0;\r\n let i: number = intStartPos;\r\n while (i + intPicIdxOfs < strPicture.length) {\r\n let intLetters: number;\r\n if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY1) {\r\n intLetters = 1;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY2) {\r\n intLetters = 1;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i + intPicIdxOfs) === PICInterface.PIC_JY4) {\r\n intLetters = 2;\r\n } else {\r\n // If \"strDate\" contains DBCS, the position of \"strPicture\" has to skip next index.\r\n if (i < strDate.length) {\r\n if (!UtilStrByteMode.isHalfWidth(strDate[i]) && UtilStrByteMode.isHalfWidth(strPicture[i + intPicIdxOfs])) {\r\n intPicIdxOfs = intPicIdxOfs + 1;\r\n }\r\n }\r\n i = i + 1;\r\n continue;\r\n }\r\n }\r\n }\r\n result = strDate.substr(i, intLetters);\r\n break; // exit loop\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary>\r\n /// Get the length of the name of an era in picture\r\n /// </summary>\r\n /// <param name = \"strPicture\">string of picture\r\n /// </param>\r\n /// <param name = \"intStartPos\">start position to search\r\n /// </param>\r\n /// <returns> length of the name (the number of bytes)\r\n /// </returns>\r\n private static getEraNameLenInPicture(strPicture: string, intStartPos: number): number {\r\n let intLetters: number = 0;\r\n for (let i: number = intStartPos; i < strPicture.length; i = i + 1) {\r\n if (strPicture.charCodeAt(i) === PICInterface.PIC_JY1) {\r\n intLetters = 1;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i) === PICInterface.PIC_JY2) {\r\n intLetters = 2;\r\n }\r\n else {\r\n if (strPicture.charCodeAt(i) === PICInterface.PIC_JY4) {\r\n intLetters = 4;\r\n }\r\n }\r\n }\r\n if (intLetters > 0) {\r\n break;\r\n }\r\n }\r\n return intLetters;\r\n }\r\n\r\n /// <summary>\r\n /// Get the start year of an era in picture\r\n /// </summary>\r\n /// <param name = \"strDate:\">string of input strDate\r\n /// </param>\r\n /// <param name = \"strPicture:\">string of picture\r\n /// </param>\r\n /// <returns> start year of the era\r\n /// </returns>\r\n getStartYearOfEra(strDate: string, strPicture: string): number {\r\n let eraNameStrInDate: string = UtilDateJpn.getEraNameStrInDate(strDate, strPicture, 0);\r\n let result: number;\r\n if (eraNameStrInDate === null) {\r\n result = 0;\r\n }\r\n else {\r\n let eraNameLenInPicture: number = UtilDateJpn.getEraNameLenInPicture(strPicture, 0);\r\n if (eraNameLenInPicture === 0) {\r\n result = 0;\r\n }\r\n else {\r\n let intStartYearOfEra: number = this.date_jpn_yr_4_a(eraNameStrInDate, eraNameLenInPicture);\r\n result = intStartYearOfEra;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /// <summary> Add extra Gengo data into the Gengo tables</summary>\r\n /// <param name=\"strExtraGengo:\">\r\n /// </param>\r\n /// <returns>\r\n /// </returns>\r\n addExtraGengo(strExtraGengo: string): void {\r\n // e.g. strExtraGengo = \"2012/04/01,092,AaABCD;2013/04/01,091,WwWXYZ;\"\r\n let strGengoInfo: string[] = strExtraGengo.split(';');\r\n for (let i: number = 0; i < strGengoInfo.length; i = i + 1) {\r\n if (strGengoInfo[i].length > 0) {\r\n let strTok: string[] = strGengoInfo[i].split(',');\r\n if (strTok.length === 3 && strTok[0].length > 0 && strTok[1].length > 0 && strTok[2].length > 0) {\r\n let strDate: string[] = strTok[0].split('/');\r\n if (strDate.length === 3 && strDate[0].length > 0 && strDate[1].length > 0 && strDate[2].length > 0) {\r\n UtilDateJpn.GengoStr[MAX_GENGO + i][0] = strTok[2].substr(0, 1); // symbol name (upper case): A\r\n UtilDateJpn.GengoStr[MAX_GENGO + i][1] = strTok[2].substr(1, 1); // symbol name (lower case): a\r\n UtilDateJpn.GengoStr[MAX_GENGO + i][2] = strTok[2].substr(2); // gengo name: ABCD\r\n\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][0] = NNumber.Parse(strDate[0]); // start year: 2012\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][1] = NNumber.Parse(strDate[1]); // start month: 4\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][2] = NNumber.Parse(strDate[2]); // start day: 1\r\n UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][3] = NNumber.Parse(strTok[1]); // days since January 1: 92\r\n this.MaxGengo++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/// <summary>JPN: IME support\r\n/// Utility Class for Input Method Editor\r\n/// </summary>\r\n/// <author> Toshiro Nakayoshi (MSJ)\r\n/// </author>\r\n\r\n\r\nexport class UtilImeJpn {\r\n\r\n static IME_ZEN_HIRAGANA_ROMAN: number = 1;\r\n static IME_FORCE_OFF: number = 15; // if (ImeMode property == 0 and (picture has K0 or PIC_S)) or\r\n // (attribute is not alpha, unicode, nor blob), set IME_FORCE_OFF.\r\n static IME_DISABLE: number = 10; // to completely disable IME (even not allowing to change the mode)\r\n ImeAutoOff: boolean = false;\r\n StrImeRead: string = null;\r\n\r\n /// <summary> check if the IME mode is within valid range\r\n /// </summary>\r\n /// <param name=\"imeMode\">(IME mode in Magic)\r\n /// </param>\r\n /// <returns> bool\r\n /// </returns>\r\n isValid(imeMode: number): boolean {\r\n return (0 <= imeMode && imeMode <= 9) || imeMode === 15 || imeMode === 10;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","import {NString, List, ApplicationException, StringBuilder, NChar, NNumber} from \"@magic-xpa/mscorelib\";\r\nimport {XMLConstants} from \"../XMLConstants\";\r\n\r\n/// <summary> a helper class for the parsing of the XML</summary>\r\nexport class XmlParser {\r\n private static endOfNameChar: string[] = [' ', '>'];\r\n\r\n private _currIndex: number = 0;\r\n private _xmLdata: string = \"\";\r\n private _history: List<number | string> = new List(); // In order to allow recursive parsing we save prev data\r\n\r\n /// <summary>\r\n ///\r\n /// </summary>\r\n /// <param name=\"data\"></param>\r\n constructor(data: string = NString.Empty) {\r\n this.setXMLdata(data);\r\n this.setCurrIndex(0);\r\n }\r\n\r\n /// <summary> parse a string according to a set of delimiters and return the result in a vector</summary>\r\n /// <param name=\"str\">the String which need be parted </param>\r\n /// <param name=\"delimiter\">the delimiter which part different parts of str </param>\r\n /// <param name=\"isMagicXML\">is needed tokenizer working on Magic XML, so the \"=\" sign will be delited in the end of every first token </param>\r\n /// <returns> tmpVector dynamically array, which consist tokens in every element, every token is String </returns>\r\n static getTokens(str: string, delimiter: string, isMagicXML: boolean = true): List<string> {\r\n let tokensVec: List<string> = new List<string>();\r\n let token: string = null;\r\n\r\n if (isMagicXML) {\r\n str = str.trim();\r\n }\r\n\r\n let strTok: string[] = str.split(delimiter.charAt(0));\r\n\r\n for (let i: number = 0; i < strTok.length; i = i + 1) {\r\n // Split in C# creates a last empty string token if the source string ends with\r\n // the delimiter or if the string is empty (as opposed to Java that will ignore it)\r\n // therefore we have to break this loop if such case occurs.\r\n if (isMagicXML && i === strTok.length - 1 && strTok.length % 2 === 1) {\r\n break;\r\n }\r\n\r\n token = strTok[i];\r\n if (isMagicXML) {\r\n // the 1st token in the pair comes with \"=\", remove it.\r\n if (i % 2 === 0) {\r\n token = token.trim();\r\n if (token.endsWith(\"=\")) {\r\n token = token.substr(0, token.length - 1);\r\n }\r\n }\r\n // 2nd token in the pair can be an empty string, in that case set it to \" \".\r\n else if (token === \"\")\r\n token = \" \";\r\n }\r\n\r\n if (token === null)\r\n throw new ApplicationException(\"in ClientManager.Instance.XMLParser.getTokens() null token value\");\r\n\r\n tokensVec.push(token);\r\n }\r\n\r\n return tokensVec;\r\n }\r\n\r\n /// <summary>unscape from:\r\n /// {\"&amp;\",\\\\, \\q, \\o, \\l, \\g, \\e, \\\\r, \\\\n}, to:\r\n /// {\"&\", \\, \", ', <, >, =, \\r, \\n}\r\n /// <param name=\"str\">String to be converted</param>\r\n /// <returns>unescaped string</returns>\r\n public static unescape(str: string): string\r\n {\r\n let unescapedString: StringBuilder = new StringBuilder(str.length);\r\n\r\n for (let i: number = 0; i < str.length; i++) {\r\n if (str[i] !== '\\\\') {\r\n unescapedString.Append(str[i]);\r\n continue;\r\n }\r\n\r\n switch (str[++i]) {\r\n case 'q':\r\n unescapedString.Append('\\\"');\r\n break;\r\n case 'o':\r\n unescapedString.Append('\\'');\r\n break;\r\n case 'l':\r\n unescapedString.Append('<');\r\n break;\r\n case 'g':\r\n unescapedString.Append('>');\r\n break;\r\n case 'e':\r\n unescapedString.Append('=');\r\n break;\r\n case 'r':\r\n unescapedString.Append('\\r');\r\n break;\r\n case 'n':\r\n unescapedString.Append('\\n');\r\n break;\r\n default:\r\n unescapedString.Append(str[i]);\r\n break;\r\n }\r\n }\r\n return (unescapedString.ToString());\r\n }\r\n\r\n /// <summary>escape from:\r\n /// {\\, \", ', <, >, =, \\r, \\n}, to:\r\n /// {\\\\, \\q, \\0, \\l, \\g, \\e, \\\\r, \\\\n}\r\n /// <param name=\"str\">String to be converted</param>\r\n /// <returns>escaped string</returns>\r\n public static escape(str: string): string\r\n {\r\n let escapedString: StringBuilder = new StringBuilder(str.length * 2);\r\n\r\n for (let i: number = 0; i < str.length; i++) {\r\n switch (str[i]) {\r\n case '\\\\':\r\n escapedString.Append(\"\\\\\\\\\");\r\n break;\r\n case '\"':\r\n escapedString.Append(\"\\\\q\");\r\n break;\r\n case '\\'':\r\n escapedString.Append(\"\\\\o\");\r\n break;\r\n case '<':\r\n escapedString.Append(\"\\\\l\");\r\n break;\r\n case '>':\r\n escapedString.Append(\"\\\\g\");\r\n break;\r\n case '=':\r\n escapedString.Append(\"\\\\e\");\r\n break;\r\n case '\\r':\r\n escapedString.Append(\"\\r\");\r\n break;\r\n case '\\n':\r\n escapedString.Append(\"\\n\");\r\n break;\r\n default:\r\n escapedString.Append(str[i]);\r\n break;\r\n }\r\n }\r\n\r\n return (escapedString.ToString());\r\n }\r\n\r\n /// <summary>\r\n /// here we only need to take care of \"&\" so that Sax parser will be able to handle url\r\n /// </summary>\r\n /// <param name=\"str\"></param>\r\n /// <returns></returns>\r\n static escapeUrl(str: string): string {\r\n return NString.Replace(str, \"&\", \"&amp;\");\r\n }\r\n\r\n /// <summary>get next tag name from current index in XML string</summary>\r\n /// <returns> next tag name </returns>\r\n getNextTag(): string {\r\n if (this._xmLdata.length - this._currIndex <= 1) {\r\n return null; // end of XML string\r\n }\r\n\r\n for (let tmpIndx: number = this._currIndex + 1; tmpIndx < this._xmLdata.length; tmpIndx++) {\r\n let tmpChar: string = this._xmLdata[tmpIndx];\r\n\r\n // a letter starts an element and ends with \" \". \"/\" starts an element closing and ends with '>'.\r\n if (NChar.IsLetter(tmpChar) || tmpChar === '/') {\r\n let endOfTag: number = NString.IndexOfAny(this._xmLdata, XmlParser.endOfNameChar, tmpIndx, this._xmLdata.length - tmpIndx);\r\n\r\n if (endOfTag === -1)\r\n return null;\r\n else\r\n return this._xmLdata.substr(tmpIndx, endOfTag - tmpIndx);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /// <summary>Substring of XMLstring</summary>\r\n /// <returns> substring of XML string -from currIndex to endContext </returns>\r\n getXMLsubstring(endContext: number): string {\r\n return this._xmLdata.substr(this._currIndex, endContext - this._currIndex);\r\n }\r\n\r\n /// <summary>get current element value</summary>\r\n /// <returns> element's value </returns>\r\n GetCurrentElementValue(): string {\r\n this.setCurrIndex2EndOfTag();\r\n let endContext: number = this.getXMLdata().indexOf(XMLConstants.TAG_OPEN, this.getCurrIndex());\r\n // read value of xml element\r\n let value: string = this.getXMLsubstring(endContext);\r\n this.setCurrIndex2EndOfTag();\r\n return value;\r\n }\r\n\r\n /// <summary>set current index (on parsing time) to the end of current tag</summary>\r\n setCurrIndex2EndOfTag(): void {\r\n this._currIndex = this._xmLdata.indexOf(XMLConstants.TAG_CLOSE, this._currIndex) + 1;\r\n }\r\n\r\n /// <summary>get int from string at parsing time</summary>\r\n static getInt(valueStr: string): number {\r\n return NNumber.Parse(valueStr.trim());\r\n }\r\n\r\n /// <summary>get boolean from string at parsing time</summary>\r\n static getBoolean(valueStr: string): boolean {\r\n return valueStr[0] === '1';\r\n }\r\n\r\n /// <summary>get/set functions 4 XMLstring & currIndex, for parser</summary>\r\n getCurrIndex(): number {\r\n return this._currIndex;\r\n }\r\n\r\n getXMLdata(): string {\r\n return this._xmLdata;\r\n }\r\n\r\n add2CurrIndex(add: number): void {\r\n this._currIndex = this._currIndex + add;\r\n }\r\n\r\n setCurrIndex(index: number): void {\r\n this._currIndex = index;\r\n }\r\n\r\n setXMLdata(data: string): void {\r\n if (data !== null)\r\n this._xmLdata = data.trim();\r\n else {\r\n this._xmLdata = null;\r\n this.setCurrIndex(0);\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// prepare the parser to read from the newXmlString\r\n /// </summary>\r\n /// <param name=\"newXmlString\"></param>\r\n PrepareFormReadString(newXmlString: string): void {\r\n this.setXMLdata(newXmlString);\r\n this.setCurrIndex(0);\r\n }\r\n\r\n /// <summary> push the current parsing information into the history stack</summary>\r\n push(): void {\r\n this._history.push(this._currIndex);\r\n this._history.push(this._xmLdata);\r\n }\r\n\r\n /// <summary> restore the previous parsing information from the history stack</summary>\r\n pop(): void {\r\n let count: number = this._history.length;\r\n\r\n this._xmLdata = <string>this._history.get_Item(count - 1);\r\n this._currIndex = <number>this._history.get_Item(count - 2);\r\n\r\n this._history.SetSize(count - 2);\r\n }\r\n\r\n /// <summary>gets a table cache xml and set the xmlparser data and index accordingly</summary>\r\n loadTableCacheData(data: string): void {\r\n this.setXMLdata(data);\r\n this.setCurrIndex(0);\r\n }\r\n\r\n /// <summary>\r\n /// Reads the XML from the element at the current position until the end of\r\n /// the element, returning the contents as a string. This allows deferring the\r\n /// processing of an element until the time is right to do so.<br/>\r\n /// The returned string contains the element tag itself. For example:<br/>\r\n /// - Assuming that the current element is 'element1', with 2 'innerElement' elements, the\r\n /// resulting string will look like this:<br/>\r\n /// <element1>\r\n /// <innerelement/>\r\n /// <innerelement/>\r\n /// </element1>\r\n ///\r\n /// This makes the result valid for processing by this XML parser.\r\n /// </summary>\r\n /// <returns></returns>\r\n ReadToEndOfCurrentElement(): string {\r\n // Get the current tag according to the value of _currIndex.\r\n let currentTag: string = this.getNextTag();\r\n let currentTagIndex: number = this._xmLdata.indexOf(XMLConstants.TAG_OPEN + currentTag, this.getCurrIndex());\r\n\r\n // Find the end of the element's block in the XML.\r\n // find next open tag\r\n let nextOpenTagIndex: number = this._xmLdata.indexOf(XMLConstants.TAG_OPEN, currentTagIndex + 1);\r\n if (nextOpenTagIndex === -1)\r\n nextOpenTagIndex = this._xmLdata.length;\r\n\r\n // find a close tag BEFORE the next open tag\r\n let elementEndIndex: number = NString.IndexOf(this._xmLdata, XMLConstants.TAG_TERM, this.getCurrIndex(), nextOpenTagIndex - this.getCurrIndex());\r\n if (elementEndIndex === -1)\r\n // close tag was not found in range - we have inner elements, look for the full close tag\r\n elementEndIndex = this._xmLdata.indexOf(\"/\" + currentTag, this.getCurrIndex()) + currentTag.length + XMLConstants.TAG_TERM.length;\r\n else\r\n elementEndIndex = elementEndIndex + XMLConstants.TAG_TERM.length;\r\n\r\n // Copy the element data so it can be returned.\r\n let elementBlock: string = this.getXMLsubstring(elementEndIndex);\r\n\r\n // Move the parser to the end of the element block.\r\n this.setCurrIndex(elementEndIndex);\r\n\r\n return elementBlock;\r\n }\r\n\r\n ReadContentOfCurrentElement(): string {\r\n // Get the current tag according to the value of _currIndex.\r\n let currentTag: string = this.getNextTag();\r\n\r\n // Find the end of the element's block in the XML.\r\n let elementEndIndex: number = this._xmLdata.indexOf(\"</\" + currentTag + \">\", this.getCurrIndex());\r\n\r\n if (elementEndIndex === -1)\r\n // Can't find the end of the current element - either XML is faulty or the element is empty.\r\n return NString.Empty;\r\n\r\n // Move to the end of the opening tag\r\n this.setCurrIndex2EndOfTag();\r\n\r\n // Copy the content of the element (from the end of the opening tag to the beginning of the closing tag).\r\n let elementBlock: string = this.getXMLsubstring(elementEndIndex);\r\n\r\n // Move the parser to the end of the element block.\r\n this.setCurrIndex(elementEndIndex);\r\n this.setCurrIndex2EndOfTag();\r\n\r\n return elementBlock;\r\n }\r\n\r\n /// <summary>\r\n /// Generates a string that visualizes the XML parser state (e.g. for debug watch list.)<br/>\r\n /// The method will show the XML data, trimming it to 20 characters before the\r\n /// current position (_currIndex) and up to 50 characters after the current position.\r\n /// The current position itself will be marked with a marker that looks like:\r\n /// |-{current index}-| <br/>\r\n /// The marker will be placed immediately before _xmlData[_currIndex].\r\n /// </summary>\r\n /// <param name=\"headCharCount\">Number of characters to show before the current position marker.</param>\r\n /// <param name=\"tailCharCount\">Number of characters to show after the current position marker.</param>\r\n /// <returns></returns>\r\n toString(): string;\r\n toString(headCharCount: number, tailCharCount: number): string;\r\n toString(headCharCount?: number, tailCharCount?: number): string {\r\n if (arguments.length === 0) {\r\n return this.ToString_0();\r\n }\r\n return this.ToString_1(headCharCount, tailCharCount);\r\n }\r\n\r\n /// <summary>\r\n /// Generates a string that visualizes the XML parser state (e.g. for debug watch list.)<br/>\r\n /// The method will show the XML data, trimming it to 20 characters before the\r\n /// current position (_currIndex) and up to 50 characters after the current position.\r\n /// The current position itself will be marked with a marker that looks like:\r\n /// |-{current index}-| <br/>\r\n /// The marker will be placed immediately before _xmlData[_currIndex].\r\n /// </summary>\r\n /// <returns></returns>\r\n private ToString_0(): string {\r\n return this.toString(20, 50);\r\n }\r\n\r\n /// <summary>\r\n /// Generates a string that visualizes the XML parser state (e.g. for debug watch list.)<br/>\r\n /// The method will show the XML data, trimming it to headCharCount characters before the\r\n /// current position (_currIndex) and up to tailCharCount characters after the current position.\r\n /// The current position itself will be marked with a marker that looks like:\r\n /// |-{current index}-| <br/>\r\n /// The marker will be placed immediately before _xmlData[_currIndex].\r\n /// </summary>\r\n /// <param name=\"headCharCount\">Number of characters to show before the current position marker.</param>\r\n /// <param name=\"tailCharCount\">Number of characters to show after the current position marker.</param>\r\n /// <returns></returns>\r\n private ToString_1(headCharCount: number, tailCharCount: number): string {\r\n let markerPosition: number = Math.min(this._currIndex, this._xmLdata.length);\r\n let segmentStartIndex: number = Math.max(0, markerPosition - headCharCount);\r\n let segmentEndIndex: number = Math.min(this._xmLdata.length, markerPosition + tailCharCount);\r\n\r\n let headLength: number = markerPosition - segmentStartIndex;\r\n let tailLength: number = segmentEndIndex - markerPosition;\r\n\r\n let segment: StringBuilder = new StringBuilder();\r\n if (segmentStartIndex > 0)\r\n segment.Append(\"...\");\r\n\r\n if (headLength > 0)\r\n segment.Append(this._xmLdata, segmentStartIndex, headLength);\r\n\r\n segment.Append(\"|-{\").Append(this._currIndex).Append(\"}-|\");\r\n\r\n if (tailLength > 0)\r\n segment.Append(this._xmLdata, this._currIndex, tailLength);\r\n\r\n if (segmentEndIndex < this._xmLdata.length)\r\n segment.Append(\"...\");\r\n\r\n return segment.ToString();\r\n }\r\n\r\n SkipXMLElement(): void {\r\n let endContext: number = this.getXMLdata().indexOf(XMLConstants.TAG_TERM, this.getCurrIndex());\r\n if (endContext !== -1 && endContext < this.getXMLdata().length) {\r\n this.setCurrIndex2EndOfTag();\r\n }\r\n }\r\n}\r\n"],"names":[],"mappings":"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;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC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"}