{"version":3,"file":"js/kiosk-1703199b9d4b551fd1b4.js","mappings":"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ACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,MAkyBRiB,GAAiBjB,GA9xBH,CAChB,IAAK,QACL,IAAK,OACL,IAAK,OACL,I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rsE,IACJ+kP,GAAcsrD,GACdtrD,GAAck0F,GACdj5U,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAeqrD,GACfrrD,GAAei0F,GACfj5U,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GAClBopK,GAAWA,EAAUpzQ,IACrBszQ,GAAWA,EAAUtzQ,IACrBg8S,GAAWA,EAAUh8S,IAGzBhgD,EAAI,KAAK,MACTisL,GAAU,EACVk2E,GAAQh1C,KAKd,IAKI2vI,GAA+B,EAC/B4C,GAAa,gBAEbxC,GAAmB,GAGvB,SAASyC,GAAWv5D,EAAQx6B,EAASy6B,GACnC,IAAIu5D,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7/F,EACA8/F,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAz7C,EACAoD,EACAs4C,EACA1yV,EACAw2B,EACAm8T,EACAC,EACA9mP,EACA+mP,EACAC,EACAC,EACAj7D,EACAk7D,EACAj1H,EACAk1H,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACArX,GACAtgB,GACA43B,GACAC,GACAC,GACAC,GACAC,GACAryD,GACAsyD,GACAvtN,GACAwtN,GACAzT,GACA0T,GAEAC,GAQAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAnU,GACAoU,GACAjU,GACAkU,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAx7C,GACAy7C,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GAQAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAjX,GACAkX,GACAC,GACAC,GACAC,GACAC,GACAC,GACArX,GACAsX,GACAC,GACA9X,GACA+X,GACAC,GACAjY,GACAkY,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA9HAC,GAA6B,GAoD7BC,GAAwB,GA2E5BvpG,GAAoB2jC,EAAQvD,IAAsB,SAAU4gB,GAC1D,OAAOpd,EAAa,IAAKkjE,GAAwB9lD,MAEnDrd,EAAO1jC,GAAGC,WAAW7vQ,MAAK,WACxB,OAAOi5W,QAET3lE,EAAO1jC,GAAGC,WAAW7vQ,MAAK,WACxB,OAAOk5W,QAET,IAAIC,GAAa3kH,KACbviP,GAAWyhQ,KACX0lG,GAAmBtgG,EAAQj4F,MAC3BiyB,QAA6B,IAArBsmK,QAA8B19W,EAAY09W,GAClDC,GAAmBvgG,EAAQ26C,OAC3B6lD,QAAkC,IAArBD,QAA8B39W,EAAY29W,GACvD5/F,GAASX,EAAQW,OACjB8/F,GAAmBzgG,EAAQ95K,OAC3BA,QAA8B,IAArBu6Q,QAA8B79W,EAAY69W,GACnDC,GAAe1gG,EAAQ73Q,GACvBA,QAAsB,IAAjBu4W,QAA0B99W,EAAY89W,GAC3CC,GAAgB3gG,EAAQv/E,KACxBA,QAAyB,IAAlBkgL,QAA2B/9W,EAAY+9W,GAC9CC,GAAiB5gG,EAAQ/gR,MACzBA,QAA2B,IAAnB2hX,QAA4Bh+W,EAAYg+W,GAChDC,GAAsB7gG,EAAQjoQ,WAC9BA,QAAqC,IAAxB8oW,GAAiC,OAASA,GACvDC,GAAqB9gG,EAAQzoP,SAC7BA,QAAkC,IAAvBupV,IAAwCA,GACnDC,GAAwB/gG,EAAQghG,eAChCA,QAA2C,IAA1BD,IAA2CA,GAC5DE,GAAsBjhG,EAAQkhG,WAC9BA,QAAqC,IAAxBD,IAAyCA,GACtDE,GAAwBnhG,EAAQohG,mBAChCA,QAA+C,IAA1BD,GAAmC,IAAOA,GAC/DE,GAAwBrhG,EAAQshG,wBAChCA,QAAoD,IAA1BD,QAAmCz+W,EAAYy+W,GACzEE,GAAyBvhG,EAAQwhG,2BACjCA,QAAwD,IAA3BD,QAAoC3+W,EAAY2+W,GAC7EE,GAAwBzhG,EAAQ0hG,kBAChCA,QAA8C,IAA1BD,GAAmC,EAAIA,GAC3DE,GAAwB3hG,EAAQ4hG,gBAChCA,QAA4C,IAA1BD,GAAmC,IAAOA,GAC5DE,GAAwB7hG,EAAQ8hG,qBAChCA,QAAiD,IAA1BD,GAAmC,GAAKA,GAC/DE,GAAsB/hG,EAAQgiG,WAC9BA,QAAqC,IAAxBD,GAAiC,WAChD,OAAOriX,QAAQC,SAAQ,IACrBoiX,GACAE,GAAwBjiG,EAAQkiG,iBAChCA,QAA6C,IAA1BD,GAAmC,WACxD,OAAOviX,QAAQC,SAAQ,IACrBsiX,GACAE,GAAwBniG,EAAQoiG,iBAChCA,QAA6C,IAA1BD,GAAmCn8H,GAAcm8H,GACpEE,GAAwBriG,EAAQsiG,kBAChCA,QAA8C,IAA1BD,GAAmCr8H,GAAcq8H,GACrEE,GAAwBviG,EAAQwiG,mBAChCA,QAA+C,IAA1BD,GAAmCv8H,GAAcu8H,GACtEE,GAAwBziG,EAAQ0iG,2BAChCA,QAAuD,IAA1BD,GAAmCz8H,GAAcy8H,GAC9EE,GAAwB3iG,EAAQ4iG,mBAChCA,QAA+C,IAA1BD,IAA0CA,GAC/DE,GAAyB7iG,EAAQ8iG,mBACjCA,QAAgD,IAA3BD,IAA2CA,GAChEE,GAAwB/iG,EAAQgjG,sBAChCA,QAAkD,IAA1BD,IAA0CA,GAClEE,GAAwBjjG,EAAQkjG,cAChCA,QAA0C,IAA1BD,IAA0CA,GAC1DE,GAAuBnjG,EAAQojG,YAC/BA,QAAuC,IAAzBD,IAAyCA,GACvDE,GAAyBrjG,EAAQsjG,kBACjCA,QAA+C,IAA3BD,IAA4CA,GAChEE,GAAwBvjG,EAAQwjG,gBAChCA,QAA4C,IAA1BD,IAA2CA,GAC7DE,GAAwBzjG,EAAQ0jG,iBAChCA,QAA6C,IAA1BD,IAA2CA,GAC9DE,GAAwB3jG,EAAQ4jG,kBAChCA,QAA8C,IAA1BD,IAA2CA,GAC/DE,GAAwB7jG,EAAQ8jG,uBAChCA,QAAmD,IAA1BD,IAA2CA,GACpEE,GAAwB/jG,EAAQgkG,0BAChCA,QAAsD,IAA1BD,GAAmC,OAASA,GACxEE,GAAwBjkG,EAAQkkG,gCAChCA,QAA4D,IAA1BD,GAAmC,OAASA,GAC9EE,GAAwBnkG,EAAQokG,8BAChCA,QAA0D,IAA1BD,GAAmC,SAAWA,GAC9EE,GAAyBrkG,EAAQskG,gCACjCA,QAA6D,IAA3BD,GAAoC,MAAQA,GAC9EE,GAAyBvkG,EAAQwkG,sCACjCA,QAAmE,IAA3BD,GAAoC,SAAWA,GACvFE,GAAyBzkG,EAAQ0kG,oCACjCA,QAAiE,IAA3BD,GAAoC,SAAWA,GACrFE,GAAkB3kG,EAAQ5+Q,OAC1BA,QAA6B,IAApBujX,QAA6B/hX,EAAY+hX,GAClDC,GAAwB5kG,EAAQ6kG,yBAChCA,QAAqD,IAA1BD,GAAmC,SAAUr6S,EAAQ27B,GAClF,IAAIpkF,EAAQyoD,EAAOzoD,MAEnB,IAAKA,IAAUA,EAAMs0H,KACnB,OAAOlwC,EAAO4+Q,oBAGhB,GAAIhjW,EAAMla,MAAO,CACf,GAAyB,oBAArBka,EAAMla,MAAMc,KACd,OAAOw9F,EAAO6+Q,uBAGhB,GAAyB,oBAArBjjW,EAAMla,MAAMc,KAA4B,CAC1C,IAAIyqG,EAAU/rG,MAAMiD,QAAQ67F,EAAO8+Q,aAAoD,IAArCljW,EAAMla,MAAMy9B,SAASsrP,YAAoBzqL,EAAO8+Q,YAAY,GAAK9+Q,EAAO8+Q,YAAY,GAAK9+Q,EAAO8+Q,YAClJ,OAAOz5E,GAAcrlM,EAAO++Q,2BAA4B,CACtD9xQ,QAASA,GACR,IAAK,KAGV,OAAOjN,EAAOg/Q,qBAGhB,MAAmB,mBAAfpjW,EAAMs0H,KACDlwC,EAAOi/Q,uBAGTj/Q,EAAOk/Q,qBACZR,GACAS,GAAyBrlG,EAAQslG,4BACjCA,QAAyD,IAA3BD,GAAoC,SAAU96S,EAAQ27B,GACtF,IAAIpkF,EAAQyoD,EAAOzoD,MAEnB,GAAKA,GAAUA,EAAMs0H,KAIrB,MAAmB,UAAft0H,EAAMs0H,KACJt0H,EAAMla,MACDs+F,EAAOq/Q,uBAGTr/Q,EAAOs/Q,sBAGZ1jW,EAAMla,MACDs+F,EAAOu/Q,wBAGTv/Q,EAAOw/Q,wBACZL,GACAM,GAAyB3lG,EAAQ4lG,yBACjCA,QAAsD,IAA3BD,GAAoC,SAAUp7S,EAAQ27B,GAEnF,MAAO,CACL2/Q,SAFat7S,EAAOs7S,SAED14W,KAAK,QAExBw4W,GACAG,GAAwB9lG,EAAQ+lG,cAChCA,QAA0C,IAA1BD,QAAmCljX,EAAYkjX,GAC/DE,GAAwBhmG,EAAQimG,sBAChCA,QAAkD,IAA1BD,GAAmC,KAAOA,GAClEE,GAAyBlmG,EAAQmmG,uBACjCA,QAAoD,IAA3BD,QAAoCtjX,EAAYsjX,GACzEE,GAAyBpmG,EAAQqmG,2BACjCA,QAAwD,IAA3BD,QAAoCxjX,EAAYwjX,GAC7EE,GAAyBtmG,EAAQumG,6BACjCA,QAA0D,IAA3BD,QAAoC1jX,EAAY0jX,GAC/EE,GAAyBxmG,EAAQymG,kCACjCA,QAA+D,IAA3BD,QAAoC5jX,EAAY4jX,GACpFE,GAAyB1mG,EAAQ2mG,4BACjCA,QAAyD,IAA3BD,IAA4CA,GAC1EE,GAAqB5mG,EAAQ6mG,UAC7BA,QAAmC,IAAvBD,IAAuCA,GACnDE,GAAwB9mG,EAAQ+mG,8BAChCA,QAA0D,IAA1BD,GAAmC,SAAUxtW,EAAUnN,GACzF,OAAOmN,IApyHLtF,GADAgzW,EAAU,GAqyHqB76W,EAAK,GAryHF,IACpB,IAGS,IAFjB66W,EAAQ,GAEEhzW,IALD,IACfgzW,EACAhzW,GAqyHA8yW,GACAG,GAAsBjnG,EAAQwmF,UAC9BA,QAAoC,IAAxBygB,IAAwCA,GACpDC,GAAuBlnG,EAAQ0mF,WAC/BA,QAAsC,IAAzBwgB,IAAyCA,GACtDC,GAAyBnnG,EAAQ4mF,mBACjCA,QAAgD,IAA3BugB,IAA2CA,GAChEC,GAAyBpnG,EAAQ8mF,gBACjCA,QAA6C,IAA3BsgB,QAAoCxkX,EAAYwkX,GAClEC,GAAyBrnG,EAAQgnF,eACjCA,QAA4C,IAA3BqgB,QAAoCzkX,EAAYykX,GACjEC,GAAwBtnG,EAAQunG,kBAChCA,QAA8C,IAA1BD,IAA2CA,GAC/DE,GAAyBxnG,EAAQknF,eACjCA,QAA4C,IAA3BsgB,QAAoC5kX,EAAY4kX,GACjEC,GAAyBznG,EAAQonF,qBACjCA,QAAkD,IAA3BqgB,QAAoC7kX,EAAY6kX,GACvEC,GAAe1nG,EAAQypF,IACvBA,QAAuB,IAAjBie,GAA0B,KAAOA,GACvCC,GAAwB3nG,EAAQ4nG,kBAChCA,QAA8C,IAA1BD,GAAmC,CAAC,IAAM,GAAK,EAAG,KAAM,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAMA,GACtGE,GAAyB7nG,EAAQwnF,eACjCA,QAA4C,IAA3BqgB,GAAoC,IAAOA,GAC5DC,GAAyB9nG,EAAQ0nF,iBACjCA,QAA8C,IAA3BogB,GAAoC,GAAMA,GAC7DC,GAAyB/nG,EAAQ4nF,sBACjCA,QAAmD,IAA3BmgB,GAAoC,EAAIA,GAChEC,GAAsBhoG,EAAQmoF,UAC9BA,QAAoC,IAAxB6f,GAAiC,KAAOA,GACpDC,GAAwBjoG,EAAQq5E,mBAChCA,QAA+C,IAA1B4uB,IAA2CA,GAChEtsB,GAA0BjxO,GAAS2uO,IACvC1qK,GAAW,qBAAsBgtK,IAEjC,IAkBIusB,GACAC,GAnBAC,GAAyB/jW,MAAe,mBAAoBxU,OAC5Dw4W,GAAoB39P,GAAS,UAGjC,SAAS49P,GAA2Bl8W,GAClC,IAAIm8W,EAAYn8W,EAAEjC,OAId2X,EAHSymW,EAAUr0W,OACXq0W,EAAUvyW,MACOnG,OAAO24W,OAAOt0W,OAxcF,IAycoB,UAAY,SACzEm0W,GAAkB1hW,IAAI7E,GARxB6sK,GAAW,oBAAqB05L,IAW5BD,IACFv4W,OAAOm9M,eAAe3pN,iBAAiB,SAAUilX,IAOnD,IAyCIG,GAAwBzoG,EAAQ0oG,gBAChCA,QAA4C,IAA1BD,QAAmC7lX,EAAY6lX,GACjEE,GAAwB3oG,EAAQ4oG,cAChCA,QAA0C,IAA1BD,GAAmC,CACrDhmX,KAAM,WACJ,OAAO,GAET0E,MAAO,SAAe2F,GACpB,OAAOA,IAEP27W,GACAE,GAAwB7oG,EAAQ8oG,iBAChCA,QAA6C,IAA1BD,QAAmCjmX,EAAYimX,GAClEE,GAAwB/oG,EAAQgpG,cAChCA,QAA0C,IAA1BD,GAAmC,GAAKA,GACxD/qW,GAAMqiW,GAAWriW,IACjBirW,GAAkB,GAClBxxW,GAAOuoQ,EAAQvoQ,KAEfyxW,GAAgB,WAClBzP,GAAcrqW,aAAa,cAAe,QAC1C+5W,GAAcxiW,IAAI,KAGhByiW,GAAiB1+P,IAAS,GAC9BmsJ,GAAoB2jC,EAAQ4uE,IAAgB,SAAUtjX,GACpD,OAAO20S,EAAa,IAAKigE,GAAkB50W,MAE7C,IAAIujX,GAAuB3+P,QAAS9nH,GACpCi0Q,GAAoB2jC,EAAQ6uE,IAAsB,SAAUvjX,GAC1D,OAAO20S,EAAa,IAAKmkE,GAAwB94W,MAEnD,IAAIwjX,GAAmB5+P,GAAS,GAChCmsJ,GAAoB2jC,EAAQ8uE,IAAkB,SAAUxjX,GACtD,OAAO20S,EAAa,IAAKgkE,GAAoB34W,MAE/C,IAWIyjX,GACAC,GA4BAC,GACAC,GAzCAC,GAAiBj/P,IAAS,GAM1Bk/P,GAAkB,SAAyBx9W,GAC7Cu9W,GAAehjW,IAAe,SAAXva,EAAEqE,MACrB4vW,GAAWzkH,IAAIxvP,EAAEqE,OA+Bfo5W,IAAoB,EAIpBzxT,GAAO,WACT,GAAK87S,GAAqB4V,KAA1B,CAEAJ,GAA0BlV,EAE1B18F,GAAgBuxG,GAAsBzK,QAAwBh8W,EAAWg8W,IAEzE,IAAIpnT,EAAQiiT,GAEZoQ,IAAoB,EAEpB,IAAIE,EAAY,EAAI,GAChBzwW,EAAW40B,MACUx6B,KAAKmS,IAAIyuV,EAAgBh7V,EAAWmlW,GAAoBnlW,IAAaywW,GACzEzwW,EAAWA,EAAWmlW,IAAqBsL,IAG9DjyG,GAAgBwxG,GAAkB7K,GAAoBpK,EAAgBoK,IAIxEuL,GAAevL,GAAoBvwU,MAEnCspB,EAAMY,OAAOj4C,OAAM,eAGnB,IAAIopW,EAAWU,MAEJ,SAAS99G,IAElB,IAAI29G,KAAJ,CAEAL,GAAsBh2T,sBAAsB04M,GAI5C,IAAIvtM,EAAcqrT,KAEdrrT,EAAc2qT,GAAY,IAC5B3qT,EAAc2qT,EAAW,KAI3BA,EAAW3qT,EAEXk5M,GAAgBwxG,GAAkB7K,GAAoB7/S,EAAc1wB,KAAeuwU,IAE/EiL,IAA2B,GAAKjL,IAAqBnK,IACvDx8F,GAAgBwxG,GAAkB7K,GAAoBnK,EAAemK,IACrE7+S,MAIE40S,GAAyB,IAAGqV,IAAoB,GAEhDA,KAAgD,IAA3BrV,GAAgCC,EAAqB,IAC5E38F,GAAgBwxG,GAAkB7K,GAAoBrK,EAAUK,GAAoB,GAAIgK,IACxFuL,GAAevL,GAAoBvwU,OAIrC4pO,GAAgBoyG,GAAkB7L,GAAoBI,GAAoBvwU,KAAemwU,IAEzF6K,MAIF/8G,KAGEvsM,GAAQ,WACLs0S,IAAoB4V,OACzBhyG,GAAgBuxG,GAAsBzK,QAAwBh8W,EAAWg8W,IACzE8K,QAA0B9mX,EAC1B62W,GAAc75S,QACdlM,qBAAqB+1T,IACrBP,OAGEY,GAAW,WACb,OAAOrQ,IAAiBA,GAAct6D,QAGpCgrE,GAAkB,WACpB,GAAKjW,EACL,OAAO4V,KAAa1xT,KAASwH,MAG3BwqT,GAAO,WACJlW,IACOuF,GACN/5S,OAAQ,IAGZ2qT,GAAS,WACNnW,IACOuF,GACN/5S,OAAQ,IAGZ4qT,GAAa,WACVpW,GACLp8F,GAAgByyG,GAAS5L,IAAYA,GAAUA,KAG7C4L,GAAU7/P,GAASm8P,IACvBhwG,GAAoB2jC,EAAQ+vE,IAAS,SAAUzkX,GAC7C,OAAO20S,EAAa,IAAKkkE,GAAW74W,MAGtC,IAAIooC,GAAc,WAChB,GAAKgmU,EACL,OAAOuF,GAAcngW,UAGnB2wW,GAAiB,WACnB,GAAK/V,EAEL,OADYuF,GACC76S,aAGXorT,GAAiB,SAAwBx9R,GACtC0nR,IACLxR,GAAS+W,GAAejtR,GACxBsrL,GAAgBwxG,GAAkB7K,GAAoBjyR,EAAOkyR,GAAgBD,MAU3E0K,GAAgBz+P,GAAS,IAC7BmsJ,GAAoB2jC,EAAQ2uE,IAAe,SAAUrjX,GACnD,OAAO20S,EAAa,GAAIogE,GAAiB/0W,MAE3C6oL,GAAW,gBAAiBw6L,IAC5B,IAAIqB,GAA4B9/P,GAASo3P,IACzCjrG,GAAoB2jC,EAAQgwE,IAA2B,SAAU1kX,GAC/D,OAAO20S,EAAa,IAAK8jE,GAA6Bz4W,MAExD6oL,GAAW,uBAAwB67L,IACnC,IAAIC,GAA8B,GAE9BC,GAAqB1kW,KACzB6wP,GAAoB2jC,EAAQkwE,IAAoB,SAAU5kX,GACxD,OAAO20S,EAAa,IAAKylE,GAAsBp6W,MAGjD,IAz0JI+uR,GACA/gR,GACA62W,GAu0JAC,GAAmB32E,MAA8B,KACjD42E,GAAiBzhI,GAAWwhI,GAAkBA,IAC9CjvI,GAAoBi6C,KA4BpBk1F,GAAwB9qG,EAAQ+qG,uBAChCA,QAAmD,IAA1BD,GAAmC,SAAU5xW,GACxE,OAAOlN,GAASkN,GA5BH,SAAkBA,GAC/B,OAAOxZ,QAAQC,QAAQ2+W,IAAgBA,GAAaplW,EAAK,CACvDo4O,aAAc,WACZ5tP,MAAK,SAAU6tP,GAEjB,IAAoB,IAAhBA,EAAJ,CAEA,IAAIy5H,EAAUz5H,GAAe,GACzBvxP,EAAUgrX,EAAQhrX,QAClBgxP,EAAcg6H,EAAQh6H,YAG1B,OAAOxhO,MAAMtW,EAAK,CAChBlZ,QAASA,EACTgxP,YAAaA,IACZttP,MAAK,SAAU66B,GAChB,GAAmB,MAAfA,EAAIn9B,OAAgB,KAAM,GAAGkG,OAAOi3B,EAAIn9B,OAAQ,MAAMkG,OAAOi3B,EAAIl9B,WAAY,KACjF,OAAOk9B,EAAI+C,UACV59B,MAAK,SAAU49B,GAChB,OAAOoiU,GAAkBpiU,EAAMsnV,GAAejtI,OAC7Cj4O,MAAK,SAAUo9D,GAChB,OAAOijS,GAAiBjjS,EAAW8zS,UAQvCqW,CAAS/xW,GAAO,GAAUA,GAC1B,IAAIxZ,SAAQ,SAAUC,GACpB,OAAOA,EAAQohP,GAAkB7nO,OAEnC1N,GAAO0N,IAAQ3N,GAAO2N,GAAOwqV,GAAkBxqV,EAAK0vW,GAAejtI,IAAmBj4O,MAAK,SAAUo9D,GACnG,OAAOijS,GAAiBjjS,EAAW8zS,WAChChyW,GACHkoX,GACAI,GAn0JG,CACL51R,OA1BW,SAAgB61R,GAW3B,GAVAr3W,GAAQq3W,EAEJt2F,KAEFA,GAAO/xR,SAAQ,SAAU4zQ,GACvB,OAAOA,OAETme,QAASjyR,IAGNuoX,EAIH,OAFAR,GAAkB,KAAES,aAAQxoX,QAC5B+nX,GAAuB,UAAES,aAAQxoX,GAInCiyR,GAAS+tE,GAAgBxiV,KAAI,SAAU5V,GACrC,OAAO2gX,EAASxqG,OAAOn2Q,GAAMo5H,WAAU,SAAU99H,GAC/C6kX,GAAYngX,GAAM4gX,QAAQtlX,UAO9B66Q,OA/CEgqG,GAAc/nB,GAAgBzkV,QAAO,SAAUo4B,EAAMC,GAiBvD,OAhBAD,EAAKC,IAzBH4pO,EAAc,GACX,CACLz5P,IA8BA,SAAU7gB,GAEHgO,IACLA,GAAM6sQ,OAAOnqO,GAAM7vB,IAAI7gB,IAhCzBwvF,OAkCA,SAAUz7E,GACH/F,IACLA,GAAM6sQ,OAAOnqO,GAAM8+C,OAAOz7E,IAnC5BuxW,QAAS,SAAiBtlX,GACxBs6Q,EAAYt9Q,SAAQ,SAAU+W,GAC5B,OAAOA,EAAG/T,OAGd89H,UAAW,SAAmB/pH,GAG5B,OAFAumQ,EAAYl5Q,KAAK2S,GAgBnB,SAAUA,GAER,IAAK/F,GAAO,OAAO+F,IACP/F,GAAM6sQ,OAAOnqO,GAAMotF,UAAU/pH,EACzC68P,GAnBA9vP,CAAI/M,GACG,WACLumQ,EAAcA,EAAYv1Q,QAAO,SAAUkO,GACzC,OAAOA,IAASc,SA2Bf08B,EA1CC,IACN6pO,IA0CD,IA8BD/2P,QAAS,WACHwrQ,IAAQA,GAAO/xR,SAAQ,SAAU4zQ,GACnC,OAAOA,SA+zJT20G,GAAqBH,GAAWvqG,OAChC2qG,GAAYD,GAAmB3tW,KAC/BqwO,GAAYs9H,GAAmBztW,KAC/B2tW,GAAgBF,GAAmB/xW,SACnC4wW,GAAmBmB,GAAmBzsT,YACtC4sT,GAAYH,GAAmBl/W,KAC/Bs/W,GAAcJ,GAAmBK,OACjCC,GAAmBN,GAAmB16F,YACtCi7F,GAAmBP,GAAmBQ,YACtClgH,GAAiB0/G,GAAmBzhG,UACpCkiG,GAAoBT,GAAmBp5F,aACvCgC,GAAuBo3F,GAAmB1/F,gBAC1CuI,GAAwBm3F,GAAmBvhG,iBAC3CiiG,GAAgBV,GAAmBnzT,KACnCs8N,GAAmB62F,GAAmBtlG,YACtCimG,GAAmBX,GAAmBrlG,YACtCimG,GAAiBZ,GAAmBa,UACpCC,GAAsBd,GAAmBthG,WACzCqiG,GAA2Bf,GAAmBx+F,oBAC9C7+B,GAAgBq9H,GAAmBz9H,SACnCy8B,GAAqBghG,GAAmBxhG,cACxCwiG,GAAkBhB,GAAmB9xF,WACrC+yF,GAAajB,GAAmB7iI,MAChC+jI,GAAalB,GAAmB5iI,MAChCy4C,GAAuBmqF,GAAmBhvP,gBAC1CmwP,GAA0BnB,GAAmBpjH,gBAC7CwkH,GAAmBpB,GAAmBzxH,YACtC8yH,GAAyBrB,GAAmBxxH,kBAC5C8yH,GAAatB,GAAmBjxH,MAChCwyH,GAAgBvB,GAAmB/wH,SACnCuyH,GAAaxB,GAAmBhxH,MAChCyyH,GAAkBzB,GAAmBr8F,WACrC+9F,GAAkB1B,GAAmBt8F,WACrCi+F,GAAoB3B,GAAmBx8F,aACvCo+F,GAAiB5B,GAAmBv8F,UACpCo+F,GAAa7B,GAAmBhzF,MAChC80F,GAAiB9B,GAAmB3rN,UACpC67E,GAAa8vI,GAAmBvpW,MACpC+0P,GAAoB2jC,EAAQ8wE,IAAW,SAAUxlX,GAC/C,OAAO20S,EAAa,IAAKuhE,GAAal2W,MAExC+wQ,GAAoB2jC,EAAQzsD,IAAW,SAAUjoP,GAC/C,OAAO20S,EAAa,IAAKm/D,GAAa9zW,MAExC+wQ,GAAoB2jC,EAAQ+wE,IAAe,SAAUzlX,GACnD,OAAO20S,EAAa,IAAKikE,GAAiB54W,MAE5C+wQ,GAAoB2jC,EAAQ0vE,IAAkB,SAAUpkX,GACtD,OAAO20S,EAAa,IAAK4jE,GAAoBv4W,MAE/C+wQ,GAAoB2jC,EAAQgxE,IAAW,SAAU1lX,GAC/C,OAAO20S,EAAa,IAAK2jE,GAAat4W,MAExC+wQ,GAAoB2jC,EAAQixE,IAAa,SAAU3lX,GACjD,OAAO20S,EAAa,IAAK+jE,GAAe14W,MAE1C+wQ,GAAoB2jC,EAAQoxE,IAAkB,SAAU9lX,GACtD,OAAO20S,EAAa,IAAKokE,GAAoB/4W,MAE/C+wQ,GAAoB2jC,EAAQ7uC,IAAgB,SAAU7lQ,GACpD,OAAO20S,EAAa,IAAK6gE,GAAkBx1W,MAE7C+wQ,GAAoB2jC,EAAQsxE,IAAmB,SAAUhmX,GACvD,OAAO20S,EAAa,IAAK4gE,GAAqBv1W,MAEhD+wQ,GAAoB2jC,EAAQvmB,IAAsB,SAAUnuR,GAC1D,OAAO20S,EAAa,IAAKojE,GAAwB/3W,MAEnD+wQ,GAAoB2jC,EAAQtmB,IAAuB,SAAUpuR,GAC3D,OAAO20S,EAAa,GAAIwkE,GAAyBn5W,MAEnD+wQ,GAAoB2jC,EAAQuxE,IAAe,SAAUjmX,GACnD,OAAO20S,EAAa,IAAKwiE,GAAiBn3W,MAE5C+wQ,GAAoB2jC,EAAQxsD,IAAe,SAAUloP,GACnD,OAAO20S,EAAa,IAAKs/D,GAAiBj0W,MAE5C+wQ,GAAoB2jC,EAAQ8xE,IAAY,SAAUxmX,GAChD,OAAO20S,EAAa,IAAKq/D,GAAch0W,MAEzC+wQ,GAAoB2jC,EAAQ+xE,IAAY,SAAUzmX,GAChD,OAAO20S,EAAa,IAAKo/D,GAAc/zW,MAEzC+wQ,GAAoB2jC,EAAQtZ,IAAsB,SAAUp7R,GAC1D,OAAO20S,EAAa,IAAK8/D,GAAwBz0W,MAEnD+wQ,GAAoB2jC,EAAQsyE,IAAiB,SAAUhnX,GACrD,OAAO20S,EAAa,GAAIk/D,GAAmB7zW,MAE7C+wQ,GAAoB2jC,EAAQuyE,IAAiB,SAAUjnX,GACrD,OAAO20S,EAAa,GAAIu/D,GAAmBl0W,MAE7C+wQ,GAAoB2jC,EAAQwyE,IAAmB,SAAUlnX,GACvD,OAAO20S,EAAa,IAAK2/D,GAAqBt0W,MAEhD+wQ,GAAoB2jC,EAAQyyE,IAAgB,SAAUnnX,GACpD,OAAO20S,EAAa,IAAK4/D,GAAkBv0W,MAE7C+wQ,GAAoB2jC,EAAQ0yE,IAAY,SAAUpnX,GAChD,OAAO20S,EAAa,GAAIi/D,GAAc5zW,MAExC+wQ,GAAoB2jC,EAAQ2yE,IAAgB,SAAUrnX,GACpD,OAAO20S,EAAa,GAAIwjE,GAAkBn4W,MAE5C+wQ,GAAoB2jC,EAAQj/D,IAAY,SAAUz1O,GAChD,OAAO20S,EAAa,IAAK0hE,GAAcr2W,MAGzC6oL,GAAW,aAAc,CACvBy+L,qBAAsB9mC,KAGxB33J,GAAW,kBAAmB,CAC5Bv2H,KAAMA,GACNwH,MAAOA,GACPuqT,gBAAiBA,GACjBC,KAAMA,GACNC,OAAQA,GACRC,WAAYA,GACZN,eAAgBA,GAChBC,eAAgBA,GAChB/7U,YAAaA,GACbm/U,YAAa/D,GACbgE,gBAAiBjE,GACjBkE,UAAW5D,GACXY,QAASA,KAGX,IA8DIiD,GA9DAC,GAAuB,SAA8Bv0W,EAAKzT,GAC5D,IAAIkrR,EAAcvqR,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EACtF,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAEpC,GAAI44R,GAAYt/Q,GACd4+Q,GAAY5+Q,GAAKxV,MAAK,SAAU8zD,GAE9B,IAAIg1B,EAAO5+E,GAASywW,IAAqBA,GAAoB0I,GAA8BvvT,EAAMl+C,SAAU8kW,IAAc,CAAC,CAAC,EAAG,KAE9HlmF,GAAO1gO,EAAOg1B,GAAM9oF,KAAK/D,UAL7B,CAUA,IACImtH,EADA2iF,GAAY,EAGhBhqM,EAAM9B,OAAS,WACb,OAAO8rM,GAAY,GAGrB,IAAIrhM,EAAMP,KAAKO,MACf28W,GAAuB7xW,GAAKxV,MAAK,SAAUo9D,GACzC,IAAI/kB,EAAOluC,KAAKO,MAAQA,EACxBo4B,aAAasmF,GACbA,EAAQ9qH,YAAW,WACbytM,GACJ9vM,EAAQmhE,KACPptD,KAAK6sB,IAAI,EAAGowP,EAAc50O,OAC5B57B,MAAMvgB,QAIT8tX,GAAW/sG,GACX9+N,GAAS6rU,GAAS7rU,OAClB0zO,GAAoBm4F,GAASn4F,kBAC7BC,GAAiBk4F,GAASl4F,eAC1BF,GAA0Bo4F,GAASp4F,wBACnCjkC,GAAcq8H,GAASr8H,YACvBqkC,GAAsBg4F,GAASh4F,oBAC/BD,GAAMi4F,GAASj4F,IACnB5e,GAAoB2jC,EAAQ34P,IAAQ,SAAU/7C,GAC5C,OAAO20S,EAAa,IAAK0jE,GAAUr4W,MAErC+wQ,GAAoB2jC,EAAQjlB,IAAmB,SAAUzvR,GACvD,OAAO20S,EAAa,IAAKyjE,GAAqBp4W,MAEhD+wQ,GAAoB2jC,EAAQhlB,IAAgB,SAAU1vR,GACpD,OAAO20S,EAAa,IAAK+/D,GAAkB10W,MAE7C+wQ,GAAoB2jC,EAAQllB,IAAyB,SAAUxvR,GAC7D,OAAO20S,EAAa,IAAK6/D,GAA2Bx0W,MAEtD+wQ,GAAoB2jC,EAAQnpD,IAAa,SAAUvrP,GACjD,OAAO20S,EAAa,GAAI6jE,GAAex4W,MAEzC+wQ,GAAoB2jC,EAAQ9kB,IAAqB,SAAU5vR,GACzD,OAAO20S,EAAa,GAAIglE,GAAuB35W,MAEjD+wQ,GAAoB2jC,EAAQ/kB,IAAK,SAAU3vR,GACzC,OAAO20S,EAAa,GAAI+kE,GAAO15W,MAGjC,IAAI6nX,GAA2BjtG,GAAQ8rG,IAAyB,SAAUoB,EAAqBjnW,GAC7F,IAAKinW,EAAqB,OAAOjnW,OAAI/jB,GAEjC4qX,KACFA,GAA+B7pX,SAC/B6pX,QAAiC5qX,GAOnC6qX,GAAqBG,EAHrBJ,GAAiC,CAC/B7pX,OAAQs8O,KAEgEv8O,KAAKijB,GAAKxG,OAAM,SAAU8S,UAIlG46V,GAAkBtyI,GAAW33G,WAAU,SAAU9hH,GACnD,OAAOu+V,GAAWzkH,IAAI,SAAU95O,MAG9BgsW,GAAoBpjQ,KAGxBikE,GAAW,KADGjkE,GAAS,KAGvBikE,GAAW,YAAaw+L,IAExB,IAAI/mB,GAAW17O,IAAS,GACxBmsJ,GAAoB2jC,EAAQ4rD,IAAU,SAAUtgW,GAC9C,OAAO20S,EAAa,GAAIklE,GAAY75W,MAEtC,IAAIwgW,GAAY57O,IAAS,GACzBmsJ,GAAoB2jC,EAAQ8rD,IAAW,SAAUxgW,GAC/C,OAAO20S,EAAa,GAAIolE,GAAa/5W,MAEvC,IAAIioX,GAAoBrjQ,IAAS,GACjCmsJ,GAAoB2jC,EAAQuzE,IAAmB,SAAUjoX,GACvD,OAAO20S,EAAa,IAAKujE,GAAqBl4W,MAEhD,IAAIkoX,GAAsBtjQ,IAAS,GACnCmsJ,GAAoB2jC,EAAQwzE,IAAqB,SAAUloX,GACzD,OAAO20S,EAAa,IAAKqjE,GAAuBh4W,MAElD,IAAImoX,GAAuBvjQ,IAAS,GACpCmsJ,GAAoB2jC,EAAQyzE,IAAsB,SAAUnoX,GAC1D,OAAO20S,EAAa,GAAIqlE,GAAwBh6W,MAGlD,IAAIooX,GAAyBxjQ,KAC7BmsJ,GAAoB2jC,EAAQ0zE,IAAwB,SAAUpoX,GAC5D,OAAO20S,EAAa,GAAIslE,GAA0Bj6W,MAGpD,IAAIqoX,GAAqBzjQ,KACzBmsJ,GAAoB2jC,EAAQ2zE,IAAoB,SAAUroX,GACxD,OAAO20S,EAAa,IAAKsjE,GAAsBj4W,MAGjD,IAAIsoX,GAAuB1tG,GAAQ,CAACytG,GAAoBH,KAAsB,WAC5E,YAA+BprX,IAAxBm7W,GAAoCA,GAAsBD,MAEnEjnG,GAAoB2jC,EAAQ4zE,IAAsB,SAAUtoX,GAC1D,OAAO20S,EAAa,GAAImlE,GAAwB95W,MAMlD,IAAIuoX,GAAsB3jQ,GAAS,CAAC,EAAG,EAAG,IAC1CmsJ,GAAoB2jC,EAAQ6zE,IAAqB,SAAUvoX,GACzD,OAAO20S,EAAa,GAAI+hE,GAAuB12W,MAEjD,IAAIwoX,GAAsB5jQ,GAAS,CAAC,EAAG,EAAG,IAC1CmsJ,GAAoB2jC,EAAQ8zE,IAAqB,SAAUxoX,GACzD,OAAO20S,EAAa,IAAK0/D,GAAuBr0W,MAElD,IAAIyoX,GAAgBvoW,GAAO,CAAC,EAAG,EAAG,IAClC6wP,GAAoB2jC,EAAQ+zE,IAAe,SAAUzoX,GACnD,OAAO20S,EAAa,IAAKy/D,GAAiBp0W,MAE5C,IAAI0oX,GAAmB9jQ,KACvBmsJ,GAAoB2jC,EAAQg0E,IAAkB,SAAU1oX,GACtD,OAAO20S,EAAa,GAAI8kE,GAAoBz5W,MAE9C,IAAI2oX,GAAqB/jQ,KAErB8hG,GAAa9hG,KACjBmsJ,GAAoB2jC,EAAQhuF,IAAY,SAAU1mN,GAChD,OAAO20S,EAAa,GAAIkgE,GAAc70W,MAGxC,IAAI2iW,GAAW/9O,KACfmsJ,GAAoB2jC,EAAQiuD,IAAU,SAAU3iW,GAC9C,OAAO20S,EAAa,IAAKqrD,GAAYhgW,MAGvC,IAWI4oX,GAAUhkQ,GAASw/H,MACvB2sB,GAAoB2jC,EAAQk0E,IAAS,SAAU5oX,GAC7C,OAAO20S,EAAa,GAAI2hE,GAAWt2W,MAErC,IAAI6oX,GAAejkQ,GAAS,GAC5BmsJ,GAAoB2jC,EAAQm0E,IAAc,SAAU7oX,GAClD,OAAO20S,EAAa,IAAKmjE,GAAgB93W,MAG3C,IAAI8oX,GAAWlkQ,GAASw/H,MACxB2sB,GAAoB2jC,EAAQo0E,IAAU,SAAU9oX,GAC9C,OAAO20S,EAAa,GAAIukE,GAAYl5W,MAEtC,IAAI+oX,GAAWnkQ,KAEfmsJ,GAAoB2jC,EAAQq0E,IAAU,SAAU/oX,GAC9C,OAAO20S,EAAa,IAAK++D,GAAY1zW,MAKvC,IAAIgpX,GAAkB7rB,GAAgB,mBAAmB,SAAUzgU,GACjE,OAAOA,EAAU,eAAiB,oBAEpCq0O,GAAoB2jC,EAAQs0E,IAAiB,SAAUhpX,GACrD,OAAO20S,EAAa,IAAKqhE,GAAmBh2W,MAE9C,IAAIipX,GAAmB9rB,GAAgB,kBAAkB,SAAUzgU,GACjE,OAAOA,EAAU,gBAAkB,sBAErCq0O,GAAoB2jC,EAAQu0E,IAAkB,SAAUjpX,GACtD,OAAO20S,EAAa,IAAKohE,GAAoB/1W,MAK/C,IAAIkpX,GAAsBtkQ,IAAS,GAC/B89O,GAAgB99O,IAAS,GAC7BmsJ,GAAoB2jC,EAAQguD,IAAe,SAAU1iW,GACnD,OAAO20S,EAAa,IAAKurD,GAAiBlgW,MAE5C,IAAImpX,GAAwB9uG,QAASv9Q,GAAW,SAAU+jB,GACxD,IAAIZ,EAAWC,GAAO,GAQlBu9J,EAAO,CAACilL,GAAc5kO,WANZ,SAAiB99H,GAC7BigB,EAASY,IAAI7gB,EAAQ,EAAI,EAAG,CAC1B8wS,MAAO0oB,QAImCv5S,EAAS69G,UAAUj9G,IAEjE,OAAO,WACL,OAAO48J,EAAKzgL,SAAQ,SAAU4zQ,GAC5B,OAAOA,WAIbG,GAAoB2jC,EAAQy0E,IAAuB,SAAUnpX,GAC3D,OAAO20S,EAAa,IAAKw/D,GAAyBn0W,MAGpD,IAAIopX,GAAgBxkQ,KACpBmsJ,GAAoB2jC,EAAQ00E,IAAe,SAAUppX,GACnD,OAAO20S,EAAa,IAAKihE,GAAiB51W,MAE5C,IAOIqpX,GAPA7zE,GAAa5wL,KACjBmsJ,GAAoB2jC,EAAQc,IAAY,SAAUx1S,GAChD,OAAO20S,EAAa,GAAI6kB,GAAcx5T,MAGxC6oL,GAAW,aAAc2sH,IAGzB,IAAI8zE,GAAuB1kQ,GAASs2P,IACpCnqG,GAAoB2jC,EAAQ40E,IAAsB,SAAUtpX,GAC1D,OAAO20S,EAAa,IAAKwhE,GAAwBn2W,MAKnD,IAAIupX,GAAgB3kQ,IAAS,GAE7BmsJ,GAAoB2jC,EAAQ60E,IAAe,SAAUvpX,GACnD,OAAO20S,EAAa,IAAK2iE,GAAiBt3W,MAE5C6oL,GAAW,gBAAiB0gM,IAC5B,IAAIC,GAAwB5kQ,KAC5BmsJ,GAAoB2jC,EAAQ80E,IAAuB,SAAUxpX,GAC3D,OAAO20S,EAAa,IAAK4iE,GAAyBv3W,MAEpD,IAAIypX,GAAsB7kQ,KAE1BmsJ,GAAoB2jC,EAAQ+0E,IAAqB,SAAUzpX,GACzD,OAAO20S,EAAa,IAAKyiE,GAAuBp3W,MAElD,IAAI0pX,GAA4BrvG,QAASv9Q,GAAW,SAAU+jB,GAC5D,IAAIZ,EAAW2kG,QAAS9nH,GAWpB2gL,EAAO,CACXwoM,GAAcnoP,WAVD,WACX,GAAKq5O,GAAL,CAEA,GAAIG,GAAgB,OAAOr3V,EAASY,IAAIsjO,GAAYgzH,KAEpD,IAAIwS,EAAc72B,GAAcqkB,GAAgBC,GA7pCxB,EA6pCwE4E,IAChG/7V,EAASY,IAAI8oW,OAKf1pW,EAAS69G,UAAUj9G,IACnB,OAAO,WACL,OAAO48J,EAAKzgL,SAAQ,SAAU4zQ,GAC5B,OAAOA,WAITqyF,GAAqBr+O,KACzBmsJ,GAAoB2jC,EAAQuuD,IAAoB,SAAUjjW,GACxD,OAAO20S,EAAa,IAAKsrD,GAAsBjgW,MAEjD,IAAI4pX,GAA6BhlQ,KACjCmsJ,GAAoB2jC,EAAQk1E,IAA4B,SAAU5pX,GAChE,OAAO20S,EAAa,IAAK0iE,GAA8Br3W,MAEzD,IAAI6pX,GAA2BjlQ,QAAS9nH,GAExCi0Q,GAAoB2jC,EAAQm1E,IAA0B,SAAU7pX,GAC9D,OAAO20S,EAAa,IAAKgjE,GAA4B33W,MAEvD,IAAI8pX,GAA2BllQ,GAASu8H,MACxC4vB,GAAoB2jC,EAAQo1E,IAA0B,SAAU9pX,GAC9D,OAAO20S,EAAa,IAAKijE,GAA4B53W,MAGvD,IAAI+pX,GAAiB,SAAwBC,EAAkB5C,GAC7D,IAAKA,IAAe4C,EAAkB,MAAO,CAC3ClrW,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRH,KAAM,GAER,IAAIolP,EAASK,GAAwB8iH,EAAY4C,EAAkB/6G,GAC/D9qN,EAAS6/M,GAAaC,EAAQ+lH,GAClC,MAAO,CACLlrW,IAAKlR,KAAKmS,IAAIokC,EAAOrlC,KACrBC,MAAOnR,KAAKmS,IAAIokC,EAAOplC,OACvBC,OAAQpR,KAAKmS,IAAIokC,EAAOnlC,QACxBH,KAAMjR,KAAKmS,IAAIokC,EAAOtlC,QAKtBorW,GAAgBrlQ,GAAS,IACzBslQ,GAAgBtvG,GAAQ,CAACmuG,GAAUH,GAASE,GAAUmB,KAAgB,SAAUE,EAAStpW,GAC3F,IAAIupW,EAAU,GAAeD,EAAS,GAClCzW,EAAY0W,EAAQ,GACpB9T,EAAW8T,EAAQ,GACnBlR,EAAYkR,EAAQ,GAGxB,GAFqBA,EAAQ,IAExB1W,EAAW,OAAO7yV,OAAI/jB,GAC3B,IAAIutX,EAAc,EAEW,IAAzBva,EAAcruW,QAAiBmtW,GAA4D,WAApC4P,KACzD6L,EAAcnR,EAAUnuU,EAAImuU,EAAU9qW,QAGxCyS,EAAIkkO,GAAW2uH,EAAU5oU,EAAIwrU,EAASxrU,EAAG4oU,EAAU3oU,EAAIurU,EAASvrU,EAAIs/U,EAAa3W,EAAUvlW,MAAOulW,EAAUtlW,YAE1Gk8W,GAAmB,CACrBzrW,KAAM,EACNE,MAAO,EACPD,IAAK,EACLE,OAAQ,GAENurW,GAAmB3lQ,IAAS,GAC5B4lQ,GAAe5vG,GAAQ,CAAC2vG,GAAkBnD,GAAY8C,GAAexnB,KAAgB,SAAU+nB,EAAS5pW,GAC1G,IAAI6pW,EAAU,GAAeD,EAAS,GAClCE,EAAoBD,EAAQ,GAC5B9W,EAAc8W,EAAQ,GACtBE,EAAiBF,EAAQ,GAG7B,GAFqBA,EAAQ,IAExBE,EACH,OAAO/pW,EAAI,CACThC,KAAM,EACNE,MAAO,EACPD,IAAK,EACLE,OAAQ,IAKZ,GAAK2rW,EAAL,CAEA,IAAI7yW,EAAOlK,KAAKM,IAAI08W,EAAez8W,MAAOy8W,EAAex8W,QAErDy8W,EAAkBd,GAAe,CACnC57W,MAAO2J,EACP1J,OAAQ0J,GACP87V,GAEC3yH,GAAaqpI,GAAiBxrW,IAAK,KAAOmiO,GAAa4pI,EAAgB/rW,IAAK,IAAMmiO,GAAaqpI,GAAiBtrW,OAAQ,KAAOiiO,GAAa4pI,EAAgB7rW,OAAQ,IAAMiiO,GAAaqpI,GAAiBvrW,MAAO,KAAOkiO,GAAa4pI,EAAgB9rW,MAAO,IAAMkiO,GAAaqpI,GAAiBzrW,KAAM,KAAOoiO,GAAa4pI,EAAgBhsW,KAAM,KAClVyrW,GAAmBO,EACnBhqW,EAAIgqW,QAEN95G,GAAoB2jC,EAAQ81E,IAAc,SAAUxqX,GAClD,OAAO20S,EAAa,IAAKqiE,GAAgBh3W,MAE3C,IAAI8qX,GAAclwG,GAAQ,CAAC2vG,GAAkBC,KAAe,SAAUO,EAASlqW,GAC7E,IAAImqW,EAAU,GAAeD,EAAS,GAClCJ,EAAoBK,EAAQ,GAC5BhU,EAAgBgU,EAAQ,GAE5B,IAAKL,EAAmB,OAAO9pW,GAAI,GACnCA,EAAIhc,OAAO4/D,OAAOuyS,GAAev9V,MAAK,SAAUzZ,GAC9C,OAAOA,EAAQ,SAGnB+wQ,GAAoB2jC,EAAQo2E,IAAa,SAAU9qX,GACjD,OAAO20S,EAAa,IAAKsiE,GAAej3W,MAE1C,IAAIirX,GAAiBrwG,GAAQ,CAAC2vG,GAAkBxB,GAAU+B,GAAaN,KAAe,SAAUU,EAASrqW,GACvG,IAAIsqW,EAAU,GAAeD,EAAS,GAClCP,EAAoBQ,EAAQ,GAC5BzX,EAAYyX,EAAQ,GACpBlU,EAAekU,EAAQ,GACvBnU,EAAgBmU,EAAQ,GAE5B,GAAKzX,EACL,OAAKiX,GAAsB1T,OAC3Bp2V,EAAIkkO,GAAW2uH,EAAU5oU,EAAIksU,EAAcn4V,KAAM60V,EAAU3oU,EAAIisU,EAAcl4V,IAAK40V,EAAUvlW,MAAQ6oW,EAAcn4V,KAAOm4V,EAAcj4V,MAAO20V,EAAUtlW,OAAS4oW,EAAcl4V,IAAMk4V,EAAch4V,SADnJ6B,EAAI,GAAc,GAAI6yV,OAGpE9Q,GAAYhoF,GAAQ,CAACsvG,GAAeY,GAAaN,KAAe,SAAUY,EAASvqW,GACrF,IAAIwqW,EAAU,GAAeD,EAAS,GAClCR,EAAiBS,EAAQ,GACzBpU,EAAeoU,EAAQ,GACvBrU,EAAgBqU,EAAQ,GAE5B,OAAKT,EACA3T,OACLp2V,EAAIkkO,GAAW6lI,EAAe9/U,EAAIksU,EAAcn4V,KAAM+rW,EAAe7/U,EAAIisU,EAAcl4V,IAAK8rW,EAAez8W,MAAQ6oW,EAAcn4V,KAAOm4V,EAAcj4V,MAAO6rW,EAAex8W,OAAS4oW,EAAcl4V,IAAMk4V,EAAch4V,SAD7L6B,EAAI+pW,GADF/pW,OAAI/jB,MAIlCi0Q,GAAoB2jC,EAAQkuD,IAAW,SAAU5iW,GAC/C,OAAO20S,EAAa,GAAIorD,GAAa//V,MAEvC,IAAIsrX,GAAqB1wG,GAAQ,CAAC2uG,GAAethI,GAAWC,KAAgB,SAAUqjI,EAAS1qW,GAC7F,IAAI2qW,EAAU,GAAeD,EAAS,GAClCjU,EAAiBkU,EAAQ,GACzB1X,EAAa0X,EAAQ,GACrBvX,EAAiBuX,EAAQ,GAG7B,IAAKlU,IAAmBxD,EAAY,OAAOjzV,OAAI/jB,GAC/C,IAAIgZ,EAAOuuO,GAAmByvH,GAE9BjzV,EADyBklO,GAAWjwO,EAAMm+V,OAGxCwX,GAAoB7wG,GAAQ,CAAC0wG,KAAqB,SAAUI,EAAS7qW,GACvE,IACI8qW,EADU,GAAeD,EAAS,GACJ,GAElC,IAAKC,EAAqB,OAAO9qW,OAAI/jB,GACrC,IAAI8uX,EAAcpnI,GAAqBmnI,GACvC9qW,EAAI8lO,GAAoBilI,OAE1B76G,GAAoB2jC,EAAQ+2E,IAAmB,SAAUzrX,GACvD,OAAO20S,EAAa,IAAK8iE,GAAqBz3W,MAEhD,IAAI6iW,GAAcjoF,GAAQ,CAACgoF,GAAWqjB,GAAewF,GAAmBnC,KAAuB,SAAUuC,EAAShrW,GAChH,IAAIirW,EAAU,GAAeD,EAAS,GAClC9rB,EAAa+rB,EAAQ,GACrB3U,EAAiB2U,EAAQ,GACzBrU,EAAqBqU,EAAQ,GAC7B3V,EAAwB2V,EAAQ,GAIpC,GAAK/rB,GAAeoX,IAFiBI,KAA0BH,GAE/D,CAEA,IAAI2U,EAAUtU,GAAsBN,EAChChpW,EAAQ49W,EAAQ59W,MAChBC,EAAS29W,EAAQ39W,OAGjBH,EAASL,KAAKM,IAAI6xV,EAAW5xV,MAAQA,EAAO4xV,EAAW3xV,OAASA,GAGpEyS,EADYs1V,EAAwBloW,EAASL,KAAKM,IAAI,EAAGD,QAG3D8iQ,GAAoB2jC,EAAQmuD,IAAa,SAAU7iW,GACjD,OAAO20S,EAAa,IAAKwrD,GAAengW,MAE1C,IAAIgsX,GAA2BpxG,GAAQ,CAAC2uG,GAAethI,GAAWC,GAAe06G,GAAWmmB,GAAUlmB,KAAc,SAAUopB,EAASprW,GACrI,IAAIqrW,EAAU,GAAeD,EAAS,GAClC3U,EAAiB4U,EAAQ,GACzBpY,EAAaoY,EAAQ,GACrBjY,EAAiBiY,EAAQ,GACzBnsB,EAAamsB,EAAQ,GACrBxY,EAAYwY,EAAQ,GACpB/rB,EAAe+rB,EAAQ,GAG3B,KAAK5U,GAAmBvX,GAAe2T,GAAcI,GAAY,OAAOjzV,OAAI/jB,GAC5E,IAAIgZ,EAAOuuO,GAAmByvH,GAC1BqY,EAAaxlI,GAAoBxB,GAAYrvO,EAAMqqV,IACnDisB,EAAelmI,GAAe65G,EAAYosB,GAC9CA,EAAWrhV,EAAIshV,EAAathV,EAC5BqhV,EAAWphV,EAAIqhV,EAAarhV,EAE5BlqB,EADyBklO,GAAWomI,EAAYlY,OAGlDprL,GAAW,2BAA4BmjM,IAIvC,IAAIjpB,GAAqBn+O,QAAS9nH,GAClCi0Q,GAAoB2jC,EAAQquD,IAAoB,SAAU/iW,GACxD,OAAO20S,EAAa,IAAKgrD,GAAsB3/V,MAEjD,IAAIgjW,GAA+BpoF,GAAQ,CAACqrG,GAAerjB,KAAY,SAAUypB,GAC/E,IAAIC,EAAU,GAAeD,EAAS,GAClClV,EAAiBmV,EAAQ,GACzBvsB,EAAausB,EAAQ,GAGzB,GAAKvsB,GAAeoX,EACpB,OAAOvpW,KAAKM,IAAI6xV,EAAW5xV,MAAQgpW,EAAehpW,MAAO4xV,EAAW3xV,OAAS+oW,EAAe/oW,WAE1F+zV,GAA2BvnF,GAAQ,CAACqrG,GAAehjB,KAAqB,SAAUspB,GACpF,IAAIC,EAAU,GAAeD,EAAS,GAClCpV,EAAiBqV,EAAQ,GACzBvsB,EAAsBusB,EAAQ,GAGlC,OAAKrV,GAAmBlX,EACjBryV,KAAKM,IAAIipW,EAAehpW,MAAQ8xV,EAAoB9xV,MAAOgpW,EAAe/oW,OAAS6xV,EAAoB7xV,QAD1D,KAGtD2iQ,GAAoB2jC,EAAQytD,IAA0B,SAAUniW,GAC9D,OAAO20S,EAAa,IAAKwlE,GAA4Bn6W,MAEvD,IAAIysX,GAAuB7xG,GAAQ,CAACmoF,GAAoBZ,KAA2B,SAAUuqB,GAC3F,IAAIC,EAAU,GAAeD,EAAS,GAClC/sB,EAAsBgtB,EAAQ,GAC9BxS,EAA4BwS,EAAQ,GAGxC,OAAKhtB,GAAwBwa,EAEtBA,EAA4Bxa,EAF4B,KAIjE5uF,GAAoB2jC,EAAQ+3E,IAAsB,SAAUzsX,GAC1D,OAAO20S,EAAa,IAAK+iE,GAAwB13W,MAEnD,IAAI8iW,GAAoBl+O,GAASu8H,MACjC4vB,GAAoB2jC,EAAQouD,IAAmB,SAAU9iW,GACvD,OAAO20S,EAAa,IAAKirD,GAAqB5/V,MAEhD,IAAIkjW,GAA4Bt+O,GAAS,CACvC32G,OAAQypW,GACR18D,YAAa4kD,KAGXgtB,GAAiC,WACnC1pB,GAA0BriV,IAAI,CAC5B5S,YAAQnR,EACRk+S,YAAa75D,QAIb0rI,GAAiCxyG,QAASv9Q,GAAW,SAAU+jB,GACjE,IAAIZ,EAAWC,QAAOpjB,EAAW,CAC/BokF,UAAW,OAET4rS,EAAuC,IAA1B5sD,KAA8B,SAAUpqT,GACvD,OAAO0wO,GAAU1wO,EAAMlI,KAAKi/B,QAC1BqzM,GAEAhlK,EAAU,WACZ,GAAK+kR,GAAL,CACA,IAAI8sB,EAAgB7sB,KAAmB0V,GAEvC,GAAI0B,GAAgB,CAClB,IAAIxhW,EAAOquO,GAAY87G,IAGvB,OAFA/6G,GAAgBpvO,EAAM8hW,IACtB1yH,GAAgBpvO,EAAMiqV,IACf9/U,EAASY,IAAI/K,EAAM,CACxBg7R,KAAMi8E,IAIV,IAAIpD,EAAc72B,GAAcmN,GAAqB0X,GAA2BvM,GAA+B4Q,IAE3G2N,EAAYx7W,MAAQ,IACtBw7W,EAAYx7W,MAAQ,EACpBw7W,EAAY7+U,EAAIm1T,GAAoBn1T,GAGlC6+U,EAAYv7W,OAAS,IACvBu7W,EAAYv7W,OAAS,EACrBu7W,EAAY5+U,EAAIk1T,GAAoBl1T,GAItCm6M,GAAgBykI,EAAa5pB,IAE7B76G,GAAgBykI,EAAa/pB,IAE7Bz6G,GAAYwkI,EAAajS,KAExBqV,GAAiBD,EAAWnD,GAC7B1pW,EAASY,IAAI8oW,EAAa,CACxB74E,KAAMi8E,MAINtvM,EAAO,CACXmlL,GAAU9kO,UAAU5iD,GACpB+nR,GAAmBnlO,UAAU5iD,GAC7BuxS,GAAqB3uP,UAAU5iD,GAAU4nR,GAAkBhlO,UAAU5iD,GACrEksS,GAAWtpP,UAAU5iD,GACrBj7D,EAAS69G,UAAUj9G,IAEnB,OAAO,WACL,OAAO48J,EAAKzgL,SAAQ,SAAU4zQ,GAC5B,OAAOA,WAIbG,GAAoB2jC,EAAQm4E,IAAgC,SAAU7sX,GACpE,OAAO20S,EAAa,GAAIoiE,GAAkC/2W,MAE5D,IAAIgtX,GAAiCpoQ,GAAS,GAC9CmsJ,GAAoB2jC,EAAQs4E,IAAgC,SAAUhtX,GACpE,OAAO20S,EAAa,IAAKuiE,GAAkCl3W,MAG7D,IAAIitX,GAA0B,WAC5B,GAAK9V,IAAmBpX,GAAxB,CACA,IAAIjqV,EAAO2vO,GAAatB,GAAYgzH,IAAiBhX,IAAgB,GACjE3hF,EAAat4B,GAAe65G,GAAYt6G,GAAatB,GAAYszH,IAAqBtX,KAC1Fj7G,GAAgBpvO,EAAM0oQ,GACtB,IAAI0uG,EAAuBxZ,GAAUvlW,MAAQ2H,EAAK3H,MAC9Cg/W,EAAwBzZ,GAAUtlW,OAAS0H,EAAK1H,OAChDH,EAASL,KAAKM,IAAI,EAAGg/W,EAAsBC,GAC/CH,GAA+BnsW,IAAI5S,GACnCk3O,GAAYrvO,EAAM7H,GA7mkCC,SAA0BspC,EAAW2sN,GAC1D,IACIkpH,EAAiB,GADA7mI,GAAahvM,GACkB,GAChD5pC,EAAIy/W,EAAe,GACnBz+W,EAAIy+W,EAAe,GACnB1gX,EAAI0gX,EAAe,GACnBphX,EAAIohX,EAAe,GAEnBz/W,EAAIu2P,EAAWn5N,IAAGwM,EAAUxM,EAAIn9B,KAAK6sB,IAAIypO,EAAWn5N,EAAGwM,EAAUxM,IACjEp8B,EAAIu1P,EAAW/1P,QAAOopC,EAAUzM,EAAIo5N,EAAW/1P,MAAQopC,EAAUppC,OACjEzB,EAAIw3P,EAAW91P,SAAQmpC,EAAUxM,EAAIm5N,EAAW91P,OAASmpC,EAAUnpC,QACnEpC,EAAIk4P,EAAWp5N,IAAGyM,EAAUzM,EAAIl9B,KAAK6sB,IAAIypO,EAAWp5N,EAAGyM,EAAUzM,IAomkCnEuiV,CAAiBv3W,EAAM,GAAc,GAAc,GAAI49V,IAAY,GAAI,CACrE5oU,EAAG,EACHC,EAAG,KAELk4T,GAAmBpiV,IAAI/K,KAIrBmsV,GAA6BrnF,GAAQ,CAACgoF,GAAWC,GAAaojB,GAAeh+H,KAAY,SAAUqlI,EAASzsW,GAC9G,IAAI0sW,EAAU,GAAeD,EAAS,GAClCvtB,EAAawtB,EAAQ,GACrBptB,EAAeotB,EAAQ,GACvBpW,EAAiBoW,EAAQ,GACzBzZ,EAAayZ,EAAQ,GAGpBxtB,IAAeoX,GAAmBrD,IACvCjzV,EAAI2sW,GAA8BztB,EAAYI,GAAgB,EAAGgX,GAAkBrD,OAErF/iG,GAAoB2jC,EAAQutD,IAA4B,SAAUjiW,GAChE,OAAO20S,EAAa,IAAKulE,GAA8Bl6W,MAGzD,IASIytX,GACAC,GAkCAC,GA5CAH,GAAgC,SAAuC5qB,EAAWC,EAAa1+E,GAGjG,OAF6BA,EAASh2Q,OAASy0V,EAAUz0V,OAASg2Q,EAAS/1Q,QAAUw0V,EAAUx0V,OAG/F83O,GAAe08G,EAAWn9G,GAAatB,GAAYggC,GAAW0+E,IAC9Dv8G,GAAgBs8G,EAAWh9G,GAAgBu+B,KAOzCypG,GAA8B,SAAqCC,GAErE,KAAIjf,GAAwB6e,IAAiB9nI,GAAU8nI,GAAeI,IAAqBH,KAAmBvtB,IAA9G,CAEA,GAAImX,GAAgB,OAAO2V,KAE3BQ,GAAgBI,EAChBH,GAAiBvtB,GACjB,IAAI2tB,EAA6BN,GAA8BK,EAAkB1tB,GAAcgX,IAAkBrD,IACjH7Q,GAAmBpiV,IAAIitW,KAIrBC,IAA2B,EAC3BC,GAAmBnrB,GAAY/kO,WAAU,SAAU7vH,IAEjD8/W,SAAuCjxX,IAAXmR,GAAyBkpW,KACzDyW,GAA4B7tB,IAC5BguB,IAA2B,MAGzBE,GAAiBrrB,GAAU9kO,WAAU,SAAUhoH,GAE5CA,QAAyBhZ,IAAjBqjW,IAA+BgX,IAC5CyW,GAA4B93W,MAE1Bo4W,GAAqB3E,GAAczrP,WAAU,SAAU2+C,IACpDA,GAAYsjL,IAAY6tB,GAA4B7tB,OAMvDouB,GAAkCvE,GAA2B9rP,WAAU,SAAUhoH,GACnF,IAAKA,EAGH,OAFA63W,QAA6B7wX,OAC7Bk1Q,GAAgBw3G,GAAuBjS,QAAyBz6W,EAAWy6W,IAI7EoW,GAA6BnW,GAC7B,IAAI4W,EAAgBjqI,GAAYgzH,IAChCqS,GAAsB3oW,IAAIutW,MAGxBC,GAA0BprB,GAAmBnlO,WAAU,SAAUhoH,GAEnE,GAAKA,GAASuhW,GAAd,CACA,IAAI5nW,EAvzkCW,SAAsBhD,EAAGC,GAK1C,OAJAD,EAAEq+B,GAAKp+B,EAAEo+B,EACTr+B,EAAEs+B,GAAKr+B,EAAEq+B,EACTt+B,EAAE0B,OAASzB,EAAEyB,MACb1B,EAAE2B,QAAU1B,EAAE0B,OACP3B,EAkzkCQ6hX,CAAanqI,GAAYruO,GAAOuhW,KA/zkChC,SAAoBvhW,EAAM4vO,GACzC5vO,EAAKg1B,GAAK46M,EACV5vO,EAAKi1B,GAAK26M,EACV5vO,EAAK3H,OAASu3O,EACd5vO,EAAK1H,QAAUs3O,EA4zkCb6oI,CAAW9+W,EAAQk+W,IACnB,IAAIv7T,EAjzkCM,SAAiB3lD,EAAGC,GAKhC,OAJAD,EAAEq+B,GAAKp+B,EAAEo+B,EACTr+B,EAAEs+B,GAAKr+B,EAAEq+B,EACTt+B,EAAE0B,OAASzB,EAAEyB,MACb1B,EAAE2B,QAAU1B,EAAE0B,OACP3B,EA4ykCM+hX,CAAQrqI,GAAYozH,IAAyB9nW,GACxDw2W,GAAcplW,IAAIuxC,OAgChBq8T,GAAqBxI,GAAcnoP,WA7BR,SAAkChoH,GAG/D,GAAKA,GAASmqV,GAEd,GAAIqX,GACGD,IAA6B4V,UAKpC,KAAI/sB,IAAkBmX,IAA+BD,IAArD,CAEA,IAAIsX,EAAgC9oI,GAAgBq6G,IAChDl5E,EAAsBnhC,GAAgB9vO,GAC1C,GAAImrO,GAAaytI,EAA+B,KAAOztI,GAAa8lC,EAAqB,GAAzF,CAGA,IAAI4nG,EAAkBxX,GAClBhpW,EAAQwgX,EAAgBxgX,MACxBC,EAASugX,EAAgBvgX,OACzBH,EAASL,KAAKM,IAAI6xV,GAAW5xV,MAAQA,EAAO4xV,GAAW3xV,OAASA,GAChE0J,EAAOwrO,GAAWxtO,EAAK3H,MAAQF,EAAQ6H,EAAK1H,OAASH,GACrDwzO,EAAgD,IAA1Cw+G,GAAoB9xV,MAAQ2J,EAAK3J,OACvCuzO,EAAkD,IAA5Cu+G,GAAoB7xV,OAAS0J,EAAK1J,QACxC6yS,EAAgBl8D,GAAWn3O,KAAK6sB,IAAI,EAAG7sB,KAAKM,IAAI6xV,GAAW5xV,MAAQ2J,EAAK3J,MAAO8xV,GAAoBn1T,EAAI22M,IAAM7zO,KAAK6sB,IAAI,EAAG7sB,KAAKM,IAAI6xV,GAAW3xV,OAAS0J,EAAK1J,OAAQ6xV,GAAoBl1T,EAAI22M,IAAM5pO,EAAK3J,MAAO2J,EAAK1J,QACtN60V,GAAmBpiV,IAAIogS,QAIrB2tE,GAAch0G,GAAQ,CAACioF,GAAaojB,GAAehjB,GAAoBsmB,KAAgB,SAAUsF,EAAShuW,GAC5G,IAAIiuW,EAAU,GAAeD,EAAS,GAClC1uB,EAAe2uB,EAAQ,GACvB3X,EAAiB2X,EAAQ,GACzB7uB,EAAsB6uB,EAAQ,GAC9BxX,EAAiBwX,EAAQ,GAG7B,GAAK3uB,GAAiBgX,GAAmBlX,EAAzC,CAEA,GAAIqX,EAAgB,OAAOz2V,EAAIq2V,IAC/B,IAAIgW,EAAuBjtB,EAAoB9xV,MAAQgpW,EAAehpW,MAClEg/W,EAAwBltB,EAAoB7xV,OAAS+oW,EAAe/oW,OAExEyS,EADajT,KAAK6sB,IAAIyyV,EAAsBC,GAAyBhtB,OAGnE4uB,GAAqBn0G,GAAQ,CAACioF,GAAa+rB,KAAc,SAAUI,EAASnuW,GAC9E,IAAIouW,EAAU,GAAeD,EAAS,GAClC7uB,EAAe8uB,EAAQ,GACvBC,EAAeD,EAAQ,GAGtBC,GAELruW,EADas/U,EAAe+uB,MAG9Bn+G,GAAoB2jC,EAAQq6E,IAAoB,SAAU/uX,GACxD,OAAO20S,EAAa,IAAK6iE,GAAsBx3W,MAKjD,IAAImvX,GAAkB,CACpBtwW,KAAM,EACNE,MAAO,EACPD,IAAK,EACLE,OAAQ,GAENowW,GAAcx0G,GAAQ,CAACwsG,GAAYnkB,KAAqB,SAAUosB,EAASxuW,GAC7E,IAAIyuW,EAAU,GAAeD,EAAS,GAClCzb,EAAc0b,EAAQ,GACtBrvB,EAAsBqvB,EAAQ,GAGlC,IAAKrvB,EAAqB,OAAOp/U,EAAIsuW,IAErC,IAAII,EAAiBxF,GAAe9pB,EAAqB2T,GAErD3yH,GAAakuI,GAAgBrwW,IAAK,KAAOmiO,GAAasuI,EAAezwW,IAAK,IAAMmiO,GAAakuI,GAAgBnwW,OAAQ,KAAOiiO,GAAasuI,EAAevwW,OAAQ,IAAMiiO,GAAakuI,GAAgBpwW,MAAO,KAAOkiO,GAAasuI,EAAexwW,MAAO,IAAMkiO,GAAakuI,GAAgBtwW,KAAM,KAAOoiO,GAAasuI,EAAe1wW,KAAM,KAC1UswW,GAAkBI,EAClB1uW,EAAI0uW,OAEFC,GAAiB50G,GAAQ,CAACw0G,KAAc,SAAUK,EAAS5uW,GAC7D,IACI6uW,EADU,GAAeD,EAAS,GACX,GAE3B5uW,EAAIhc,OAAO4/D,OAAOirT,GAAcj2W,MAAK,SAAUzZ,GAC7C,OAAOA,EAAQ,SAGf2vX,GAAsBzvW,GAAO,KAAO,CACtC3S,UAAW,IACXC,QAAS,GACT0zE,UAAW,OAET0uS,GAAeh1G,GAAQ,CAAC6tG,GAAeF,GAAqBoH,GAAqB9C,GAAgCJ,GAAsBrF,GAAYoI,GAAgBJ,GAAatE,KAAc,SAAU+E,EAAShvW,GACnN,IAAIivW,EAAU,GAAeD,EAAS,GAClCzb,EAAiB0b,EAAQ,GACzBpZ,EAAuBoZ,EAAQ,GAC/BC,EAAgBD,EAAQ,GACxBE,EAAQF,EAAQ,GAChBG,EAAcH,EAAQ,GACtBlc,EAAckc,EAAQ,GACtBI,EAAkBJ,EAAQ,GAC1BJ,EAAeI,EAAQ,GACvB7Y,EAAe6Y,EAAQ,GAE3B,IAAKE,GAASphB,EAAsB,OAAO/tV,EAAI,IAC/C,IAAIiqB,EAAIklV,EAAMllV,EACVC,EAAIilV,EAAMjlV,EACV58B,EAAQ6hX,EAAM7hX,MACdC,EAAS4hX,EAAM5hX,OACnB08B,GAAK,GACLC,GAAK,GACL58B,GAAS,GACTC,GAAU,GACV,IAAI61P,EAAS,GAEb,GAAI2vG,EAAa,CAEf,GAAIsc,EAAiB,CACnB,IAAIrxW,EAAO6wW,EAAa7wW,KACpBE,EAAQ2wW,EAAa3wW,MACrBD,EAAM4wW,EAAa5wW,IACnBE,EAAS0wW,EAAa1wW,OAC1BH,GAAQoxW,EACRlxW,GAASkxW,EACTnxW,GAAOmxW,EACPjxW,GAAUixW,EACV,IACIE,EADmBzxB,GAAYgY,GACC,CAAC,EAAG,EAAG,EAAG,MAAS,CAAC,EAAG,EAAG,EAAG,MACjEzyG,EAAO7iQ,KAAK,CACV0pC,EAAGA,EAAIjsB,EAAO,GACdksB,EAAGA,EAAIjsB,EAAM,GACb3Q,MAAOA,EAAQ0Q,EAAOE,EAAQ,EAC9B3Q,OAAQA,EAAS0Q,EAAME,EAAS,EAChCgjP,YAAa,EACbC,YAAakuH,EACbj+W,QAAS+kW,EAAe,EAAI,KAKhC,IAAImZ,EAAgB1xB,GAAY0V,GACdR,GAAeA,EAAYyc,YAAc3xB,GAAYkV,EAAYyc,aAE9DD,IACnBnsH,EAAO7iQ,KAAK,CACV0pC,EAAGA,EAAI,EACPC,EAAGA,EAAI,EACP58B,MAAOA,EAAQ,EACfC,OAAQA,EAAS,EACjB4zP,YAAa,EACbC,YAAa,CAAC,EAAG,EAAG,EAAG,IACvB/vP,QAAS69W,IAEX9rH,EAAO7iQ,KAAK,CACV0pC,EAAGA,EAAI,EACPC,EAAGA,EAAI,EACP58B,MAAOA,EAAQ,EACfC,OAAQA,EAAS,EACjB4zP,YAAa,EACbC,YAAa,CAAC,EAAG,EAAG,EAAG,IACvB/vP,QAAS69W,KAKflvW,EAAI,GAAGrf,OAAOyiQ,EAAQ,CACtB,CACEn5N,EAAGA,EACHC,EAAGA,EACH58B,MAAOA,EACPC,OAAQA,EACR4zP,YAAa,EACbC,YAAamyG,EACbliW,QAAS69W,SAITO,GAAqB1rQ,GAAS,IAClCmsJ,GAAoB2jC,EAAQ47E,IAAoB,SAAUtwX,GACxD,OAAO20S,EAAa,IAAK4hE,GAAsBv2W,MAGjD,IAAIuwX,GAAe31G,GAAQ,CAACg1G,GAAcU,KAAqB,SAAUE,EAAS3vW,GAChF,IAAI4vW,EAAU,GAAeD,EAAS,GAClCE,EAAgBD,EAAQ,GACxBla,EAAsBka,EAAQ,GAElC5vW,EAAI,GAAGrf,OAAO,GAAmBkvX,GAAgB,GAAmBna,QAEtExlG,GAAoB2jC,EAAQ67E,IAAc,SAAUvwX,GAClD,OAAO20S,EAAa,GAAIilE,GAAgB55W,MAK1C,IAAI2wX,GAAiBzwW,GAAO,EAAG,CAC7BghE,UAAW,OAEb6vL,GAAoB2jC,EAAQi8E,IAAgB,SAAU3wX,GACpD,OAAO20S,EAAa,IAAK8hE,GAAkBz2W,MAE7C,IAAI4wX,GAAkB1wW,KACtB6wP,GAAoB2jC,EAAQk8E,IAAiB,SAAU5wX,GACrD,OAAO20S,EAAa,IAAKkiE,GAAmB72W,MAE9C,IAAI6wX,GAAiB3wW,KACrB6wP,GAAoB2jC,EAAQm8E,IAAgB,SAAU7wX,GACpD,OAAO20S,EAAa,IAAKiiE,GAAkB52W,MAE7C,IAAI8wX,GAAmB5wW,KACvB6wP,GAAoB2jC,EAAQo8E,IAAkB,SAAU9wX,GACtD,OAAO20S,EAAa,IAAKgiE,GAAoB32W,MAE/C,IAAI+wX,GAAoB7wW,KACxB6wP,GAAoB2jC,EAAQq8E,IAAmB,SAAU/wX,GACvD,OAAO20S,EAAa,IAAK6hE,GAAqBx2W,MAKhD,IAAIgxX,GAA0BpsQ,IAAS,GACvCmsJ,GAAoB2jC,EAAQs8E,IAAyB,SAAUhxX,GAC7D,OAAO20S,EAAa,IAAK2gE,GAA2Bt1W,MAEtD,IAIIixX,GAJAC,GAAqBtsQ,KACzBmsJ,GAAoB2jC,EAAQw8E,IAAoB,SAAUlxX,GACxD,OAAO20S,EAAa,IAAK8gE,GAAsBz1W,MAGjD,IAAImxX,GAAev2G,GAAQ,CAACo2G,GAAyBE,KAAqB,SAAUE,EAASvwW,GAC3F,IAAIwwW,EAAU,GAAeD,EAAS,GAClC9b,EAA2B+b,EAAQ,GACnC5b,EAAsB4b,EAAQ,GAGlC,GAAK/b,GAA6BG,EAAlC,CAYA,GANIwb,KACFA,GAA8BpzX,SAC9B82S,EAAa,IAAKs8E,QAAgCn0X,IAIhDkoQ,GAASywG,GAEX,OAAO50V,EAAIm7N,GAAYy5H,IAIzB,IAAI6b,EAA2BC,GAAa9vX,OAAS,EAAI+3T,GAAc,IAAM,EAE7E7kB,EAAa,IAAKs8E,GAAgC,CAChDpzX,OAAQs8O,KAEVwtI,GAAqBlS,EAAqBwb,GAA+BK,GAA0B1zX,KAAKijB,GAAKxG,OAAM,SAAU8S,GAE3H6kP,GAAgBnM,GAAgB2vG,GAAgB1zW,MAAQqrB,EAAKqoV,OAC5Dj7O,SAAQ,WAETo6K,EAAa,IAAKs8E,QAAgCn0X,WA3BlD+jB,OAAI/jB,MA3sDCu9W,KAA8BA,GAA6Bv8O,GAAUqzP,IAAc,SAAUp/D,GAClG,OAAOpd,EAAa,IAAKg/D,GAAgB5hD,MAyuD7C,IAAIy/D,GAAyBt3G,EAAQu3G,oBACjCA,QAAiD,IAA3BD,QAAoC10X,EAAY00X,GAItEE,GAAwB9sQ,GAAS,IACrCmsJ,GAAoB2jC,EAAQg9E,IAAuB,SAAU1xX,GAC3D,OAAO20S,EAAa,IAAKkhE,GAAyB71W,MAEpD,IAAIw3S,GAAkB5yL,GAAS,IAC/BmsJ,GAAoB2jC,EAAQ8C,IAAiB,SAAUx3S,GACrD,OAAO20S,EAAa,GAAIykE,GAAmBp5W,MAG7C,IAOI2xX,GAAkB/2G,GAAQ,CAACgoF,GAAWD,GAAU16G,GAAWyhI,GAA2BzmB,GAAoB8rB,GAAoB7mI,GAAes+H,GAAYC,GAAYgG,GAAsB3pB,GAAmBomB,KAAsB,SAAU0I,EAAS/wW,GACzP,IAAIgxW,EAAU,GAAeD,EAAS,IAClC7xB,EAAa8xB,EAAQ,GACrB7xB,EAAY6xB,EAAQ,GACpB/d,EAAa+d,EAAQ,GACrBC,EAA6BD,EAAQ,GACrC5xB,EAAsB4xB,EAAQ,GAC9Bra,EAAsBqa,EAAQ,GAC9B5d,EAAiB4d,EAAQ,GACzB7d,EAAc6d,EAAQ,GACtB9d,EAAc8d,EAAQ,GACtBna,EAAwBma,EAAQ,GAChCjyB,EAAqBiyB,EAAQ,IAC7BE,EAAuBF,EAAQ,IAEnC,GAAK9xB,GAAeE,EAApB,CACA,IAAI0xB,EA9hxBuB,SAAkC/uB,EAAWD,EAAU16G,EAAWk8B,EAAU8+E,EAAoBd,EAA0B6vB,EAA+BC,EAAY/pI,EAAes+H,EAAYC,GAC7N,GAAK7jB,GAAcD,GAAa16G,GAAck8B,GAAa8tG,EAA3D,CAEAA,GAAc9vB,EACd,IAAI+vB,EAAWvrI,GAAoBxC,GAAYw+G,IAC3CwvB,EAAaltI,GAAWitI,GACxBE,EAAcntI,GAAW29G,GACzBz6G,EAAY9D,GAAmB4D,GAC/BG,EAAcnD,GAAWkD,GAEzBy8B,EAAe1D,GAAgBj5B,EAAWk8B,EAAUj8B,GACpDmqI,EAAqBptI,GAAW2/B,GAChC0tG,EAAmBtwI,GAAeV,GAAY8G,GAAciqI,GAE5DE,EAAcvwI,GAAeV,GAAY8wI,GAAcD,GAE3DG,EAAiBxnV,GAAKynV,EAAYznV,EAClCwnV,EAAiBvnV,GAAKwnV,EAAYxnV,EAElC,IAAImmR,EAAc3vE,GAAaD,GAAYgxI,IAE3CphE,EAAYpmR,GAAKynV,EAAYznV,EAC7BomR,EAAYnmR,GAAKwnV,EAAYxnV,EAE7B,IAAIynV,EAAuBvtI,GAAWC,GAAgBA,GAAgBf,GAAY8+G,GAAqB+uB,GAAgCpvB,IACnI6vB,EAAuBzwI,GAAewwI,EAAsBJ,GAEhE,OADArwI,GAAUuwI,EAAkBG,GACrB,CACLtvV,OAAQ+tR,EACRlW,YAAas3E,EACbxqI,SAAU,CACRh9M,EAAG27U,EAAa74W,KAAKE,GAAK,EAC1Bi9B,EAAGy7U,EAAa54W,KAAKE,GAAK,EAC1ByhD,EAAG24L,GAELh4O,MAAO+hX,IA2/wBeS,CAAyB3yB,EAAYC,EAAW8T,EAAYge,EAA4B7xB,EAAqByX,EAAuB9X,EAAoB4X,EAAqBvD,EAAgBD,EAAaD,IAC/Nge,GAAwBriB,EAA0BiiB,GACnD9wW,EAAI8wW,OAEN5gH,GAAoB2jC,EAAQi9E,IAAiB,SAAU3xX,GACrD,OAAO20S,EAAa,IAAKmhE,GAAmB91W,MAE9C,IAuBI2yX,GACAC,GAxBAC,GAAej4G,GAAQ,CAAC+rG,GAAkBC,GAAwBC,GAAYC,GAAeC,KAAa,SAAU+L,EAASjyW,GAC/H,IAAIkyW,EAAU,GAAeD,EAAS,GAClCE,EAAeD,EAAQ,GACvBE,EAAqBF,EAAQ,GAC7BG,EAASH,EAAQ,GACjBI,EAAYJ,EAAQ,GACpBK,EAASL,EAAQ,GAEjB/iH,EAAgBgjH,GAAgBnuX,OAAOC,KAAKkuX,GAAc14W,KAAI,SAAU/W,GAC1E,OAAOyvX,EAAazvX,MACnBwB,OAAO2iH,SAQV7mG,EAPc,CACZyzO,MAAO4+H,QAAUp2X,EACjB03P,SAAU2+H,QAAar2X,EACvBy3P,MAAO6+H,QAAUt2X,EACjBi3P,kBAAmBk/H,QAAsBn2X,EACzCg3P,YAAakc,GAAiBA,EAAcvuQ,QAAUsuQ,GAAgCC,QAStFqjH,GAx5LmB,WAEvB,IAAK,KAAS,OAAO,EAErB,IAEIC,GAFUtqX,UAAUC,UAAUf,MAAM,4BAA8B,IAE3CoS,KAAI,SAAUpT,GACvC,OAAOqd,SAASrd,EAAG,KAAO,KAExBqsX,EAAgB,GAAeD,EAAc,GAC7Ct8R,EAAQu8R,EAAc,GACtBt8R,EAAQs8R,EAAc,GAG1B,OAAOv8R,EAAQ,IAAgB,KAAVA,GAAgBC,GAAS,EA04LrBu8R,GACrB/3M,GAAM72D,GAAS,IACnBmsJ,GAAoB2jC,EAAQj5H,IAAK,SAAUz7K,GACzC,OAAO20S,EAAa,IAAKmgE,GAAO90W,MAElC6oL,GAAW,MAAOpN,IAClB,IAAIg4M,GAAoBvzD,KACpB3gE,GAAa8a,GAASo5G,IAAmB,SAAU5yW,GACrD,IAAI6yW,EAAyB,WAC3B,OAAO7yW,EAAIq/S,OAGTyzD,EAAqBlvU,WAAW,gBAAgBjjD,OAAOiyX,GAAmB,UAE9E,OADAE,EAAmB10U,YAAYy0U,GACxB,WACL,OAAOC,EAAmBtiF,eAAeqiF,OAG7C3iH,GAAoB2jC,EAAQn1C,IAAY,SAAUv/P,GAChD,OAAO20S,EAAa,GAAImiE,GAAc92W,MAExC,IAAIqmD,GA35Lc,SAAuBlqC,EAAUgtQ,EAAUhnR,GAE7D,IAAIyxX,EAAWh+H,KACX19O,EAAM07W,EAAS17W,IACf49O,EAAM89H,EAAS99H,IAGf+9H,GADU1xX,GAAW,IACM2xX,SAC3BA,OAAgC,IAArBD,EAA8B,WAC3C,OAAO,GACLA,EAGAh2U,EAAU,GACV9iC,EAAQ6pG,GAAS,GACjB64D,EAAO,GAEPs2M,EAAa,WACf,OAAOt2M,EAAKzgL,SAAQ,SAAU+W,GAC5B,OAAOA,EAAG,CACRgH,MAAO+1P,GAAgB/1P,GACvBtZ,OAAQo8C,EAAQp8C,aAKlB4kD,EAAU,CACRtrC,YACF,OAAO+1P,GAAgB/1P,IAGrBA,UAAMjU,GAERA,EAAI6qD,OAAOu2B,UAAUphF,GAAKA,EAAI,EAC9BA,EAAIkpF,GAAMlpF,EAAG,EAAG+2C,EAAQp8C,OAAS,GAEjCsZ,EAAM8F,IAAI/Z,GACVqiR,EAAStrO,EAAQwI,EAAQtrC,QAEzBg5W,KAGE/3W,YACF,OAAO6hC,EAAQA,EAAQp8C,OAAS,IAGlCA,OAAQ,WACN,OAAOo8C,EAAQp8C,QAEjBuyX,KAAM,WACJ,IAAmB,IAAfF,IAAJ,CACA,IAAIG,EAAW5tU,EAAQtrC,QAEvB,OADA+6O,EAAI,OAAQm+H,GACLA,IAETC,KAAM,WACJ,IAAID,EAAW5tU,EAAQtrC,QAEvB,OADA+6O,EAAI,OAAQzvM,EAAQtrC,OACbk5W,GAETxqW,OAAQ,WACNo0B,EAAQp8C,OAAS,EAEjB4kD,EAAQtrC,MAAQ,EAChB+6O,EAAI,WAENtuP,MAAO,SAAewU,GAEhBA,GACFmtQ,EAAS,GAAc,GAAc,GAAIhtQ,KAAaH,IAGxD,IAAI2yN,EAAWxyN,IACX+kC,EAAYrD,EAAQA,EAAQp8C,OAAS,GAErC0E,KAAKI,UAAUooO,KAAcxoO,KAAKI,UAAU26C,KAEhDrD,EAAQp8C,OAAS4kD,EAAQtrC,MAAQ,EAEjC8iC,EAAQz8C,KAAKutO,GAEb5zN,EAAM8F,IAAIg9B,EAAQp8C,OAAS,GAC3BsyX,IACAj+H,EAAI,kBAENj1O,IAAK,WACH,IAAI7E,EAAQ1b,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAEhFu9C,EAAQp8C,OAAS,EACjB4kD,EAAQtrC,MAAQ,EAEhB,IAAIo5W,EAAmB7yX,MAAMiD,QAAQyX,GAAmBA,EAAV,CAACA,GAE/C6hC,EAAQz8C,KAAKG,MAAMs8C,EAAS,GAAmBs2U,IAE/C9tU,EAAQtrC,MAAQ8iC,EAAQp8C,OAAS,GAEnCqf,IAAK,WACH,MAAO,GAAGtf,OAAOq8C,IAEnBigF,UAAW,SAAmB/pH,GAM5B,OALA0pK,EAAKr8K,KAAK2S,GACVA,EAAG,CACDgH,MAAOsrC,EAAQtrC,MACftZ,OAAQo8C,EAAQp8C,SAEX,WACL,OAAOg8K,EAAKt/J,OAAOs/J,EAAKxhL,QAAQ8X,GAAK,KAGzC+P,GAAI5L,GAEN,OAAOmuC,EA2yLO+tU,EAAc,WAE1B,OAAO/d,MACN,SAAUr6V,GAEXg2P,GAAgBv8B,GAAY4gI,GAAcr6V,EAAOq6V,IAEjDuS,GAAQ/nW,IAAIy1V,MACX,CAEDwd,SAAU,WAER,OAAKO,OAELC,MACO,MA/xDFha,KAAyBA,GAAwBx8O,GAAUz3E,IAAS,SAAU0rQ,GACnF,OAAOpd,EAAa,IAAKyhE,GAAWrkD,MAmyDxC,IAAIwiE,GAAyB,WAE3B,IAAIC,EAAW,GAAc,CAC3B1pV,EAAG,EACHC,EAAG,GACF+oU,IAEC2gB,EAAejuI,GAAUF,GAAgBkuI,EAAUne,GAAYxwF,iBAAkBj4Q,KAAKi/B,OAOtF6nV,EAAkB9X,GAA2B,GAAc,GAAc,GAAIvG,IAAc,GAAI,CAGjGvuH,SAAU,EACV11L,KAAMqiU,IAIRpe,IAGIse,EAA4B,CAACD,GAE7BvuX,KAAKI,UAAUmuX,KAAqBvuX,KAAKI,UAAU8vW,KACrDse,EAA0BvzX,KAAK,GAAc,GAAIi1W,KAInDhwT,GAAQxlC,IAAI8zW,IAGVC,GAAsB/uH,GAAe/nI,WAAU,SAAU9hH,GAEtDA,GAEAA,EAAMwhB,UAEX+2V,QAGE9qW,GAAS,WACX,OAAOyyV,KAAat+W,MAAK,SAAUi3X,GACjC,OAAOA,GAAexuU,GAAQ58B,aAK9BqrW,GAAwB,CAAC7N,GAAiBD,GAAiBG,GAAgBD,IAE3EoN,GAA2B,WAC7BQ,GAAsB93X,SAAQ,SAAUioE,GACtCA,EAAWuqB,QAAO,SAAU5jE,GAE1B,OAAIA,EAAMnqB,QAAUigQ,GAAa91O,EAAMA,EAAMnqB,OAAS,IAC7CmqB,EAAMpnB,MAAM,GAAI,GAIlBonB,SAMTyoW,GAAiB,WACnB,OAAOxkB,EACP9qW,QAAO,SAAUkgE,GACf,OAAOA,EAAWxjE,UAEpBgY,MAAK,SAAUwrD,GACb,OAAOy8L,GAAaz8L,EAAWA,EAAWxjE,OAAS,QAOnDszX,GAA2BnwQ,IAAS,GACxCmsJ,GAAoB2jC,EAAQqgF,IAA0B,SAAU/0X,GAC9D,OAAO20S,EAAa,IAAKqgE,GAA4Bh1W,MAGvD,IAAIg1X,GAAe,WAEjBhjH,GAAgB+iH,GAA0B/f,IAA4B,EAAMA,IAC5EoH,KAAmBx+W,MAAK,SAAUq3X,GAQhC,IAAIrkH,EANCqkH,EAOLrkH,EAAQskH,GAAcp3P,WAAU,SAAU99H,GAC1B,IAAVA,IAEJ4wQ,GAASA,IAETv9P,GAAS,oBAXT2+P,GAAgB+iH,GAA0B/f,IAA4B,EAAOA,QAgB/EmgB,GAAyBnP,GAAkBloP,WAAU,SAAU9hH,GACjE,GAAKA,EAAL,CAKAg2P,GAAgB+iH,GAA0B/f,IAA4B,EAAMA,IAC5E,IAAIx3U,EAAWxhB,EAAMwhB,SACjB1/B,EAAQke,EAAMle,OACd0/B,GAAY1/B,IAAOk0Q,GAAgB+iH,GAA0B/f,IAA4B,EAAOA,SAPlGhjG,GAAgB+iH,GAA0B/f,IAA4B,EAAOA,OAS7Euc,GAllLU,WACd,IAAI12G,EAAS,GACTP,EAAc,GACdt+P,EAAQ,GASRo5W,EAAgB,WAClB96G,EAAYt9Q,SAAQ,SAAUsF,GAC5B,OAAOA,EAAG0Z,OAIVq5W,EAAW,SAAkBpvW,GAC/BA,EAAM2qP,MAAQ3qP,EAAM63G,WAAU,SAAU99H,GACtC,OAfiB,SAAwBimB,EAAOjmB,GAClD,IAAI+a,EAAQ8/P,EAAO5+Q,QAAQgqB,GACvBlL,EAAQ,IACZiB,EAAMjB,GAAS/a,EACfo1X,KAWSE,CAAervW,EAAOjmB,MAE/Bo1X,KAgDF,MAAO,CACD3zX,aACF,OAAOo5Q,EAAOp5Q,QAGhB0mC,MAxCU,WACV0yO,EAAO79Q,SAAQ,SAAUipB,GACvB,OAAOA,EAAM2qP,WAEfiK,EAAOp5Q,OAAS,EAChBua,EAAMva,OAAS,GAoCfT,QAnDY,SAAiBilB,GAC7B40P,EAAO75Q,QAAQilB,GACfovW,EAASpvW,IAkDTnF,IAXQ,SAAa/F,GACrB,OAAO8/P,EAAO9/P,IAWd3Z,KAhDS,SAAc6kB,GACvB40P,EAAOz5Q,KAAK6kB,GACZovW,EAASpvW,IA+CT5d,OApCW,SAAgB4d,GAC3BA,EAAM2qP,QACN,IAAI71P,EAAQ8/P,EAAO5+Q,QAAQgqB,GAC3B40P,EAAO18P,OAAOpD,EAAO,GACrBiB,EAAMmC,OAAOpD,EAAO,IAiCpB/d,QAtBY,SAAiBsF,GAC7B,OAAOu4Q,EAAO79Q,QAAQsF,IAsBtByC,OAnBW,SAAgBzC,GAC3B,OAAOu4Q,EAAO91Q,OAAOzC,IAmBrBw7H,UAhCc,SAAmBx7H,GAGjC,OAFAg4Q,EAAYl5Q,KAAKkB,GACjBA,EAAG0Z,GACI,WACLs+P,EAAYn8P,OAAOm8P,EAAYr+Q,QAAQqG,GAAK,MA4hL7BizX,GACnBxkH,GAAoB2jC,EAAQ68E,IAAc,SAAUvxX,GAClD,OAAO20S,EAAa,GAAI+gE,GAAgB11W,MAE1C,IAAIw1X,GAA8B56G,GAAQ,CAAC22G,KAAe,SAAUkE,EAAS50W,GAC3E,IACI60V,EADU,GAAe+f,EAAS,GACV,GAE5B,IAAK/f,EAAcj0W,OAAQ,OAAOof,IAClC,IAAI60W,EAAkBhgB,EAAc,GAKpC70V,EAAI,CACFsiB,OALWuyV,EAAgBvyV,OAM3B63Q,YALgB06E,EAAgB16E,YAMhClzD,SALa4tI,EAAgB5tI,SAM7B53O,MALUwlX,EAAgBxlX,WAQ1BylX,GAAY/wQ,KAChBmsJ,GAAoB2jC,EAAQihF,IAAW,SAAU31X,GAC/C,OAAO20S,EAAa,IAAKshE,GAAaj2W,MAGxC,IAEIwiW,GAFAF,GAAe,GAGfszB,GAA8BhxQ,KAC9Bu+O,GAAsBv+O,KACtBixQ,GAA4Bj7G,GAAQ,CAACmoF,GAAoBI,GAAqBN,GAAaG,KAA+B,SAAU8yB,GACtI,IAAIC,EAAU,GAAeD,EAAS,GAClCn2B,EAAsBo2B,EAAQ,GAC9Bj2B,EAAuBi2B,EAAQ,GAC/B51B,EAAe41B,EAAQ,GACvBl2B,EAAgCk2B,EAAQ,GAE5C,OAAOp2B,IAA4CG,GAAwBK,EAAe,EAAIN,EAAgC,MAK5Hm2B,GAAa,GAAc,GAAc,GAAIn7G,IAAS,GAAI,CAE5D2qG,UAAWA,GACXv9H,UAAWA,GAEXw9H,cAAeA,GACfI,iBAAkBA,GAClBC,iBAAkBA,GAClBJ,UAAWA,GACXtqF,qBAAsBA,GACtB66F,qBAAsBvP,GACtBv4F,qBAAsBA,GACtBO,iBAAkBA,GAClBw3F,iBAAkBA,GAClB93F,sBAAuBA,GACvB63F,cAAeA,GACfI,oBAAqBA,GACrBmD,sBAAuBA,GACvBlD,yBAA0BA,GAC1BH,eAAgBA,GAChBj+H,cAAeA,GACfq8B,mBAAoBA,GACpBiiG,WAAYA,GACZC,WAAYA,GACZF,gBAAiBA,GAEjBI,iBAAkBA,GAClBC,uBAAwBA,GACxBC,WAAYA,GACZC,cAAeA,GACfC,WAAYA,GAEZG,kBAAmBA,GACnBF,gBAAiBA,GACjBC,gBAAiBA,GACjBE,eAAgBA,GAChBC,WAAYA,GAEZ+J,aAAcA,GAEdD,mBAAoBA,GAEpBS,gBAAiBA,GAEjBD,sBAAuBA,GAEvBrrU,QAASA,GAETniC,UAAWklW,GACX7pH,WAAYA,GACZy8G,qBAAsBA,GACtBxQ,iBAAkBA,GAClB0qB,qBA3pEuB,EA4pEvB7S,cAAeA,GAEf2F,gBAAiBA,GACjBC,iBAAkBA,GAClBxtM,IAAKA,GACLknL,SAAUA,GACVC,UAAWA,GACXsnB,cAAeA,GACfD,cAAeA,GACfpnB,YAAaA,GACb2nB,aAAcA,GACdM,YAAaA,GACbiE,mBAAoBA,GACpB5rB,oBAAqBA,GACrB4lB,SAAUA,GACVkC,eAAgBA,GAChB3H,eAAgBA,GAChBhjB,SAAUA,GACVE,UAAWA,GACXynB,kBAAmBA,GACnBjnB,gBAAiBmnB,GACjBjnB,eAAgBgnB,GAChBI,qBAAsBA,GACtBsN,4BAA6BA,GAC7BrN,oBAAqBA,GACrBC,oBAAqBA,GACrBC,cAAeA,GACfE,mBAAoBA,GACpBgH,oBAAqBA,GAErBgG,UAAWA,GAEX7yB,kBAAmBA,GACnBC,mBAAoBA,GACpB8yB,0BAA2BA,GAC3B7yB,6BAA8BA,GAC9BE,0BAA2BA,GAI3BotB,mBAAoBA,GAEpB94E,gBAAiBA,GAEjBkrD,cAAeA,GAEfwmB,oBAAqBA,GAErBC,sBAAuBA,GAEvBM,oBAAqBA,GAErBC,0BAA2BA,GAE3BzmB,mBAAoBA,GAEpB4mB,yBAA0BA,GAE1BgD,+BAAgCA,GAEhCjD,2BAA4BA,GAE5BgF,YAAaA,GAEb4G,4BAA6BA,GAE7B3C,aAAcA,YAITmD,GAAWhoX,MAClB,IAAImoX,GAAgB,QAAQ30X,OAAO8qB,MAC/B8pW,GAAyB,GA6BzBC,GAAuB,SAA8BC,GACvD,OAAOvmB,EAAe/3U,MAAK,SAAUu+V,GACnC,IACIl0X,EADU,GAAek0X,EAAS,GACrB,GAEjB,OAAOD,IAAWj0X,MAQlBm0X,GAAe,GAEfC,GAAiB,SAAwBhlV,GAC3CkjQ,EAAa,GAAI6hF,GAAeA,GAAah1X,OAAOiwC,KAGlDilV,GAAiB,SAAwBjlV,GAC3CkjQ,EAAa,GAAI6hF,GAAeA,GAAazxX,QAAO,SAAU41L,GAC5D,OAAOA,IAASlpJ,OAIhBklV,GAAiB,SAAwBllV,EAAOv/B,GAClDyiS,EAAa,IAAKw7D,EAAqB1+T,GAASv/B,EAASi+V,IAcvDymB,GAAM,KASNC,GAAwB,SAA+BtzX,GACzD,IAAIuzX,EAAcxlB,GAAyBz9O,iBAAiBtwH,GAC5D,OAAOu+U,GAAwBg1C,IAG7BC,GAAY,SAAmBxzX,EAAM0iB,EAAO+wW,GAC9C,IAAIh3X,EAAQsxW,GAAyBz9O,iBAAiBtwH,GACtDvD,EAAQg3X,EAAaA,EAAWh3X,GAAS,WAAWuI,KAAKvI,GAASipB,WAAWjpB,QAASlD,EACtFmpB,EAAMpF,IAAI7gB,EAAO,CACf8wS,MAAO0oB,MAIPy9D,GAAY,SAAmBh6W,EAAUgJ,GAC3C,IAAIixW,EAAc52X,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAC7E62X,EAAaN,GAAsB55W,GAElCk6W,GAAgC,IAAlBA,EAAW,KAEzBD,IAAaC,EAAW11X,OAAS,GAEtCwkB,EAAMpF,IAAIs2W,EAAY,CACpBrmF,MAAO0oB,OAIPriB,GAAWvyL,KACfmsJ,GAAoB2jC,EAAQyC,IAAU,SAAUn3S,GAC9C,OAAO20S,EAAa,GAAI0kE,GAAYr5W,MAEtC,IAAIo3X,GAAgBxyQ,KACpBmsJ,GAAoB2jC,EAAQ0iF,IAAe,SAAUp3X,GACnD,OAAO20S,EAAa,GAAI2kE,GAAiBt5W,MAE3C,IAAIq3X,GAAezyQ,KACnBmsJ,GAAoB2jC,EAAQ2iF,IAAc,SAAUr3X,GAClD,OAAO20S,EAAa,GAAI4kE,GAAgBv5W,MAE1C,IAAIq3S,GAAcn3R,GAAO,EAAG,CAC1B1S,QAAS,KAEXujQ,GAAoB2jC,EAAQ2C,IAAa,SAAUr3S,GACjD,OAAO20S,EAAa,GAAI6kE,GAAex5W,MAGzC,IAAIs3X,GAAe,WACjBL,GAAU,QAASzO,IACCyO,GAApBxV,GAA8B,qBAAuD,mBAAjC8G,IACpD0O,GAAU,gBAAiBxO,IAC3BwO,GAAU,kBAAmBvO,IAC7BuO,GAAU,oBAAqBtO,IAC/BsO,GAAU,oBAAqBG,IAAe,GAC9CH,GAAU,mBAAoBI,IAAc,GAC5CN,GAAU,cAAe5/E,IACzB4/E,GAAU,qBAAsBlO,IAAc,SAAU3hX,GACtD,OAAOqd,SAASrd,EAAG,QAWnBqwX,GAAa38G,GAAQ,CAAC+2G,GAAiBkB,GAAcz3F,GAAsBysF,KAA2B,SAAU2P,GAClH,IAAIC,EAAU,GAAeD,EAAS,GAClC1hB,EAAmB2hB,EAAQ,GAC3BC,EAAgBD,EAAQ,GACxBlhQ,EAAkBkhQ,EAAQ,GAC1BE,EAAsBF,EAAQ,GAElC,OAAO3hB,GAAoB,GAAc,GAAc,GAAc,GAAIA,GAAmB4hB,GAAgB,GAAI,CAC9GnhQ,gBAAiBA,EACjB4rI,gBAAiBw1H,OAGrB5mH,GAAoB2jC,EAAQ6iF,IAAY,SAAUv3X,GAChD,OAAO20S,EAAa,IAAKghE,GAAc31W,MAGzC,IAyBI43X,GAqBAC,GAjCAC,GAAsB,SAA6BC,GACrDxG,GAAav0X,SAAQ,SAAUgR,EAAO+M,GACpC,IAAI7I,EAAoB,IAAV6I,EAAc,EAAI,EAEhC/M,EAAM6S,IAAI,GAAc,GAAc,GAAIk3W,GAAoB,GAAI,CAChE7lX,QAASA,EACT83M,OAHW,IAIT4rJ,QAMJsf,GAAgB3lF,QAAQzyS,EAAW,CACrC0W,SAAU,MAEZu9P,GAAoB2jC,EAAQwgF,IAAe,SAAUl1X,GACnD,OAAO20S,EAAa,GAAIygE,GAAiBp1W,MA+C3C,IAIIg4X,GAJAC,GAAqBrzQ,IAAS,GAClCmsJ,GAAoB2jC,EAAQujF,IAAoB,SAAUj4X,GACxD,OAAO20S,EAAa,IAAK0gE,GAAsBr1W,MAGjD,IAAIk4X,GAAch4W,QAAOpjB,EAAW,CAClCyQ,UAAW,GACXC,QAAS,GACT0zE,UAAW,MAEb6vL,GAAoB2jC,EAAQwjF,IAAa,SAAUl4X,GACjD,OAAO20S,EAAa,GAAIqkE,GAAeh5W,MAEzC,IAAIm4X,GAAej4W,GAAO,EAAG,CAC3B3S,UAAW,GACX2zE,UAAW,MAEb6vL,GAAoB2jC,EAAQyjF,IAAc,SAAUn4X,GAClD,OAAO20S,EAAa,GAAIskE,GAAgBj5W,MAE1C,IAAIo4X,GAAal4W,GAAO,EAAG,CACzB3S,UAAW,IACXC,QAAS,GACT0zE,UAAW,MAEb6vL,GAAoB2jC,EAAQ0jF,IAAY,SAAUp4X,GAChD,OAAO20S,EAAa,IAAKugE,GAAcl1W,MAEzC,IAAIq4X,GAAcn4W,QAAOpjB,EAAW,CAClCyQ,UAAW,IACXC,QAAS,GACT0zE,UAAW,MAEb6vL,GAAoB2jC,EAAQ2jF,IAAa,SAAUr4X,GACjD,OAAO20S,EAAa,IAAKwgE,GAAen1W,MAE1C,IAQIs4X,GARAC,GAAer4W,QAAOpjB,EAAW,CACnCyQ,UAAW,IACXC,QAAS,GACT0zE,UAAW,MAEb6vL,GAAoB2jC,EAAQ6jF,IAAc,SAAUv4X,GAClD,OAAO20S,EAAa,IAAKsgE,GAAgBj1W,MAI3C,IAaIw4X,GAA4B,WAC9BnlX,GAAS,mBAGPolX,GAA+B,WACjCplX,GAAS,qBACT2+P,GAAgB+iH,GAA0B/f,IAA4B,EAAOA,KAI3EhhU,GAAiB,SAAwB1tC,GACvCA,EAAEjC,QAA2C,SAAjCiC,EAAEjC,OAAOknC,QAAQmtV,aA5qNZ,SAA4BpyX,GACnD,OAAOA,EAAE43J,SAAW53J,EAAE43J,QAAQz8J,QAAqC,WAA3B6E,EAAE43J,QAAQ,GAAGy6N,UAgrN/CC,CAAmBtyX,IAIvBA,EAAE0tC,kBAIA4nT,GAAmBy3B,GAAqB,SAAU/sX,GAEpD,IAAI2d,EAAQ3d,EAAE43J,QAAU53J,EAAE43J,QAAQ,GAAK53J,EAEnC2d,EAAMovB,MAAQ,IAAMpvB,EAAMovB,MAAQtpC,OAAO49C,WAAa,IAE1D3T,GAAe1tC,IACb6zO,GAEA0+I,GAAmBj0Q,GAAS,IAChCmsJ,GAAoB2jC,EAAQmkF,IAAkB,SAAU74X,GACtD,OAAO20S,EAAa,IAAKggE,GAAoB30W,MAE/C6oL,GAAW,cAAegwM,IAE1B,IA4IIC,GA3EAC,GAAiB,SAAwBnhX,IAG1CA,GACD6wE,GAAS7wE,KAxxME,SAAkBA,GAC/B,MAAO,SAASrP,KAAKqP,EAAKjN,QAAU,MAAMpC,KAAKqP,EAAKjN,MAuxM/BquX,CAASphX,KAC3B6wE,GAAS7wE,KAAU,QAAQrP,KAAKqP,IAEjCvE,GAAS,YAAauE,IASpBqhX,GAAmB,SAA0BrhX,GAC1CA,GACLmhX,GAAenhX,IAuBbshX,QAAwBp8X,EACxBq8X,QAAyBr8X,EA+BzBs8X,GAA0B,GAG1BC,GAAkBz0Q,KACtBikE,GAAW,aAAcwwM,IAEzBxwM,GAAW,WAAY85K,IAEvB,IA6EI22B,GA0LAC,GAvQAC,GAAgB,WAClB,MAAO,CAELC,gBAAiB,GAAmBplB,IAEpCqlB,UAAW,GAAmBtlB,IAE9BulB,eAAgB,GAAc,GAAIxpB,GAElCzN,cAAexC,GACfipB,sBAAuBhV,GAEvBxR,SAAUx+G,GAAY67G,IAEtB4C,UAAWz+G,GAAY47G,IAEvB5+C,wBAAyBy4E,GACzBv4E,sBAAuBw4E,GACvBC,sBAAuBC,GACvBC,iBAAkBC,KAMlBC,GAA0B,SAAiCx5H,EAAOugD,EAAe/wS,GAGnF,OAAO4zP,GAAoBpD,EAAOpd,GAAW11O,KAAKi/B,MAAMo0Q,EAAc9yS,MAAQ+B,GAAQtC,KAAKi/B,MAAMo0Q,EAAc7yS,OAAS8B,MAItHiqX,GAA2B,SAAkCz5H,EAAOugD,EAAe/wS,GAt4nC/D,IAA6BzH,EAy4nCnD,OAFAi4P,EAAMg8C,WAt4nCDt7D,IAD8C34O,EAu4nCZw4S,GAt4nCjBn2Q,EAAGriC,EAAIsiC,GAu4nC7B21N,EAAMiE,OAASz0P,EACRwwP,GAGL05H,GAAgB,SAAuBn2H,GACzC,IAAIo2H,EAAkB,GAItB,OAHAp2H,EAAOjnQ,SAAQ,SAAU0jQ,GACvB,OAAO25H,EAAgBj5X,KAAKk5X,GAAa55H,OAEpC25H,EAAgBt1X,OAAO2iH,UAG5B4yQ,GAAe,SAAsB55H,GAEvC,OAAIa,GAAYb,IACdA,EAAMje,OAAS,CAACrB,GAAasf,EAAMG,GAAIH,EAAMI,IAAK1f,GAAasf,EAAM3R,GAAI2R,EAAMM,KACxEN,KAr6gCU,SAA0BA,GAC/C,OAAOO,GAAYP,KAAWA,EAAMt2N,KAAK3oC,OAw6gCnC84X,CAAiB75H,IAAYA,EAAMnqI,iBAAgD,IAA7BmqI,EAAMnqI,gBAAgB,KAE1E2qI,GAAiBR,KACnBA,EAAMvyP,MAAQ,EACduyP,EAAMtyP,OAASsyP,EAAMtK,YAIvBsK,EAAMsB,YAAc,EACpBtB,EAAMuB,YAAc,CAAC,EAAG,EAAG,EAAG,IAC9BvB,EAAMnqI,gBAAkB,CAAC,EAAG,EAAG,EAAG,KAI7BmqI,IAIL85H,GAAqC,GACrCC,GAAiC,GACjCC,GAAmC,GACnCC,GAAiC,GACjCC,GAA4B,GAE5BC,GAA8B,GAE9BC,GAAoB,SAA2BpgF,EAAaqgF,EAA0BC,EAAwBC,EAAwBC,EAAuBC,EAAmB15E,GAClL,IAAIN,EAA0BzG,EAAYyG,wBACtCE,EAAwB3G,EAAY2G,sBACpCy4E,EAAwBp/E,EAAYo/E,sBACpCE,EAAmBt/E,EAAYs/E,iBAC/B/4E,EAAgBvG,EAAYuG,cAC5B/wS,EAAQwqS,EAAYxqS,MAEpBkrX,EAAqB9B,KAAwBppX,EAC7CmrX,EAAcD,IAAuBz1I,GAAUk1I,GAA6B55E,GAE5Eo6E,IACF/B,GAAsBppX,EACtB2qX,GAA8B55E,GAI5BE,IACFu5E,GAAmCK,EAAyBh2X,OAAO08P,IAAgBnnP,IAAImmP,IAAenmP,KAAI,SAAUomP,GAClH,OAAOoD,GAAoBpD,EAAOozG,SAKlCzyD,GAAyB25E,IAA2B9mB,MACtDsmB,GAAqCQ,EAAuBj2X,OAAO08P,IAAgBnnP,IAAImmP,IAAev4O,MAAK,SAAUzb,EAAGC,GACtH,OAAID,EAAE6uX,YAAoB,EACtB5uX,EAAE4uX,aAAqB,EACpB,KACNhhX,KAAI,SAAUomP,GACf,OAAOoD,GAAoBpD,EAAOozG,SAIlCsnB,GAAsBG,IAAwCl6E,GAAyB25E,IAA2B9mB,MACpHumB,GAAiCL,GAAcI,GAAmClgX,KAAI,SAAUomP,GAC9F,OAAOuO,EAAgBvO,EAAO,CAC5Bhe,MAAOsxH,GACPrxH,MAAOoxH,GACPjsH,SAAUmsH,GACV/jW,MAAOA,EACP7R,QAASgmP,GAAmByvH,SAE7BtvN,UAIDs1O,GAAyBmB,IAA2BpnB,IAAoBwnB,KAC1EV,GAAiCP,GAAca,EAAuBl2X,OAAO08P,IAAgBnnP,IAAImmP,IAAev4O,MAAK,SAAUzb,EAAGC,GAChI,OAAID,EAAE6uX,YAAoB,EACtB5uX,EAAE4uX,aAAqB,EACpB,KACNhhX,KAAI,SAAUomP,GACf,OAAOw5H,GAAwBx5H,EAAOugD,EAAe/wS,MACpDoK,KAAI,SAAUomP,GACf,OAAOuO,EAAgBvO,EAAO,CAC5BriQ,QAAS4iT,OAEVz8J,OAAOlqI,KAAI,SAAUomP,GACtB,OAAOy5H,GAAyBz5H,EAAOugD,EAAe/wS,SAKtD8pX,GAAoBmB,IAAsBvnB,IAAeynB,KAC3DT,GAA4BO,EAAoBf,GAAc,CAACe,GAAmB7gX,IAAImmP,IAAenmP,KAAI,SAAUomP,GACjH,OAAOw5H,GAAwBx5H,EAAOugD,EAAe/wS,MACpDoK,IAAI20P,GAAiBzqH,OAAOlqI,KAAI,SAAUomP,GAC3C,OAAOy5H,GAAyBz5H,EAAOugD,EAAe/wS,OAClD,IAGR,IAAIsrX,EAAgCpB,GAAcc,EAAsBn2X,OAAO08P,KAC/E,MAAO,CAEL0/C,wBAAyBA,EACzBD,mBAAoBw5E,GAEpBr5E,sBAAuBA,EACvBD,iBAAkBq5E,GAElBX,sBAAuBA,EACvBv4E,iBAAkBo5E,GAElBX,iBAAkBA,EAClBx4E,YAAao5E,GAEbt5E,gBAAiBk6E,EAEjB/5E,gBAAiBA,EAAgBnnS,IAAImmP,IAAenmP,KAAI,SAAUomP,GAChE,OAAOoD,GAAoBpD,EAAOozG,SASpC+lB,IAA6B,EAM7B0B,IAAuC,EAOvCxB,IAA6B,EAO7BE,IAAwB,EAOxBL,IAA+B,EAk9DnC,OA38DA/kH,IAAU,WAER/6M,KAEI65S,IAAiBztW,GAASytW,GAAcvgW,MAAQ,SAAS7K,KAAKorW,GAAcvgW,MAC9Ew4C,IAAIS,gBAAgBsnT,GAAcvgW,KAGpC20W,KACAkG,KACAD,KACAE,KACAC,KACAE,KACAI,KACAmG,KACAO,KACAnM,GAAgBzlW,UAChB0lW,GAAiB1lW,UACjB6hW,GAAW7hW,UACXguW,GAAappV,QAEbqyV,GAAmC/4X,OAAS,EAC5Cg5X,GAA+Bh5X,OAAS,EACxCi5X,GAAiCj5X,OAAS,EAC1Ck5X,GAA+Bl5X,OAAS,EACxCm5X,GAA0Bn5X,OAAS,EAE/By3X,IACFv9I,GAAcu9I,IAGZ5W,IACFv4W,OAAOm9M,eAAetjM,oBAAoB,SAAU4+V,IAGtD,IACE7tE,EAAa,IAAK88E,QAAsB30X,GACxC63S,EAAa,IAAKijF,QAAmB96X,GACrC,MAAOqwB,QA8IXunR,EAAOv6B,MAAQ,SAAUD,GACnB,UAAWA,GAASy6B,EAAa,IAAKzgG,GAAQgmE,EAAQj4F,OACtD,WAAYi4F,GAASy6B,EAAa,IAAK+lE,GAAaxgG,EAAQ26C,QAC5D,WAAY36C,GAASy6B,EAAa,IAAK95B,GAASX,EAAQW,QACxD,WAAYX,GAASy6B,EAAa,EAAGv0M,GAAS85K,EAAQ95K,QACtD,OAAQ85K,GAASy6B,EAAa,EAAGtyS,GAAK63Q,EAAQ73Q,IAC9C,SAAU63Q,GAASy6B,EAAa,IAAKh6G,GAAOu/E,EAAQv/E,MACpD,UAAWu/E,GAASy6B,EAAa,IAAKx7S,GAAQ+gR,EAAQ/gR,OACtD,eAAgB+gR,GAASy6B,EAAa,IAAK1iS,GAAaioQ,EAAQjoQ,YAChE,aAAcioQ,GAASy6B,EAAa,IAAKljR,GAAWyoP,EAAQzoP,UAC5D,mBAAoByoP,GAASy6B,EAAa,IAAKumE,GAAiBhhG,EAAQghG,gBACxE,eAAgBhhG,GAASy6B,EAAa,IAAKymE,GAAalhG,EAAQkhG,YAChE,uBAAwBlhG,GAASy6B,EAAa,EAAG2mE,GAAqBphG,EAAQohG,oBAC9E,4BAA6BphG,GAASy6B,EAAa,IAAK6mE,GAA0BthG,EAAQshG,yBAC1F,+BAAgCthG,GAASy6B,EAAa,EAAG+mE,GAA6BxhG,EAAQwhG,4BAC9F,sBAAuBxhG,GAASy6B,EAAa,EAAGinE,GAAoB1hG,EAAQ0hG,mBAC5E,oBAAqB1hG,GAASy6B,EAAa,IAAKmnE,GAAkB5hG,EAAQ4hG,iBAC1E,yBAA0B5hG,GAASy6B,EAAa,EAAGqnE,GAAuB9hG,EAAQ8hG,sBAClF,eAAgB9hG,GAASy6B,EAAa,IAAKunE,GAAahiG,EAAQgiG,YAChE,qBAAsBhiG,GAASy6B,EAAa,IAAKynE,GAAmBliG,EAAQkiG,kBAC5E,qBAAsBliG,GAASy6B,EAAa,EAAG2nE,GAAmBpiG,EAAQoiG,kBAC1E,sBAAuBpiG,GAASy6B,EAAa,IAAK6nE,GAAoBtiG,EAAQsiG,mBAC9E,uBAAwBtiG,GAASy6B,EAAa,IAAK+nE,GAAqBxiG,EAAQwiG,oBAChF,+BAAgCxiG,GAASy6B,EAAa,IAAKioE,GAA6B1iG,EAAQ0iG,4BAChG,uBAAwB1iG,GAASy6B,EAAa,IAAKmoE,GAAqB5iG,EAAQ4iG,oBAChF,uBAAwB5iG,GAASy6B,EAAa,IAAKqoE,GAAqB9iG,EAAQ8iG,oBAChF,0BAA2B9iG,GAASy6B,EAAa,IAAKuoE,GAAwBhjG,EAAQgjG,uBACtF,kBAAmBhjG,GAASy6B,EAAa,GAAIyoE,GAAgBljG,EAAQkjG,eACrE,gBAAiBljG,GAASy6B,EAAa,IAAK2oE,GAAcpjG,EAAQojG,aAClE,sBAAuBpjG,GAASy6B,EAAa,IAAK6oE,GAAoBtjG,EAAQsjG,mBAC9E,oBAAqBtjG,GAASy6B,EAAa,IAAK+oE,GAAkBxjG,EAAQwjG,iBAC1E,qBAAsBxjG,GAASy6B,EAAa,IAAKipE,GAAmB1jG,EAAQ0jG,kBAC5E,sBAAuB1jG,GAASy6B,EAAa,IAAKmpE,GAAoB5jG,EAAQ4jG,mBAC9E,2BAA4B5jG,GAASy6B,EAAa,GAAIqpE,GAAyB9jG,EAAQ8jG,wBACvF,8BAA+B9jG,GAASy6B,EAAa,IAAKupE,GAA4BhkG,EAAQgkG,2BAC9F,oCAAqChkG,GAASy6B,EAAa,IAAKypE,GAAkClkG,EAAQkkG,iCAC1G,kCAAmClkG,GAASy6B,EAAa,IAAK2pE,GAAgCpkG,EAAQokG,+BACtG,oCAAqCpkG,GAASy6B,EAAa,IAAK6pE,GAAkCtkG,EAAQskG,iCAC1G,0CAA2CtkG,GAASy6B,EAAa,IAAK+pE,GAAwCxkG,EAAQwkG,uCACtH,wCAAyCxkG,GAASy6B,EAAa,IAAKiqE,GAAsC1kG,EAAQ0kG,qCAClH,WAAY1kG,GAASy6B,EAAa,IAAKr5S,GAAS4+Q,EAAQ5+Q,QACxD,6BAA8B4+Q,GAASy6B,EAAa,IAAKoqE,GAA2B7kG,EAAQ6kG,0BAC5F,gCAAiC7kG,GAASy6B,EAAa,IAAK6qE,GAA8BtlG,EAAQslG,6BAClG,6BAA8BtlG,GAASy6B,EAAa,IAAKmrE,GAA2B5lG,EAAQ4lG,0BAC5F,kBAAmB5lG,GAASy6B,EAAa,GAAIsrE,GAAgB/lG,EAAQ+lG,eACrE,0BAA2B/lG,GAASy6B,EAAa,IAAKwrE,GAAwBjmG,EAAQimG,uBACtF,2BAA4BjmG,GAASy6B,EAAa,GAAI0rE,GAAyBnmG,EAAQmmG,wBACvF,+BAAgCnmG,GAASy6B,EAAa,GAAI4rE,GAA6BrmG,EAAQqmG,4BAC/F,iCAAkCrmG,GAASy6B,EAAa,GAAI8rE,GAA+BvmG,EAAQumG,8BACnG,sCAAuCvmG,GAASy6B,EAAa,GAAIgsE,GAAoCzmG,EAAQymG,mCAC7G,gCAAiCzmG,GAASy6B,EAAa,IAAKksE,GAA8B3mG,EAAQ2mG,6BAClG,cAAe3mG,GAASy6B,EAAa,IAAKosE,GAAY7mG,EAAQ6mG,WAC9D,kCAAmC7mG,GAASy6B,EAAa,IAAKssE,GAAgC/mG,EAAQ+mG,+BACtG,cAAe/mG,GAASy6B,EAAa,GAAI+rD,GAAYxmF,EAAQwmF,WAC7D,eAAgBxmF,GAASy6B,EAAa,GAAIisD,GAAa1mF,EAAQ0mF,YAC/D,uBAAwB1mF,GAASy6B,EAAa,IAAKmsD,GAAqB5mF,EAAQ4mF,oBAChF,oBAAqB5mF,GAASy6B,EAAa,GAAIqsD,GAAkB9mF,EAAQ8mF,iBACzE,mBAAoB9mF,GAASy6B,EAAa,IAAKusD,GAAiBhnF,EAAQgnF,gBACxE,sBAAuBhnF,GAASy6B,EAAa,GAAI8sE,GAAoBvnG,EAAQunG,mBAC7E,mBAAoBvnG,GAASy6B,EAAa,GAAIysD,GAAiBlnF,EAAQknF,gBACvE,yBAA0BlnF,GAASy6B,EAAa,GAAI2sD,GAAuBpnF,EAAQonF,sBACnF,QAASpnF,GAASy6B,EAAa,IAAKgvD,GAAMzpF,EAAQypF,KAClD,sBAAuBzpF,GAASy6B,EAAa,GAAImtE,GAAoB5nG,EAAQ4nG,mBAC7E,mBAAoB5nG,GAASy6B,EAAa,GAAI+sD,GAAiBxnF,EAAQwnF,gBACvE,qBAAsBxnF,GAASy6B,EAAa,GAAIitD,GAAmB1nF,EAAQ0nF,kBAC3E,0BAA2B1nF,GAASy6B,EAAa,GAAImtD,GAAwB5nF,EAAQ4nF,uBACrF,cAAe5nF,GAASy6B,EAAa,EAAG0tD,GAAYnoF,EAAQmoF,WAC5D,uBAAwBnoF,GAASy6B,EAAa,IAAK4+C,GAAqBr5E,EAAQq5E,oBAChF,oBAAqBr5E,GAASy6B,EAAa,IAAKiuE,GAAkB1oG,EAAQ0oG,iBAC1E,kBAAmB1oG,GAASy6B,EAAa,IAAKmuE,GAAgB5oG,EAAQ4oG,eACtE,qBAAsB5oG,GAASy6B,EAAa,IAAKquE,GAAmB9oG,EAAQ8oG,kBAC5E,kBAAmB9oG,GAASy6B,EAAa,GAAIuuE,GAAgBhpG,EAAQgpG,eACrE,SAAUhpG,GAASy6B,EAAa,EAAGhjS,GAAOuoQ,EAAQvoQ,MAClD,2BAA4BuoQ,GAASy6B,EAAa,GAAIswE,GAAyB/qG,EAAQ+qG,wBACvF,wBAAyB/qG,GAASy6B,EAAa,IAAK88E,GAAsBv3G,EAAQu3G,sBAGxF/8E,EAAO1jC,GAAGxhL,OAAS,WAuBjB,GApBA,UAFIklN,EAAO1jC,GAAGzkF,MAAM,IAGlBspK,GAAwBh1U,IAAI0yU,IAK9B,EAFI7+C,EAAO1jC,GAAGzkF,MAAM,IAIlBooH,EAAa,IAAKu5D,IAAc9tQ,IAKlC,EAFIs0M,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,IAIlBooH,EAAa,EAAG0tD,GAA0B,OAAdA,GAAqB8d,GAAwB9d,IAK3E,EAFI3tD,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFImoH,EAAO1jC,GAAGzkF,MAAM,GAEjB,CAEC,IAAIvF,GAAU,EAEdg8L,GAAiBhmX,SAAQ,SAAUy+X,GACjC,IACIv+X,EADU,GAAeu+X,EAAS,GACpB,GAEdtY,GAAgBjmX,KACpBy3S,EAAa,EAAGwuE,GAAgBjmX,GAAO,GAAIimX,IAC3Cn8L,GAAU,MAGRA,GACF2tH,EAAa,IAAKgwE,GAA8B,GAAmB3B,KAlgF3D,IAAmB4C,EAmW7B8V,GACAC,GAowCuC7lX,GAAM8lX,GA63CjD,GA5dA,QAFIlnF,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAGxBooH,EAAa,IAAKm7D,EAAgB5B,GAAayW,GAA4BljX,OAAStI,IAASwrX,GAA4BrqW,KAAI,SAAUuhX,GAIrI,OAHc,GAAeA,EAAS,GACrB,MAGd,IAKP,UAFInnF,EAAO1jC,GAAGzkF,MAAM,GAIpB,MAFYmoH,EAAO1jC,GAAGzkF,MAAM,GAI5B,KAFQmoH,EAAO1jC,GAAGzkF,MAAM,IAIxB,UAFOmoH,EAAO1jC,GAAGzkF,MAAM,KAGrBooH,EAAa,IAAKo7D,EA1/BE,SAA2B52W,EAAO6pX,EAAkBE,EAAetxW,GACzF,IAAIm+V,EAAiBiT,EAAiBj+W,QAAO,SAAU+2X,GACrD,IACIz5X,EADU,GAAey5X,EAAS,GACrB,GAEjB,OAAO3iY,EAAMukB,SAASrb,MACrB0C,QAAO,SAAUg3X,GAClB,IAAIC,EAAU,GAAeD,EAAS,GAClC15X,EAAK25X,EAAQ,GAGjB,OAAOxtV,EAFWwtV,EAAQ,GAAGxtV,aAEV,GAAc,GAAc,GAAI58B,GAAQsxW,EAAc7gX,QACxEiY,KAAI,SAAU2hX,GACf,IAAIC,EAAU,GAAeD,EAAS,GAItC,MAAO,CAHEC,EAAQ,GACNA,EAAQ,GAEF3jE,cAEf4jE,EAAyBr6G,GAAWiuF,EAAgBqmB,IAAwB,SAAU3pX,EAAGC,GAC3F,OAAOD,EAAE,KAAOC,EAAE,IAAMD,EAAE,KAAOC,EAAE,MAErC,OAAIyvX,EAA+B/F,IACnCA,GAAyBrmB,EAClBA,GAk+B8BqsB,CAAkBtsB,EAAe6U,GAA6BzB,GAAe,CAC9G9vW,IAAK8iW,MAMT,MAFIxhE,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKq7D,EAAeD,EAAetuW,QAKlD,EAFIizS,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFImoH,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFYmoH,EAAO1jC,GAAGzkF,MAAM,KAG1BooH,EAAa,IAAKs7D,EAAcD,GAAgBF,EAAcx1V,KAAI,SAAUg8W,GAC1E,IAAI+F,EAAgBhG,GAAqBC,GACzC,GAAK+F,EACL,MAAO,CACLh6X,GAAIi0X,EACJnhX,KAAMknX,EAAc,GACpBC,QAASl8R,GAAO,GAAG5+F,OAAO80X,EAAQ,SAClCiG,SAAUn8R,GAAO,GAAG5+F,OAAO80X,EAAQ,cAEpCvxX,OAAO2iH,UAAY,IAKxB,KAFIgtL,EAAO1jC,GAAGzkF,MAAM,KAIlBooH,EAAa,IAAKw5D,IAAuB8B,EAAYj4U,MAAK,SAAU2iK,GAClE,MAAmB,SAAZA,EAAKt4L,OAMhB,EAFIqyS,EAAO1jC,GAAGzkF,MAAM,IAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKy5D,KAAsBwK,IAAkBjF,IAAiBxF,IAK7E,QAFIz5D,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAGxBooH,EAAa,GAAIu7D,EAAeF,GAAgBr1K,IAAwB,iBAATA,IAAqB07L,GAAqB17L,IAAQA,GAAOq1K,EAAe,EAzgClID,EAAe,GAAG,QAygC8IjzW,GAKvK,KAFI43S,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAIjB6hL,GAAoB8B,GAAcp2S,KAKxC,UAFI46O,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFYmoH,EAAO1jC,GAAGzkF,MAAM,MAItB6hL,GACFuF,GAAcp2W,iBAAiB,OAAQumX,IACvCnQ,GAAcp2W,iBAAiB,QAASumX,KAC/BnQ,IAA4C,UAA3BA,GAAc9xT,WACxC8xT,GAAc/vV,oBAAoB,OAAQkgW,IAC1CnQ,GAAc/vV,oBAAoB,QAASkgW,MAM/C,UAFIpvE,EAAO1jC,GAAGzkF,MAAM,IAGd6hL,GAtxFCoV,GAAiB3iW,IAAIsjW,KAAmB/7U,MA2xF/C,SAFIssQ,EAAO1jC,GAAGzkF,MAAM,KA9wFD,SAAwB98K,GAE3C,GAAKu0W,KAAL,CACA,IAAIwY,EAA8Bz0X,KAAKO,MACvC,KAAIo7W,IAAmC8Y,EAA8B9Y,GAnjB5C,IAmjBzB,CACAA,GAAkC8Y,EAElC,IAAI91S,EAAOkyR,GAAiBnpW,EAE5B,GAAIi3E,EAAK15C,QAAQ,KAAOy2U,GAAxB,CAEAA,GAAW/8R,EAAK15C,QAAQ,GAExB,IAAI0kB,EAAQiiT,GAOZjiT,EAAMn0D,iBAAiB,UALR,SAAS20R,IACtBxgO,EAAM9tC,oBAAoB,SAAUsuQ,GACpCkxF,QAKFxmB,GAASlrS,EAAOg1B,MA2vFd+1S,CAAe3jB,IAAyBH,IAK1C,QAFIjkE,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK05D,EAAwBsK,IAAqB13H,GAAa03H,GAAmB,IAKjG,SAFIjkE,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK25D,EAAYgK,IAAc,CAAC,CAAC,EAAG1qW,KAAKM,IAAI0qW,GAAgBG,IAAqBH,MAKjG,UAFIlkE,EAAO1jC,GAAGzkF,MAAM,MAGlBgiL,EAAiBD,EAAU,GAAG,IAKhC,UAFI55D,EAAO1jC,GAAGzkF,MAAM,MAGlBiiL,EAAgBF,EAAUA,EAAU7sW,OAAS,GAAG,IAKlD,UAFIizS,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK85D,EAAiBH,EAAUh0V,KAAI,SAAUoiX,GACzD,IAAIC,EAAU,GAAeD,EAAS,GAClCxuW,EAAOyuW,EAAQ,GACfvxV,EAAKuxV,EAAQ,GAEjB,MAAO,CAAC17I,GAAa/yN,EAAM,GAAI+yN,GAAa71M,EAAI,QAMpD,WAFIspQ,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK+5D,EAAwBD,EAAezqV,WAAU,SAAU44W,GAC3E,IAAIC,EAAU,GAAeD,EAAS,GAClC1uW,EAAO2uW,EAAQ,GACfzxV,EAAKyxV,EAAQ,GAEjB,OAAOxuB,GAAyBngV,GAAQmgV,GAAyBjjU,MAMrE,WAFIspQ,EAAO1jC,GAAGzkF,MAAM,MAGlBoiL,GAAgD,IAA3BD,GAAgCD,EAAezqV,WAAU,SAAU84W,EAAa/hX,EAAOtQ,GAC1G,IAAIsyX,EAAWtyX,EAAIsQ,EAAQ,GAE3B,OAAKgiX,EAIE1uB,GAAyByuB,EAAY,IAAMzuB,GAAyB0uB,EAAS,GAH3E1uB,GAAyByuB,EAAY,OASlD,QAFIpoF,EAAO1jC,GAAGzkF,MAAM,IAGlBk4L,GAAQ5jW,IAAIkgW,IAKd,EAFIrsE,EAAO1jC,GAAGzkF,MAAM,IAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,MAGlBonL,IAAiBkF,GAAWyL,KAASC,MAKvC,UAFI7vE,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFYmoH,EAAO1jC,GAAGzkF,MAAM,KAItB6hL,GAAkBgW,GAAiBvjW,IAAIunB,KAAgBuwU,IAK7D,EAFIjkE,EAAO1jC,GAAGzkF,MAAM,IAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBonL,KAltF+BiS,EAktFJlN,GAjtFxBtK,IACOuF,GACNiS,OAASh4W,KAAKM,IAAI,EAAG03W,KAotF3B,IAFIlxE,EAAO1jC,GAAGzkF,MAAM,IAGlBylF,GAAgB0yG,GAA2BjM,GAA6BuD,GAAsBvD,IAKhG,QAFI/jE,EAAO1jC,GAAGzkF,MAAM,IAIlBooH,EAAa,IAAKi6D,EAAsC,YAAf8L,IAK3C,IAFIhmE,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFMmoH,EAAO1jC,GAAGzkF,MAAM,KAGpBooH,EAAa,GAAIk6D,EAAYyO,KAAgB1O,GAK/C,UAFIl6D,EAAO1jC,GAAGzkF,MAAM,IAId22L,IAEFr+W,OAAOg5C,QAAQqlU,IAAelmX,SAAQ,SAAUggY,GAC9C,IAAIC,EAAU,GAAeD,EAAS,GAClCz5X,EAAO05X,EAAQ,GACfpsX,EAASosX,EAAQ,GAGrBp4X,OAAOg5C,QAAQhtC,GAAQ7T,SAAQ,SAAUkgY,GACvC,IAAIC,EAAU,GAAeD,EAAS,GAClCx4X,EAAOy4X,EAAQ,GACfn9X,EAAQm9X,EAAQ,GAGfha,GAAgB5/W,IAErBoxS,EAAa,EAAGwuE,GAAgB5/W,GAAMmB,GAAQ1E,EAAOmjX,UAQ7D,MAFIzuE,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKs6D,GAAqB4I,IAKzC,SAFInjE,EAAO1jC,GAAGzkF,MAAM,GAIpB,SAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAIzBylF,GAAgBwjC,GAAYgkB,GAA6B,WAAfvnT,GAA0B88V,EAAoC,UAAf98V,IAAiC88V,GAAsBE,EAAmBz1C,IAKrK,QAFI9kB,EAAO1jC,GAAGzkF,MAAM,GAIpB,SAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAGxBq4L,GAAmB/jW,IAAI4Q,GAAW,EAAI,EAAG,CACvCq/Q,MAAO0oB,KAMX,UAFI9kB,EAAO1jC,GAAGzkF,MAAM,KAGlBuiL,EAAmB0M,GAp4oCX,SAAiB/uW,EAAGC,GAChC,OAAO42O,GAAW11O,KAAKM,IAAIzB,EAAE0B,MAAOzB,EAAEyB,OAAQP,KAAKM,IAAIzB,EAAE2B,OAAQ1B,EAAE0B,SAm4oClB2J,CAAQyjW,GAAyBuJ,IAAkBA,IAKlG,OAFIrwE,EAAO1jC,GAAGzkF,MAAM,KAGlB64L,GAAW51R,OAAO6oR,GAAQ,IAK5B,OAFI3jE,EAAO1jC,GAAGzkF,MAAM,MAGlB0iF,EAAkBmpG,GAAqB,SAAU13G,EAAOv+P,GACtD,OAAOi2W,GAAmB13G,EAAO,GAAc,GAAc,CAC3Dhe,WAAO5lP,EACP6lP,WAAO7lP,EACPgrP,cAAUhrP,GACTqF,GAAU,GAAI,CACf47R,WAAW,MAEX79C,IAKN,UAFIw0D,EAAO1jC,GAAGzkF,MAAM,IAGlBjrL,MAAMiD,QAAQ4zW,KAAoB9kW,GAAS,kBAAmB,GAAmB8kW,KAKnF,SAFIzjE,EAAO1jC,GAAGzkF,MAAM,GAIpB,MAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzB67L,GAAuBvnW,IAAIq3V,IAAsBpX,IAKnD,SAFIpsD,EAAO1jC,GAAGzkF,MAAM,IAGlB87L,GAAmBxnW,IAAoC,QAAhCggW,IAA+C3f,IAKxE,QAFIxsD,EAAO1jC,GAAGzkF,MAAM,IAGlBsoL,IAAelS,GAAS9hV,IAAIkkO,GAAW8vH,GAAY/pU,EAAG+pU,GAAY9pU,EAAG8pU,GAAY1mW,MAAO0mW,GAAYzmW,SAKtG,QAFIsmS,EAAO1jC,GAAGzkF,MAAM,IAIpB,QAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGxByzK,IAAa4O,GAAwB4G,IAAmBA,GAAgBh4U,WAn/EtEk+V,GAAqB3jB,GACrB4jB,GAAkB/1I,GAAgBo6G,IAClC07B,IAAsBA,KAAuBC,KAEjDxtG,GAAqBttQ,IAAI+kO,GAAgBo6G,KAEzCu0B,OAk/EA,KAFI7/E,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAI07D,EAAmBP,EAAcruW,OAAS,GAK7D,MAFIizS,EAAO1jC,GAAGzkF,MAAM,KAGb8jL,GAAkBuY,GAAQ/nW,IAAIujO,OAKrC,KAFIswD,EAAO1jC,GAAGzkF,MAAM,GAIpB,MAFOmoH,EAAO1jC,GAAGzkF,MAAM,MAGhB6wL,IAAe0L,GAASjoW,IAAIkkO,GAAW,EAAG+yH,GAAe,EAAG,KAKnE,SAFIpjE,EAAO1jC,GAAGzkF,MAAM,IAIpB,IAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzBooH,EAAa,IAAKq6D,GAAc9O,IAAkB6O,GAKpD,QAFIr6D,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKy+D,GAAgByB,IAAeA,GAAY1mW,MAAQ,GAAK0mW,GAAYzmW,OAAS,GAKjG,EAFIsmS,EAAO1jC,GAAGzkF,MAAM,GAIpB,WAFImoH,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAI0+D,GAAYD,IAAiBhzQ,MAAY4vQ,GAK5D,IAFIt7D,EAAO1jC,GAAGzkF,MAAM,IAGlBrwL,YAAW,WACT,OAAOy4S,EAAa,IAAK00E,GAAmBhW,MAC3C,GAKL,SAFI3+D,EAAO1jC,GAAGzkF,MAAM,GAIpB,MAFWmoH,EAAO1jC,GAAGzkF,MAAM,GAI3B,SAFQmoH,EAAO1jC,GAAGzkF,MAAM,KAItBylF,GAAgBo3G,GAAexT,GAAgC,WAAf3jW,GAA0B+8V,EAA4B,UAAf/8V,IAAiC+8V,GAAcqa,IAAoBpa,EAAmB2G,IAK/K,SAFIlhE,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzB+8L,GAAqBzoW,IAAIq6V,IAAkBtM,GAK7C,UAFIl6D,EAAO1jC,GAAGzkF,MAAM,IAGlBg+L,GAAiB1pW,IAAIu6V,IAKvB,UAFI1mE,EAAO1jC,GAAGzkF,MAAM,IAGdo3K,IACFb,GAAkBjiV,IAAI8iV,IAM1B,EAFIjvD,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGd56K,KACFA,GAAK4F,cAAcylV,GAAW,aAAc2C,KAE5ChuV,GAAK4F,cAAcylV,GAAW,OAAQl1V,GAAS63V,IAAuBA,GAAsBQ,MAMhG,EAFIzrD,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGd56K,KACFA,GAAK4F,cAAcylV,GAAW,YAAa4C,KAE3CjuV,GAAK4F,cAAcylV,GAAW,MAAO4C,MAMzC,IAFIlrD,EAAO1jC,GAAGzkF,MAAM,KAId4qL,IAAgByV,KAKtB,KAFIl4E,EAAO1jC,GAAGzkF,MAAM,KAGlBkrL,IAAsBwV,KAKxB,QAFIv4E,EAAO1jC,GAAGzkF,MAAM,IAGlB2jL,GAAgByf,GAAoB9uW,IAAI,KAAO,CAC7CiwR,MAAO0oB,KAMX,UAFI9kB,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKu6D,EAAsB4M,IAK1C,IAFIpnE,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKw6D,EAAa8H,IAAgBrpW,KAAK6sB,IAAIl5B,MAAMqM,KAAM,GAAmB/I,OAAO4/D,OAAOuyS,MAAmB,GAK1H,UAFItiE,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFYmoH,EAAO1jC,GAAGzkF,MAAM,KAGtBwqL,GAAiC,CACnC,IAAI/qW,GAAI+qW,GAAgCjsU,EAAIi1T,GAAWj1T,EAEnDsyV,GAAMr9B,GAAWj1T,EAAIi1T,GAAW5xV,OAAS4oW,GAAgCjsU,EAAIisU,GAAgC5oW,OAE7GkvX,GAAMtmB,GAAgChsU,EAAIg1T,GAAWh1T,EAErDr+B,GAAIqzV,GAAWh1T,EAAIg1T,GAAW3xV,QAAU2oW,GAAgChsU,EAAIgsU,GAAgC3oW,QAC5GkgD,GAAI1gD,KAAKM,IAAIlC,GAAGqxX,GAAKD,GAAK1wX,IAC9BikX,GAAe9vW,IAAIytC,GAAI6gT,EAAa,EAAIvhW,KAAKM,IAAIghW,EAAqBthW,KAAKmS,IAAIuuC,GAxrHtD,KAwrHwF,CAC/GwiP,MAAO0oB,KA4Cb,GArCA,SAFI9kB,EAAO1jC,GAAGzkF,MAAM,IAIlBooH,EAAa,IAAKy6D,EAAiB,IAAO0H,IAK5C,QAFIpiE,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGxBwzK,IAAc6wB,GAAgB/vW,IAAI,CAChCiqB,EAAG,EACHC,EAAGg1T,GAAWh1T,EACd58B,MAAO4xV,GAAWj1T,EA7sHO,GA6sH0B,EAAIi1T,GAAWj1T,EAClE18B,OAAQ2xV,GAAW3xV,OAASghW,GAC3B,CACDt+D,MAAO0oB,KAMX,QAFI9kB,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAI1B,EAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGxBwzK,IAAc8wB,GAAehwW,IAAI,CAC/BiqB,EAAG,EACHC,EAAG,EACH58B,MAAO6xV,GAAU7xV,MACjBC,OAAQ2xV,GAAWh1T,EAAIqkU,GACtB,CACDt+D,MAAO0oB,KAMX,QAFI9kB,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAI1B,EAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGpBwzK,GAAY,CACd,IAAIu9B,GAAQv9B,GAAWj1T,EAAIi1T,GAAW5xV,MAElCovX,GAAUv9B,GAAU7xV,OAAS4xV,GAAWj1T,EAAIi1T,GAAW5xV,OAEvDovX,GAjvHqB,KAkvHvBD,IAASC,GACTA,GAAU,GAGZzM,GAAiBjwW,IAAI,CACnBiqB,EAAGwyV,GACHvyV,EAAGg1T,GAAWh1T,EACd58B,MAAOovX,GACPnvX,OAAQ2xV,GAAW3xV,OAASghW,GAC3B,CACDt+D,MAAO0oB,KA+fb,GAxfA,QAFI9kB,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGxBwzK,IAAcgxB,GAAkBlwW,IAAI,CAClCiqB,EAAG,EACHC,EAAGg1T,GAAWh1T,EAAIg1T,GAAW3xV,OAC7BD,MAAO6xV,GAAU7xV,MACjBC,OAAQ4xV,GAAU5xV,QAAU2xV,GAAWh1T,EAAIg1T,GAAW3xV,SACrD,CACD0iS,MAAO0oB,KAMX,SAFI9kB,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzBooH,EAAa,IAAK06D,EAAcwH,IAAoB,GAAc,CAChEx0W,GAAI2rW,GACJz3O,gBAAiBmgP,GACjBxkW,QAASukW,IACRI,KAKL,SAFIniE,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzBooH,EAAa,IAAK26D,EAAasH,IAAmB,GAAc,CAC9Dv0W,GAAI2rW,GACJz3O,gBAAiBmgP,GACjBxkW,QAASukW,IACRG,KAKL,SAFIliE,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzBooH,EAAa,IAAK46D,EAAeoH,IAAqB,GAAc,CAClEt0W,GAAI2rW,GACJz3O,gBAAiBmgP,GACjBxkW,QAASukW,IACRE,KAKL,SAFIjiE,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzBooH,EAAa,IAAK66D,EAAgBgH,IAAsB,GAAc,CACpEn0W,GAAI2rW,GACJz3O,gBAAiBmgP,GACjBxkW,QAASukW,IACRD,KAKL,OAFI9hE,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK86D,EAAmB,CAACH,EAAYC,EAAcC,EAAeH,GAAatqW,OAAO2iH,UAKrG,MAFIgtL,EAAO1jC,GAAGzkF,MAAM,IAIpB,EAFQmoH,EAAO1jC,GAAGzkF,MAAM,KAIlBkjL,GAAoB8G,IACtB+Z,GAAmB9gS,QAAO,SAAUy0K,GAClC,MAAO,GAAGziQ,OAAO,GAAmByiQ,EAAOl/P,QAAO,SAAUy4X,GAC1D,OAAOA,EAAOn7X,KAAO2rW,OAClB,GAAmByB,OAO9B,EAFI/6D,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlB2kM,GAAmBrwW,IAAI+hW,IAAoC1M,SAAcp5W,GAK3E,EAFI43S,EAAO1jC,GAAGzkF,MAAM,GAIpB,OAFImoH,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFSmoH,EAAO1jC,GAAGzkF,MAAM,MAIrBooH,EAAa,IAAK88E,GAAsB9d,IACpCA,IAAehiW,GAAK4F,cAAcylV,GAAW,cAAey0B,MAMpE,QAFI/8E,EAAO1jC,GAAGzkF,MAAM,KAGdkpL,KArgEN3S,GAAkBjiV,IAAIsgO,MACtB4hH,GAAmBliV,SAAI/jB,GACvB8vX,KACAp1E,GAAgB32R,IAAI,KAugEpB,EAFI6zR,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKg7D,EAAUyG,GAASr7V,MAAQ,GAK/C,EAFI25R,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKi7D,EAAUwG,GAASr7V,MAAQq7V,GAAS30W,OAAS,GAKjE,OAFIizS,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFSmoH,EAAO1jC,GAAGzkF,MAAM,MAGvBsjL,EAAmB,CAACqE,GAAkBL,GAAkBU,GAAiBD,KAK3E,EAFI5/D,EAAO1jC,GAAGzkF,MAAM,IAGlBqpM,GAA4B/0W,IAAI2hV,IAKlC,WAFI9tD,EAAO1jC,GAAGzkF,MAAM,KAGlB42K,GAAoBtiV,IAAIs1V,IAK1B,KAFIzhE,EAAO1jC,GAAGzkF,MAAM,IAGlBy7L,GAAkBnnW,IAAIqvV,GAKxB,SAFIx7D,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzBooH,EAAa,IAAKw7D,EAAuBF,EAAY53V,QAAO,SAAUo4B,EAAMC,GAE1E,OADAD,EAAKC,EAAKruC,IAAM8tW,GAAwBA,EAAqBz/T,EAAKruC,KAAO,EAClEouC,IACN,KAKL,KAFIikQ,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIy7D,EAAa,CAC5B7sW,KAAM4yX,GACN38P,SAAU02O,IAMd,KAFIx7D,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKggB,EAAOs7C,EAAY31V,KAAI,SAAUqgL,GACjD,MAAO,CACLt4L,GAAIs4L,EAAKt4L,GACT6pC,KAAMyuJ,EAAK2hM,QACXzhX,MAAO8/K,EAAK4hM,cAOlB,KAFI7nF,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAIojB,EAASk4C,EAAY31V,KAAI,SAAUqgL,GAClD,OAAOA,EAAKt4L,OAMhB,OAFIqyS,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIh3R,EAAYw0S,GAAU,CAAC,cAAe,uBAAwBj+G,MAKjF,EAFIwgG,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKxgQ,EAAkB6rT,KAAcA,GAAU7xV,MAAQ,IAAO,OAAS6xV,GAAU7xV,MAAQ,IAAM,cAAWrR,IAKzH,EAFI43S,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK27D,EAAkBtQ,KAAcA,GAAU7xV,OAAS,KAAO6xV,GAAU5xV,QAAU,MAKlG,EAFIsmS,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK47D,EAAgBvQ,KAAcA,GAAU5xV,OAAS,IAAO,OAAS4xV,GAAU5xV,OAAS,IAAM,aAAUtR,IAKxH,EAFI43S,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKlrL,EAAU93G,IAAQA,GAAKyM,YAAczM,GAAKyM,WAAW2yB,UAAU2J,SAAS,iBAK5F,EAFIg6P,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFImoH,EAAO1jC,GAAGzkF,MAAM,IAIpB,EAFKmoH,EAAO1jC,GAAGzkF,MAAM,KAGnBooH,EAAa,IAAK67D,EAAyB/mP,GAAWu2O,IAAa2yB,GAAc3yB,GAAU7xV,OAK7F,EAFIumS,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFImoH,EAAO1jC,GAAGzkF,MAAM,IAIpB,EAFKmoH,EAAO1jC,GAAGzkF,MAAM,KAGnBooH,EAAa,IAAK87D,EAAuBhnP,GAAWu2O,IAAa4yB,GAAe5yB,GAAU5xV,QAK5F,WAFIsmS,EAAO1jC,GAAGzkF,MAAM,IAIpB,EAFamoH,EAAO1jC,GAAGzkF,MAAM,KAG3BooH,EAAa,IAAK+7D,EAAaF,GAA0BC,GAK3D,QAFI/7D,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKc,EAAgBgsE,IAKpC,IAFI/sE,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKg8D,EAA+B,WAApBx8T,GAK/B,KAFIugQ,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFOmoH,EAAO1jC,GAAGzkF,MAAM,KAGrBooH,EAAa,KA5tD4B7+R,GA4tDMkqV,GA5tDA47B,GA4tDW1d,GAAxCxiI,EA3tDfskH,GACoB,SAArB47B,GAAoC9lX,GAAK3H,MAAQ2H,GAAK1H,OAAS,YAAc,WACxD,eAArBwtX,GAA0C9lX,GAAK3H,MAAQ,IAAM,WAAa,YACrD,aAArBytX,GAAwC9lX,GAAK1H,OAAS,IAAM,YAAc,gBAA9E,EAHuB,cAguDvB,IAFIsmS,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAIi8D,EAA8B,cAAhBl1H,GAKjC,EAFIg5D,EAAO1jC,GAAGzkF,MAAM,IAIpB,IAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKk8D,GAAYF,GAA8B,UAAlBJ,GAK5C,EAFI77D,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKm8D,GAAqB8lB,IAAO52B,IAAa2yB,KAAgB3yB,GAAU7xV,QAAUklX,IAKjG,EAFI3+E,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKo8D,GAAkB,GAAGvvW,OAAO,GAAmBy0W,IAAc,IAAK,GAAmB3T,KAAev9V,OAAO2iH,UAK/H,KAFIgtL,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKq8D,GAAiC,6BAA6BxvW,OAAO48W,KAKzF,MAFI1pE,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKs8D,GAA+B,6BAA6BzvW,OAAO88W,KAKvF,MAFI5pE,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKu8D,GAA4B,0BAA0B1vW,OAAOg9W,KAKjF,MAFI9pE,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKw8D,GAAkC,gCAAgC3vW,OAAOk9W,KAK7F,OAFIhqE,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKy8D,GAAgC,8BAA8B5vW,OAAOo9W,KAKzF,EAFIlqE,EAAO1jC,GAAGzkF,MAAM,KAIlBooH,EAAa,IAAK08D,QAAgCv0W,IAAdkjW,IAA2BA,GAAU7xV,MAAQ,GAAK6xV,GAAU5xV,OAAS,GAK3G,EAFIsmS,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK28D,GAA2BD,IAAmB1/V,IAAQuU,iBAAiBvU,KAK3F,KAFI+iS,EAAO1jC,GAAGzkF,MAAM,KAId+kL,IAA0BgmB,KAKhC,KAFI5iF,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFOmoH,EAAO1jC,GAAGzkF,MAAM,GAIvB,SAFUmoH,EAAO1jC,GAAGzkF,MAAM,GAI1B,WAFWmoH,EAAO1jC,GAAGzkF,MAAM,IAI3B,KAFamoH,EAAO1jC,GAAGzkF,MAAM,IAI7B,UAFOmoH,EAAO1jC,GAAGzkF,MAAM,KAGrB9Q,GAAI56J,IAAI,GAAc,GAAc,GAAIi0V,IAAO,GAAI,CACjD4F,WAAYA,GACZh/H,YAAaA,EACbvnM,gBAAiBA,EACjBo8T,cAAeA,EACfS,+BAAgCA,GAChCC,6BAA8BA,GAC9BE,gCAAiCA,GACjCC,8BAA+BA,GAC/BF,0BAA2BA,GAC3BznP,QAASA,EACTt9E,WAAY1a,GACZi/U,WAAYA,EACZF,uBAAwBA,EACxBC,qBAAsBA,EACtBj7D,WAAYgkB,GACZ/jB,cAAeA,EACfuzE,gBAAiBhT,GACjBiT,iBAAkBlT,GAClBlF,UAAWA,GACXC,mBAAoBA,GACpBR,gBAAiBA,EACjBmtB,WAAYrgB,GACZsgB,cAAertB,GAAoBxB,EACnC1zL,MAAOy7M,GACP+G,eAAgBrvF,KAAa,UAAU9sS,QAAQwH,UAAUC,UAAUf,MAAM,qBAAuB,IAAI,SAAMpL,KAM9G,KAFI43S,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAI48D,GAAS1sW,OAAOg5C,QAAQi3T,IAAMx6V,KAAI,SAAUsjX,GAC3D,IAAIC,EAAU,GAAeD,EAAS,GAClC1gY,EAAM2gY,EAAQ,GACd79X,EAAQ69X,EAAQ,GAGpB,MAAI,UAAUt1X,KAAKrL,GACV8C,EAAQi9V,GAAY//V,QAAOJ,EAI7BkD,KACN+E,OAAO2iH,SAASrgH,KAAK,MAK1B,KAFIqtS,EAAO1jC,GAAGzkF,MAAM,IAIlB2jL,GAAgBylB,GAAU90W,IAAI,IAKhC,KAFI6zR,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFOmoH,EAAO1jC,GAAGzkF,MAAM,GAIvB,SAFImoH,EAAO1jC,GAAGzkF,MAAM,IAIpB,KAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGzBooH,EAAa,GAAI68D,GAAsBkL,GAAmB/nD,EAAKr6S,KAAI,SAAUkkM,GAC3E,OAAO,GAAc,GAAc,GAAIA,GAAM,GAAI,CAC/ChlF,SAAU02O,IAAiB1xJ,EAAIn8M,QAE/B,GAAc,GAAIyyW,KAAO,WAC3B,OAAOuO,GAAcxiW,IAAI,QAM7B,KAFI6zR,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAI88D,KAAiBD,GAAoBx5U,MAAK,SAAUwmL,GACnE,OAAOl9M,MAAMiD,QAAQi6M,OAMzB,SAFIk2F,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAI+8D,GAAmBoE,IAAoBjxW,OAAOg5C,QAAQg4T,IAAwB9wW,QAAO,SAAU+4X,GAI9G,OAAgB,MAHF,GAAeA,EAAS,GAClB,MAGnBzlX,QAAO,SAAUo4B,EAAMstV,GACxB,IACI/9X,EADU,GAAe+9X,EAAS,GAClB,GAGpB,OADO,GAAc,GAAc,GAAIttV,GAAOzwC,KAE7C,KAKL,QAFI00S,EAAO1jC,GAAGzkF,MAAM,KAMlBooH,EAAa,IAAKm9D,GAA4B0D,IAA4C,gBAAzBA,GAAgBllO,MAKnF,QAFIokK,EAAO1jC,GAAGzkF,MAAM,KAIdulL,IAA6Byf,IAC/BA,GAAappV,QAMjB,QAFIusQ,EAAO1jC,GAAGzkF,MAAM,KAIlBooH,EAAa,IAAKg9D,KAAagE,MAAiBA,GAAY36D,aAK9D,OAFItG,EAAO1jC,GAAGzkF,MAAM,GAIpB,SAFSmoH,EAAO1jC,GAAGzkF,MAAM,IAIzB,EAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAGrBolL,IAAYgC,IAAiBA,KAAkBikB,KACjDjjF,EAAa,IAAKijF,GAAmBjkB,IAv2DrB,WAEpB,IAAIqqB,EAAazM,GAAa9vX,YAAS3E,EAAY,CACjDktN,OAAQ,MAGNh8M,EA7hMU,SAAqBhU,EAAM8d,GAC3C,IAsFImmX,EAtFA97X,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9EypN,EAAkB5nN,EAAQ6nN,OAC1Bk0K,OAAoC,IAApBn0K,EAA6B,EAAIA,EACjDo0K,EAAmBh8X,EAAQ+P,QAE3B2oQ,EAAS,CAEX3oQ,QAAS,CAACgO,QAH8B,IAArBi+W,EAA8B,EAAIA,EAGpB,GAAc,GAAc,GAAI1/B,IAAe,GAAI,CAClFlxV,UAAW,MACR2yO,IACLl2B,OAAQ,CAAC9pM,GAAOg+W,EAAe,GAAc,GAAc,GAAIz/B,IAAe,GAAI,CAChFlxV,UAAW,MACR2yO,IAEL86D,YAAa,CAAC96R,QAAOpjB,EAAW2hW,IAAev+G,IAC/C4H,SAAU,CAAC5nO,QAAOpjB,EAAW+6S,IAAwB33D,IACrD/8M,OAAQ,CAACjjB,QAAOpjB,EAAW2hW,IAAev+G,IAC1ChwO,MAAO,CAACgQ,QAAOpjB,EAAW+6S,IAAwB33D,IAClDoU,MAAO,CAACp0O,QAAOpjB,EAAW+6S,IAAwB,SAAU3wS,GAC1D,OAAOA,GAAK,IAEdstP,SAAU,CAACt0O,QAAOpjB,EAAW+6S,IAAwB,SAAU3wS,GAC7D,OAAOA,GAAK,IAEd4sP,YAAa,CAAC5zO,GAAO,GAAG1e,OAAOg9V,IAAwBC,IAAe,SAAUv3V,GAC9E,OAAOA,GAAK,GAAG1F,OAAOg9V,MAExBzqG,kBAAmB,CAACnvI,QAAS9nH,GAAY,SAAUoK,GACjD,OAAOA,GAAKA,EAAEutP,cAAW33P,IAE3By5H,gBAAiB,CAACr2G,QAAOpjB,EAAW2hW,IAAe,SAAUxzU,EAAUO,EAAc4yW,GACnF,GAAK98X,MAAMiD,QAAQ0mB,GAAnB,CAEA,GAAI3pB,MAAMiD,QAAQinB,GAAe,CAC/B,IAAI6yW,EAAW,GAAmBpzW,GAGV,IAApBO,EAAa,IACf6yW,EAAS,GAAK,EACdD,EAAQC,IAEe,IAAhBA,EAAS,MAChBpzW,EAAW,GAAmBO,IACrB,GAAK,GAIlB,OAAOP,KAETk3O,gBAAiB,CAACv9I,QAAS9nH,GAAYojP,KAGrCo+I,EAAez5X,OAAOg5C,QAAQg9N,GAAQvgQ,KAAI,SAAUikX,GACtD,IAAIC,EAAU,GAAeD,EAAS,GAItC,MAAO,CAHGC,EAAQ,GACNA,EAAQ,GAED,OAEjBC,EAAaH,EAAahkX,KAAI,SAAUokX,GAI1C,OAHc,GAAeA,EAAS,GAClB,MAKlBC,EAAe95X,OAAOg5C,QAAQg9N,GAAQxiQ,QAAO,SAAUo4B,EAAMmuV,GAC/D,IAAIC,EAAU,GAAeD,EAAS,GAClC1hY,EAAM2hY,EAAQ,GAGd35L,EAAS,GAFD25L,EAAQ,GAEe,GAC/B54W,EAAQi/K,EAAO,GACf3iH,EAAW2iH,EAAO,GAUtB,OARAz0J,EAAKvzC,GAAO,SAAU8C,EAAOwL,GAC3B,OAAOya,EAAMpF,IAAI0hE,EAASviF,EAAOi+X,EAAW/gY,IAAM,SAAU8C,GAC1DimB,EAAMpF,IAAI7gB,EAAO,CACf8wS,MAAM,OAENtlS,IAGCilC,IACN,IAICz0B,EAAQ4+P,GAAQ6jH,GAAY,SAAU3iH,GAYxC,OAVAmiH,EAAaniH,EAAYzjQ,QAAO,SAAUymX,EAAiB9+X,EAAO+a,GAGhE,OADA+jX,EADUR,EAAavjX,GAAO,IACP/a,EAChB8+X,IACN,IAEHb,EAAWjkY,KAAOA,EAClBikY,EAAWnmX,KAAOA,EAElBmmX,EAAW/tX,OAAS4rQ,EAAY,GACzBmiH,KAqBT,OAlBAjiX,EAAM8E,IAAM,WACV,OAAOm9W,GAGTjiX,EAAM6E,IAAM,SAAUjP,EAAOm1J,GAC3B,IAAIv7J,EAAO,CACTslS,MAAO/pI,GAETliK,OAAOg5C,QAAQjsC,GAAO5U,SAAQ,SAAU+hY,GACtC,IAAIC,EAAU,GAAeD,EAAS,GAClC7hY,EAAM8hY,EAAQ,GACdh/X,EAAQg/X,EAAQ,GAEfL,EAAazhY,IAClByhY,EAAazhY,GAAK8C,EAAOwL,OAItBwQ,EAm6LOutO,CAAYoqH,GAAeG,GAAYkqB,GAEnDzM,GAAavwX,QAAQgN,GAErB8pX,GAAoBniB,IA81DhBspB,IAMJ,SAFIvqF,EAAO1jC,GAAGzkF,MAAM,IAIpB,QAFWmoH,EAAO1jC,GAAGzkF,MAAM,KAIzBolL,IAAYmmB,GAAoBniB,IAKlC,SAFIjhE,EAAO1jC,GAAGzkF,MAAM,IAIdmpL,IAAiBA,GAAcj0W,OAAS,EAAG,CAC7C,IAAIy9X,GAAiB,GACrB3N,GAAav0X,SAAQ,SAAUgR,EAAO+M,GACtB,IAAVA,GACA/M,EAAM8S,MAAM5O,SAAW,GAAGgtX,GAAe99X,KAAK4M,MAEpDkxX,GAAeliY,SAAQ,SAAUgR,GAC/B,OAAOujX,GAAalpX,OAAO2F,MAqCjC,GA9BA,EAFI0mS,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAIk9D,GAAkBzxQ,IAAUwxQ,GAAgBnwW,QAv2DjE,SAA8BmwW,EAAiBxxQ,GAC7C,GAAI,GAAWA,EAAO++R,mBACpB,OAAO/+R,EAAO++R,kBAAkBvtB,GAGlC,IAAIpmT,EAAes0T,GAAyB,CAC1CC,SAAUnO,GACTxxQ,GACH,OAAOqlM,GAAcrlM,EAAO++R,kBAAmB3zU,EAAc,IAAK,KA+1DO4zU,CAAqBxtB,GAAiBxxQ,KAK/G,QAFIs0M,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKo9D,GAAmByD,MAAqBA,GAAgB1zW,OAK5E,QAFI4yS,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAIq9D,IAAqBwD,KAAoBA,GAAgBh4U,eAAqC1gC,IAAzB04W,GAAgBllO,MAKxG,QAFIokK,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKs9D,GAAoBuD,KAAoBA,GAAgBjqF,qBAAuBiqF,GAAgBlqF,aAAev3M,EAAAA,IAKlI,QAFI2gO,EAAO1jC,GAAGzkF,MAAM,KAGdulL,IAA2B9/F,GAAgBg/G,GAAyB1b,IAA2B,EAAOA,IAK5G,QAFI5gE,EAAO1jC,GAAGzkF,MAAM,GAIpB,OAFUmoH,EAAO1jC,GAAGzkF,MAAM,GAI1B,QAFSmoH,EAAO1jC,GAAGzkF,MAAM,KAGnBipL,IAAmBA,GAAgBh4U,SAAU,CAC/C,IAAI6hW,GAAoB7lE,GAAc,IAAM,EAE5C94R,aAAam3V,IACbljF,EAAa,IAAKkjF,GAAY37X,YAAW,WACvC81Q,GAAgBg/G,GAAyB1b,IAA2B,EAAMA,MACzE+pB,KAmGP,GA7FA,KAFI3qF,EAAO1jC,GAAGzkF,MAAM,GAIpB,MAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAIvB,QAFQmoH,EAAO1jC,GAAGzkF,MAAM,KAGtBooH,EAAa,IAAKu9D,GAAqBsD,KAAoBzD,KAAqBC,KAAsBsD,IAKxG,MAFI5gE,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFQmoH,EAAO1jC,GAAGzkF,MAAM,KAItBooH,EAAa,IAAKw9D,MAA2BsD,IAAyB9B,KAAmBsd,KAK3F,QAFIv8E,EAAO1jC,GAAGzkF,MAAM,GAIpB,OAFUmoH,EAAO1jC,GAAGzkF,MAAM,MAGpB+oL,GAEFp5W,YAAW,WACT,OAAOm7S,GAAYx2R,IAAI,EAAG,CACxBiwR,MAAO0oB,OAHmBA,GAAc,IAAM,GAOlDniB,GAAYx2R,IAAI,EAAG,CACjBiwR,MAAO0oB,MAOb,QAFI9kB,EAAO1jC,GAAGzkF,MAAM,KAMlBooH,EAAa,IAAKy9D,MAAuB4C,IAA6BO,SAAsDz4W,IAAhCy4W,GAAmB93U,WAA2B83U,GAAmB/3U,WAK/J,KAFIk3Q,EAAO1jC,GAAGzkF,MAAM,KAGd6lL,IAAmBt4S,KAKzB,KAFI46O,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFOmoH,EAAO1jC,GAAGzkF,MAAM,KAGrBooH,EAAa,IAAK09D,GAAiCmD,MAAqBA,GAAgB1zW,OAASkwW,KAKnG,EAFIt9D,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK29D,GAAuBlyQ,IAx8D7C,SAAiC0jL,EAAW1jL,GAE1C,IAAIpkF,EAAQ8nQ,GAAaA,EAAUtmP,UAAYsmP,EAAUhiR,MAAQgiR,EAAY,CAC3ExzI,KAAM,iBACN7yG,SAAUs2C,EAAAA,QACRj3E,EAEA+d,EAAQ,GAAWulF,EAAOk/R,sBAC9Bl/R,EAAOk/R,qBAAqBtjX,GAC5B+iW,GAAyB,CACvB/iW,MAAOA,GACNokF,GAOH,OALI0jL,GAAaA,EAAUhiR,OAASgiR,EAAUhiR,MAAMy9B,WAClD1kB,EAAQ4qR,GAAc5qR,EAAOipQ,EAAUhiR,MAAMy9B,SAAU,IAAK,MAIvD1kB,EAs7D8C0kX,CAAwB/pB,GAAiBp1Q,KAK9F,EAFIs0M,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK49D,GAA0BgD,IAAsBn1Q,IA37DtE,SAAoC+rL,EAAc/rL,GAChD,OAAO,GAAWA,EAAOo/R,yBAA2Bp/R,EAAOo/R,wBAAwBrzG,GAAgBqzF,GAA4B,CAC7HxjW,MAAOmwQ,GACN/rL,GAw7D2Eq/R,CAA2BlqB,GAAoBn1Q,KAK7H,QAFIs0M,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK69D,GAAuB+C,KAAuBA,GAAmBhqF,qBAAuBgqF,GAAmBjqF,aAAev3M,EAAAA,IAK9I,QAFI2gO,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK89D,GAAoC8C,KAAuBA,GAAmBzzW,OAKlG,QAFI4yS,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAK+9D,MAA4B6C,KAAsBA,GAAmBzzW,QAKzF,EAFI4yS,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFImoH,EAAO1jC,GAAGzkF,MAAM,GAIpB,OAFOmoH,EAAO1jC,GAAGzkF,MAAM,GAIvB,QAFSmoH,EAAO1jC,GAAGzkF,MAAM,IAGvB,GAAIjxL,GAAQ,CACV,IAAIuf,GACA4iB,GACAiiW,GACAz3S,GACA+nF,GAEJ,GADI9pK,GAAS5K,MAASuf,GAAQvf,IAC1BwM,GAASxM,IAASmiC,GAAWniC,QAAY,GAAIgG,MAAMiD,QAAQjJ,IAAS,CACtE,IAEIqkY,GAAW,GAFDrkY,GAEyB,GAEvCuf,GAAQ8kX,GAAS,GACjBliW,GAAWkiW,GAAS,GACpB3vN,GAAgB2vN,GAAS,IACR,IAAbliW,KAAoBwqD,IAAU,GAC9BngF,GAAS21B,MAAWiiW,IAAe,GAEzC/qF,EAAa,GAAIqjF,IAAen9W,IAAS4iB,KAAa,CACpD2M,KAAMvvB,GACN4uV,MAAOxhR,IAAWy3S,GAClBz0V,kBAAmB,CACjB2kI,QAAS8vN,GACTjiW,SAAUA,IAEZ+4F,YAAavuC,IAAW,CACtBptE,MAAOulF,GAAOw/R,uBACd1zV,KAAMk0D,GAAOy/R,sBACb1nQ,QAAS63C,IAAiB,WACxB,OAAO2kI,EAAa,IAAKr5S,QAASwB,YAKxC63S,EAAa,GAAIqjF,GADR53R,IAAU4xQ,IAAqBD,IAAoBG,IAAsBC,GACnD,CAC7B/nU,KAAMkoU,GACN7I,MAAOsI,IAAoBM,GAC3BpnU,kBAAmB,CACjB2kI,QAASyiM,GACT50U,SAAUw0U,IAEZz7O,YAAau7O,IAAoB,CAC/Bl3V,MAAOulF,GAAOw/R,uBACd1zV,KAAMk0D,GAAOy/R,sBACb1nQ,QAASqgQ,KAGJp4R,IAAUgyQ,IAAqBG,GACT,CAC7BnoU,KAAMmoU,GACN9I,MAAOiJ,IAA0BD,GACjCxnU,kBAAmB,CACjB2kI,QAAS6iM,GACTh1U,SAAU+0U,IAEZh8O,YAAak8O,IAA0B,CACrC73V,MAAOulF,GAAOw/R,uBACd1zV,KAAMk0D,GAAOy/R,sBACb1nQ,QAASsgQ,UAIkB37X,GAyEnC,GAnEA,OAFI43S,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKg+D,QAA4B71W,IAAXxB,IAKrC,QAFIo5S,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAI1B,QAFKmoH,EAAO1jC,GAAGzkF,MAAM,KAGf9iE,GAAW8rP,IAAsBA,GAAmB/3U,WACtDy6V,GAAmBp3W,KAAI,GACvB3kB,YAAW,WACT,OAAO+7X,GAAmBp3W,KAAI,KAC7B24S,GAAc,IAAM,IAM3B,EAFI9kB,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFImoH,EAAO1jC,GAAGzkF,MAAM,GAIpB,OAFOmoH,EAAO1jC,GAAGzkF,MAAM,KAGrB+oL,IAA4B3jW,IAAQA,GAAK4F,cAAcylV,GAAW,aAAckT,IAKlF,KAFIx7D,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAIvB,OAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGxBooH,EAAa,IAAKi+D,GAAiByC,IAAuBxD,IAAmBG,IAAqBD,IAAoBG,IAAsBC,IAA0BC,IAAqBO,IAK7L,QAFIj+D,EAAO1jC,GAAGzkF,MAAM,KAGlBylF,GAAgBkjH,GAAe9f,GAAiBxC,GAAiB,EAAI,EAAGwC,IAK1E,QAFI1gE,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGxB2oM,GAAcr0W,IAAI+xV,GAAiB,EAAI,EAAG,CACxCp/V,SAAUgmT,GAAc,IAAM,IAMlC,QAFI9kB,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIk+D,GAAkBuC,GAAiB,GAKtD,GAFI1gE,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKm+D,MAAcklB,KAAeA,GAAYvuB,QAK7D,QAFI/0D,EAAO1jC,GAAGzkF,MAAM,GAIpB,OAFUmoH,EAAO1jC,GAAGzkF,MAAM,GAI1B,IAFSmoH,EAAO1jC,GAAGzkF,MAAM,IAIzB,OAFMmoH,EAAO1jC,GAAGzkF,MAAM,KAGhBsmL,IAAmBmlB,GAAa,CAClCt3V,aAAa43V,IACb,IAAIwH,GAAc,CAChBhvF,MAAsB,IAAhB0oB,IAGR,GAAIs5C,GAAU,CAEZ,IAAIhiE,KAASknF,GAAYl2X,QAAU03T,GACnC2+D,GAAat3W,IAAI,EAAGi/W,IAEpB5H,GAAYr3W,IAAIs0V,GAAc,CAC5BrkE,KAAMA,KAGR6D,EAAa,IAAK2jF,GAAwBp8X,YAAW,WACnDk8X,GAAWv3W,IAAI,GAAIi/W,MAClB,SAEH3H,GAAat3W,IAAI,EAAGi/W,IACpBnrF,EAAa,IAAK2jF,GAAwBp8X,YAAW,WACnDk8X,GAAWv3W,IAAI,EAAGi/W,MACjB,IAmKT,GA5JA,KAFIprF,EAAO1jC,GAAGzkF,MAAM,KAGbsmL,KACH0lB,GAAa13W,SAAI/jB,EAAW,CAC1Bg0S,MAAM,IAERonF,GAAYr3W,SAAI/jB,EAAW,CACzBg0S,MAAM,IAERsnF,GAAWv3W,IAAI,EAAG,CAChBiwR,MAAM,MAOZ,MAFI4D,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,IAAKo+D,GAA6B,GAAdmC,IAKnC,IAFIxgE,EAAO1jC,GAAGzkF,MAAM,IAIpB,MAFMmoH,EAAO1jC,GAAGzkF,MAAM,KAGpBooH,EAAa,GAAIq+D,GAAkB,cAAcxxW,OAAOyzW,GAAgBlC,GAAc,QAKxF,IAFIr+D,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFMmoH,EAAO1jC,GAAGzkF,MAAM,KAIpBooH,EAAa,GAAI1uJ,GAAU0tN,IAAiBG,KAAejC,IAK7D,IAFIn9D,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFMmoH,EAAO1jC,GAAGzkF,MAAM,KAGpBooH,EAAa,IAAKu+D,GAAsBD,KAAyBhtN,IAAWx8B,GAAWz1E,GAAiBmmM,IAK1G,GAFIu6D,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAIknD,GAAkBqX,IAKrC,GAFIx+D,EAAO1jC,GAAGzkF,MAAM,KAGlBooH,EAAa,GAAI4mC,GAAoB23B,IAKvC,EAFIx+D,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFImoH,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFUmoH,EAAO1jC,GAAGzkF,MAAM,GAI1B,GAFMmoH,EAAO1jC,GAAGzkF,MAAM,IAItB,KAFKmoH,EAAO1jC,GAAGzkF,MAAM,KAInBooH,EAAa,GAAIw+D,GAAe/yQ,IAAU20Q,IA9iQlC,SAAiBhhW,GAC7B,IACE,OAAOA,IACP,MAAOoZ,GACP1hB,QAAQ3J,MAAMqrB,IA0iQgD4yW,EAAQ,WAClE,OAAOvjB,GAAkB,CAAC,CAAC,MAAO,QAAS,CACzCv6L,MAAO,mBACN,CAAC,CAAC,MAAO,YAAa,CACvBA,MAAO,iBACN,CACHu7L,IAAqB,CAAC,SAAU,QAAS,CACvC3iW,MAAOulF,GAAO4/R,WACd9zV,KAAMk0D,GAAO6/R,gBACb9nQ,QAAS,WACP,OAAO9kH,GAAS,UAElBuyT,WAAW,IAEbo3C,IAAsB,CAAC,SAAU,SAAU,CACzCniW,MAAOulF,GAAO8/R,kBACdh0V,KAAMk0D,GAAO+/R,iBACb1uW,UAAWk+U,EACXx3O,QAAS1uG,GACTm8S,WAAW,QACL,CAAC,MAAO,OAAQ,CACtB3jJ,MAAO,wCACN,CAACi7L,IAAyB,CAAC,MAAO,UAAW,CAC9Cj7L,MAAO,iBACN,CAAC,CAAC,SAAU,OAAQ,CACrBpnK,MAAOulF,GAAOggS,gBACdl0V,KAAMk0D,GAAOigS,eACb5uW,UAAWk+U,EACXx3O,QAAS9xE,GAAQ2tU,KACjBpuD,WAAW,IACT,CAAC,SAAU,OAAQ,CACrB/qT,MAAOulF,GAAOkgS,gBACdp0V,KAAMk0D,GAAOmgS,eACb9uW,UAAWm+U,EACXz3O,QAAS9xE,GAAQ6tU,KACjBtuD,WAAW,MACPmrC,GAAgBtvW,QAAU,CAAC,MAAO,eAAgB,CACtDwgL,MAAO,iBACN8uL,GAAgBhsW,OAAO2iH,SAASptG,KACnC,SAAUkmX,GACR,IAAIC,EAAU,GAAeD,EAAS,GAKtC,MAAO,CAJSC,EAAQ,GACdA,EAAQ,GAIC,GAAc,GAHrBA,EAAQ,WAKf,CAAC,MAAO,QAAS,CACtBx+M,MAAO,mBACN,CAAC66L,IAAsB,CAAC,SAAU,SAAU,CAC7CjiW,MAAOulF,GAAOsgS,kBACdx0V,KAAMykU,GAAYvwQ,GAAOugS,iBACzB1+M,MAAO,sBACP9pD,QAAS68P,GACTpvD,UAAW+qC,OACN,GAAc,GAAImE,KAAO,WAC9B,OAAOuO,GAAcxiW,IAAI,WAO/B,IAFI6zR,EAAO1jC,GAAGzkF,MAAM,KAIlBooH,EAAa,IAAK2+D,GAAoBiB,MAAqBA,GAAgB9yW,QAK7E,UAFIizS,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFYmoH,EAAO1jC,GAAGzkF,MAAM,KAI1BooH,EAAa,IAAK4+D,GAAuBD,IAAqBpjG,GAA6B4jG,GAAYS,KAKzG,UAFI7/D,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFYmoH,EAAO1jC,GAAGzkF,MAAM,KAI1B+mL,IAxkEyB,SAAgCstB,EAAkBlxG,EAAgB6jF,EAAsBn4E,GACnH,GAAK1L,GAAmBkxG,GAAoBzH,KAA2BzpG,EAAvE,CAKAypG,GAAyBzpG,EAEzB,IAAImxG,EAAkB,CACpBtlG,eAAgBg4E,GAGdn4E,GAAwBA,EAAqB,GAAK,IACpDylG,EAAgBtqQ,gBAAkB,GAAmB6kK,IAGvD1L,EAAekxG,EAAkBC,GAAiBjjY,MAAK,SAAUy9R,GAE3D69F,IACFv9I,GAAcu9I,IAIhB79F,EAAgB/xR,aAAa,eAAe,GAE5CqrS,EAAa,IAAKukF,GAAwB79F,OA+iErBylG,CAAuBntB,GAAee,GAAiBnB,GAAsBkB,IAKpG,QAFI//D,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAGpBgoL,IAAmB2kB,IAAyBplB,GAAY,CAE1D,IAAIitB,GAAcjtB,GACdktB,GAAUD,GAAY5yX,MACtB8yX,GAAWF,GAAY3yX,OAEvBqsS,GAA2BzxD,KAAa,YAA2C,SAA7BwrH,GAAsC,OAAS,YAEzG7/D,EAAa,IAAKykF,GAA0B7kB,GAAgBj6V,KAAI,SAAUomP,GAExE,IAAI5qP,EAAOivO,GAAW2b,EAAM51N,EAAG41N,EAAM31N,EAAG21N,EAAMvyP,MAAOuyP,EAAMtyP,QAEvD24P,EADUhhB,GAAW5B,GAAYruO,GAAO4qP,EAAM5Y,UAClBxtO,KAAI,SAAUosO,GAC5C,OAAOtF,GAAasF,EAAO57M,EAAIk2V,GAASt6I,EAAO37M,EAAIk2V,OAGrD,OAAO,GAAc,GAAc,GAAIvgI,GAAQ,GAAI,CACjDr+P,GAAI,YACJqgP,OAAO,EACPC,OAAO,EACPiiB,aAAc,EACd5C,YAAa,EACbC,iBAAanlQ,EACby5H,gBAAiB,CAAC,EAAG,EAAG,EAAG,GAC3B4rI,gBAAiB+2H,GACjBz+E,yBAA0BA,GAC1B1zC,kBAAmBA,QAQ3B,QAFI2tC,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFUmoH,EAAO1jC,GAAGzkF,MAAM,KAIxBooH,EAAa,GAAIuM,GAAqB,GAAG1/S,OAAO,GAAmB43X,IAA0B,GAAmB9kB,IAAsB,MAKxI,GAFI5/D,EAAO1jC,GAAGzkF,MAAM,IAGlBusM,IAAcO,GAAgBx4W,IAAIi4W,IAKpC,EAFIpkF,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFImoH,EAAO1jC,GAAGzkF,MAAM,IAIlBtmC,IAAWt0I,IAAQA,GAAK4F,cAAcylV,GAAW,UAKnD,OAFItoD,EAAO1jC,GAAGzkF,MAAM,IA76DbooH,EAAa,GAAIklF,IAA6B,GAq7DrD,IAFInlF,EAAO1jC,GAAGzkF,MAAM,KA76DbooH,EAAa,GAAI4mF,IAAuC,GAq7D/D,OAFI7mF,EAAO1jC,GAAGzkF,MAAM,IA56DbooH,EAAa,GAAIolF,IAA6B,GAo7DrD,MAFIrlF,EAAO1jC,GAAGzkF,MAAM,IA36DbooH,EAAa,GAAIslF,IAAwB,GAm7DhD,GAFIvlF,EAAO1jC,GAAGzkF,MAAM,IA16DbooH,EAAa,GAAIilF,IAA+B,GAk7DvD,EAFIllF,EAAO1jC,GAAGzkF,MAAM,KAIlBooH,EAAa,IAAK8+D,KAAYzT,IAAYA,GAAU5xV,OAAS,GAK/D,SAFIsmS,EAAO1jC,GAAGzkF,MAAM,KAGb2hL,GAAauF,KAChB/yU,aAAa64V,IACb5kF,EAAa,IAAK4kF,GAAoBr9X,YAAW,WAC1CgyW,GAAWvhF,GAAiB,YAChC,OAKTgoB,EAAa,IAAKo6D,GAAsB/6D,MACxC07D,EAAsD,IAA1BxvC,KAA8B,SAAUh9S,GAC7DA,IACL4+N,GAAY5+N,EAAWigB,OAAQv1B,KAAKi/B,OACpCi1M,GAAY5+N,EAAW83R,YAAaptS,KAAKi/B,SACvCqzM,GACJy0D,EAAa,IAAKi9D,GAAkB,EAAErT,MAAmB,SAASx5V,OAAO2iH,UAGzEitL,EAAa,IAAKs+D,GAAuB,MAAWl3H,MAAex0B,MAEnEotF,EAAa,GAAI6+D,GAx5RI,SAA0BvjU,GAC/C,IAAIpyC,IAASyC,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,KAAmBA,UAAU,GAC5E,OAAO,SAAUgG,GACA,SAAXA,EAAEqE,OACF9M,GAAQyI,EAAE0qC,kBACdf,EAAM3pC,EAAEmR,OAAO9M,KAAMrE,EAAEmR,OAAOzd,QAm5RHknY,CAAiB3mB,GAAWzkH,MAClD,CAACusG,GAAW8gB,GAAiBxxW,GAAMyuF,GAAQ/9F,GAAIi5W,GAAoBI,GAA4BE,GAAmBI,GAAsBM,GAAkBc,GAAeY,GAAwBiC,GAAeI,GAAwBE,GAA4BE,GAA8BE,GAAmCjgB,GAAWE,GAAYI,GAAiBygB,GAAmBrgB,GAAgBE,GAAsBwgB,GAAmBpgB,GAAgBE,GAAkBE,GAAuBohB,GAAe+B,GAAwBkM,GAAc9qU,GAASssU,GAAaC,GAActwB,GAAcE,GAAmBw1B,GAAac,GAAY53E,GAAoBj7J,GAAS4rN,GAAiBwB,GAAWR,GAAiBb,GAAmB9B,EAAcsB,GAAqB3C,EAAWwB,EAAkBuD,GAAaC,GAAkBK,GAAkBnU,GAAY8U,GAAaE,GAAgBv7C,GAAa47C,GAAgBM,GAAegB,GAAsBI,GAAaC,GAAiCoB,GAAiBiK,GAAeC,GAAoBmU,GAAcqD,GAA4B0B,GAAsCxB,GAA4BE,GAAuBL,GAA8BpmB,GAAWL,GAAc53B,GAAmBsgB,GAAiBmX,GAAiBtB,GAAkBD,GAAcF,GAAQX,EAAajzV,EAAWo6S,EAAQq4C,EAAYkG,GAAUkC,GAAcQ,GAAcC,GAAeC,GAAWC,GAAwBC,GAAkBC,GAAWC,GAAgBC,GAAeC,GAAcC,GAAmBC,GAAMC,GAAsBC,GAAeC,GAAWC,GAAuBC,GAAYC,GAAuBC,GAAyBC,GAA6BC,GAA2BC,GAAqBkJ,GAAgBC,GAAsBC,GAAkBiB,GAASpB,GAAeqB,GAA2BE,GAAoBY,GAAWv9H,GAAWw9H,GAAerB,GAAkBsB,GAAWC,GAAaG,GAAkBjgH,GAAgBmgH,GAAmB73F,GAAsBC,GAAuB63F,GAAe/9H,GAAes+H,GAAYC,GAAYrrF,GAAsB4rF,GAAiBC,GAAiBC,GAAmBC,GAAgBC,GAAYC,GAAgB5xI,GAAY15L,GAAQ0zO,GAAmBC,GAAgBF,GAAyBjkC,GAAaqkC,GAAqBD,GAAK2wE,GAAUE,GAAWynB,GAAmBC,GAAqBC,GAAsBC,GAAwBC,GAAoBC,GAAsBC,GAAqBC,GAAqBC,GAAeC,GAAkBhiK,GAAYi8I,GAAUimB,GAASC,GAAcC,GAAUC,GAAUC,GAAiBC,GAAkBvmB,GAAeymB,GAAuBC,GAAe5zE,GAAY8zE,GAAsBC,GAAeC,GAAuBC,GAAqBxmB,GAAoB2mB,GAA4BC,GAA0BC,GAA0BU,GAAcM,GAAaloB,GAAW6oB,GAAmB5oB,GAAaE,GAAoBZ,GAA0BsqB,GAAsB3pB,GAAmB+pB,GAAgCG,GAAgC/qB,GAA4B8sB,GAAoBuB,GAAoBC,GAAcI,GAAgBC,GAAiBC,GAAgBC,GAAkBC,GAAmBC,GAAyBE,GAAoBQ,GAAuBl6E,GAAiBm6E,GAAiBl2M,GAAK8jF,GAAYw1H,GAA0BxD,GAAcoE,GAAWK,GAAYS,GAAgBC,GAAgBC,GAvkFt8G,SAA2BllV,EAAOyxU,GACxD,OAAOA,EAAczxU,IAGA,SAA0BA,GAC/C,OAAOw+T,EAAYj4U,MAAK,SAAU2iK,GAChC,OAAOA,EAAKt4L,KAAOovC,KAClBt8B,MAgkF8gHgiS,GAAUigF,GAAeC,GAAchgF,GAx/EhiH,SAA6B8pF,GACrD,IAAI98X,EAAS88X,EAAQ98X,OACjB4uM,EAAekuL,EAAQluL,aACvB5uM,IAAWsN,IAAS,qBAAqBpJ,KAAK0qM,IAC9Cq+J,IAA0BgmB,MAo/E4jHC,GAAYrC,GAAe+C,GAAoBC,GAAaC,GAAcC,GAAYC,GAAaE,GAt2E7qH,SAAqBjyX,GAErC,IAAIwqS,KAAUknF,KAAeA,GAAYxhQ,eAAiBgjM,GAE1D6+D,GAAYx3W,IAAIva,EAAEmR,OAAOtJ,MAAO,CAC9B2iS,KAAMA,IAGRynF,GAAa13W,IAAIjT,KAAKi/B,MAAwB,IAAjBvmC,EAAEmR,OAAOtJ,OAAc,CAClD2iS,KAAMA,KA61EgtH8qD,GAAkBi9B,GAlzExtH,SAAuBvyX,GACzC,IAAIk0C,EAAUl0C,EAAEk0C,QACZijH,EAAUn3J,EAAEm3J,QACZF,EAAUj3J,EAAEi3J,QACZxkC,EAAWzyH,EAAEyyH,SAEjB,GAAgB,IAAZv+E,GAAiB/oB,GACnBnrB,EAAE0tC,sBAWJ,GANI1tC,EAAEjC,QAAsB,KAAZm2C,GAAkB7oC,GAAK+oC,SAASp0C,EAAEjC,UAAYi8T,GAAYh6T,EAAEjC,UACtEuwW,IAAmBxG,GAAkBiW,KACzC/9W,EAAE0tC,kBAIY,KAAZwG,IAAmBijH,IAAWF,GAU3B,GAAgB,KAAZ/iH,GAAkB+iH,EAE3Bl3G,GAAQ6tU,YAMV,GAAgB,MAAZ15U,EAAJ,CAGA,IAAI4mV,EAAS,IAAI52T,IAAI,GAAGhpE,OAAO,GAAmBmzW,IAAoB,CAACn6T,KACvEq+U,GAAiBh4W,IAAIvf,MAAM4sB,KAAKkzW,UArB1BroQ,GAAY0kC,EAEdp3G,GAAQ6tU,OAGR7tU,GAAQ2tU,QAmBI,SAAqBqN,GACrC,IAAInkY,EAAMmkY,EAAQnkY,IACds9C,EAAU6mV,EAAQ7mV,QAEtB,GAAY,SAARt9C,EAAgB,OAAO27X,GAAiBh4W,IAAI,IAChDg4W,GAAiBh4W,IAAI8zV,GAAkB5vW,QAAO,SAAUu8X,GACtD,OAAOA,IAAe9mV,OAKH,WACrBq+U,GAAiBh4W,IAAI,KAIC,SAA2Bva,GAC7Cg6T,GAAYh6T,EAAEjC,SAClBiC,EAAE0tC,kBAckB,SAAyB1tC,GAExCo3W,IACLqb,GAAezyX,EAAEmR,OAAO87R,UAAU,KAQb,WAChBuqE,IAtkMI,WACX,IAAI37W,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO,IAAI1G,SAAQ,SAAUC,GAE3B,IAAI0nY,EAAkBp/X,EAAQqY,OAG1BgnX,EAAY,GAAE,QAAS,CACzBp+W,MAAO,wDACPzY,KAAM,OACN6P,YAL+B,IAApB+mX,EAA6B,UAAYA,IAqBtDC,EAAUjkY,iBAAiB,UAbJ,SAASkkY,IAE9B,IACI7pX,EADmB,GAAe4pX,EAAU3pW,MAAO,GAC3B,GAG5B2pW,EAAUpjX,YAAcojX,EAAUn5X,SAClCm5X,EAAU59W,oBAAoB,SAAU69W,GAExC5nY,EAAQ+d,MAMV,MAAW3P,SAASm2B,KAAKhC,OAAOolW,GAEhCA,EAAU/mV,WAyiMVsP,GAASnsD,KAAKq7X,KAGE,SAAqB3yX,GAErC,GAAKs3W,GAAL,CAEA,IAAI8jB,EAAc1xS,IAAOjmF,OAAO49C,WAAa/5C,KAAKmS,IAAIigV,GAAUl1T,IAAMk1T,GAAU7xV,MAAO,EAAG,GACtFwzX,EAAc3xS,IAAOjmF,OAAO0qH,YAAc7mH,KAAKmS,IAAIigV,GAAUj1T,IAAMi1T,GAAU5xV,OAAQ,EAAG,GAExFszX,EAAc,KAAQC,EAAc,KAExC5I,IAAgBzyX,EAAEy7C,eAAiBh4C,OAAOg4C,eAAelqB,MAAM,MA8sE8yH2hW,GAAesB,GAh6Dt2H,SAA2Bx0X,GAE7CotW,IAAa/tH,GAAUr/O,EAAEmR,OAAQi8V,KAErC1hG,GAAgB+2G,GAAUrV,GAAYptW,EAAEmR,OAAQi8V,KA45Dk3Hp4W,GAAQm2X,GAAqBv9K,GAAOwmK,GAAY7/F,GAAQlgF,GAAMxhM,GAAO8Y,GAAYwf,GAAUypV,GAAgBE,GAAYI,GAAyBM,GAAiBI,GAAYE,GAAkBI,GAAmBE,GAAoBE,GAA4BE,GAAoBE,GAAoBE,GAAuBI,GAAaE,GAAmBE,GAAiBE,GAAkBE,GAAmBI,GAA2BE,GAAiCE,GAA+BE,GAAiCE,GAAuCE,GAAqCG,GAA0BS,GAA6BM,GAA0BK,GAAuBU,GAA6BE,GAAWE,GAA+BngB,GAAoBI,GAAgByC,GAAKpQ,GAz5IvsJ,WAClB,OAAO5+C,EAAa,GAAIytE,QAAgBtlX,IAGtB,SAAuBisH,EAASlrH,EAAQsE,GAC1D,IAAIy/X,EAAgBz/X,EAAQioC,KACxBA,OAAyB,IAAlBw3V,EAA2B,GAAKA,EACvCC,EAAuB1/X,EAAQukE,YAC/BA,OAAuC,IAAzBm7T,EAAkC,GAAKA,EACrDC,EAAqB3/X,EAAQ4/X,UAC7BA,OAAmC,IAAvBD,GAAuCA,EACnDE,EAAiB7/X,EAAQmpC,MACzBA,OAA2B,IAAnB02V,EAA4B,MAAQA,EAC5CC,EAAmB9/X,EAAQ04V,QAC3BA,OAA+B,IAArBonC,EAA8B,SAAWA,EACnD3nC,EAAgBn4V,EAAQm4V,cACxBE,EAAer4V,EAAQq4V,aAC3B7lD,EAAa,GAAIytE,GAAgB,CAE/B92U,MAAOA,EACPuvT,QAASA,EACTzwT,KAAMA,EACNs8B,YAAaA,EACb4zR,cAAeA,EACfE,aAAcA,EAEdT,UAAW,WAEThxO,EAAQs5P,GAAmBriX,OACvB+hY,GAAWptF,EAAa,GAAIytE,QAAgBtlX,IAGlDk9V,SAAU,WAERn8V,OAAOf,GAEP63S,EAAa,GAAIytE,QAAgBtlX,OAq3IsuJ8lX,GAAiBE,GAAeE,GAAkB9qW,GAAKo6C,GAAMwH,GAAOkqT,GAAUK,GAAiBC,GAAMC,GAAQC,GAAYp8U,GAAa+7U,GAAgBD,GAAgBS,GAA6B0E,GAAkB4H,GAA+B2G,GAAkBC,GAAWS,GAAuBY,GAAuBE,GAAyBG,GAAmBrrB,EAAWuF,GAAWtD,EAAsBoD,GAAsBD,GAAmBlF,EAAkB4B,EAAcoD,GAAezC,EAAUI,GAAiBnB,EAASD,EAASuD,GAAqBzpP,EAASwpP,GAAsBF,GAAcD,GAAUJ,GAAwBF,GAAsBC,GAAmCF,GAAyBH,GAAmBL,GAAkBE,GAAmBI,GAAgCC,GAAsBH,GAAwBD,GAAoBU,GAAgBD,GAAgBb,GAA2BF,GAAiBD,GAAUh9C,EAAM27C,EAAiBQ,GAAoBD,GAAWp7D,EAAeg7D,EAAsBD,EAAwBE,EAAYQ,GAA2BE,GAA+BD,GAAiCF,GAA8BD,GAAgCT,EAAep8T,EAAiBunM,EAAa41H,GAA0BD,GAAiBpB,EAAaH,EAAeC,EAAgBN,EAAkBJ,EAAaG,EAAeD,EAAcD,EAAYF,EAAgBF,EAAqBC,EAAYP,EAAsBK,EAAmBF,EAAoBC,EAAYV,EAAWI,EAAuBL,EAAuBI,EAAgBN,EAAoBnO,GAAW2T,GAAeG,GAAYC,GAAaC,GAAaC,GAAgB/T,GAAgBoU,GAAoBC,GAAiBC,GAA0BC,GAAuBC,GAAiBI,GAAME,GAA2BC,GAAeC,GAAaC,GAAcE,GAAqBC,GAA0BC,GAAoBC,GAAiBC,GAAqBE,GAAaE,GAAwBC,GAAkBC,GAAmBC,GAAkBC,GAAYC,GAAYC,GAAuBC,GAAUG,GAAqBC,GAAoBC,GAAiBE,GAAmBC,GAAiBC,GAAkBG,GAAeC,GAAcE,GAAgBhX,GAAcsX,GAAoB7X,GAAoBD,GAAqBkY,GAAuBC,GAAeI,GAAoBE,GAAoBC,GAASC,GAAYI,GAAcC,GAAmBC,GAAgBC,GAAUC,GAAuBC,GAv5DvzO,WACEpkE,EAAa,GAAIg+E,GAAczpB,GAAWvhT,YAC1CgtP,EAAa,GAAIi+E,GAAe1pB,GAAWz0O,cAGvB,SAAyBnuH,GAC7C,OAAO0rQ,GAAgB82G,GAAU5P,GAAY5yW,EAAEmR,OAAQyhW,KAGpC,SAAwBgpB,GAC3C,IAAIzqX,EAASyqX,EAAQzqX,OACrB,OAAOk9R,EAAa,GAAIu7D,EAAez4V,IAGzC,SAAqCzX,EAAOyxC,GACtCijQ,EAAO1jC,GAAG4I,UAAUupG,GAAgB1xU,GAAQzxC,KAC9CmjX,GAAgB1xU,GAASzxC,EACxB20S,EAAa,EAAGwuE,IAAkBxuE,EAAa,IAAKquE,IAAoBruE,EAAa,GAAIuuE,MAI3E,SAAsBzxU,GACvC,OAAOglV,GAAehlV,IAGL,SAAsBA,GACvC,OAAOilV,GAAejlV,IAGL,SAAsBA,EAAO0wV,GAC9C,IAAI1qX,EAAS0qX,EAAQ1qX,OACrB,OAAOk/W,GAAellV,EAAOh6B,IAGP,SAA2BnR,GACjD,OAAO0rQ,GAAgB42G,GAAStS,GAAWhwW,EAAEmR,OAAQ6+V,KAGvD,SAAuCt2W,GACjC00S,EAAO1jC,GAAG4I,UAAUupG,GAAgBjT,GAAelwW,KACrDmjX,GAAgBjT,GAAgBlwW,EAC/B20S,EAAa,EAAGwuE,IAAkBxuE,EAAa,IAAKquE,IAAoBruE,EAAa,GAAIuuE,MAIzE,WACnB,OAAOuT,GAAevmB,IAGH,WACnB,OAAOwmB,GAAexmB,IAGH,SAAwBkyB,GAC3C,IAAI3qX,EAAS2qX,EAAQ3qX,OACrB,OAAOk/W,GAAezmB,EAAcz4V,IAG3B,SAAcijS,GAEvB,IAAI2nF,EAAY,GAAc,GAAc,GAAI3nF,GAAc8+E,MAG1D8I,EAAoBhmB,GAAiB,CACvCl7D,iBAAkB8yD,GAClB3yD,iBAAkBsyD,GAClBvyD,gBAAiBs4D,GACjBp4D,YAAaoyD,GACbnyD,gBAAiB02D,IAChBkqB,GACCjhF,EAAmBkhF,EAAkBlhF,iBACrCG,EAAmB+gF,EAAkB/gF,iBACrCD,EAAkBghF,EAAkBhhF,gBACpCE,EAAc8gF,EAAkB9gF,YAChCC,EAAkB6gF,EAAkB7gF,gBAGxC,OAAOq5E,GAAkBuH,EAAWnhF,GAAoBE,EAAkBG,EAAkBD,EAAiBE,EAAaC,IAG/G,WAEX9M,EAAa,GAAIklF,IAA6B,GAC9CllF,EAAa,GAAI4mF,IAAuC,GACxD5mF,EAAa,GAAIolF,IAA6B,GAC9CplF,EAAa,GAAIslF,IAAwB,GACzCtlF,EAAa,GAAIilF,IAA+B,IAGlD,SAAqB7nE,GACnB58C,GAAkB48C,EAAU,UAAY,SAAQ,WAE9Cpd,EAAa,GADbmkF,GAAa/mE,OAKjB,SAA4C/xT,GAE1C20S,EAAa,EADb0tD,GAAYriW,GACgB20S,EAAa,IAAKwrE,KAGhD,SAA+CngX,GAE7C20S,EAAa,GADb2tD,GAAetiW,IAIjB,SAAoDA,GAElD20S,EAAa,GADb6tD,GAAoBxiW,IAItB,SAAuB+xT,GACrB58C,GAAkB48C,EAAU,UAAY,SAAQ,WAE9Cpd,EAAa,GADb0tE,GAAqBtwD,OAKzB,SAAuBA,GACrB58C,GAAkB48C,EAAU,UAAY,SAAQ,WAE9Cpd,EAAa,EADbhjS,GAAOogT,OAKa,SAA2BzrT,GACjD,OAAO0rQ,GAAgBtrD,GAAYmuJ,GAAcvuW,EAAEmR,OAAQo9V,MA4xD/D,IAq/BI0tB,GAr/BAC,GAAkB,SAAUC,GAC9Bx9Q,GAAUu9Q,EAAIC,GAEd,IAAIC,EAAWrqJ,GAAamqJ,GAE5B,SAASA,EAAGrgY,GACV,IAAIwgY,EAiGJ,OA/FAp+Q,GAAgBllH,KAAMmjY,GAGtBr4Q,GAAKjE,GADLy8Q,EAAUD,EAAS1/X,KAAK3D,OACc8C,EAAS8rW,GAAYF,GAAmBp9F,GAAgB,CAC5F1uF,MAAO,IACP4yI,OAAQ,IACRh6C,OAAQ,IACRz6K,OAAQ,EACR/9F,GAAI,EACJs4L,KAAM,IACNxhM,MAAO,IACP8Y,WAAY,IACZwf,SAAU,IACVypV,eAAgB,IAChBE,WAAY,IACZE,mBAAoB,EACpBE,wBAAyB,IACzBE,2BAA4B,EAC5BE,kBAAmB,EACnBE,gBAAiB,IACjBE,qBAAsB,EACtBE,WAAY,IACZE,iBAAkB,IAClBE,iBAAkB,EAClBE,kBAAmB,IACnBE,mBAAoB,IACpBE,2BAA4B,IAC5BE,mBAAoB,IACpBE,mBAAoB,IACpBE,sBAAuB,IACvBE,cAAe,GACfE,YAAa,IACbE,kBAAmB,IACnBE,gBAAiB,IACjBE,iBAAkB,IAClBE,kBAAmB,IACnBE,uBAAwB,GACxBE,0BAA2B,IAC3BE,gCAAiC,IACjCE,8BAA+B,IAC/BE,gCAAiC,IACjCE,sCAAuC,IACvCE,oCAAqC,IACrCtjX,OAAQ,IACRyjX,yBAA0B,IAC1BS,4BAA6B,IAC7BM,yBAA0B,IAC1BG,cAAe,GACfE,sBAAuB,IACvBE,uBAAwB,GACxBE,2BAA4B,GAC5BE,6BAA8B,GAC9BE,kCAAmC,GACnCE,4BAA6B,IAC7BE,UAAW,IACXE,8BAA+B,IAC/BvgB,UAAW,GACXE,WAAY,GACZE,mBAAoB,IACpBE,gBAAiB,GACjBE,eAAgB,IAChBugB,kBAAmB,GACnBrgB,eAAgB,GAChBE,qBAAsB,GACtBqC,IAAK,IACLme,kBAAmB,GACnBpgB,eAAgB,GAChBE,iBAAkB,GAClBE,sBAAuB,GACvBO,UAAW,EACX9O,mBAAoB,IACpBqvC,cAAe,IACfC,cAAe,IACfjgB,gBAAiB,IACjBE,cAAe,IACfE,iBAAkB,IAClBE,cAAe,GACfhrW,IAAK,IACLirW,gBAAiB,EACjBxxW,KAAM,EACN2gD,KAAM,IACNwH,MAAO,IACPkqT,SAAU,IACVK,gBAAiB,IACjBC,KAAM,IACNC,OAAQ,IACRC,WAAY,IACZp8U,YAAa,IACb+7U,eAAgB,IAChBD,eAAgB,IAChBe,uBAAwB,GACxBkM,aAAc,GACdM,oBAAqB,IACrBprU,QAAS,IACR,KAAM,EAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChFs8U,EAm4BT,OAh4BA99Q,GAAa29Q,EAAI,CAAC,CAChBtlY,IAAK,QACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaqzL,GAChB70M,KAAK86Q,MAAM,CACTl4F,MAAOiyB,IAET9sH,OAED,CACDlqF,IAAK,SACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa65V,GAChBr7W,KAAK86Q,MAAM,CACT06C,OAAQ6lD,IAEVtzR,OAED,CACDlqF,IAAK,SACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAag6P,GAChBx7Q,KAAK86Q,MAAM,CACTU,OAAQA,IAEVzzL,OAED,CACDlqF,IAAK,SACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAau/E,GAChB/gG,KAAK86Q,MAAM,CACT/5K,OAAQA,IAEVhZ,OAED,CACDlqF,IAAK,KACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAaxe,GAChBhD,KAAK86Q,MAAM,CACT93Q,GAAIA,IAEN+kF,OAED,CACDlqF,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa85K,GAChBt7L,KAAK86Q,MAAM,CACTx/E,KAAMA,IAERvzG,OAED,CACDlqF,IAAK,QACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa1nB,GAChBkG,KAAK86Q,MAAM,CACThhR,MAAOA,IAETiuF,OAED,CACDlqF,IAAK,aACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa5O,GAChB5S,KAAK86Q,MAAM,CACTloQ,WAAYA,IAEdm1E,OAED,CACDlqF,IAAK,WACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa4Q,GAChBpyB,KAAK86Q,MAAM,CACT1oP,SAAUA,IAEZ21D,OAED,CACDlqF,IAAK,iBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaq6V,GAChB77W,KAAK86Q,MAAM,CACT+gG,eAAgBA,IAElB9zR,OAED,CACDlqF,IAAK,aACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAau6V,GAChB/7W,KAAK86Q,MAAM,CACTihG,WAAYA,IAEdh0R,OAED,CACDlqF,IAAK,qBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAay6V,GAChBj8W,KAAK86Q,MAAM,CACTmhG,mBAAoBA,IAEtBl0R,OAED,CACDlqF,IAAK,0BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa26V,GAChBn8W,KAAK86Q,MAAM,CACTqhG,wBAAyBA,IAE3Bp0R,OAED,CACDlqF,IAAK,6BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAa66V,GAChBr8W,KAAK86Q,MAAM,CACTuhG,2BAA4BA,IAE9Bt0R,OAED,CACDlqF,IAAK,oBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAa+6V,GAChBv8W,KAAK86Q,MAAM,CACTyhG,kBAAmBA,IAErBx0R,OAED,CACDlqF,IAAK,kBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAai7V,GAChBz8W,KAAK86Q,MAAM,CACT2hG,gBAAiBA,IAEnB10R,OAED,CACDlqF,IAAK,uBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAam7V,GAChB38W,KAAK86Q,MAAM,CACT6hG,qBAAsBA,IAExB50R,OAED,CACDlqF,IAAK,aACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaq7V,GAChB78W,KAAK86Q,MAAM,CACT+hG,WAAYA,IAEd90R,OAED,CACDlqF,IAAK,mBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAau7V,GAChB/8W,KAAK86Q,MAAM,CACTiiG,iBAAkBA,IAEpBh1R,OAED,CACDlqF,IAAK,mBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAay7V,GAChBj9W,KAAK86Q,MAAM,CACTmiG,iBAAkBA,IAEpBl1R,OAED,CACDlqF,IAAK,oBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa27V,GAChBn9W,KAAK86Q,MAAM,CACTqiG,kBAAmBA,IAErBp1R,OAED,CACDlqF,IAAK,qBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa67V,GAChBr9W,KAAK86Q,MAAM,CACTuiG,mBAAoBA,IAEtBt1R,OAED,CACDlqF,IAAK,6BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa+7V,GAChBv9W,KAAK86Q,MAAM,CACTyiG,2BAA4BA,IAE9Bx1R,OAED,CACDlqF,IAAK,qBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAai8V,GAChBz9W,KAAK86Q,MAAM,CACT2iG,mBAAoBA,IAEtB11R,OAED,CACDlqF,IAAK,qBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAam8V,GAChB39W,KAAK86Q,MAAM,CACT6iG,mBAAoBA,IAEtB51R,OAED,CACDlqF,IAAK,wBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaq8V,GAChB79W,KAAK86Q,MAAM,CACT+iG,sBAAuBA,IAEzB91R,OAED,CACDlqF,IAAK,gBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAau8V,GAChB/9W,KAAK86Q,MAAM,CACTijG,cAAeA,IAEjBh2R,OAED,CACDlqF,IAAK,cACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAay8V,GAChBj+W,KAAK86Q,MAAM,CACTmjG,YAAaA,IAEfl2R,OAED,CACDlqF,IAAK,oBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa28V,GAChBn+W,KAAK86Q,MAAM,CACTqjG,kBAAmBA,IAErBp2R,OAED,CACDlqF,IAAK,kBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa68V,GAChBr+W,KAAK86Q,MAAM,CACTujG,gBAAiBA,IAEnBt2R,OAED,CACDlqF,IAAK,mBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa+8V,GAChBv+W,KAAK86Q,MAAM,CACTyjG,iBAAkBA,IAEpBx2R,OAED,CACDlqF,IAAK,oBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAai9V,GAChBz+W,KAAK86Q,MAAM,CACT2jG,kBAAmBA,IAErB12R,OAED,CACDlqF,IAAK,yBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAam9V,GAChB3+W,KAAK86Q,MAAM,CACT6jG,uBAAwBA,IAE1B52R,OAED,CACDlqF,IAAK,4BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaq9V,GAChB7+W,KAAK86Q,MAAM,CACT+jG,0BAA2BA,IAE7B92R,OAED,CACDlqF,IAAK,kCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAau9V,GAChB/+W,KAAK86Q,MAAM,CACTikG,gCAAiCA,IAEnCh3R,OAED,CACDlqF,IAAK,gCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAay9V,GAChBj/W,KAAK86Q,MAAM,CACTmkG,8BAA+BA,IAEjCl3R,OAED,CACDlqF,IAAK,kCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa29V,GAChBn/W,KAAK86Q,MAAM,CACTqkG,gCAAiCA,IAEnCp3R,OAED,CACDlqF,IAAK,wCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa69V,GAChBr/W,KAAK86Q,MAAM,CACTukG,sCAAuCA,IAEzCt3R,OAED,CACDlqF,IAAK,sCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa+9V,GAChBv/W,KAAK86Q,MAAM,CACTykG,oCAAqCA,IAEvCx3R,OAED,CACDlqF,IAAK,SACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAavlB,GAChB+D,KAAK86Q,MAAM,CACT7+Q,OAAQA,IAEV8rF,OAED,CACDlqF,IAAK,2BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAak+V,GAChB1/W,KAAK86Q,MAAM,CACT4kG,yBAA0BA,IAE5B33R,OAED,CACDlqF,IAAK,8BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa2+V,GAChBngX,KAAK86Q,MAAM,CACTqlG,4BAA6BA,IAE/Bp4R,OAED,CACDlqF,IAAK,2BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAai/V,GAChBzgX,KAAK86Q,MAAM,CACT2lG,yBAA0BA,IAE5B14R,OAED,CACDlqF,IAAK,gBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAao/V,GAChB5gX,KAAK86Q,MAAM,CACT8lG,cAAeA,IAEjB74R,OAED,CACDlqF,IAAK,wBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAas/V,GAChB9gX,KAAK86Q,MAAM,CACTgmG,sBAAuBA,IAEzB/4R,OAED,CACDlqF,IAAK,yBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaw/V,GAChBhhX,KAAK86Q,MAAM,CACTkmG,uBAAwBA,IAE1Bj5R,OAED,CACDlqF,IAAK,6BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa0/V,GAChBlhX,KAAK86Q,MAAM,CACTomG,2BAA4BA,IAE9Bn5R,OAED,CACDlqF,IAAK,+BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa4/V,GAChBphX,KAAK86Q,MAAM,CACTsmG,6BAA8BA,IAEhCr5R,OAED,CACDlqF,IAAK,oCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa8/V,GAChBthX,KAAK86Q,MAAM,CACTwmG,kCAAmCA,IAErCv5R,OAED,CACDlqF,IAAK,8BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaggW,GAChBxhX,KAAK86Q,MAAM,CACT0mG,4BAA6BA,IAE/Bz5R,OAED,CACDlqF,IAAK,YACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAakgW,GAChB1hX,KAAK86Q,MAAM,CACT4mG,UAAWA,IAEb35R,OAED,CACDlqF,IAAK,gCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaogW,GAChB5hX,KAAK86Q,MAAM,CACT8mG,8BAA+BA,IAEjC75R,OAED,CACDlqF,IAAK,YACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa6/U,GAChBrhW,KAAK86Q,MAAM,CACTumF,UAAWA,IAEbt5Q,OAED,CACDlqF,IAAK,aACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa+/U,GAChBvhW,KAAK86Q,MAAM,CACTymF,WAAYA,IAEdx5Q,OAED,CACDlqF,IAAK,qBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaigV,GAChBzhW,KAAK86Q,MAAM,CACT2mF,mBAAoBA,IAEtB15Q,OAED,CACDlqF,IAAK,kBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAamgV,GAChB3hW,KAAK86Q,MAAM,CACT6mF,gBAAiBA,IAEnB55Q,OAED,CACDlqF,IAAK,iBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaqgV,GAChB7hW,KAAK86Q,MAAM,CACT+mF,eAAgBA,IAElB95Q,OAED,CACDlqF,IAAK,oBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa4gW,GAChBpiX,KAAK86Q,MAAM,CACTsnG,kBAAmBA,IAErBr6R,OAED,CACDlqF,IAAK,iBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaugV,GAChB/hW,KAAK86Q,MAAM,CACTinF,eAAgBA,IAElBh6Q,OAED,CACDlqF,IAAK,uBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaygV,GAChBjiW,KAAK86Q,MAAM,CACTmnF,qBAAsBA,IAExBl6Q,OAED,CACDlqF,IAAK,MACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa8iV,GAChBtkW,KAAK86Q,MAAM,CACTwpF,IAAKA,IAEPv8Q,OAED,CACDlqF,IAAK,oBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaihW,GAChBziX,KAAK86Q,MAAM,CACT2nG,kBAAmBA,IAErB16R,OAED,CACDlqF,IAAK,iBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa6gV,GAChBriW,KAAK86Q,MAAM,CACTunF,eAAgBA,IAElBt6Q,OAED,CACDlqF,IAAK,mBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa+gV,GAChBviW,KAAK86Q,MAAM,CACTynF,iBAAkBA,IAEpBx6Q,OAED,CACDlqF,IAAK,wBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaihV,GAChBziW,KAAK86Q,MAAM,CACT2nF,sBAAuBA,IAEzB16Q,OAED,CACDlqF,IAAK,YACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAawhV,GAChBhjW,KAAK86Q,MAAM,CACTkoF,UAAWA,IAEbj7Q,OAED,CACDlqF,IAAK,qBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa0yU,GAChBl0V,KAAK86Q,MAAM,CACTo5E,mBAAoBA,IAEtBnsQ,OAED,CACDlqF,IAAK,gBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,gBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,kBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa+hW,GAChBvjX,KAAK86Q,MAAM,CACTyoG,gBAAiBA,IAEnBx7R,OAED,CACDlqF,IAAK,gBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaiiW,GAChBzjX,KAAK86Q,MAAM,CACT2oG,cAAeA,IAEjB17R,OAED,CACDlqF,IAAK,mBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAamiW,GAChB3jX,KAAK86Q,MAAM,CACT6oG,iBAAkBA,IAEpB57R,OAED,CACDlqF,IAAK,gBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaqiW,GAChB7jX,KAAK86Q,MAAM,CACT+oG,cAAeA,IAEjB97R,OAED,CACDlqF,IAAK,MACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,kBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAEpB,CACDpR,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAalP,GAChBtS,KAAK86Q,MAAM,CACTxoQ,KAAMA,IAERy1E,OAED,CACDlqF,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,QACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,WACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,kBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,SACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,aACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,cACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,iBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,iBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,OAEpB,CACDpR,IAAK,yBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaokW,GAChB5lX,KAAK86Q,MAAM,CACT8qG,uBAAwBA,IAE1B79R,OAED,CACDlqF,IAAK,eACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAEpB,CACDpR,IAAK,sBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa4wW,GAChBpyX,KAAK86Q,MAAM,CACTs3G,oBAAqBA,IAEvBrqS,OAED,CACDlqF,IAAK,UACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,QAIhBk0X,EA1+Ba,CA2+BpBvoH,IAGE6oH,GAAmB,CAAC,QAAS,SAAU,YAAa,WAAY,mBAAoB,UACpFC,GAAmB,CACvB,UACA,QAAS,SAAU,aAAc,mBAAoB,kBAAmB,gBAAiB,MAAO,kBAAmB,eAAgB,uBAE/H,GAAa,CAAC,UAGdC,GAAc,IAAIx4T,IAAI,IACtBy4T,GAAgB,GAEhBjgB,GAAmB,IAAIz4S,IAkNvB24T,GAAe,GAAG1hY,OAAOorR,GAAsB,CACnD,OAAQ,SAAU,OAAQ,OAAQ,SAAU,eAAgB,UAAW,OAAQ,OAAQ,QAAS,QAAS,OAAQ,MAAO,cAAe,cAAe,YAAa,cAAe,WAAY,cAAe,cAAe,YAAa,aAAc,YAAa,aAAc,gBAAiB,gBAAiB,cAAe,oBA88B/Tu2G,IAtEyB,CAAC,CAAC,aAAc,SAAU/iS,GACrD,OAAOA,EAAOgjS,0BACZ,CAAC,WAAY,SAAUhjS,GACzB,OAAOA,EAAOijS,wBACZ,CAAC,aAAc,SAAUjjS,GAC3B,OAAOA,EAAOkjS,0BACZ,CAAC,WAAY,SAAUljS,GACzB,OAAOA,EAAOmjS,wBACZ,CAAC,cAAe,SAAUnjS,GAC5B,OAAOA,EAAOojS,2BACZ,CAAC,QAAS,SAAUpjS,GACtB,OAAOA,EAAOqjS,sBACXzvF,MAAyB,CAAC,UAAW,SAAU5zM,GAClD,OAAOA,EAAOsjS,uBACZ,CAAC,WAAY,SAAUtjS,GACzB,OAAOA,EAAOujS,yBACZ5+X,OAAO2iH,SAsDU,SAAwBtkG,GAC3C,IAAI/gB,EAAK/B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,QAC7E,MAAO,CAAC,MAAO+B,EAAI,CACjB+gB,MAAOA,EACPg/B,YAAa,QAiIbwhV,IApGMT,GAAe,qFAYfA,GAAe,sEAUfA,GAAe,yDAA0D,KAAMA,GAAe,2DAA4D,KAAMA,GAAe,uDAAwD,KAAMA,GAAe,6DAA8D,KAa1TA,GAAe,wFAAyF,KAAMA,GAAe,sFAAuF,KASpNA,GAAe,6DAA8D,KAAMA,GAAe,+DAAgE,KAAMA,GAAe,2DAA4D,KAAMA,GAAe,iEAAkE,KAU1UA,GAAe,4FAA6F,KAAMA,GAAe,8FAA+F,KAAMA,GAAe,kGAAmG,KAAMA,GAAe,oGAAqG,KA8Cjc,SAA8Bx2X,GACvD,OAAOA,EAAI7C,OAAO,GAAGpO,cAAgBiR,EAAInI,MAAM,KAG7CqH,GAAS,KAETg4X,GAA2B,WAC7B,GAAe,OAAXh4X,GACF,GAAK0S,KACH,IAGE1S,IAA8D,IAArD5D,SAAS67X,MAAMn3P,MAAM,4BAC9B,MAAOx/G,GAEPthB,IAAS,OAPKA,IAAS,EAY7B,OAAOA,IAGLk4X,GAAa,SAAoB7mY,EAAK8mY,GACxC,OAAO,SAAU5jS,GACf,OAAOA,EAAO4jS,EAAe,GAAGxiY,OAAOwiY,GAAcxiY,OAAOoiY,GAAqB1mY,IAAQA,KAIzF+mY,GAAkB,SAAyB/8X,GAC7C,MAAO,CAACA,EAAG,GAAG1F,OAAO0F,KAGnBg9X,GAAqB,SAA4B/hY,EAAS6hY,GAC5D,OAAO,SAAU9mY,GACf,MAAO,CAACiF,EAAQjF,GAAM6mY,GAAW7mY,EAAK8mY,MAQtCG,GAA6B,SAAoCv4W,GACnE,OAAItqB,MAAMiD,QAAQqnB,IAAUA,EAAM6U,MAAM34B,IACT8jB,EALpBtR,IAAI2pX,IAQRr4W,GAGLw4W,GAAmB,CAAC,EAAG,MAAQ,OAC/BC,GAAyB,OACzBC,GAAyB,CAAC,EAAG,EAAG,EAAG,GAwGnCC,GAAoB,CACtBC,OAAQ,WACN,MAAO,CACLC,YAAa,EACbC,YAAa,UACbC,WAAY,gBAGhBj9X,KAAM,WACJ,MAAO,CACL+6O,OAAQ,GACRmiJ,kBAAkB,IAGtBt6X,KAAM,WACJ,MAAO,CACLu2P,GAAI,EACJC,GAAI,EACJ/R,GAAI,EACJiS,GAAI,EACJshB,cAAc,IAGlBuiH,UAAW,WACT,MAAO,CACL/5V,EAAG,EACHC,EAAG,EACH58B,MAAO,EACPC,OAAQ,IAGZ02O,QAAS,WACP,MAAO,CACLh6M,EAAG,EACHC,EAAG,EACHm1G,GAAI,EACJ8iG,GAAI,IAGR54M,KAAM,WACJ,MAAO,CACLU,EAAG,EACHC,EAAG,EACHX,KAAM,OACN06V,kBAAkB,KAKpBC,GAAkB,SAAyBp6X,GAC7C,IAAI+1P,EAAQpgQ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC5E6B,EAAU7B,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EACpD,GAAKynY,GAAkB55X,GAAvB,CAEA,IAAIq6X,EAAU7iY,GAAW,GACrB8iY,EAAmBD,EAAQrlX,SAC3BA,OAAgC,IAArBslX,EAA8B,WAAaA,EACtDC,EAAoBF,EAAQG,UAC5BA,OAAkC,IAAtBD,EAA+B,OAASA,EACpDE,EAAsBJ,EAAQK,YAC9BA,OAAsC,IAAxBD,GAAyCA,EACvDE,EAAwBN,EAAQO,iBAChCA,OAA6C,IAA1BD,GAA2CA,EAE9DE,EAAW,GAAc,GAAc,GAAIjB,GAAkB55X,MAAU+1P,GAE3E,MAAO,CAAC8kI,EAAU,CAChB7lX,SAAUA,EACVwlX,UAAWA,EACXE,YAAaA,EACbE,iBAAkBA,MAyElBE,GAAoB,SAA2BC,EAAM7qX,EAAOjJ,GAC9D,MAAO,CAAC8zX,EAAM7qX,GAASkpX,GAAW2B,EAAM,kBAAmB,GAAc,CACvEx5V,KAAM63V,GAAW2B,EAAM,kBACtB9zX,KAkID+zX,GAA2B,SAAkCC,GAC/D,OAAO/gY,OAAOC,KAAK8gY,GAAQtrX,IAAI4pX,GAAmB0B,EAAQ,eA0CxDC,GAAuB,SAA8Bj6W,EAAOzpB,GAC9D,IAAI2jY,EAAU3jY,GAAW,GACrB4jY,EAAaD,EAAQC,WACrB76W,EAAe46W,EAAQ56W,aACvBsG,EAAiBs0W,EAAQt0W,eAEzB/mB,EAAM,GAIV,OAHIs7X,IAAYt7X,EAAI,GAAK,CAACygB,EAAc,SAAUk1E,GAChD,OAAOA,EAAO2lS,IACb,GAAc,GAAIv0W,KACd,GAAGhwB,OAAOiJ,EAAK,GAAmBmhB,KAKvCo6W,GAA4B,SAAmCniY,GACjE,OAAOA,EAAMwG,MAAM,KAAKiQ,KAAI,SAAU/W,GACpC,OAAOA,EAAK8C,UACXoT,MAAK,SAAUlW,GAChB,OAAO0E,SAAS67X,MAAMn3P,MAAM,QAAQnrI,OAAO+B,QAI3C0iY,GAAsB,WACxB,IAAI9jY,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAClF,MAAO,CAAC,eAAgB,GAAc,GAAI6B,KAUxC+jY,GAAgB,kBAqEhBC,GAA2B,SAAkCv6W,GAC/D,IAAIzpB,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAClF,MAAO,CAAC,cAAe,GAAc,CACnC6B,QAAS0jY,GAAqBj6W,IAC7BzpB,KAYDikY,GAA4B,SAAmClpY,GACjE,OAAO,SAAU0uB,GACf,IAAIzpB,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO6lY,GAAyBv6W,EAAO,GAAc,CACnD2hB,MAAO,SAAe6yD,GACpB,OAAOA,EAAOljG,KAEfiF,MAIHkkY,GAA+BD,GAA0B,6BACzDE,GAAyBF,GAA0B,uBAsBnDG,GAA2B,SAAkC36W,EAAOg+L,GACtE,IAAI48K,EAAU58K,GAAY,GACtBr8K,EAAQi5V,EAAQj5V,MAChBk5V,EAAwBD,EAAQE,gBAChC9gE,OAAsC,IAA1B6gE,GAA2CA,EACvD5xE,EAAS2xE,EAAQ3xE,OACjB8xE,EAAqBH,EAAQI,WAC7BA,OAAoC,IAAvBD,GAAwCA,EAErDE,EAAiB1C,GAA2Bv4W,GAE5Ck7W,EAAiBl7W,EAAMtR,KAAI,SAAUysX,GACvC,IACI/mY,EADU,GAAe+mY,EAAS,GAClB,GAEpB,OAAO7gY,GAASlG,GAASipB,WAAWjpB,GAASA,KAE3CgnY,EAAgBp5X,KAAK6sB,IAAIl5B,MAAMqM,KAAM,GAAmBk5X,IACxDG,EAAgBr5X,KAAKM,IAAI3M,MAAMqM,KAAM,GAAmBk5X,IACxDI,EAAaF,EAAgBC,EACjC,MAAO,CAAY,UAAXpyE,EAAqB,aAAe,WAAY,CACtDtnR,OAAiB,IAAVA,OAAkBzwC,EAAYywC,GAAgB,SAAU6yD,GAC7D,OAAOA,EAAO+mS,uBAEhBhlY,QAAS,SAAiBu+P,GACxB,IAAIgc,EAAc9yD,EAAWi9K,EAAevsX,KAAI,SAAUrH,GAExD,IAAIm0X,EAAS,GAAen0X,EAAM,GAC9BjT,EAAQonY,EAAO,GACfvsX,EAAQusX,EAAO,GACfC,EAAUD,EAAO,GACjBE,OAA0B,IAAZD,EAAqB,GAAKA,EAExCE,EAAYrhY,GAASlG,GAASipB,WAAWjpB,GAASA,EAClDwnY,GAAgBD,EAAYN,GAAiBC,EAC7Ch7V,OAAOpvC,EAYX,MAVmB,SAAf8pY,EACF16V,EAAO,qEAA0E1qC,OAAO,GAAqB,KAAfgmY,EAAsB,uBAC5F,QAAfZ,EACT16V,EAAO,kDAAyD1qC,OAAO,EAAmB,EAAfgmY,EAAkB,OACpFthY,GAAS0gY,GAClB16V,EAAO06V,EACE,GAAWA,KACpB16V,EAAO06V,EAAWW,EAAWC,IAGxB,CAACxnY,EAAO6a,EAAO,GAAc,CAClCqxB,KAAMA,EACN05R,UAAWA,GACV0hE,OACAT,EACL,OAAIjyI,GAAQ8L,EAAO,mBAA2BmlI,GAAqBnpH,EAAa,CAC9EqpH,WAAY,yBAEPF,GAAqBnpH,IAE9B9xJ,SAAU,SAAkB5qH,EAAO0gQ,GAEjC,GAAK1gQ,EAAL,CAEA,IAAIiiQ,EAAcvB,EAAMuB,aAAe,GAEvC,IAAIA,EAAY,GAAhB,CAEA,IAAIjzP,EAAQ,GAAmBizP,GAE/BjzP,EAAM,GAAK,EACX0xP,EAAMuB,YAAcjzP,QAgBtBy4X,GAAoB,SAA2B77W,EAAO87W,EAAU/zD,GAClE,MAAO,CAAC,WAAY,CAClBpmS,MAAO,SAAe6yD,GACpB,OAAOA,EAAOsnS,IAEhBvlY,QAAS0jY,GAAqBj6W,EAAO,CACnCm6W,WAAY,YACZv0W,eAAgB,CACd0a,KAAM,qGAGVynS,gBAAiBA,KA0BjBg0D,GAAyB,SAAgCxlY,GAC3D,MAAO,CAAC,mBAAoBA,IAG1BylY,GAAoB,SAA2Bh8W,EAAO2hB,EAAOriB,EAAc/oB,GACxEA,GAAYypB,EAAMoM,MAAK,SAAU6vW,GAIpC,OAHc,GAAeA,EAAS,GAClB,KAEH38W,OAEjB/oB,EAAU,CACR4jY,WAAY,YACZ76W,aAAcA,IAIlB,IAAI27W,EAAiB1C,GAA2Bv4W,GAChD,MAAO,CAAC,WAAY,GAAc,CAChC2hB,MAAOA,EACPprC,QAAS0jY,GAAqBgB,EAAgB1kY,GAC9C24U,YAAa,SAAqB96U,GAChC,OAAI8H,GAAS9H,GAAe4N,KAAKiB,MAAM7O,GAChC,GAAGwB,OAAOoM,KAAKiB,MAAMoa,WAAWjpB,IAAS,OAEjDmC,KA4BD2lY,GAA8B,CAChCC,aAAc,WACZ,OA7YiDC,EArF5C,CACLl3U,YAAa,CAAC,EAAG,EAAG,EAAG,GACvBm3U,MAAO,CAAC,EAAG,EAAG,GACdC,OAAQ,CAAC,MAAQ,MAAQ,OACzBC,KAAM,CAAC,MAAQ,MAAQ,OACvBC,MAAO,CAAC,EAAG,EAAG,GACdC,KAAM,CAAC,EAAG,MAAQ,OAClBC,KAAM,CAAC,EAAG,MAAQ,MAClBC,KAAM,CAAC,KAAO,MAAQ,GACtBC,KAAM,CAAC,MAAQ,GAAK,IACpBC,MAAO,CAAC,MAAQ,GAAK,OACrBC,MAAO,CAAC,MAAQ,GAAK,MACrBC,OAAQ,CAAC,EAAG,MAAQ,GACpBC,OAAQ,CAAC,EAAG,MAAQ,OACpBC,IAAK,CAAC,EAAG,MAAQ,OACjBC,OAAQ,CAAC,MAAQ,MAAQ,OACzBC,QAAS,CAAC,MAAQ,MAAQ,OAC1BC,OAAQ,CAAC,MAAQ,KAAO,QAqEnBnkY,OAAOC,KAAKkjY,GAAQ1tX,IAAI4pX,GAAmB8D,EAAQ,oBADnC,IAA4BA,GA+YnDiB,oBAAqB,WACnB,MAjaK,CAAC,MAAO,QAAS,aAAc,SAAU,cAAe,SAAU,eA4D3D3uX,KAAI,SAAU8I,GAC1B,MAAO,CAAC65U,GAAY75U,GAAQ,SAAUg9E,GACpC,OAAOA,EAAO,2BAA2B5+F,OAAOoiY,GAAqBxgX,MACpE,CACD8oB,KAAM,SAAck0D,GAClB,OAAOA,EAAO,0BAA0B5+F,OAAOoiY,GAAqBxgX,YAkW1E8lX,kBAAmB,WACjB,OAtXK,GA1CA,CAAC,CAAC,sDAAuD,cAAe,CAAC,8CAA+C,SAAU,CAAC,2CAA4C,UAAW,CAAC,iBAAkB,YAAa,CAAC,mEAAoE,SAAU,CAAC,WAAY,aAAc,CAAC,yCAA0C,gBAAiB,CAAC,6CAA8C,cAAe,CAAC,2BAA4B,iBAkaleC,iBAAkB,WAChB,MA3ZK,CAAC,CAAC,SAAU,QAAS,CAAC,SAAU,UAAW,CAAC,SAAU,SAsC/C7uX,KAAI,SAAU8I,GAC1B,MAAO,CAACA,EAAO,SAAUg9E,GACvB,OAAOA,EAAO,sBAAsB5+F,OAAO4hB,EAAMre,QAAO,SAAUmC,GAChE,MAAa,WAANA,KACNoT,IAAIspX,IAAsBv8X,KAAK,YAmXtC+hY,iBAAkB,WAChB,MAlaK,CAAC,OAAQ,SAAU,SAgEX9uX,KAAI,SAAUgxB,GAC3B,MAAO,CAACA,EAAO,SAAU80D,GACvB,OAAOA,EAAO,sBAAsB5+F,OAAOoiY,GAAqBt4V,MAC/D,CACDs6R,WAAW,EACX15R,KAAM,SAAck0D,GAClB,OAAOA,EAAO,qBAAqB5+F,OAAOoiY,GAAqBt4V,YA8VrE+9V,mBAAoB,WAClB,OAAO1D,GAzbF,CACL2D,WAAY,QACZC,MAAO,OACPC,YAAa,KACbC,OAAQ,QACRC,YAAa,OACbC,MAAO,OACPC,WAAY,QAobdC,iBAAkB,WAChB,OAAOlE,GAAyB9gY,OAAOg5C,QA5blC,CACLyrV,WAAY,QACZC,MAAO,OACPC,YAAa,KACbC,OAAQ,QACRC,YAAa,OACbC,MAAO,OACPC,WAAY,OAqbsEvxX,QAAO,SAAUogB,EAAKqxW,GACtG,IAAIC,EAAU,GAAeD,EAAS,GAClC5sY,EAAM6sY,EAAQ,GACd/pY,EAAQ+pY,EAAQ,GAGpB,OADAtxW,EAAIv7B,GAAO,GAAGsE,OAA2B,EAApBynB,WAAWjpB,GAAY,KACrCy4B,IACN,MAELuxW,gBAAiB,WACf,OAjayDpE,EAjEpD,CACL0D,WAAY,KACZC,MAAO,KACPC,YAAa,KACbC,OAAQ,MACRC,YAAa,MACbC,MAAO,MACPC,WAAY,OA2DP/kY,OAAOC,KAAK8gY,GAAQtrX,IAAI4pX,GAAmB0B,EAAQ,cAD/B,IAAgCA,GAma3DqE,kBAAmB,WACjB,OA5ZqErE,EA7DhE,CACL0D,WAAY,MACZC,MAAO,MACPC,YAAa,OACbC,OAAQ,OACRC,YAAa,OACbC,MAAO,OACPC,WAAY,QAuDP/kY,OAAOC,KAAK8gY,GAAQtrX,IAAI4pX,GAAmB0B,EAAQ,cADzB,IAAsCA,IAgarEsE,GAAwB,IAAI/tS,KAAKguS,aAAa,UAAW,CAC3DC,sBAAuB,EACvBC,sBAAuB,IAGrBC,GAAmC,SAA0CtqY,EAAO4vH,GACtF,OAAO1pH,GAAS0pH,GAAc,GAAGpuH,OAAOxB,EAAO,KAAOA,GAGpDuqY,GAAmC,SAA0CvqY,EAAO+Q,EAAG0pB,EAAKm1F,GAC9F,OAAI1pH,GAAS0pH,GACJ,GAAGpuH,OAAOoM,KAAKi/B,MAAM7sC,EAAQy6B,EAAM,KAAM,KAG3C,GAAGj5B,OAAO0oY,GAAsB/pS,OAAOngG,KAG5CwqY,GAA0B,CAC5BjoT,SAAU,SAAkBviF,GAC1B,OAAOipB,WAAWjpB,IAEpBy8Q,SAAU6tH,GACVzvX,MAAO0vX,GACP/pT,KAAM,IACNqlP,WAAY,0BAEV4kE,GAAoB,CACtBp9X,QAASs6X,GACTxlY,QAAS,CACPorC,MAAO,cACPkkS,SAAU,CAAC,CAAC,eAAgB,IAAK,GAAc,GAAc,GAAI+4D,IAA0B,GAAI,CAC7Ft8X,KAAM,IACNusB,IAAK,IACLwjT,YAAa,OACV,CAAC,eAAgB,IAAK,GAAc,GAAc,GAAIusD,IAA0B,GAAI,CACvFt8X,KAAM,IACNusB,IAAK,IACLwjT,YAAa,OACV,CAAC,eAAgB,OAAQ,GAAc,GAAc,GAAIusD,IAA0B,GAAI,CAC1Ft8X,IAAK,EACLusB,IAAK,GACLwjT,YAAa,SAAqB79O,GAChC,OAAOA,EAAOsqS,6BAEb,CAAC,cAAe,QAAS,CAC5BllD,eAAe,OA0BjBmlD,GAAuB,CACzBC,aAAc,CACZv9X,QAvUqB,SAA4Bue,GACnD,IAAIzpB,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO6lY,GAAyBv6W,EAAO,GAAc,CACnD2hB,MAAO,SAAe6yD,GACpB,OAAOA,EAAOyqS,aAEf1oY,KAkUDypB,MAAO,gBAETk/W,cAAe,CACbz9X,QAAS44X,IAEX8E,kBAAmB,CACjB19X,QAAS44X,GACT9jY,QAAS,CACPogF,SAAU,SAAkBviF,GAC1B,OAAOipB,WAAWjpB,IAEpBy8Q,SAAU,SAAkBz8Q,GAC1B,MAAO,GAAGwB,OAAOxB,EAAO,MAE1BwgF,KAAM,IACN3lE,MAAO,SAAe7a,EAAOkO,EAAKusB,GAChC,MAAO,GAAGj5B,OAAOoM,KAAKi/B,MAAM7sC,EAAQy6B,EAAM,KAAM,MAElDorS,WAAY,2BAGhBtvM,gBAAiB,CACf3qG,MAAO,eACPve,QAASg5X,IAEXpkI,YAAa,CACXr2O,MAAO,eACPve,QA5U2B,SAAkCue,GAC/D,IAAIzpB,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO6lY,GAAyBv6W,EAAO,GAAc,CACnD2hB,MAAO,SAAe6yD,GACpB,OAAOA,EAAO4qS,uBAEhB7oY,QAAS0jY,GAAqBj6W,GAC9Bu3S,YAAa,iCACbv4M,SAAU,SAAkB5qH,EAAO0gQ,GAEjC,IAAIsB,EAActB,EAAMsB,aACAl6P,GAASk6P,IAAgB97P,GAAS87P,GAAe/4O,WAAW+4O,GAAe,GAE3E,IAExBtB,EAAMsB,YAAc7/P,GAAWA,EAAQ8oY,oBAAsB,UAE9D9oY,MA6TH6/P,YAAa,CACXp2O,MAAO,qBACPve,QAASk5X,IAEX2E,UAAW,CACTt/W,MAAO,mBACPve,QAxyByB,SAAgCue,GAC3D,OAAO26W,GAAyB36W,EAAO,CACrC2hB,MAAO,SAAe6yD,GACpB,OAAOA,EAAO+qS,qBAEhBt2E,OAAQ,QACR6xE,iBAAiB,EACjBE,WAAY,SAAoB71X,EAAGknU,GACjC,MAAO,gHAA6Hz2U,OAAO,EAAe,EAAXy2U,EAAc,YAkyBjK5qE,SAAU,CACRhgQ,QA7zB6B,SAAoClL,GACnE,IACIipY,GADUjpY,GAAW,IACOyjU,UAC5BA,OAAkC,IAAtBwlE,GAAsCA,EAEtD,OA8jBwB,SAA6Bx/W,EAAOzpB,GAC5D,IAAIkpY,EAAUlpY,GAAW,GACrBorC,EAAQ89V,EAAQ99V,MAGpB,MAAO,CAAY,UAFN89V,EAAQx2E,OAEQ,aAAe,WAAY,CACtDtnR,MAAOA,EACPprC,QAAS0jY,GAAqBj6W,KArkBzB0/W,CAAoB,CAAC,MAAO,MAAO,YAAYhxX,KAAI,SAAUpd,GAClE,MAAO,CAACA,EAAK6mY,GAAW7mY,EAAK,2BAA4B,CACvDgvC,KAAM63V,GAAW7mY,EAAK,0BACtB0oU,UAAWA,OAEX,CACFr4R,MAAO,SAAe6yD,GACpB,OAAOA,EAAOmrS,yBAEhB12E,OAAQ,YAizBVjyC,UAAW,CACTh3P,MAAO,sBACPve,QApO8B,SAAqCue,GACrE,OAAO67W,GAAkB77W,EAAO,sBAAuB,2BAqOvDi3P,QAAS,CACPj3P,MAAO,sBACPve,QApO4B,SAAmCue,GACjE,OAAO67W,GAAkB77W,EAAO,uBAqOhC5c,MAAO,CACL4c,MAAO,eACPve,QAASi5X,IAEX/wU,WAAY,CACV3pC,MAAO,oBACPve,QAxc0B,SAAiCm+X,GAC7D,IAAIrpY,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,CAChFylY,WAAY,gBAEd,MAAO,CAAC,WAAY,CAClBx4V,MAAO,SAAe6yD,GACpB,OAAOA,EAAOqrS,sBAEhBl3X,OAAQ,SAAgBm3X,GACtB,IAAIC,EAAkBD,EAAQvpY,QAC1BA,OAA8B,IAApBwpY,EAA6B,GAAKA,EAE3C9H,MACL1hY,EACCmY,KAAI,SAAUsxX,GAIb,OAHc,GAAeA,EAAS,GAClB,MAIrB7mY,OAAO2iH,SACP3iH,QAAO,SAAUlB,GAChB,OAAQmiY,GAA0BniY,MAEnC7G,SAAQ,SAAU6G,GAEjB,IAAIgoY,EAAS,GAAGrqY,OAAO0kY,GAAe,KAAK1kY,OAAOqC,EAAM7B,QAAQ,iBAAkB,IAAI7E,eAElF8K,SAAS4hJ,eAAegiP,IAE5B5jY,SAASm2B,KAAKhC,OAAO,GAAE,OAAQ,CAC7BgmB,YAAa,IACb//C,GAAIwpY,EACJ5pN,MAAOikN,GACP9iX,MAAO,eAAe5hB,OAAOqC,EAAO,0CAI1CswU,UAAW,WAEJ0vD,MAES57X,SAASmjD,iBAAiB,oBAChCpuD,SAAQ,SAAUs8I,GACxB,OAAOA,EAAOjxI,aAGlBwrU,iBAAkB,SAA0B7zU,GAC1C,MAAO,gBAAgBwB,OAAOxB,IAEhCmC,QAAS0jY,GAAqB2F,EAAcrpY,GAC5C+pU,aAAc,SAAsB4/D,GAElC,IAAKjI,KAA4B,OAAO,EAExC,IACIhgY,EADoB,GAAeioY,EAAkB,GAC3B,GAG9B,OAAKjoY,GAEKmiY,GAA0BniY,QA6YxCkoY,qBAAsB,CACpBngX,MAAO,mBACPve,QA5OyB,SAAgCue,GAC3D,MAAO,CAAC,WAAY,CAClB2hB,MAAO,SAAe6yD,GACpB,OAAOA,EAAO4rS,qBAEhBn4D,iBAAkB,SAA0B7zU,GAC1C,OAAOA,GAAS,cAAcwB,OAAOxB,EAAM,GAAI,iBAAiBwB,OAAOxB,EAAM,KAE/EmC,QAAS0jY,GAAqBj6W,EAAO,CACnCm6W,WAAY,kCAqOhBlxU,SAAU,CACRjpC,MAAO,kBACPve,QAtMwB,SAA+Bue,EAAOzpB,GAEhE,OAAOylY,GAAkBh8W,GAAO,SAAUw0E,GACxC,OAAOA,EAAO6rS,qBACb,KAAM9pY,KAoMTi0P,WAAY,CACVxqO,MAAO,oBACPve,QAnM0B,SAAiCue,EAAOzpB,GACpE,OACEylY,GAAkBh8W,GAAO,SAAUw0E,GACjC,OAAOA,EAAO8rS,uBACb,OAAQ/pY,KAiMbszD,UAAW,CACT7pC,MAAO,mBACPve,QA/LyB,SAAgCue,GAC3D,MAAO,CAAC,aAAc,CACpB2hB,MAAO,SAAe6yD,GACpB,OAAOA,EAAO+rS,qBAEhBhqY,QAAS0jY,GAAqBj6W,OA4LhCwgX,uDAAwD3B,GACxD4B,kCAlGuB,CACvBh/X,QAASs6X,GACTxlY,QAAS,CACPorC,MAAO,eACPkkS,SAAU,CAAC,CAAC,eAAgB,QAAS,CACnClvP,SAAU,SAAkBviF,GAC1B,OAAOipB,WAAWjpB,IAEpBy8Q,SAAU6tH,GACVzvX,MAAO0vX,GACPr8X,IAAK,EACLusB,IAAK,GACL+lD,KAAM,IACNqlP,WAAY,yBACZoY,YAAa,SAAqB79O,GAChC,OAAOA,EAAOksS,8BAEd,CAAC,cAAe,QAAS,CAC3B9mD,eAAe,OAiFnB5gF,aAAc,CACZv3P,QAAS,oBACTlL,QAAS,CACP+L,IAAK,EACLusB,IAAK,GACL8S,MAAO,SAAe6yD,GACpB,OAAOA,EAAOmsS,0BAIpBlc,WAAY,CACVhjX,QAAS,gBAEXm/X,UAAW,CACTn/X,QAAS,oBACTlL,QAAS,CACP+L,IAAK,GACLusB,IAAK,GACL8S,MAAO,SAAe6yD,GACpB,OAAOA,EAAOqsS,aAIpBC,WAAY,CACVr/X,QAAS,oBACTlL,QAAS,CACP+L,IAAK,GACLusB,IAAK,GACL8S,MAAO,SAAe6yD,GACpB,OAAOA,EAAOusS,eAIpBplB,YAAa,CACXl6W,QAAS,oBACTlL,QAAS,CACP+L,IAAK,GACLusB,IAAK,GACL8S,MAAO,SAAe6yD,GACpB,OAAOA,EAAOusS,eAIpBC,YAAa,CACXv/X,QAAS,oBACTlL,QAAS,CACP+L,IAAK,GACLusB,IAAK,GACL8S,MAAO,SAAe6yD,GACpB,OAAOA,EAAOysS,eAIpBC,YAAa,CACXz/X,QAAS,gBACTlL,QAAS,CACP+L,IAAK,EACLusB,IAAK,EACL+lD,KAAM,EACNjzC,MAAO,SAAe6yD,GACpB,OAAOA,EAAO2sS,gBAiFtB,SAASC,GAAkB1+X,GACzB,IAAI2nT,EACAC,EACA7kS,EACAkpK,EACAkhC,EACA43F,EAEJ/kT,EAAI,GAAGkoF,QACH88N,EAAepiD,GAAYmiD,EAAuB/kT,EAEtDA,EAAI,GAAI,MACR,MAAO,CACLvO,EAAG,WACDk2T,EAAO,GAAQ,OACfC,EAAO,GAAQ,OACX5C,GAAcA,EAAavzT,IAC/Bod,GAAK+4S,EAAM,QAAS,uBACpB/4S,GAAK84S,EAAM,QAAS,kBACpB94S,GAAK84S,EAAM,cAEX3nT,EAAI,IACJ6O,GAAK84S,EAAM,gBAEX3nT,EAAI,KAENmgD,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQ4xT,EAAM19M,GACrBn8E,GAAO65R,EAAMC,GAET5C,GACFA,EAAa7kQ,EAAEynQ,EAAM,MAGvB7kS,GAAU,EAELkpK,IACHkhC,EAAU,CAAC53K,GAAOqyQ,EAAM,UAExB5nT,EAAI,IAAK2jQ,GAAiB6/B,GAAW9uS,KAAK,KAAMkzT,IAAQryQ,GAAOoyQ,EAAM,UAErE3nT,EAAI,IAAK2jQ,GAAiB6/B,GAAW9uS,KAAK,KAAMizT,KAChD17H,GAAU,IAGd3qL,EAAG,SAAWtB,EAAK2+X,GACjB,IACI1gN,EADU,GAAe0gN,EAAS,GAClB,GAEhB35E,GACEA,EAAa1jT,KAAOyhB,GAExB,GAFmCk7J,IAGjCilF,GAAiB8hD,EAAcD,EAAuB/kT,EAEtDA,EAAI,GAAK+iB,EAECigP,GAAiB+hD,EAE3B/kT,EAAI,GAAIi+K,EAAO,MAJIslF,GAEnBvjQ,EAAI,IAEkB,QAIrB+iB,GAEL,EAFgBk7J,IAGdpvK,GAAK84S,EAAM,cAEX3nT,EAAI,MAGD+iB,GAEL,EAFgBk7J,IAGdpvK,GAAK84S,EAAM,gBAEX3nT,EAAI,KAGRxH,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAck9C,EAAc51N,GAC5BrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAei9C,EAAc51N,GAC7BrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAOg2J,GAClB3C,GAAcA,EAAahlQ,EAAEmrN,GACjCl/E,GAAU,EACVk2E,GAAQh1C,KAKd,SAASyxK,GAAWx4F,EAAQx6B,EAASy6B,GACnC,IAAIkgB,EAOAr8Q,EANA20V,EAAqBjzH,EAAQs6C,QAC7BzuI,OAA+B,IAAvBonN,EAAgC,GAAKA,EAC7Ch8H,EAAU+I,EAAQ/I,QAClBi8H,EAAa,EACbC,EAAgB,EAChBC,EAAc,EAGdC,EAAe,WACjB54F,EAAa,EAAGn8P,EAAsB,YAAXq8Q,GAAwBu4E,EAAaE,EAAc,gBAAaxwY,IAkC7F,OAZA43S,EAAOv6B,MAAQ,SAAUD,GACnB,YAAaA,GAASy6B,EAAa,EAAGxjC,EAAU+I,EAAQ/I,UAG9DujC,EAAO1jC,GAAGxhL,OAAS,WAGjB,GAFIklN,EAAO1jC,GAAGzkF,OAGZooH,EAAa,EAAGkgB,EAASw4E,EAAgBC,EAAc,UAAY,YAIhE,CAAC90V,EAAUq8Q,EA/BY,SAAiC24E,GAC7D,IACIr/X,EADSq/X,EAAQ/1X,OACFtJ,MACnBwmS,EAAa,EAAG24F,EAAcn/X,GAC9Bo/X,KAG2B,SAAgCE,GAC3D,IACIt/X,EADSs/X,EAAQh2X,OACFtJ,MAEfA,EAAQk/X,GACV14F,EAAa,EAAG04F,EAAgBl/X,GAGlCi/X,EAAaj/X,EACRqqC,GAAU+0V,KAe0DF,EAAeC,EAAan8H,EAASprF,GAGlH,IAAI2nN,GAAuB,SAAUC,GACnC1oR,GAAUyoR,EAASC,GAEnB,IAAIC,EAAWv1J,GAAaq1J,GAE5B,SAASA,EAAQvrY,GACf,IAAI0rY,EAMJ,OAJAtpR,GAAgBllH,KAAMquY,GAGtBvjR,GAAKjE,GADL2nR,EAAUD,EAAS5qY,KAAK3D,OACc8C,EAAS+qY,GAAYF,GAAmBr8H,GAAgB,IACvFk9H,EAGT,OAAOhpR,GAAa6oR,GAfK,CAgBzBzzH,IAIF,SAAS6zH,GAAkBx/X,GACzB,IAAIgqJ,EACAjnI,EACAkpK,EACAkhC,EACA43F,EAEJ/kT,EAAI,GAAGkoF,QACH88N,EAAepiD,GAAYmiD,EAAuB/kT,EAEtDA,EAAI,GAAI,MACR,MAAO,CACLvO,EAAG,WACDu4J,EAAM,GAAQ,OACVg7J,GAAcA,EAAavzT,IAC/Bod,GAAKm7I,EAAK,QAEVhqJ,EAAI,KAENmgD,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GAEhB+6M,GACFA,EAAa7kQ,EAAE6pG,EAAK,MAGtBjnI,GAAU,EAELkpK,IACHkhC,EAAU,CAAC53K,GAAOy0G,EAAK,WAAW,WAC5Bo4G,GAEJpiQ,EAAI,IAEJA,EAAI,MAEJA,EAAI,IAEJA,EAAI,IAAI/M,MAAMlC,KAAMiB,cAClB2xQ,GAEJ3jQ,EAAI,GAAGtL,KAAK,KAAMs1J,KAClBiiC,GAAU,IAGd3qL,EAAG,SAAWmkT,EAASg6E,GACrB,IACIxhN,EADU,GAAewhN,EAAS,GAClB,GAEpBz/X,EAAMylT,EAEFT,GACEA,EAAa1jT,KAAOyhB,GAExB,GAFmCk7J,IAGjCilF,GAAiB8hD,EAAcD,EAAuB/kT,EAEtDA,EAAI,GAAK+iB,EAECigP,GAAiB+hD,EAE3B/kT,EAAI,GAAIi+K,EAAO,MAJIslF,GAEnBvjQ,EAAI,IAEkB,QAIrB+iB,GAEL,EAFgBk7J,IAGdpvK,GAAKm7I,EAAK,QAEVhqJ,EAAI,KAGRxH,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAck9C,EAAc51N,GAC5BrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAei9C,EAAc51N,GAC7BrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GAClBg7J,GAAcA,EAAahlQ,EAAEmrN,GACjCl/E,GAAU,EACVk2E,GAAQh1C,KAKd,SAASuyK,GAAWt5F,EAAQx6B,EAASy6B,GACnC,IAAIs5F,EAAqB/zH,EAAQs6C,QAC7BzuI,OAA+B,IAAvBkoN,EAAgC,GAAKA,EAC7C98H,EAAU+I,EAAQ/I,QAClB99P,EAAWyhQ,KACXo5H,EAAmBh0H,EAAQj4F,MAC3BiyB,OAA6B,IAArBg6L,EAA8B,KAAOA,EAE7Cp8F,EAAa,GAAW,cACxBq8F,GAAW,EAgBf,OATA15H,IAAQ,WACN,OAAOkgC,EAAa,EAAGw5F,GAAW,MAGpCz5F,EAAOv6B,MAAQ,SAAUD,GACnB,UAAWA,GAASy6B,EAAa,EAAGzgG,EAAQgmE,EAAQj4F,OACpD,YAAai4F,GAASy6B,EAAa,EAAGxjC,EAAU+I,EAAQ/I,UAGvD,CAACj9D,EAAOi6L,EAAUr8F,EAdN,SAAsBs8F,GACvC,IAAI32X,EAAS22X,EAAQ32X,OACrB,OAAOpE,EAAS,UAAWoE,IAYsB05P,EAASprF,GAG9D,IAAIsoN,GAAuB,SAAUC,GACnCrpR,GAAUopR,EAASC,GAEnB,IAAIC,EAAWl2J,GAAag2J,GAE5B,SAASA,EAAQlsY,GACf,IAAIqsY,EAQJ,OANAjqR,GAAgBllH,KAAMgvY,GAGtBlkR,GAAKjE,GADLsoR,EAAUD,EAASvrY,KAAK3D,OACc8C,EAAS6rY,GAAYF,GAAmBn9H,GAAgB,CAC5F1uF,MAAO,IAEFusN,EAGT,OAAO3pR,GAAawpR,GAjBK,CAkBzBp0H,IAIEw0H,GAA0B,SAAiCliN,GAC7D,MAAO,IAGLmiN,GAA0B,SAAiCpgY,GAC7D,MAAO,IAGLqgY,GAAwB,SAA+BpiN,GACzD,MAAO,IAGLqiN,GAAwB,SAA+BtgY,GACzD,MAAO,IAGLugY,GAA0B,SAAiCtiN,GAC7D,MAAO,IAGLuiN,GAA0B,SAAiCxgY,GAC7D,MAAO,IAIT,SAASygY,GAAoBzgY,GAC3B,IAAIgqJ,EACAjnI,EACA29W,EAEJ1gY,EAAI,GAAGuc,OACHokX,EAAc/9H,GAAY89H,EAAsB1gY,EAEpDA,EAAI,GAAIwgY,IACR,MAAO,CACL/uY,EAAG,WACDu4J,EAAM,GAAQ,OACV22O,GAAaA,EAAYlvY,IAC7Bod,GAAKm7I,EAAK,QAAS,sBAErB7pG,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GAEhB02R,GACFA,EAAYxgV,EAAE6pG,EAAK,MAGrBjnI,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACb0iN,GACEA,EAAYr/X,KAAOyhB,GAEvB,EAFkCk7J,IAGhCilF,GAAiBy9H,EAAaD,EAAsB1gY,EAEpDA,EAAI,GAAK+iB,EAECigP,GAAiB09H,EAE3B1gY,EAAI,GAAIi+K,EAAOsiN,IAJIh9H,GAEnBvjQ,EAAI,IAEqCwgY,KAI/ChoY,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAc64H,EAAavxS,GAC3BrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAe44H,EAAavxS,GAC5BrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GAClB22O,GAAaA,EAAY3gV,EAAEmrN,KA0CrC,SAASy1H,GAAoB5gY,GAC3B,IAAIgqJ,EACAjnI,EACA89W,EAEJ7gY,EAAI,GAAG66G,OACHimR,EAAcl+H,GAAYi+H,EAAsB7gY,EAEpDA,EAAI,GAAIogY,IACR,MAAO,CACL3uY,EAAG,WACDu4J,EAAM,GAAQ,OACV82O,GAAaA,EAAYrvY,IAC7Bod,GAAKm7I,EAAK,QAAS,sBAErB7pG,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GAEhB62R,GACFA,EAAY3gV,EAAE6pG,EAAK,MAGrBjnI,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACb6iN,GACEA,EAAYx/X,KAAOyhB,GAEvB,EAFkCk7J,IAGhCilF,GAAiB49H,EAAaD,EAAsB7gY,EAEpDA,EAAI,GAAK+iB,EAECigP,GAAiB69H,EAE3B7gY,EAAI,GAAIi+K,EAAOkiN,IAJI58H,GAEnBvjQ,EAAI,IAEqCogY,KAI/C5nY,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcg5H,EAAa1xS,GAC3BrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAe+4H,EAAa1xS,GAC5BrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GAClB82O,GAAaA,EAAY9gV,EAAEmrN,KAKrC,SAAS41H,GAAkB/gY,GACzB,IAAI2lO,EACA37E,EACAokF,EACAsxB,EACA2zD,EACAtwS,EACAqwS,EAEJpzT,EAAI,IAAMygY,GAAoBzgY,GAC1BghY,EAEJhhY,EAAI,GAAG2J,KACHs3X,EAAYr+H,GAAYo+H,EAAoBhhY,EAEhDA,EAAI,GAAIsgY,IACJY,EAAwBD,GA3G9B,SAAwBjhY,GACtB,IAAI21C,EACA5yB,EASJ,OARA4yB,EAAU,IAAIoqV,GAAQ,CACpBz8X,MAAO,CACLqwK,MAAO,mBAGHwF,IAAI,UAEZn5K,EAAI,IACG,CACLvO,EAAG,WACDm5Q,GAAiBj1N,EAAQ+sN,GAAGj3G,WAE9BtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgBl1N,EAAS5/C,EAAQk0G,GACjClnF,GAAU,GAEZzhB,EAAG,GACH9I,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcnyN,EAAQ+sN,GAAGj3G,SAAUr8D,GACnCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAepyN,EAAQ+sN,GAAGj3G,SAAUr8D,GACpCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkBv1N,EAASw1N,KA6EUg2H,CAAenhY,GACpDszT,EAEJtzT,EAAI,IAAM4gY,GAAoB5gY,GAE9B,MAAO,CACLvO,EAAG,WACG2hU,GAAWA,EAAU3hU,IACzBk0O,EAAKv6F,KACL4e,EAAM,GAAQ,OACVk3O,GAAuBA,EAAsBzvY,IACjD28O,EAAKhjG,KACDkoL,GAAWA,EAAU7hU,IACzBiuQ,EAAKt0H,KACLioL,EAAmBlhO,KACnBtjF,GAAKm7I,EAAK,QAAS,oBAErB7pG,EAAG,SAAWpqD,EAAQk0G,GAChBmpN,GAAWA,EAAUjzQ,EAAEpqD,EAAQk0G,GACnC+nD,GAAOj8J,EAAQ4vO,EAAI17H,GACnB+nD,GAAOj8J,EAAQi0J,EAAK//C,GAEhBi3R,GACFA,EAAsB/gV,EAAE6pG,EAAK,MAK/BhqJ,EAAI,GAAGgqJ,GACPgI,GAAOj8J,EAAQq4O,EAAInkI,GACfqpN,GAAWA,EAAUnzQ,EAAEpqD,EAAQk0G,GACnC+nD,GAAOj8J,EAAQ2pQ,EAAIz1J,GACnB+nD,GAAOj8J,EAAQs9T,EAAkBppN,GACjClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKohY,GACjB,IACInjN,EADU,GAAemjN,EAAS,GAClB,GAIpBphY,EAAI,GACEozT,GACFA,EAAU9xT,EAAEtB,EAAKi+K,GAIjB,EAFIA,GAGF6pF,GAAcsrD,EAAW,MAG3BA,EAAYqtE,GAAoBzgY,IACtBvO,IACVq2Q,GAAcsrD,EAAW,GACzBA,EAAUjzQ,EAAEwlL,EAAG71N,WAAY61N,IAEpBytF,IACTxrD,KACAG,GAAeqrD,EAAW,EAAG,GAAG,WAC9BA,EAAY,QAEdvrD,MAGEo5H,GACEA,EAAU3/X,KAAOyhB,GAErB,EAFgCk7J,IAG9BilF,GAAiB+9H,EAAWD,EAAoBhhY,EAEhDA,EAAI,GAAK+iB,EAECigP,GAAiBg+H,EAE3BhhY,EAAI,GAAIi+K,EAAOoiN,IAJI98H,GAEnBvjQ,EAAI,IAEmCsgY,IAM3CtgY,EAAI,GACEszT,GACFA,EAAUhyT,EAAEtB,EAAKi+K,GAIjB,EAFIA,GAGF6pF,GAAcwrD,EAAW,MAG3BA,EAAYstE,GAAoB5gY,IACtBvO,IACVq2Q,GAAcwrD,EAAW,GACzBA,EAAUnzQ,EAAEu/M,EAAG5vP,WAAY4vP,IAEpB4zD,IACT1rD,KACAG,GAAeurD,EAAW,EAAG,GAAG,WAC9BA,EAAY,QAEdzrD,OAGJrvQ,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcsrD,GACdtrD,GAAco5H,EAAuB9xS,GACrC04K,GAAcwrD,GACdxrD,IAxGY,GAyGZ/kP,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAeqrD,GACfrrD,GAAem5H,EAAuB9xS,GACtC24K,GAAeurD,GACfvrD,IA/GY,GAgHZhlP,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRioD,GAAWA,EAAUpzQ,EAAEmrN,GACvBA,GAAWx5G,GAAOg0E,GAClBwlC,GAAWx5G,GAAO3H,GAClBk3O,GAAuBA,EAAsBlhV,EAAEmrN,GAGnDnrQ,EAAI,GAAG,MACHmrQ,GAAWx5G,GAAOy8E,GAClBklF,GAAWA,EAAUtzQ,EAAEmrN,GACvBA,GAAWx5G,GAAO+tG,GAClByL,GAAWx5G,GAAO0hK,KAK5B,SAASguE,GAAWj7F,EAAQx6B,EAASy6B,GACnC,IAAIi7F,EAAa11H,EACb21H,EAAqBD,EAAWp7E,QAChCzuI,OAA+B,IAAvB8pN,EAAgC,GAAKA,EAC7C1+H,EAAUy+H,EAAWz+H,QAErB2+H,EADa51H,EACqB61H,UAClCA,OAAqC,IAAzBD,IAAoC51H,EAAQs6C,QAAQ3pS,OAASilX,EAEzEE,EADa91H,EACqB+1H,UAClCA,OAAqC,IAAzBD,IAAoC91H,EAAQs6C,QAAQrrM,OAAS6mR,EAEzEE,EADah2H,EACgBvoQ,KAC7BA,OAA2B,IAApBu+X,OAA6BpzY,EAAYozY,EAsBpD,OATAx7F,EAAOv6B,MAAQ,SAAUmkE,GACvB3pC,EAAa,EAAGz6B,EAAU,GAAO,GAAO,GAAIA,GAAUpI,GAAuBwsE,KACzE,cAAeA,GAAa3pC,EAAa,EAAGo7F,EAAYzxD,EAAYyxD,WACpE,cAAezxD,GAAa3pC,EAAa,EAAGs7F,EAAY3xD,EAAY2xD,WACpE,SAAU3xD,GAAa3pC,EAAa,EAAGhjS,EAAO2sU,EAAY3sU,MAC1D,YAAa2sU,GAAa3pC,EAAa,EAAGxjC,EAAUmtE,EAAYntE,UAGtE+I,EAAUpI,GAAuBoI,GAC1B,CAACvoQ,EAAMo+X,EAAWE,EAAW9+H,EAASprF,EApB7C,SAAyB9hK,GACvBgxP,GAAOjyQ,KAAK3D,KAAMq1S,EAAQzwR,IAG5B,SAAqB8tS,GACnB58C,GAAkB48C,EAAU,UAAY,SAAQ,WAE9Cpd,EAAa,EADbhjS,EAAOogT,QAiBb,IAAIo+E,GAAoB,SAAUC,GAChCnrR,GAAUkrR,EAAMC,GAEhB,IAAIC,EAAWh4J,GAAa83J,GAE5B,SAASA,EAAKhuY,GACZ,IAAImuY,EAUJ,OARA/rR,GAAgBllH,KAAM8wY,GAGtBhmR,GAAKjE,GADLoqR,EAAUD,EAASrtY,KAAK3D,OACc8C,EAASwtY,GAAYN,GAAmB1+H,GAAgB,CAC5Fo/H,UAAW,EACXE,UAAW,EACXt+X,KAAM,IAED2+X,EAGT,OAAOzrR,GAAasrR,GAnBE,CAoBtBl2H,IAIF,SAASs2H,GAAkBjiY,GACzB,IAAIgqJ,EACJ,MAAO,CACLv4J,EAAG,WAEDod,GADAm7I,EAAM,GAAQ,OACJ,QAAS,0BACnB86G,GAAU96G,EAAK,YAAa,cAAc92J,OAE1C8M,EAAI,IAAIw8B,EAERx8B,EAAI,IAAIw8B,EAAG,mBAAmBtpC,OAE9B8M,EAAI,IAAIy8B,EAERz8B,EAAI,IAAIy8B,EAAG,SAEb0jB,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GACpB+/C,EAAIrsH,UAEJ39B,EAAI,IAENsB,EAAG,SAAWtB,EAAKi+K,GAGjB,IAFIA,EAAM,KAELj0B,EAAIrsH,UAET39B,EAAI,IAIJ,KAFIi+K,EAAM,IAGR6mF,GAAU96G,EAAK,YAAa,cAAc92J,OAE1C8M,EAAI,IAAIw8B,EAERx8B,EAAI,IAAIw8B,EAAG,mBAAmBtpC,OAE9B8M,EAAI,IAAIy8B,EAERz8B,EAAI,IAAIy8B,EAAG,SAGfujB,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,KAK5B,SAASk4O,GAAkBliY,GACzB,IAAI2nT,EACAqL,EACArtF,EACAv3E,EACAggF,EACA02E,EACAplD,EACAkoD,EACAu6E,EACAl2M,EACAkhC,EACAy4F,EAEJ5lT,EAAI,KAAOiiY,GAAkBjiY,GAC7B,MAAO,CACLvO,EAAG,WACDk2T,EAAO,GAAQ,OACfqL,EAAO,GAAQ,QACfrtF,EAAKv6F,KACLgjB,EAAS,GAAQ,UACjBggF,EAAK,GAELpuO,EAAI,IACJ0/P,EAAKt0H,KACLw8K,EAAO,GAAQ,OACXhC,GAAUA,EAASn0T,IACvBod,GAAKmkT,EAAM,QAAS,0BACpBnkT,GAAKu/I,EAAQ,QAAS,0BACtBv/I,GAAKu/I,EAAQ,OAAQ,UACrBA,EAAOjrI,SAAW2hS,EAElB9kT,EAAI,KAEJA,EAAI,GACJ6O,GAAK+4S,EAAM,QAAS,0BACpB/4S,GAAK+4S,EAAM,qBAEX5nT,EAAI,IACJ8kQ,GAAU8iD,EAAM,oBAEhB5nT,EAAI,IACJ8kQ,GAAU8iD,EAAM,kBAEhB5nT,EAAI,IACJ6O,GAAK84S,EAAM,QAAS,qBACpB94S,GAAK84S,EAAM,WAAY,MAEzBxnQ,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQ4xT,EAAM19M,GACrBn8E,GAAO65R,EAAMqL,GACbA,EAAKr1R,UAEL39B,EAAI,GACJ8tB,GAAO65R,EAAMhiF,GACb73M,GAAO65R,EAAMv5J,GACbtgI,GAAOsgI,EAAQggF,GACftgN,GAAO65R,EAAMjoD,GACb5xO,GAAO65R,EAAMC,GACThC,GAAUA,EAASzlQ,EAAEynQ,EAAM,MAE1B37H,IACHkhC,EAAU,CAAC53K,GAAO64G,EAAQ,QAE1BpuJ,EAAI,KAAMu1C,GAAOqyQ,EAAM,mBAEvB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,oBAEvB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,iBAEvB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,qBAEvB5nT,EAAI,KAAM2jQ,GAAiBw+H,EAAsBviD,GAAalrV,KAAK,KAAMkzT,EAAM,CAC7Ek4B,QAEA9/U,EAAI,MACDu1C,GAAOqyQ,EAAM,UAElB5nT,EAAI,KAAM2jQ,GAAiB6/B,GAAW9uS,KAAK,KAAMkzT,IAAQryQ,GAAOoyQ,EAAM,QAEtE3nT,EAAI,IAAK,CACPq2C,SAAS,IACPd,GAAOoyQ,EAAM,QAEjB3nT,EAAI,KAAM2jQ,GAAiB4jE,GAAU7yU,KAAK,KAAMizT,EAAM,CACpD1+M,UAAW,aACXvjE,gBAAgB,MAElBumJ,GAAU,IAGd3qL,EAAG,SAAWtB,EAAKi+K,GAGjB,EAFIA,EAAM,KAEP+0I,EAAKr1R,UAER39B,EAAI,IAGJ,EAFIi+K,EAAM,IAEP2mF,GAASx2B,EAEZpuO,EAAI,IAIJ,EAFIi+K,EAAM,IAEL6mI,KAA2BA,EAEhC9kT,EAAI,KAEJA,EAAI,MACFouJ,EAAOjrI,SAAW2hS,GAKpB9kT,EAAI,IACE4lT,EACFA,EAAStkT,EAAEtB,EAAKi+K,KAEhB2nI,EAAWq8E,GAAkBjiY,IACpBvO,IACTm0T,EAASzlQ,EAAEynQ,EAAM,OAEVhC,IACTA,EAAS5lQ,EAAE,GACX4lQ,EAAW,MAKb,GAFI3nI,EAAM,IAGRpvK,GAAK+4S,EAAM,qBAEX5nT,EAAI,IAGFmiY,GAAuB//H,GAAY+/H,EAAoBjhT,SAE3D,GAFsE+8F,EAAM,IAExEkkN,EAAoBjhT,OAAOxsF,KAAK,KAAM,CACxCorV,QAEA9/U,EAAI,KAKN,IAFIi+K,EAAM,IAGR6mF,GAAU8iD,EAAM,oBAEhB5nT,EAAI,IAKN,IAFIi+K,EAAM,IAGR6mF,GAAU8iD,EAAM,kBAEhB5nT,EAAI,KAGRxH,EAAG,GACH8a,EAAG,GACH0sC,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAOg2J,GAClB/B,GAAUA,EAAS5lQ,IACvBisI,GAAU,EACVk2E,GAAQh1C,KAad,SAASi1K,GAAWh8F,EAAQx6B,EAASy6B,GACnC,IAAIjlS,EACAihY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA13E,EACAu6B,EACAjxB,EACAquE,EAAsBj3H,EAAQk3H,WAC9BA,OAAqC,IAAxBD,EAAiC,QAAUA,EACxDE,EAAsBn3H,EAAQ3iK,UAC9BA,OAAoC,IAAxB85R,EAAiC,IAAMA,EACnDC,EAAgBp3H,EAAQhsQ,IACxBA,OAAwB,IAAlBojY,EAA2B,EAAIA,EACrCC,EAAgBr3H,EAAQz/O,IACxBA,OAAwB,IAAlB82W,EAA2B,EAAIA,EACrCC,EAAgBt3H,EAAQ7wP,KACxBA,OAAyB,IAAlBmoX,EAA2BtjY,EAAMsjY,EACxCC,EAAkBv3H,EAAQl6Q,MAC1BA,OAA4B,IAApByxY,EAA6B,EAAIA,EACzCC,EAAsBx3H,EAAQy3H,WAC9BA,OAAqC,IAAxBD,EAAiC,EAAIA,EAClDE,EAAqB13H,EAAQm/D,SAC7BA,OAAkC,IAAvBu4D,OAAgC90Y,EAAY80Y,EACvDC,EAAqB33H,EAAQq/D,SAC7BA,OAAkC,IAAvBs4D,OAAgC/0Y,EAAY+0Y,EACvDC,EAAwB53H,EAAQ63H,aAChCA,OAAyC,IAA1BD,EAAmC33J,GAAS23J,EAC3DE,EAAuB93H,EAAQ+3H,YAC/BA,OAAuC,IAAzBD,EAAkC73J,GAAS63J,EACzDE,EAAsBh4H,EAAQi4H,WAC9BA,OAAqC,IAAxBD,EAAiC/3J,GAAS+3J,EACvDE,EAAuBl4H,EAAQi7E,WAC/BA,OAAsC,IAAzBi9C,EAAkC,EAAIA,EACnDC,EAAwBn4H,EAAQo4H,gBAChCA,OAA4C,IAA1BD,OAAmCv1Y,EAAYu1Y,EACjEE,EAAiBr4H,EAAQ15L,KACzBA,OAA0B,IAAnB+xT,EAA4B,EAAIA,EAIvC/8F,EAAa,GAAW,cAC5BzkC,GAAoB2jC,EAAQc,GAAY,SAAUx1S,GAChD,OAAO20S,EAAa,EAAG6kB,EAAcx5T,MAEvC,IAAI61V,EAA0B,GAAW,sBACzC9kF,GAAoB2jC,EAAQmhD,GAAyB,SAAU71V,GAC7D,OAAO20S,EAAa,GAAIo/C,EAA2B/zV,MAGrD,IAII8X,EACAqzB,EACAqnW,EAyBAC,EA/BA5lW,EAAQ,SAAeppC,EAAQi1H,EAAWjpH,GAC5C,OAAO7B,KAAKY,MAAM/K,EAASgM,GAAUipH,GAAaA,EAAYjpH,GAM5DijY,EAAa,CACf5nW,EAAG,EACHC,EAAG,GAGD4nW,EAAmB,SAA0B/vJ,EAAIC,EAAIl0O,GACvD,MAAO,KAAKnN,OAAOohP,EAAKj0O,EAAG,KAAKnN,OAAOqhP,EAAI,OAAOrhP,OAAOmN,EAAG,KAAKnN,OAAOmN,EAAG,gBAgBzEikY,QAAoB91Y,EACpB+1Y,IAAsB,EAEtBC,GAAqB,CACvBC,MAAM,EACNv8C,SAAS,GAiCPw8C,GAAoB,SAA2B7vW,EAAQ63Q,EAAa74S,GACtE,IAAIkC,EAAS8+B,EAAOo0E,GAAayjM,EAAYzjM,GACzC07R,EAAgBjjT,GAAM3rF,EAAQouY,EAAiB,GAAGl7R,GAAYk7R,EAAiB,GAAGl7R,IAClF27R,EAAgB/9C,EAAa89C,EAAgBrgD,GAASvuV,EAAS4uY,EAAe99C,GAAc89C,EAC5FE,EAAehxY,EAAQq0V,QAAU08C,EAAgBD,EAEjDG,EAAchyJ,GAAa,EAAG,GAKlC,OAJAgyJ,EAAY77R,GAAa47R,EACzBxzX,GAASkB,IAAIuyX,EAAa,CACxBtiG,KAAM3uS,EAAQ4wY,OAET/iT,GAAMqjT,GAAgBD,EAAa77R,GAAYrpG,EAAKusB,IAYzD9a,GAAWO,KACf6wP,GAAoB2jC,EAAQ/0R,IAAU,SAAU3f,GAC9C,OAAO20S,EAAa,GAAImuB,EAAY9iU,MAGtC,IAAIszY,GAAkB,SAAyBtzY,EAAOkvN,GACpD,IAGIxhH,EAHwC,IAA9B51F,EAAKo3M,GAAQ2hL,EAAQ3hL,KACpBwnH,GAAW12U,EAAOkO,EAAKusB,GACnBo2W,EAAQ3hL,GAAwB,GAAhB2hL,EAAQ3hL,IAE3C,MAAO,CACLpkL,EAAY,MAATokL,EAAexhH,EAAM,EACxB3iE,EAAY,MAATmkL,EAAexhH,EAAM,IAIxB2lS,GAAkB,SAAyB1zX,EAAUuvM,GACvD,IACI+oH,IADOt4T,EAASuvM,GAAqB,GAAbp3M,EAAKo3M,IACT2hL,EAAQ3hL,GAChC,OAAOhhN,EAAM+pU,EAAWvoU,GAGtB6jY,GAAgB5zX,GAASm+G,WAAU,SAAU01Q,GAE1CA,GAAoBZ,IACzBX,EAAYjiT,GAAMqjT,GAAgBG,EAAiBj8R,GAAYrpG,EAAKusB,OAGlEg5W,GAAiB,SAAwBzzY,GAC3C,IAAIyyY,EAAmB,CAACa,GAA4B,MAAZj6D,EAAmBA,EAAWnrU,EAAKqpG,GAAY+7R,GAA4B,MAAZ/5D,EAAmBA,EAAW9+S,EAAK88E,IACtIlzG,EAAS,CACXymC,EAAiB,MAAdysE,EAAoBurN,EAAUh4R,EAAI9qC,EAAQ,EAC7C+qC,EAAiB,MAAdwsE,EAAoBurN,EAAU/3R,EAAI/qC,EAAQ,GAE3CizY,EAAgBjjT,GAAM3rF,EAAOkzG,GAAYk7R,EAAiB,GAAGl7R,GAAYk7R,EAAiB,GAAGl7R,IAE7Fm8R,EAAiB,GAAc,GAAc,GAAI5wE,GAAY,GAAI,GAAgB,GAAIvrN,EAAW07R,IAEpGjhI,GAAgBryP,GAAUmjT,EAAY4wE,EAAgB5wE,GACtD,IAAIj3T,EAASmkF,GAAMqjT,GAAgBK,EAAgBn8R,GAAYrpG,EAAKusB,GACpEs3W,IACAE,EAAYpmY,GACZsmY,EAAWtmY,IA+Jb,OA5IAgpQ,IAAU,WACR0+H,QAOF7+F,EAAOv6B,MAAQ,SAAUD,GACnB,eAAgBA,GAASy6B,EAAa,EAAGy8F,EAAal3H,EAAQk3H,YAC9D,cAAel3H,GAASy6B,EAAa,GAAIp9L,EAAY2iK,EAAQ3iK,WAC7D,QAAS2iK,GAASy6B,EAAa,GAAIzmS,EAAMgsQ,EAAQhsQ,KACjD,QAASgsQ,GAASy6B,EAAa,GAAIl6Q,EAAMy/O,EAAQz/O,KACjD,SAAUy/O,GAASy6B,EAAa,EAAGtrR,EAAO6wP,EAAQ7wP,MAClD,UAAW6wP,GAASy6B,EAAa,EAAG30S,EAAQk6Q,EAAQl6Q,OACpD,eAAgBk6Q,GAASy6B,EAAa,EAAGg9F,EAAaz3H,EAAQy3H,YAC9D,aAAcz3H,GAASy6B,EAAa,GAAI0kC,EAAWn/D,EAAQm/D,UAC3D,aAAcn/D,GAASy6B,EAAa,GAAI4kC,EAAWr/D,EAAQq/D,UAC3D,iBAAkBr/D,GAASy6B,EAAa,GAAIo9F,EAAe73H,EAAQ63H,cACnE,gBAAiB73H,GAASy6B,EAAa,GAAIs9F,EAAc/3H,EAAQ+3H,aACjE,eAAgB/3H,GAASy6B,EAAa,GAAIw9F,EAAaj4H,EAAQi4H,YAC/D,eAAgBj4H,GAASy6B,EAAa,GAAIwgD,EAAaj7E,EAAQi7E,YAC/D,oBAAqBj7E,GAASy6B,EAAa,GAAI29F,EAAkBp4H,EAAQo4H,iBACzE,SAAUp4H,GAASy6B,EAAa,GAAIn0N,EAAO05L,EAAQ15L,OAGzDk0N,EAAO1jC,GAAGxhL,OAAS,WA4BjB,GAzBA,SAFIklN,EAAO1jC,GAAGzkF,MAAM,IAMlBooH,EAAa,GAAIjlS,EAAQ+qB,EAAMvsB,GAKjC,SAFIwmS,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIg8F,EAA8B,MAAZt3D,EAAmBzrU,KAAK6sB,IAAI4+S,EAAUnrU,GAAOA,GAKlF,SAFIwmS,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIi8F,EAA8B,MAAZr3D,EAAmB3rU,KAAKM,IAAIqrU,EAAU9+S,GAAOA,GAKlF,SAFIi6Q,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIm8F,EAAep6D,GAAWrtT,EAAMnb,EAAKusB,IAKxD,GAFIi6Q,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFKmoH,EAAO1jC,GAAGzkF,MAAM,IAGfz0K,EAAM,CAQR,IAPA,IAGI67X,EAHAjpW,EAAmB,GAAT5yB,EAAKizB,EACf6oW,EA7QS,GA6Q0B9C,EACnCxiV,EAAI,GAEJulV,EAAY/7X,EAAKizB,EACjB+oW,EAAc,GAEThtY,EAAI,EAAGA,GAnRH,GAmRwBA,IAAK,CACxC,IAAIitY,EAAQrB,EAAW5nW,EAtRV,GAsRchkC,EAEvBktY,EAAMtpW,EAIV4jB,GAAKqkV,EAAiBoB,EAAOC,EAFnBltY,EAzRI,GAyRsB,EA9R9B,EAEE,KA8RiC,IACzC6sY,EAAWI,EAAQrB,EAAW5nW,EAE1BhkC,IAAM8sY,IACRE,EAAc,aAActyY,OAAOuyY,EAAO,KAAKvyY,OAAOwyY,EAAM,EAAG,4BAInEr/F,EAAa,EAAGxpQ,EAAM,eAAgB3pC,OAAOmyY,EAAU,cAAgBnyY,OAAOqyY,EAAW,sDAA0DryY,OAAOmyY,EAAU,KAAKnyY,OAAOqyY,EAAW,qDAA0DryY,OAAOsyY,EAAa,qCAA0CtyY,OAAOkpC,EAAU,EAAG,0DAAiElpC,OAAO8sD,EAAEjoD,OAAQ,cACzZsuS,EAAa,GAAI69F,EAAU,CACzB1nW,EAAG6oW,EAA0B,EAAfjB,EAAW5nW,EACzBC,EAAG8oW,IA5NX,IAA6BI,EAEvB/lX,EACAkd,EACA8oW,EACAC,EA8NJ,GAFIz/F,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFKmoH,EAAO1jC,GAAGzkF,MAAM,KAGnBskN,EAAU/4X,GAAQ06X,GAKpB,SAFI99F,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFWmoH,EAAO1jC,GAAGzkF,MAAM,IAGzBooH,EAAa,EAAGo8F,EAAYJ,IAAoBziY,GAAO0iY,IAAoBn2W,GAK7E,GAFIi6Q,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFKmoH,EAAO1jC,GAAGzkF,MAAM,IAGnBooH,EAAa,GAAIq8F,EAAYD,GAtPJkD,EAsPyCrD,EApPhE1iX,EAAOwoT,GAoPwCi6D,EApPjBziY,EAAKusB,GACnC2Q,EAAKsrS,GAAWu9D,EAAY/lY,EAAKusB,GACjCy5W,EAAcjzJ,GAAap0M,EAAM3e,EAH1B,KAGsC,GAAKsyD,OAClD2zT,EAAYlzJ,GAAap0M,EAAMzB,EAJxB,KAIkC,GAAKo1C,OAC3C,CAAC,GAAGh/E,OAAqB,IAAd0yY,EAAmB,KAAM,GAAG1yY,OAAmB,IAAZ2yY,EAAiB,YAgPiBr3Y,GAKvF,GAFI43S,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAGs8F,EAAqBD,EAAYA,EAAU,GAAK,IAKlE,GAFIt8F,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAGu8F,EAAmBF,EAAYA,EAAU,GAAK,IAKhE,QAFIt8F,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAIpB78K,GAASoI,GAAQA,EAAKgzB,GAAKhzB,EAAKizB,GAClCprB,GAASkB,IAAIyyX,GAAgBtzY,EAAOu3G,GAAY,CAC9Cu5L,MAAsB,IAAhB0oB,KAMP,CAACx5T,EAAOoxY,EAAY/nX,EAAMsoX,EAAY75X,EAAMi5X,EAAWv3E,EAAaruR,EAAK+lW,EAAkBD,EAAoBnuE,EAAWttB,EAAYqgD,EAAyB68C,EA9PhJ,WACpBG,IAAsB,EACtBD,GAAoB9hI,GAAgBnxP,IACpC8yX,EAAmB,CAACa,GAA4B,MAAZj6D,EAAmBA,EAAWnrU,EAAKqpG,GAAY+7R,GAA4B,MAAZ/5D,EAAmBA,EAAW9+S,EAAK88E,IACtIw6R,KAGsB,WACtBc,IAAsB,GAGH,SAAwBuB,GAC3C,IAAI38X,EAAS28X,EAAQ38X,OACrBq7X,GAAmBC,MAAQF,GAC3BC,GAAmBt8C,SAAWq8C,GAC9BG,GAAkBJ,GAAmBn7X,EAAOujS,YAAa83F,KAGvC,SAAuBuB,GACzC,IAAI58X,EAAS48X,EAAQ58X,OACrBq7X,GAAmBC,MAAO,EAC1BD,GAAmBt8C,SAAU,EAC7B,IAAI89C,EAAkBtB,GAAkBJ,GAAmBn7X,EAAOujS,YAAa83F,IAI/E,GAHAF,QAAoB91Y,EACpB21Y,OAAmB31Y,EAEf8Q,KAAKmS,IAAIu0X,EAAkBjrX,GAAQ,IAAM,OAAO8oX,EAAW9oX,GAC/D8oX,EAAWmC,IAiBK,WAChB3/F,EAAa,EAAG30S,EAAQgwF,GAAM3mE,EAAMsnX,EAAiBC,IACrDmB,IACAI,EAAWnyY,IA+MqP2f,GA5JhP,SAAqBrZ,GAErCA,EAAE0tC,iBACF1tC,EAAE0qC,kBAEF,IAAI6c,EAAQmlS,GAAc1sV,EAAG,CAC3BitV,mBAAoBQ,IACjBvzQ,EACLizT,GAAe5lV,IAGC,SAAqB0mV,GACrC,IAAI98X,EAAS88X,EAAQ98X,OACrBg8X,GAAeh8X,EAAO8/F,GAAa3pG,KAAKmS,IAAIuyX,GAAmB,KA+IqO/6R,EAAWrpG,EAAKusB,EAAK4+S,EAAUE,EAAUw4D,EAAcE,EAAaE,EAAYh9C,EAAYm9C,EAAiB9xT,EAAMgyT,EAAS9iY,EAAOkhY,EAAiBD,EAAiBK,EAAWF,EAxIhc,SAAyBxqY,GAC7C,OAAOquS,EAAa,EAAG78R,EA//0CA,SAA8BA,GACvD,OAAOspO,GAAatpO,EAAK3J,MAAO2J,EAAK1J,QA8/0CLomY,CAAqBluY,EAAEmR,WA0IzD,IAAIg9X,GAA0B,SAAUC,GACtCzvR,GAAUwvR,EAAYC,GAEtB,IAAIC,EAAWt8J,GAAao8J,GAE5B,SAASA,EAAWtyY,GAClB,IAAIyyY,EAsBJ,OApBArwR,GAAgBllH,KAAMo1Y,GAGtBtqR,GAAKjE,GADL0uR,EAAUD,EAAS3xY,KAAK3D,OACc8C,EAASuuY,GAAYF,GAAmB7/H,GAAgB,CAC5FygI,WAAY,EACZ75R,UAAW,GACXrpG,IAAK,GACLusB,IAAK,GACLpR,KAAM,EACNrpB,MAAO,EACP2xY,WAAY,EACZt4D,SAAU,GACVE,SAAU,GACVw4D,aAAc,GACdE,YAAa,GACbE,WAAY,GACZh9C,WAAY,GACZm9C,gBAAiB,GACjB9xT,KAAM,IACL,KAAM,EAAE,GAAI,IACRo0T,EAGT,OAAO/vR,GAAa4vR,GA/BQ,CAgC5Bx6H,IAEE46H,IAA4C,GAAxB78J,GAAoB,GAAuCwI,IAAK,SAAU1qO,GAChG,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EACRC,EAAGj1B,EAAKi1B,MAER,GAAgBitM,GAAmB6I,IAAU,SAAU/qO,GACzD,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EAAIh1B,EAAK3H,MACjB48B,EAAGj1B,EAAKi1B,MAER,GAAgBitM,GAAmByI,IAAO,SAAU3qO,GACtD,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EAAIh1B,EAAK3H,MACjB48B,EAAGj1B,EAAKi1B,MAER,GAAgBitM,GAAmB8I,IAAa,SAAUhrO,GAC5D,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EAAIh1B,EAAK3H,MACjB48B,EAAGj1B,EAAKi1B,EAAIj1B,EAAK1H,WAEjB,GAAgB4pO,GAAmB0I,IAAQ,SAAU5qO,GACvD,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EACRC,EAAGj1B,EAAKi1B,EAAIj1B,EAAK1H,WAEjB,GAAgB4pO,GAAmB+I,IAAY,SAAUjrO,GAC3D,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EACRC,EAAGj1B,EAAKi1B,EAAIj1B,EAAK1H,WAEjB,GAAgB4pO,GAAmB2I,IAAM,SAAU7qO,GACrD,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EACRC,EAAGj1B,EAAKi1B,MAER,GAAgBitM,GAAmB4I,IAAS,SAAU9qO,GACxD,MAAO,CACLg1B,EAAGh1B,EAAKg1B,EACRC,EAAGj1B,EAAKi1B,MAERitM,IAEA88J,GAAc,CAChBnnY,EAAG,MACHgB,EAAG,QACHjC,EAAG,SACHV,EAAG,QAED+oY,GAAwB,aACxBC,GAAsB,WACtBC,GAAoB,CACtBtnY,EAAGqnY,GACHtoY,EAAGsoY,GACHrmY,EAAGomY,GACH/oY,EAAG+oY,IAIL,SAASG,GAAmB5mY,EAAK2oC,EAAMnwC,GACrC,IAAIqxQ,EAAY7pQ,EAAI9J,QAapB,OAZA2zQ,EAAU,IAAMlhO,EAAKnwC,GAAG5J,IACxBi7Q,EAAU,IAAMlhO,EAAKnwC,GAAGmJ,UACxBkoQ,EAAU,IAAMlhO,EAAKnwC,GAAGoJ,MACxBioQ,EAAU,IAAMlhO,EAAKnwC,GAAG6D,KACxBwtQ,EAAU,IAAMlhO,EAAKnwC,GAAGoL,QACxBimQ,EAAU,IAAMlhO,EAAKnwC,GAAGquY,KACxBh9H,EAAU,IAAMlhO,EAAKnwC,GAAG+9C,SACxBszN,EAAU,IAAMlhO,EAAKnwC,GAAG+T,MACxBs9P,EAAU,IAAMlhO,EAAKnwC,GAAG40O,YACxBy8B,EAAU,IAAMlhO,EAAKnwC,GAAGsuY,SACxBj9H,EAAU,IAAMlhO,EAAKnwC,GAAGuuY,SACxBl9H,EAAU,IAAMlhO,EAAKnwC,GAAGwuY,SACjBn9H,EAIT,SAASo9H,GAAoB5uN,EAAOr4K,GAClC,IAAIgqJ,EACAk9O,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAz7M,EACAkhC,EACJ,MAAO,CACLv+N,IAAKypL,EACL1xF,MAAO,KACPl1F,EAAG,WAEDod,GADAm7I,EAAM,GAAQ,OACJ,OAAQk9O,EAElBlnY,EAAI,KACJ6O,GAAKm7I,EAAK,WAAYm9O,EAEtBnnY,EAAI,KACJ6O,GAAKm7I,EAAK,aAAco9O,EAExBpnY,EAAI,KACJ6O,GAAKm7I,EAAK,mBAAoBq9O,EAE9BrnY,EAAI,KACJ6O,GAAKm7I,EAAK,gBAAiBs9O,EAE3BtnY,EAAI,KACJ6O,GAAKm7I,EAAK,gBAAiBu9O,EAE3BvnY,EAAI,KACJ6O,GAAKm7I,EAAK,gBAAiBw9O,EAE3BxnY,EAAI,KACJ6O,GAAKm7I,EAAK,QAAS,0BACnBn7I,GAAKm7I,EAAK,iBAAkBy9O,EAE5BznY,EAAI,KACJ6O,GAAKm7I,EAAK,aAAc09O,EAAuB,GAAGx0Y,OAEtC,SAAZ8M,EAAI,IAAiB,OAAS,GAAG9M,OAEjC8M,EAAI,MACJ8kQ,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIw8B,GACRsoO,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIy8B,GACRqoO,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIw8B,GACRsoO,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIy8B,GACRqoO,GAAU96G,EAAK,UAEfhqJ,EAAI,KACJjP,KAAK41F,MAAQqjE,GAEf7pG,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GAEfgiF,IACHkhC,EAAU,CAAC53K,GAAOy0G,EAAK,SAAS,WAC1Bo4G,GAEJpiQ,EAAI,GAEJA,EAAI,OAEFA,EAAI,GAEJA,EAAI,KAAK/M,MAAMlC,KAAMiB,cACrB2xQ,GAAiB4jE,GAAU7yU,KAAK,KAAMs1J,EAAK,CAC7CtkH,gBAAgB,KACb6P,GAAOy0G,EAAK,oBAAoB,WAC/Bo4G,GAEJpiQ,EAAI,GAAG,cAEPA,EAAI,OAEFA,EAAI,GAAG,cAEPA,EAAI,KAAK/M,MAAMlC,KAAMiB,cACrBujD,GAAOy0G,EAAK,qBAAqB,WAC/Bo4G,GAEJpiQ,EAAI,GAAG,aAEPA,EAAI,OAEFA,EAAI,GAAG,aAEPA,EAAI,KAAK/M,MAAMlC,KAAMiB,cACrBujD,GAAOy0G,EAAK,kBAAkB,WAC5Bo4G,GAEJpiQ,EAAI,GAAG,YAEPA,EAAI,OAEFA,EAAI,GAAG,YAEPA,EAAI,KAAK/M,MAAMlC,KAAMiB,cACrB2xQ,GAAiBi8E,GAAalrV,KAAK,KAAMs1J,KAC7CiiC,GAAU,IAGd3qL,EAAG,SAAWmkT,EAASxnI,GACrBj+K,EAAMylT,EAIN,EAFIxnI,GAECipN,KAAoBA,EAEzBlnY,EAAI,MACF6O,GAAKm7I,EAAK,OAAQk9O,GAKpB,EAFIjpN,GAECkpN,KAAwBA,EAE7BnnY,EAAI,MACF6O,GAAKm7I,EAAK,WAAYm9O,GAKxB,EAFIlpN,GAECmpN,KAA0BA,EAE/BpnY,EAAI,MACF6O,GAAKm7I,EAAK,aAAco9O,GAK1B,EAFInpN,GAECopN,KAAgCA,EAErCrnY,EAAI,MACF6O,GAAKm7I,EAAK,mBAAoBq9O,GAKhC,EAFIppN,GAECqpN,KAA6BA,EAElCtnY,EAAI,MACF6O,GAAKm7I,EAAK,gBAAiBs9O,GAK7B,EAFIrpN,GAECspN,KAA6BA,EAElCvnY,EAAI,MACF6O,GAAKm7I,EAAK,gBAAiBu9O,GAK7B,EAFItpN,GAECupN,KAA6BA,EAElCxnY,EAAI,MACF6O,GAAKm7I,EAAK,gBAAiBw9O,GAK7B,EAFIvpN,GAECwpN,KAA8BA,EAEnCznY,EAAI,MACF6O,GAAKm7I,EAAK,iBAAkBy9O,GAK9B,EAFIxpN,GAECypN,KAA0BA,EAAuB,GAAGx0Y,OAE7C,SAAZ8M,EAAI,IAAiB,OAAS,GAAG9M,OAEjC8M,EAAI,OACF6O,GAAKm7I,EAAK,aAAc09O,GAK1B,EAFIzpN,GAGF6mF,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIw8B,GAKV,EAFIyhJ,GAGF6mF,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIy8B,GAKV,EAFIwhJ,GAGF6mF,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIw8B,GAKV,EAFIyhJ,GAGF6mF,GAAU96G,EAAK,OAEfhqJ,EAAI,IAAIy8B,GAKV,EAFIwhJ,GAGF6mF,GAAU96G,EAAK,UAEfhqJ,EAAI,MAGRggD,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GACtBiiC,GAAU,EACVk2E,GAAQh1C,KAKd,SAASw6K,GAAkB3nY,GAezB,IAdA,IAEI+7U,EAFA53B,EAAc,GACdC,EAAgB,IAAInoP,IAEpBooP,EAEJrkT,EAAI,GAEAspQ,EAAU,SAAiBtpQ,GAC7B,OAEEA,EAAI,KAICxH,EAAI,EAAGA,EAAI6rT,EAAWlxT,OAAQqF,GAAK,EAAG,CAC7C,IAAIqxQ,EAAY+8H,GAAmB5mY,EAAKqkT,EAAY7rT,GAChD5J,EAAM06Q,EAAQO,GAClBu6C,EAAc7xS,IAAI3jB,EAAKu1T,EAAY3rT,GAAKyuY,GAAoBr4Y,EAAKi7Q,IAGnE,MAAO,CACLp4Q,EAAG,WACD,IAAK,IAAIm2Y,EAAO,EAAGA,EAAOzjF,EAAYhxT,OAAQy0Y,GAAQ,EACpDzjF,EAAYyjF,GAAMn2Y,IAGpBsqV,EAAgB5pP,MAElBhyC,EAAG,SAAWpqD,EAAQk0G,GACpB,IAAK,IAAI49R,EAAO,EAAGA,EAAO1jF,EAAYhxT,OAAQ00Y,GAAQ,EACpD1jF,EAAY0jF,GAAM1nV,EAAEpqD,EAAQk0G,GAG9B+nD,GAAOj8J,EAAQgmV,EAAe9xO,IAEhC3oG,EAAG,SAAWtB,EAAK8nY,GACjB,IACI7pN,EADU,GAAe6pN,EAAS,GAClB,GAIpB,GAFI7pN,IAGFomI,EAEArkT,EAAI,GACJmkT,EAAc/6C,GAAkB+6C,EAAalmI,EAAOqrF,EAAS,EAAGtpQ,EAAKqkT,EAAYD,EAAe23B,EAAcjsU,WAAYm5P,GAAeg+H,GAAqBlrD,EAAe6qD,MAGjLpuY,EAAG,GACH8a,EAAG,GACH0sC,EAAG,SAAWmrN,GACZ,IAAK,IAAI48H,EAAO,EAAGA,EAAO5jF,EAAYhxT,OAAQ40Y,GAAQ,EACpD5jF,EAAY4jF,GAAM/nV,EAAEmrN,GAGlBA,GAAWx5G,GAAOoqL,KAK5B,SAASisD,GAAW5hG,EAAQx6B,EAASy6B,GACnC,IAAI4hG,EACAC,EACAC,EACAj9E,EACAk9E,EAAgBx8H,EAAQpkQ,KACxBA,OAAyB,IAAlB4gY,EAA2B,KAAOA,EACzCC,EAAkBz8H,EAAQ/1N,OAC1BA,OAA6B,IAApBwyV,EAA6B,KAAOA,EAC7CC,EAAoB18H,EAAQtqG,QAC5BA,OAAgC,IAAtBgnO,GAAuCA,EACjDC,EAAuB38H,EAAQ48H,YAC/BA,OAAuC,IAAzBD,OAAkC/5Y,EAAY+5Y,EAE5DrhG,EAAa,GAAW,cAC5BzkC,GAAoB2jC,EAAQc,GAAY,SAAUx1S,GAChD,OAAO20S,EAAa,GAAI6kB,EAAcx5T,MAGxC,IAAI+2Y,EAAiB72X,QAAOpjB,EAAW,CACrCokF,UAAW,KACX3zE,UAAW,GACXC,QAAS,KAEXujQ,GAAoB2jC,EAAQqiG,GAAgB,SAAU/2Y,GACpD,OAAO20S,EAAa,GAAI8hG,EAAkBz2Y,MAE5C,IASIg3Y,EATAC,EAAmB/2X,GAAO,EAAG,CAC/BghE,UAAW,OAEb6vL,GAAoB2jC,EAAQuiG,GAAkB,SAAUj3Y,GACtD,OAAO20S,EAAa,GAAI6hG,EAAoBx2Y,MAM9C,IAAIqT,EAAWyhQ,KA6If,OAjGA4/B,EAAOv6B,MAAQ,SAAUD,GACnB,SAAUA,GAASy6B,EAAa,EAAG7+R,EAAOokQ,EAAQpkQ,MAClD,WAAYokQ,GAASy6B,EAAa,EAAGxwP,EAAS+1N,EAAQ/1N,QACtD,YAAa+1N,GAASy6B,EAAa,EAAG/kI,EAAUsqG,EAAQtqG,SACxD,gBAAiBsqG,GAASy6B,EAAa,EAAGmiG,EAAc58H,EAAQ48H,cAGtEpiG,EAAO1jC,GAAGxhL,OAAS,WAGjB,KAFIklN,EAAO1jC,GAAGzkF,OAGZwqN,EAAel2X,IAAI+uJ,EAAU,EAAI,GAAK,CACpCkhI,MAAsB,IAAhB0oB,IAMV,KAFI9kB,EAAO1jC,GAAGzkF,OAGZ0qN,EAAiBp2X,IAAI+uJ,EAAU,EAAI,EAAG,CACpCkhI,MAAsB,IAAhB0oB,IAMV,KAFI9kB,EAAO1jC,GAAGzkF,OAMZooH,EAAa,EAAG4hG,EAAmB1xY,OAAOC,KAAKy7O,IAAWjmO,KAAI,SAAUpd,EAAK4J,GAE3E,IAMIowY,EAGE9B,EACAC,EACAC,EAXF/9R,EAAYgpI,GAAUrjP,GAEtByiB,EAAWk1X,GAAiBt9R,GAAWzhG,GAEvCnL,EAA4B,IAArB4sG,EAAU91G,OAAe,OAAS,SACzC01Y,EAAoB,WAATxsY,EA2Cf,MAxCa,SAATA,GAAmBw5C,IAKH,MAAdozD,IACF69R,EAAWjxV,EAAOrZ,EAClBuqW,EAAWznY,KAAKM,IAAIi2C,EAAOh2C,MAAO2H,EAAKg1B,EAAIh1B,EAAK3H,OAChDmnY,EAAWx/X,EAAKg1B,GAGA,MAAdysE,IACF69R,EAAWjxV,EAAOpZ,EAClBsqW,EAAWznY,KAAKM,IAAIi2C,EAAO/1C,OAAQ0H,EAAKi1B,EAAIj1B,EAAK1H,QACjDknY,EAAWx/X,EAAKi1B,GAGA,MAAdwsE,IACF69R,EAAWt/X,EAAKg1B,EAChBuqW,EAAWlxV,EAAOh2C,MAClBmnY,EAAWx/X,EAAKg1B,EAAIh1B,EAAK3H,OAGT,MAAdopG,IACF69R,EAAWt/X,EAAKi1B,EAChBsqW,EAAWlxV,EAAO/1C,OAClBknY,EAAWx/X,EAAKi1B,EAAIj1B,EAAK1H,QAG3B8oY,EAAO,CACL/B,KAAM,SACNtwV,SAAU,EACVhqC,MAAO,QAAQrZ,OAAOszY,GAAYv9R,IAClCmkI,YAAa,GAAGl6O,OAAOyzY,GAAkB19R,IACzC69R,SAAUxnY,KAAKi/B,MAAMuoW,GACrBC,SAAUznY,KAAKi/B,MAAMwoW,GACrBC,SAAU1nY,KAAKi/B,MAAMyoW,KAIlB,GAAc,CACnBp4Y,IAAKq6G,EACL5sG,KAAMA,EACNuF,MAAO,CACL46B,EAAG,UAAUviC,KAAKgvG,GAAazhG,EAAK3H,MAAQgpY,EAAWnnT,GAAMymT,EAAiB,GAAK,MAAQ,EAC3F1rW,EAAG,UAAUxiC,KAAKgvG,GAAazhG,EAAK1H,OAAS+oY,EAAWnnT,GAAMymT,EAAiB,GAAK,MAAQ,GAE9FxmY,UAAW,CACT66B,EAAGnrB,EAASmrB,EACZC,EAAGprB,EAASorB,GAEd74B,QAASskY,GACRU,QAKF,CAACJ,EAAaP,EAAkB/gG,EAAYuhG,EAAgBE,EA3IvD,SAAetsY,EAAM4sG,GAC/B,OAAO,SAAU6/R,GACf,IAAI3/X,EAAS2/X,EAAQ3/X,OAEjBu/X,GAAoBz/R,IAAcy/R,GAEzB,gBAATrsY,QAA+C7N,IAArBk6Y,IAEjB,gBAATrsY,IAAwBqsY,EAAmBz/R,GAElC,cAAT5sG,IAAsBqsY,OAAmBl6Y,GAC7CuW,EAAS1I,EAAM,CACb4sG,UAAWA,EACXyjM,YAAavjS,GAAUA,EAAOujS,iBAKxB,SAAezjM,GACzB,OAAO,SAAU8/R,GACf,IAAI5/X,EAAS4/X,EAAQ5/X,OACrBpE,EAAS,cAAe,CACtBkkG,UAAWA,EACXyjM,YAAa,CACXlwQ,EAAG,EACHC,EAAG,KAGP13B,EAAS,aAAc,CACrBkkG,UAAWA,EACXyjM,YAAavjS,IAEfpE,EAAS,YAAa,CACpBkkG,UAAWA,EACXyjM,YAAa,CACXlwQ,EAAG,EACHC,EAAG,OAuGwFj1B,EAAMquC,EAAQyrH,EAAS4mO,EAAmBC,EAAiBj9E,GAGhK,IAAI89E,GAA+B,SAAUC,GAC3CtyR,GAAUqyR,EAAiBC,GAE3B,IAAIC,EAAWn/J,GAAai/J,GAE5B,SAASA,EAAgBn1Y,GACvB,IAAIs1Y,EAWJ,OATAlzR,GAAgBllH,KAAMi4Y,GAGtBntR,GAAKjE,GADLuxR,EAAUD,EAASx0Y,KAAK3D,OACc8C,EAASm0Y,GAAYL,GAAmBtlI,GAAgB,CAC5F76P,KAAM,EACNquC,OAAQ,EACRyrH,QAAS,EACTknO,YAAa,IAERW,EAGT,OAAO5yR,GAAayyR,GApBa,CAqBjCr9H,IAEEy9H,GAAa,SAAoB5lY,GACnC,SAASuB,EAAS1I,EAAM8M,GACtB3F,EAAQyF,cAAc,IAAIC,YAAY7M,EAAM,CAC1C8M,OAAQA,KAIZ,IAAIkwV,EAAqB,SAA4BrhW,GACnDA,EAAE0tC,iBACFliC,EAAQvU,iBAAiB,gBAAiBo6Y,GAC1C7lY,EAAQvU,iBAAiB,aAAcsqW,GACvCx0V,EAAS,gBAGPskY,EAAsB,SAA6BrxY,GACrDA,EAAE0tC,iBACF3gC,EAAS,gBAAiB/M,EAAE4J,QAG1B23V,EAAmB,SAA0BvhW,GAC/C+M,EAAS,YAAa/M,EAAE4J,OACxB5J,EAAE0tC,iBACF4jW,KAGEA,EAAQ,WACV9lY,EAAQ8R,oBAAoB,gBAAiB+zX,GAC7C7lY,EAAQ8R,oBAAoB,aAAcikV,IAI5C,OADA/1V,EAAQvU,iBAAiB,eAAgBoqW,GAClC,CACLpkV,QAAS,WACPq0X,IACA9lY,EAAQ8R,oBAAoB,eAAgB+jV,MAK9CkwC,IAAuD,GAA5B5/J,GAAwB,GAA2CuI,GAAKE,IAAS,GAAgBzI,GAAuBwI,GAAOE,IAAO,GAAgB1I,GAAuByI,GAAQF,IAAM,GAAgBvI,GAAuB0I,GAAMF,IAAQ,GAAgBxI,GAAuB2I,GAASE,IAAc,GAAgB7I,GAAuB4I,GAAUE,IAAa,GAAgB9I,GAAuB6I,GAAaF,IAAU,GAAgB3I,GAAuB8I,GAAYF,IAAW5I,IAEngB6/J,GAAqB,SAA4BzzY,GACnD,IAII0zY,EAAwB1zY,IAAWs8O,IAAQt8O,IAAWo8O,GACtDu3J,EAAsB3zY,IAAWm8O,IAAOn8O,IAAWq8O,GAEvD,MAAO,CAPgBr8O,IAAWo8O,IAASp8O,IAAWw8O,IAAYx8O,IAAWy8O,GACvDz8O,IAAWs8O,IAAQt8O,IAAW08O,IAAc18O,IAAWu8O,GACxDv8O,IAAWm8O,IAAOn8O,IAAWw8O,IAAYx8O,IAAWu8O,GACjDv8O,IAAWq8O,IAAUr8O,IAAWy8O,IAAez8O,IAAW08O,GAIJg3J,EAAuBC,EADjFD,GAAyBC,IAI3CC,GAAgC,SAAuCniY,EAAMgxC,EAAW3C,GAC1F,IAAIhiD,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9E+D,EAASyiD,EAAUziD,OACnB4L,EAAY62C,EAAU72C,UAEtBioB,EAAc/1B,EAAQ+1B,YACtBioP,EAAUh+Q,EAAQg+Q,QAClBC,EAAUj+Q,EAAQi+Q,QAElB7nK,EAASs/R,GAAwBxzY,GACjC6zY,EAA6Bl3J,GAAyBzoI,GACtD4/R,EAAiBp2J,GAAUX,GAAatrO,EAAKg1B,EAAGh1B,EAAKi1B,GAAIq2M,GAAa82J,EAA2B,GAAKpiY,EAAK3H,MAAO+pY,EAA2B,GAAKpiY,EAAK1H,SAEvJgqY,EAA6Bp3J,GAAyB38O,GACtDg0Y,EAAiBt2J,GAAUoC,GAAYruO,GAAOsrO,GAAag3J,EAA2B,GAAKtiY,EAAK3H,MAAOiqY,EAA2B,GAAKtiY,EAAK1H,SAE5IkqY,EAAsBR,GAAmBzzY,GACzCk0Y,EAAuB,GAAeD,EAAqB,GAC3DE,EAAmBD,EAAqB,GACxCE,EAAkBF,EAAqB,GACvCG,EAAiBH,EAAqB,GACtCI,EAAoBJ,EAAqB,GACzCR,EAAwBQ,EAAqB,GAC7CP,EAAsBO,EAAqB,GAC3CK,EAAgBL,EAAqB,GAErC92J,EAAKxxO,EAAU66B,EACf42M,EAAKzxO,EAAU86B,EACfgtW,EAAuBr2J,EAAK,EAAWs2J,IAAqBv2J,EAAK,GAErE,IAAIo3J,EAAwBC,GAAqBX,EAAgB9zY,EAAQ8/C,EAAQ,CAC/EjsB,YAAaA,EACbioP,QAASA,EACTC,QAASA,IAEP24H,EAAcF,EAAsB55X,MACpC+5X,EAAcH,EAAsB35X,MAGpC+5X,EAAiB1yJ,GAAazwO,GAC9BojY,EAAiB,GAAeD,EAAgB,GAChDtrY,EAAIurY,EAAe,GACnBvqY,EAAIuqY,EAAe,GACnBxsY,EAAIwsY,EAAe,GACnBltY,EAAIktY,EAAe,GAMvB,GAHIV,EAAkBxsY,EAAImsY,EAAertW,EAAW2tW,IAAiB9pY,EAAIwpY,EAAertW,GACpF6tW,EAAmBhrY,EAAIwqY,EAAeptW,EAAW2tW,IAAgBhsY,EAAIyrY,EAAeptW,GAEpFytW,EAAkB,CACpB,IAAIW,EAASJ,EAAYjuW,EAAIiuW,EAAY5qY,MACrCirY,EAASJ,EAAYluW,EAAIkuW,EAAY7qY,MACzCQ,EAAIqhF,GAAMqoT,EAAevtW,EAAI22M,EAAI03J,EAAQC,QACpC,GAAIX,EAAiB,CAC1B,IAAIY,EAASL,EAAYluW,EACrBwuW,EAASP,EAAYjuW,EACzB9+B,EAAIgkF,GAAMqoT,EAAevtW,EAAI22M,EAAI43J,EAAQC,GAG3C,GAAIX,EAAmB,CACrB,IAAIY,EAASR,EAAYhuW,EAAIguW,EAAY3qY,OACrCorY,EAASR,EAAYjuW,EAAIiuW,EAAY5qY,OACzC1B,EAAIsjF,GAAMqoT,EAAettW,EAAI22M,EAAI63J,EAAQC,QACpC,GAAId,EAAgB,CACzB,IAAIe,EAAST,EAAYjuW,EACrB2uW,EAASX,EAAYhuW,EACzBp9B,EAAIqiF,GAAMqoT,EAAettW,EAAI22M,EAAI+3J,EAAQC,GAqB3C,GAjBI1tY,EAAI+sY,EAAYjuW,IAClB9+B,EAAI+sY,EAAYjuW,GAGdn8B,EAAIoqY,EAAYjuW,EAAIiuW,EAAY5qY,QAClCQ,EAAIoqY,EAAYjuW,EAAIiuW,EAAY5qY,OAG9BR,EAAIorY,EAAYhuW,IAClBp9B,EAAIorY,EAAYhuW,GAGdr+B,EAAIqsY,EAAYhuW,EAAIguW,EAAY3qY,SAClC1B,EAAIqsY,EAAYhuW,EAAIguW,EAAY3qY,QAI9BpC,EAAIgtY,EAAYluW,EAAG,CACrB,IAAIuoK,EAAK2lM,EAAYluW,EAAI9+B,EACzBA,EAAIgtY,EAAYluW,EAChBn8B,GAAK0kM,EAGP,GAAI1kM,EAAIqqY,EAAYluW,EAAIkuW,EAAY7qY,MAAO,CACzC,IAAIwrY,EAAMhrY,GAAKqqY,EAAYluW,EAAIkuW,EAAY7qY,OAE3CQ,EAAIqqY,EAAYluW,EAAIkuW,EAAY7qY,MAChCnC,GAAK2tY,EAGP,GAAIhsY,EAAIqrY,EAAYjuW,EAAG,CACrB,IAAIuoK,EAAK0lM,EAAYjuW,EAAIp9B,EACzBA,EAAIqrY,EAAYjuW,EAChBr+B,GAAK4mM,EAGP,GAAI5mM,EAAIssY,EAAYjuW,EAAIiuW,EAAY5qY,OAAQ,CAC1C,IAAIwrY,EAAMltY,GAAKssY,EAAYjuW,EAAIiuW,EAAY5qY,QAE3C1B,EAAIssY,EAAYjuW,EAAIiuW,EAAY5qY,OAChCT,GAAKisY,EAIP,GAAI1hX,EAEF,GAAI0gX,EAAe,CACjB,IAAIiB,EAAOlrY,EAAI3C,EAEX8tY,EAAOptY,EAAIiB,EAEXoqY,GACF+B,EAAOD,EAAO3hX,EACdvqB,EAAIwqY,EAAeptW,EAAW,GAAP+uW,EACvBptY,EAAIyrY,EAAeptW,EAAW,GAAP+uW,GACd9B,IACT6B,EAAOC,EAAO5hX,EACdlsB,EAAImsY,EAAertW,EAAW,GAAP+uW,EACvBlrY,EAAIwpY,EAAertW,EAAW,GAAP+uW,OAGtB,CACH,IAAIhqD,EAAUzuG,GAAai3J,EAAevtW,EAAI22M,EAAK02J,EAAertW,EAAGutW,EAAettW,EAAI22M,EAAKy2J,EAAeptW,GAExG1mC,IAAWw8O,IACbgvG,EAAQ/kT,EAAIl9B,KAAK6sB,IAAI,EAAGo1T,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAKM,IAAI,EAAG2hV,EAAQ9kT,IACvB1mC,IAAWy8O,IACpB+uG,EAAQ/kT,EAAIl9B,KAAK6sB,IAAI,EAAGo1T,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAK6sB,IAAI,EAAGo1T,EAAQ9kT,IACvB1mC,IAAW08O,IACpB8uG,EAAQ/kT,EAAIl9B,KAAKM,IAAI,EAAG2hV,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAK6sB,IAAI,EAAGo1T,EAAQ9kT,IACvB1mC,IAAWu8O,KACpBivG,EAAQ/kT,EAAIl9B,KAAKM,IAAI,EAAG2hV,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAKM,IAAI,EAAG2hV,EAAQ9kT,IAIlC,IAAIgvW,EAAgBp4J,GAAakuG,GAC7BmqD,EAAmBr4J,GAAaP,GAAa23J,EAAY5qY,MAAO4qY,EAAY3qY,SAC5E6rY,EAAmBt4J,GAAaP,GAAa43J,EAAY7qY,MAAO6qY,EAAY5qY,SAC5E8rY,EAAuBlqT,GAAM+pT,EAAeC,EAAkBC,GAC9DE,EAAqB/4J,GAAalpN,EAAa,GAC/CkiX,GAAgBl4J,GAAeN,GAAgBu4J,GAAqBD,GAEpE71Y,IAAWw8O,IACblyO,EAAIwpY,EAAertW,EAAIsvW,GAActvW,EACrCn9B,EAAIwqY,EAAeptW,EAAIqvW,GAAcrvW,GAC5B1mC,IAAWy8O,IACpBnyO,EAAIwpY,EAAertW,EAAIsvW,GAActvW,EACrCp+B,EAAIyrY,EAAeptW,EAAIqvW,GAAcrvW,GAC5B1mC,IAAW08O,IACpB/0O,EAAImsY,EAAertW,EAAIsvW,GAActvW,EACrCp+B,EAAIyrY,EAAeptW,EAAIqvW,GAAcrvW,GAC5B1mC,IAAWu8O,KACpB50O,EAAImsY,EAAertW,EAAIsvW,GAActvW,EACrCn9B,EAAIwqY,EAAeptW,EAAIqvW,GAAcrvW,GAK3C,OAAOg6M,GAAW/4O,EAAG2B,EAAGgB,EAAI3C,EAAGU,EAAIiB,IAGjCmrY,GAAuB,SAA8BvgS,EAAQxiB,EAAK5xC,EAAQhiD,GAC5E,IAAI+1B,EAAc/1B,EAAQ+1B,YACtBioP,EAAUh+Q,EAAQg+Q,QAClBC,EAAUj+Q,EAAQi+Q,QAClBo4H,EAAmBziT,IAAQ0qJ,IAAS1qJ,IAAQ8qJ,IAAY9qJ,IAAQ+qJ,GAChE23J,EAAkB1iT,IAAQ4qJ,IAAQ5qJ,IAAQgrJ,IAAchrJ,IAAQ6qJ,GAChE83J,EAAiB3iT,IAAQyqJ,IAAOzqJ,IAAQ8qJ,IAAY9qJ,IAAQ6qJ,GAC5D+3J,EAAoB5iT,IAAQ2qJ,IAAU3qJ,IAAQ+qJ,IAAe/qJ,IAAQgrJ,GACrEg3J,EAAwBhiT,IAAQ4qJ,IAAQ5qJ,IAAQ0qJ,GAChDu3J,EAAsBjiT,IAAQyqJ,IAAOzqJ,IAAQ2qJ,GAE7C25J,EAAgBl2J,GAAYhgM,GAE5Bq0V,GACF6B,EAAcvvW,EAAIytE,EAAOztE,EACzBuvW,EAAclsY,OAASoqG,EAAOztE,GACrB2tW,IACT4B,EAAclsY,MAAQoqG,EAAOztE,GAG3B6tW,GACF0B,EAActvW,EAAIwtE,EAAOxtE,EACzBsvW,EAAcjsY,QAAUmqG,EAAOxtE,GACtB2tW,IACT2B,EAAcjsY,OAASmqG,EAAOxtE,GAIhC,IArq2C+D58B,EAAOC,EAqq2ClEksY,GArq2C2DnsY,EAqq2CTP,KAAKM,IAAImsY,EAAclsY,MAAOiyQ,EAAQjyQ,OArq2CtBC,EAqq2C8BR,KAAKM,IAAImsY,EAAcjsY,OAAQgyQ,EAAQhyQ,QApq2CpI81O,GAAO,EAAG,EAAG/1O,EAAOC,IAsq2C3B,GAAI8pB,EAEF,GAAI6/W,EAAuB,CACzB,IAAIxnC,EAAgB3iW,KAAKM,IAAIqqG,EAAOxtE,EAAGoZ,EAAO/1C,OAASmqG,EAAOxtE,GAC9DuvW,EAAuBlsY,OAASR,KAAKM,IAAoB,EAAhBqiW,EAAmB+pC,EAAuBlsY,aAEhF,GAAI4pY,EAAqB,CAC5B,IAAI7jW,EAAkBvmC,KAAKM,IAAIqqG,EAAOztE,EAAGqZ,EAAOh2C,MAAQoqG,EAAOztE,GAC/DwvW,EAAuBnsY,MAAQP,KAAKM,IAAsB,EAAlBimC,EAAqBmmW,EAAuBnsY,OAIxF,IAEInC,EAAG2C,EAAGhB,EAAGjB,EAFT6tY,EAAiBriX,EAAckrN,GAAmBgD,GAAc/B,GAAmB87B,GAAUjoP,IAAgBioP,EAC7Gq6H,EAAiBtiX,EAAckrN,GAAmBkD,GAAgBg0J,EAAwBpiX,IAAgBoiX,EAG1G9B,EAAkBxsY,EAAIusG,EAAOztE,EAAW2tW,IAAiB9pY,EAAI4pG,EAAOztE,GACpE6tW,EAAmBhrY,EAAI4qG,EAAOxtE,EAAW2tW,IAAgBhsY,EAAI6rG,EAAOxtE,GAEpEytW,EACF7pY,EAAI3C,EAAIuuY,EAAepsY,MACdsqY,IACTzsY,EAAI2C,EAAI4rY,EAAepsY,OAGrBwqY,EACFjsY,EAAIiB,EAAI4sY,EAAensY,OACdsqY,IACT/qY,EAAIjB,EAAI6tY,EAAensY,QAGrB2pY,GACFpqY,EAAI4qG,EAAOxtE,EAA4B,GAAxBwvW,EAAensY,OAC9B1B,EAAI6rG,EAAOxtE,EAA4B,GAAxBwvW,EAAensY,QACrB4pY,IACThsY,EAAIusG,EAAOztE,EAA2B,GAAvByvW,EAAepsY,MAC9BQ,EAAI4pG,EAAOztE,EAA2B,GAAvByvW,EAAepsY,OAGhC,IAAI8Q,EAAQulO,GAAqB,CAACpD,GAAap1O,EAAG2B,GAAIyzO,GAAazyO,EAAGjC,KA4BtE,OA1BI8rY,EACF7pY,EAAI3C,EAAIwuY,EAAersY,MACdsqY,IACTzsY,EAAI2C,EAAI6rY,EAAersY,OAGrBwqY,EACFjsY,EAAIiB,EAAI6sY,EAAepsY,OACdsqY,IACT/qY,EAAIjB,EAAI8tY,EAAepsY,QAGrB2pY,GACFpqY,EAAI4qG,EAAOxtE,EAA4B,GAAxByvW,EAAepsY,OAC9B1B,EAAI6rG,EAAOxtE,EAA4B,GAAxByvW,EAAepsY,QACrB4pY,IACThsY,EAAIusG,EAAOztE,EAA2B,GAAvB0vW,EAAersY,MAC9BQ,EAAI4pG,EAAOztE,EAA2B,GAAvB0vW,EAAersY,OAIhCnC,EAAI4B,KAAK6sB,IAAI0pB,EAAOrZ,EAAG9+B,GACvB2C,EAAIf,KAAKM,IAAIi2C,EAAOrZ,EAAIqZ,EAAOh2C,MAAOQ,GACtChB,EAAIC,KAAK6sB,IAAI0pB,EAAOpZ,EAAGp9B,GACvBjB,EAAIkB,KAAKM,IAAIi2C,EAAOpZ,EAAIoZ,EAAO/1C,OAAQ1B,GAEhC,CACLuS,MAAOA,EACPC,MAHUslO,GAAqB,CAACpD,GAAap1O,EAAG2B,GAAIyzO,GAAazyO,EAAGjC,OAoIpE+tY,GAAW,SAAkBtwG,GAC/B,OAAa,IAANA,EAAYv8R,KAAKE,IAK1B,SAAS4sY,GAAkBpsY,GACzB,IAAIgqJ,EACAqiP,EACAtpX,EA6CJ,OA5CAspX,EAAa,IAAIlG,GAAW,CAC1B7iY,MAAO,CACLujV,WAEA7mV,EAAI,GACJJ,IAEAI,EAAI,GACJmsB,IAEAnsB,EAAI,IACJtO,MAEAsO,EAAI,IACJ+qU,SAAUzrU,KAAK6sB,IAEfnsB,EAAI,GAEJA,EAAI,IACJirU,SAAU3rU,KAAKM,IAEfI,EAAI,IAEJA,EAAI,IACJ8iY,WAEA9iY,EAAI,GACJ+a,KAEA/a,EAAI,IACJqjY,WAAY,GAAGnwY,OAAOoM,KAAKi/B,MAAM4tW,GAEjCnsY,EAAI,MAAO,SACXyjY,aAEAzjY,EAAI,GACJ2jY,YAEA3jY,EAAI,IACJ6jY,WAEA7jY,EAAI,OAGD,CACLvO,EAAG,WACDu4J,EAAM,GAAQ,OACd4gH,GAAiByhI,EAAW3pI,GAAGj3G,UAC/B58I,GAAKm7I,EAAK,QAAS,wBAErB7pG,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GACpB4gK,GAAgBwhI,EAAYriP,EAAK,MACjCjnI,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKssY,GACjB,IACIruN,EADU,GAAequN,EAAS,GAClB,GAEhBC,EAAqB,GAGzB,GAFItuN,IAEAsuN,EAAmB1lD,WAEvB7mV,EAAI,IAGJ,IAFIi+K,IAECsuN,EAAmB3sY,IAExBI,EAAI,IAGJ,KAFIi+K,IAEEsuN,EAAmBpgX,IAEzBnsB,EAAI,KAGJ,KAFIi+K,IAEEsuN,EAAmB76Y,MAEzBsO,EAAI,KAGJ,IAFIi+K,IAECsuN,EAAmBxhE,SAAWzrU,KAAK6sB,IAExCnsB,EAAI,GAEJA,EAAI,KAGJ,KAFIi+K,IAEEsuN,EAAmBthE,SAAW3rU,KAAKM,IAEzCI,EAAI,IAEJA,EAAI,KAGJ,GAFIi+K,IAEAsuN,EAAmBzJ,WAEvB9iY,EAAI,IAGJ,KAFIi+K,IAEEsuN,EAAmBxxX,KAEzB/a,EAAI,KAGJ,KAFIi+K,IAEEsuN,EAAmBlJ,WAAa,GAAGnwY,OAAOoM,KAAKi/B,MAAM4tW,GAE3DnsY,EAAI,MAAO,UAGX,EAFIi+K,IAEDsuN,EAAmB9I,aAEtBzjY,EAAI,IAGJ,IAFIi+K,IAECsuN,EAAmB5I,YAExB3jY,EAAI,KAGJ,IAFIi+K,IAECsuN,EAAmB1I,WAExB7jY,EAAI,KACJqsY,EAAWjiN,KAAKmiN,IAElB/zY,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcukI,EAAW3pI,GAAGj3G,SAAUr8D,GACtCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAeskI,EAAW3pI,GAAGj3G,SAAUr8D,GACvCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GACtBkhH,GAAkBmhI,KAOxB,SAASG,GAAWpmG,EAAQx6B,EAASy6B,GACnC,IAAIzmS,EACAusB,EACAqX,EACApiC,EACAqoC,EACAgjW,EACA/6Y,EACA8nP,EAAWoyB,EAAQpyB,SACnBuxF,EAAWn/D,EAAQm/D,SACnBE,EAAWr/D,EAAQq/D,SACnByhE,EAAyB9gI,EAAQ63H,aACjCA,OAA0C,IAA3BiJ,EAAoC7gK,GAAS6gK,EAC5DC,EAAwB/gI,EAAQ+3H,YAChCA,OAAwC,IAA1BgJ,EAAmC9gK,GAAS8gK,EAC1DC,EAAuBhhI,EAAQi4H,WAC/BA,OAAsC,IAAzB+I,EAAkC/gK,GAAS+gK,EACxDC,EAAuBjhI,EAAQi7E,WAC/BA,OAAsC,IAAzBgmD,EAAkC,EAAIA,EACnDC,EAAuBlhI,EAAQk3H,WAC/BA,OAAsC,IAAzBgK,OAAkCt+Y,EAAYs+Y,EAC3DC,EAAuBnhI,EAAQohI,YAC/BA,OAAuC,IAAzBD,OAAkCv+Y,EAAYu+Y,EAC5DE,EAAuBrhI,EAAQshI,YAC/BA,OAAuC,IAAzBD,OAAkCz+Y,EAAYy+Y,EAmEhE,OAzDA7mG,EAAOv6B,MAAQ,SAAUD,GACnB,aAAcA,GAASy6B,EAAa,GAAI7sD,EAAWoyB,EAAQpyB,UAC3D,aAAcoyB,GAASy6B,EAAa,EAAG0kC,EAAWn/D,EAAQm/D,UAC1D,aAAcn/D,GAASy6B,EAAa,EAAG4kC,EAAWr/D,EAAQq/D,UAC1D,iBAAkBr/D,GAASy6B,EAAa,EAAGo9F,EAAe73H,EAAQ63H,cAClE,gBAAiB73H,GAASy6B,EAAa,EAAGs9F,EAAc/3H,EAAQ+3H,aAChE,eAAgB/3H,GAASy6B,EAAa,EAAGw9F,EAAaj4H,EAAQi4H,YAC9D,eAAgBj4H,GAASy6B,EAAa,EAAGwgD,EAAaj7E,EAAQi7E,YAC9D,eAAgBj7E,GAASy6B,EAAa,EAAGy8F,EAAal3H,EAAQk3H,YAC9D,gBAAiBl3H,GAASy6B,EAAa,GAAI2mG,EAAcphI,EAAQohI,aACjE,gBAAiBphI,GAASy6B,EAAa,GAAI6mG,EAActhI,EAAQshI,cAGvE9mG,EAAO1jC,GAAGxhL,OAAS,WAGjB,MAFIklN,EAAO1jC,GAAGzkF,OAGZooH,EAAa,EAAGzmS,EAAMotY,EArDf,MA0DT,MAFI5mG,EAAO1jC,GAAGzkF,OAGZooH,EAAa,GAAIl6Q,EAAM+gX,EA3DhB,MAgET,KAFI9mG,EAAO1jC,GAAGzkF,OAGZooH,EAAa,GAAI7iQ,EAAS5jC,EAAoB,IAAbusB,EAAMvsB,IAKzC,MAFIwmS,EAAO1jC,GAAGzkF,OAGZooH,EAAa,GAAIjlS,EAAsB,EAAd8rY,GAK3B,KAFI9mG,EAAO1jC,GAAGzkF,OAGZooH,EAAa,EAAG58P,EAAOnqC,KAAKmqC,KAAK+vM,IAKnC,MAFI4sD,EAAO1jC,GAAGzkF,OAGZooH,EAAa,EAAGomG,EAAQntY,KAAKi/B,MAAMj/B,KAAKmS,IAAI+nO,GAAYp4O,GAASA,GAKnE,KAFIglS,EAAO1jC,GAAGzkF,OAGZooH,EAAa,GAAI30S,EAAQ8nP,EAAW/vM,EAAOgjW,IAIxC,CAAC1hE,EAAUE,EAAUw4D,EAAcE,EAAaE,EAAYh9C,EAAYi8C,EAAY2J,EAAOhjW,EAAM7pC,EAAKusB,EAAKz6B,EAAO8xC,EAAQg2M,EAAUwzJ,EAAaE,EAAa9rY,EAjE1J,SAAc1P,GACvB,OAAOiyY,EAAYl6V,EAAOgjW,EAAQ/6Y,IAGvB,SAAgBA,GAC3B,OAAOmyY,EAAWp6V,EAAOgjW,EAAQ/6Y,KA+DrC,IAAIy7Y,GAA4B,SAAUC,GACxCz2R,GAAUw2R,EAAcC,GAExB,IAAIC,EAAWtjK,GAAaojK,GAE5B,SAASA,EAAat5Y,GACpB,IAAIy5Y,EAiBJ,OAfAr3R,GAAgBllH,KAAMo8Y,GAGtBtxR,GAAKjE,GADL01R,EAAUD,EAAS34Y,KAAK3D,OACc8C,EAAS24Y,GAAYJ,GAAmB/pI,GAAgB,CAC5F7oB,SAAU,GACVuxF,SAAU,EACVE,SAAU,EACVw4D,aAAc,EACdE,YAAa,EACbE,WAAY,EACZh9C,WAAY,EACZi8C,WAAY,EACZkK,YAAa,GACbE,YAAa,KAERI,EAGT,OAAO/2R,GAAa42R,GA1BU,CA2B9BxhI,IAgCF,SAAS4hI,GAAqBvtY,GAC5B,IAAIijU,EACAlgT,EAgBJ,OAfAkgT,EAAa,IAAInE,GAAW,CAC1Bx7T,MAAO,CACLqwK,MAAO,0BACP4yI,OAAQ,MACR1yT,QAEAmM,EAAI,GACJkgJ,cAEAlgJ,EAAI,GACJs8G,SAEAt8G,EAAI,OAGD,CACLvO,EAAG,WACDm5Q,GAAiBq4D,EAAWvgE,GAAGj3G,WAEjCtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgBo4D,EAAYltU,EAAQk0G,GACpClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAIwlJ,EAAqB,GAGzB,IAFIxlJ,IAECwlJ,EAAmB5vU,QAExBmM,EAAI,IAGJ,IAFIi+K,IAECwlJ,EAAmBvjL,cAExBlgJ,EAAI,IACJijU,EAAW74I,KAAKq5I,IAElBjrU,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcm7D,EAAWvgE,GAAGj3G,SAAUr8D,GACtCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAek7D,EAAWvgE,GAAGj3G,SAAUr8D,GACvCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkB+3D,EAAY93D,KAKpC,SAASqiI,GAAkBxtY,GACzB,IAAI4qN,EACA7nM,EAmCJ,OAlCA6nM,EAAW,IAAI,GAAS,CACtBtnN,MAAO,CACLs6B,KAEA59B,EAAI,GACJuM,MAEAvM,EAAI,GACJu3T,WAEAv3T,EAAI,GACJs3T,UAEAt3T,EAAI,GACJnM,QAEAmM,EAAI,GACJkgJ,cAEAlgJ,EAAI,GACJs8G,SAEAt8G,EAAI,GACJg5T,aAEAh5T,EAAI,GACJkmT,QAAS,CACPid,SAAU,CAACoqE,KAEb1qI,QAAS,CACP7iQ,IAAKA,MAIJ,CACLvO,EAAG,WACDm5Q,GAAiBhgD,EAAS83C,GAAGj3G,WAE/BtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgBjgD,EAAU70N,EAAQk0G,GAClClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKytY,GACjB,IACIxvN,EADU,GAAewvN,EAAS,GAClB,GAEhBzzD,EAAmB,GAGvB,EAFI/7J,IAED+7J,EAAiBp8S,KAEpB59B,EAAI,IAGJ,EAFIi+K,IAED+7J,EAAiBztU,MAEpBvM,EAAI,IAGJ,EAFIi+K,IAED+7J,EAAiBziB,WAEpBv3T,EAAI,IAGJ,EAFIi+K,IAED+7J,EAAiB1iB,UAEpBt3T,EAAI,IAGJ,IAFIi+K,IAEC+7J,EAAiBnmV,QAEtBmM,EAAI,IAGJ,GAFIi+K,IAEA+7J,EAAiB95L,cAErBlgJ,EAAI,IAGJ,GAFIi+K,IAEA+7J,EAAiB19N,SAErBt8G,EAAI,IAGJ,GAFIi+K,IAEA+7J,EAAiBhhB,aAErBh5T,EAAI,IAIJ,OAFIi+K,IAGF+7J,EAAiBn3E,QAAU,CACzB5kF,MAAOA,EACPj+K,IAAKA,IAIT4qN,EAASxgC,KAAK4vJ,IAEhBxhV,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcl9C,EAAS83C,GAAGj3G,SAAUr8D,GACpCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAen9C,EAAS83C,GAAGj3G,SAAUr8D,GACrCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkBtgD,EAAUugD,KAKlC,IAAI,GAAQ,oCAEZ,SAASuiI,GAAWtnG,EAAQx6B,EAASy6B,GACnC,IAAIpmB,EACA0tH,EACAC,EACAhwW,EAAOguO,EAAQhuO,KACfrxB,EAAQq/P,EAAQr/P,MAChBgrT,EAAa3rD,EAAQ2rD,WACrBD,EAAY1rD,EAAQ0rD,UACpBzjU,EAAU+3Q,EAAQ/3Q,QAClBqsJ,EAAgB0rH,EAAQ1rH,cACxB5jC,EAAWsvJ,EAAQtvJ,SACnB08M,EAAeptD,EAAQotD,aACvB60E,EAAkBjiI,EAAQn1Q,OAC1BA,OAA6B,IAApBo3Y,EAA6B,YAAcA,EACpDC,EAAwBliI,EAAQmiI,eAChCA,OAA2C,IAA1BD,EAAmCjiK,GAASiiK,EAE7DE,EAAU,SAAiBxxW,EAAGC,EAAG58B,EAAOC,EAAQO,GAClD,MAAO,eAAenN,OAAO,GAAO,QAASA,OAAOspC,EAAG,SAAWtpC,OAAOupC,EAAG,aAAevpC,OAAO2M,EAAO,cAAgB3M,OAAO4M,EAAQ,UAAY5M,OAAOmN,EAAG,QAG5J4tY,EAAe,SAAsBzxW,EAAGC,GAC1C,MAAO,SAASvpC,OAAO,GAAO,SAAUA,OAAOspC,EAAG,KAAKtpC,OAAOupC,EAAG,mBA4EnE,OAvCA2pQ,EAAOv6B,MAAQ,SAAUD,GACnB,SAAUA,GAASy6B,EAAa,EAAGzoQ,EAAOguO,EAAQhuO,MAClD,UAAWguO,GAASy6B,EAAa,EAAG95R,EAAQq/P,EAAQr/P,OACpD,eAAgBq/P,GAASy6B,EAAa,EAAGkxB,EAAa3rD,EAAQ2rD,YAC9D,cAAe3rD,GAASy6B,EAAa,EAAGixB,EAAY1rD,EAAQ0rD,WAC5D,YAAa1rD,GAASy6B,EAAa,GAAIxyS,EAAU+3Q,EAAQ/3Q,SACzD,kBAAmB+3Q,GAASy6B,EAAa,EAAGnmJ,EAAgB0rH,EAAQ1rH,eACpE,aAAc0rH,GAASy6B,EAAa,EAAG/pL,EAAWsvJ,EAAQtvJ,UAC1D,iBAAkBsvJ,GAASy6B,EAAa,EAAG2yB,EAAeptD,EAAQotD,cAClE,WAAYptD,GAASy6B,EAAa,GAAI5vS,EAASm1Q,EAAQn1Q,QACvD,mBAAoBm1Q,GAASy6B,EAAa,GAAI0nG,EAAiBniI,EAAQmiI,iBAG7E3nG,EAAO1jC,GAAGxhL,OAAS,WAGjB,KAFIklN,EAAO1jC,GAAGzkF,OAGZooH,EAAa,EAAGpmB,EAnDI,SAA2BpsR,EAASmY,GAC1D,OAAQnY,GAAW,IAAImY,KAAI,SAAUgR,GAEnC,OAAIplB,GAASolB,EAAO,KAClBA,EAAO,GAAKA,EAAO,GAAGhR,IAAIA,GACnBgR,GAIFhR,EAAIgR,MA0CuBkxX,CAAkBr6Y,EAtC/B,SAA4B4C,GACnD,OAAO,SAAUkO,GACf,IAAIwpY,EAAS,GAAexpY,EAAM,GAC9BjT,EAAQy8Y,EAAO,GACf5hY,EAAQ4hY,EAAO,GACfC,EAAUD,EAAO,GACjBt6Y,OAAsB,IAAZu6Y,EAAqB,GAAKA,EAMxC,OAJI50Y,GAAS9H,KACXmC,EAAQoU,OAAoB,cAAXxR,EAAyB/E,EAAQ,EAAIA,EAAQ,GAGzD,CAACA,EAAO6a,EAAO1Y,IA0BuCw6Y,CAAmB53Y,KAKlF,KAFI2vS,EAAO1jC,GAAGzkF,OAGZooH,EAAa,EAAGsnG,EAAiC,cAAXl3Y,EAAyB,EAAI,GAKrE,IAFI2vS,EAAO1jC,GAAGzkF,OAGZooH,EAAa,EAAGunG,EAAgB,CAAC,CAAC,YAAa,YAAa,CAC1Dt2E,WAAW,EACX15R,KAAMowW,EAAQ,EAAG,EAAG,GAAI,GAAI,IAA8B,IAAxBL,EAA4BM,EAAa,EAAG,IAAM,MAClF,CAAC,WAAY,WAAY,CAC3B32E,WAAW,EACX15R,KAAMowW,EAAQ,EAAG,EAAG,GAAI,GAAI,IAA8B,IAAxBL,EAA4BM,EAAa,EAAG,IAAM,SAKnF,CAACrwW,EAAMrxB,EAAOgrT,EAAYD,EAAWp3K,EAAe5jC,EAAU08M,EAAc20E,EAAqBC,EAAe3tH,EA5C9F,SAA4Bt7Q,GACnD0hS,EAAa,GAAI5vS,EAASkO,EAAKjT,OAC/Bq8Y,EAAeppY,EAAKjT,QA0CsI+E,EAAQ5C,EAASk6Y,GAG/K,IAAIO,GAA8B,SAAUC,GAC1C53R,GAAU23R,EAAgBC,GAE1B,IAAIC,EAAWzkK,GAAaukK,GAE5B,SAASA,EAAez6Y,GACtB,IAAI46Y,EAiBJ,OAfAx4R,GAAgBllH,KAAMu9Y,GAGtBzyR,GAAKjE,GADL62R,EAAUD,EAAS95Y,KAAK3D,OACc8C,EAAS65Y,GAAYF,GAAmBnrI,GAAgB,CAC5FzkO,KAAM,EACNrxB,MAAO,EACPgrT,WAAY,EACZD,UAAW,EACXzjU,QAAS,GACTqsJ,cAAe,EACf5jC,SAAU,EACV08M,aAAc,EACdviU,OAAQ,GACRs3Y,eAAgB,KAEXU,EAGT,OAAOl4R,GAAa+3R,GA1BY,CA2BhC3iI,IAGE+iI,GAAuB,MAGvBC,GAAqB,SAA4B/1Y,GACnD,OAAO46O,GAAY56O,GAAG,SAAUA,GAC9B,OAAO+5O,GAAa/5O,EAJR,OAQZg2Y,GAAmB,SAA0BvuY,GAC/C,OAAO63O,GAAU73O,GAAG,SAAUzH,GAC5B,OAAO+5O,GAAa/5O,EAVR,OAcZi2Y,GAAmB,SAA0BtzV,GAC/C,OAAOA,EAAEvvC,IAAI2iY,KAGXG,GAAc,SAAqB3wY,EAAGC,GACxC,IAAI23J,EAAS/jK,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,KACjF,OAAOsN,KAAKmS,IAAItT,EAAIC,GAAK23J,GAgK3B,SAASg5O,GAAwB/uY,GAC/B,IAAIiyU,EACAlvT,EAQJ,OAPAkvT,EAAuB,IAAIC,GAAuB,CAChD5uU,MAAO,CACLga,MAEAtd,EAAI,OAGD,CACLvO,EAAG,WACDm5Q,GAAiBqnE,EAAqBvvE,GAAGj3G,WAE3CtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgBonE,EAAsBl8U,EAAQk0G,GAC9ClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAIm0J,EAA+B,GAGnC,KAFIn0J,EAAM,KAEJm0J,EAA6B90T,MAEnCtd,EAAI,KACJiyU,EAAqB7nJ,KAAKgoJ,IAE5B55U,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcmqE,EAAqBvvE,GAAGj3G,SAAUr8D,GAChDrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAekqE,EAAqBvvE,GAAGj3G,SAAUr8D,GACjDrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkB+mE,EAAsB9mE,KAM9C,SAAS6jI,GAAqBhvY,GAC5B,IAAIgqJ,EACAilP,EACAlsX,EAWJ,OAVAksX,EAAU,IAAI7P,GAAQ,CACpB97X,MAAO,CACL4iT,QAAS,CACPh+N,QAAS,CAAC6mT,KAEZlsI,QAAS,CACP7iQ,IAAKA,MAIJ,CACLvO,EAAG,WACDu4J,EAAM,GAAQ,OACd4gH,GAAiBqkI,EAAQvsI,GAAGj3G,UAC5B58I,GAAKm7I,EAAK,OAAQ,WAEpB7pG,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GACpB4gK,GAAgBokI,EAASjlP,EAAK,MAC9BjnI,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAIixN,EAAkB,GAItB,KAFIjxN,EAAM,GAIV,KAFOA,EAAM,KAGXixN,EAAgBrsI,QAAU,CACxB5kF,MAAOA,EACPj+K,IAAKA,IAITivY,EAAQ7kN,KAAK8kN,IAEf12Y,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcmnI,EAAQvsI,GAAGj3G,SAAUr8D,GACnCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAeknI,EAAQvsI,GAAGj3G,SAAUr8D,GACpCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GACtBkhH,GAAkB+jI,KAMxB,SAASE,GAAoBnvY,GAC3B,IAAIouJ,EACArrI,EA0BJ,OAzBAqrI,EAAS,IAAIskK,GAAO,CAClBpvT,MAAO,CACLumH,QAEA7pH,EAAI,IACJuM,MAEAvM,EAAI,GAAGovY,wBACPxxW,KAEA59B,EAAI,GAAGqvY,uBACPlsX,UAEAnjB,EAAI,GACJs3T,WAAW,EACX3jJ,MAAO,sBACP7+J,MAAO,WAAW5hB,OAElB8M,EAAI,IAAK,2BAA2B9M,OAEpC8M,EAAI,IAAIw8B,EAAG,QAAQtpC,OAEnB8M,EAAI,IAAIy8B,EAAG,YAGR,CACLhrC,EAAG,WACDm5Q,GAAiBx8G,EAAOs0G,GAAGj3G,WAE7BtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgBz8G,EAAQr4J,EAAQk0G,GAChClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAI00I,EAAiB,GAGrB,GAFI10I,EAAM,KAEN00I,EAAepmT,MAEnBvM,EAAI,GAAGovY,yBAGP,GAFInxN,EAAM,KAEN00I,EAAe/0R,KAEnB59B,EAAI,GAAGqvY,wBAGP,IAFIpxN,EAAM,KAEL00I,EAAexvS,UAEpBnjB,EAAI,IAGJ,EAFIi+K,EAAM,KAEP00I,EAAe79S,MAAQ,WAAW5hB,OAErC8M,EAAI,IAAK,2BAA2B9M,OAEpC8M,EAAI,IAAIw8B,EAAG,QAAQtpC,OAEnB8M,EAAI,IAAIy8B,EAAG,UACX2xH,EAAOg8B,KAAKuoI,IAEdn6T,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAc15G,EAAOs0G,GAAGj3G,SAAUr8D,GAClCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAe35G,EAAOs0G,GAAGj3G,SAAUr8D,GACnCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkB98G,EAAQ+8G,KAMhC,SAASmkI,GAAoBtvY,GAC3B,IAAIuvY,EACAxsX,EA0BJ,OAzBAwsX,EAAkB,IAAIvG,GAAgB,CACpC1lY,MAAO,CACLkE,KAEAxH,EAAI,GACJ61C,OAEA71C,EAAI,IACJshK,QAEAthK,EAAI,IACJwoY,YAEAxoY,EAAI,OAGQm5K,IAAI,cAEpBn5K,EAAI,KACJuvY,EAAgBp2N,IAAI,aAEpBn5K,EAAI,KACJuvY,EAAgBp2N,IAAI,YAEpBn5K,EAAI,KACG,CACLvO,EAAG,WACDm5Q,GAAiB2kI,EAAgB7sI,GAAGj3G,WAEtCtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgB0kI,EAAiBx5Y,EAAQk0G,GACzClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAIuxN,EAA0B,GAG9B,IAFIvxN,EAAM,KAELuxN,EAAwBhoY,KAE7BxH,EAAI,IAGJ,MAFIi+K,EAAM,KAEHuxN,EAAwB35V,OAE/B71C,EAAI,KAGJ,KAFIi+K,EAAM,KAEJuxN,EAAwBluO,QAE9BthK,EAAI,KAGJ,EAFIi+K,EAAM,KAEPuxN,EAAwBhH,YAE3BxoY,EAAI,IACJuvY,EAAgBnlN,KAAKolN,IAEvBh3Y,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcynI,EAAgB7sI,GAAGj3G,SAAUr8D,GAC3CrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAewnI,EAAgB7sI,GAAGj3G,SAAUr8D,GAC5CrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkBqkI,EAAiBpkI,KAMzC,SAASskI,GAAoBzvY,GAC3B,IAAIgqJ,EAEA0lP,EAEJ,MAAO,CACLj+Y,EAAG,WACDu4J,EAAM,GAAQ,OACd0lP,EAAM,GAAQ,KACd7gY,GAAKm7I,EAAK,QAAS,oBACnBn7I,GAAKm7I,EAAK,cAEVhqJ,EAAI,MAENmgD,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GACpBn8E,GAAOk8H,EAAK0lP,GACZA,EAAI/xW,UAEJ39B,EAAI,KAENsB,EAAG,SAAWtB,EAAKi+K,GAGjB,QAFIA,EAAM,KAEDyxN,EAAI/xW,UAEb39B,EAAI,KAIJ,SAFIi+K,EAAM,IAGRpvK,GAAKm7I,EAAK,cAEVhqJ,EAAI,MAGRggD,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,KAM5B,SAAS2lP,GAAmB3vY,GAC1B,IAAI2nT,EACAC,EACAjiF,EACAw8J,EACA/zJ,EACArrN,EACAkpK,EACAkhC,EACAimG,EAEJpzT,EAAI,KAEJA,EAAI,KAAOmvY,GAAoBnvY,GAC3BszT,EAEJtzT,EAAI,KAAOsvY,GAAoBtvY,GAC3Bg8V,EAEJh8V,EAAI,KAAOyvY,GAAoBzvY,GAC/B,MAAO,CACLvO,EAAG,WACDk2T,EAAO,GAAQ,OACfC,EAAO,GAAQ,OACXwL,GAAWA,EAAU3hU,IACzBk0O,EAAKv6F,KACDkoL,GAAWA,EAAU7hU,IACzB28O,EAAKhjG,KACD4wN,GAAWA,EAAUvqW,IACzBod,GAAK+4S,EAAM,QAAS,gBACpB/4S,GAAK84S,EAAM,OAAQ,SAErBxnQ,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQ4xT,EAAM19M,GACrBn8E,GAAO65R,EAAMC,GACTwL,GAAWA,EAAUjzQ,EAAEynQ,EAAM,MACjC95R,GAAO85R,EAAMjiF,GACT2tF,GAAWA,EAAUnzQ,EAAEynQ,EAAM,MAGjC5nT,EAAI,KAAK4nT,GACT95R,GAAO65R,EAAMv5E,GACT4tH,GAAWA,EAAU77S,EAAEwnQ,EAAM,MACjC5kS,GAAU,EAELkpK,IACHkhC,EAAU,CAACw2C,GAAiB6/B,GAAW9uS,KAAK,KAAMkzT,IAAQryQ,GAAOqyQ,EAAM,UAEvE5nT,EAAI,MAAOu1C,GAAOqyQ,EAAM,SAAS,WAC3BxlD,GAEJpiQ,EAAI,IAEJA,EAAI,OAEJA,EAAI,IAEJA,EAAI,KAAK/M,MAAMlC,KAAMiB,aACpB,CACDqkD,SAAS,IACPd,GAAOqyQ,EAAM,mBAEjB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,oBAEvB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,qBAEvB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,iBAEvB5nT,EAAI,KAAM2jQ,GAAiBw+H,EAAsBviD,GAAalrV,KAAK,KAAMkzT,EAAM,CAC7EniR,MAAM,EACNq6S,SAAS,EACTM,MAEApgV,EAAI,GACJkgV,uBAAwB0vD,GACxBpvD,iBAEAxgV,EAAI,QACDu1C,GAAOqyQ,EAAM,cAElB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,gBAEvB5nT,EAAI,KAAMu1C,GAAOqyQ,EAAM,YAEvB5nT,EAAI,KAAM2jQ,GAAiBylI,GAAW10Y,KAAK,KAAMkzT,KACjD37H,GAAU,IAGd3qL,EAAG,SAAWmkT,EAASxnI,IACrBj+K,EAAMylT,GAIF,KAEJzlT,EAAI,IACEozT,GACFA,EAAU9xT,EAAEtB,EAAKi+K,GAIjB,QAFIA,EAAM,IAGR6pF,GAAcsrD,EAAW,MAG3BA,EAAY+7E,GAAoBnvY,IACtBvO,IACVq2Q,GAAcsrD,EAAW,GACzBA,EAAUjzQ,EAAEynQ,EAAMjiF,IAEXytF,IACTxrD,KACAG,GAAeqrD,EAAW,EAAG,GAAG,WAC9BA,EAAY,QAEdvrD,MAKF7nQ,EAAI,IACEszT,GACFA,EAAUhyT,EAAEtB,EAAKi+K,GAIjB,QAFIA,EAAM,IAGR6pF,GAAcwrD,EAAW,MAG3BA,EAAYg8E,GAAoBtvY,IACtBvO,IACVq2Q,GAAcwrD,EAAW,GACzBA,EAAUnzQ,EAAEynQ,EAAM,OAEX0L,IACT1rD,KACAG,GAAeurD,EAAW,EAAG,GAAG,WAC9BA,EAAY,QAEdzrD,MAGEs6H,GAAuB//H,GAAY+/H,EAAoBjhT,SAE3D,SAFsE+8F,EAAM,IAElEkkN,EAAoBjhT,OAAOxsF,KAAK,KAAM,CAC9C+wC,MAAM,EACNq6S,SAAS,EACTM,MAEApgV,EAAI,GACJkgV,uBAAwB0vD,GACxBpvD,iBAEAxgV,EAAI,OAKNA,EAAI,IACEg8V,EACFA,EAAU16V,EAAEtB,EAAKi+K,KAEjB+9K,EAAYyzC,GAAoBzvY,IACtBvO,IACVuqW,EAAU77S,EAAEwnQ,EAAM,OAEXq0C,IACTA,EAAUh8S,EAAE,GACZg8S,EAAY,OAGhBxjW,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcsrD,GACdtrD,GAAcwrD,GACdvwS,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAeqrD,GACfrrD,GAAeurD,GACfvwS,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAOg2J,GAClByL,GAAWA,EAAUpzQ,IACrBszQ,GAAWA,EAAUtzQ,IAGzBhgD,EAAI,KAAK,MACLg8V,GAAWA,EAAUh8S,IACzBisI,GAAU,EACVk2E,GAAQh1C,KAMd,SAAS0iL,GAAkB7vY,GA+BzB,IA9BA,IAAIs9V,EACAj+V,EACAg/V,EACAt7U,EACAw6U,EAAwB,CAAC,CAC3B5pL,MAAO,sBACN,CACD0yI,KAEArmT,EAAI,IAGNA,EAAI,KACAw9V,EAAgB,CAClBt3C,QAAS,CACPh+N,QAAS,CAAC4nT,GAAyB,SAAUC,GAE3C,MAAO,CACL,IAFQA,EAAQ7/L,MAIjB,SAAU8/L,GAEX,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EADhBA,EAAQ9/L,IACiB,IAAM,MAG7C2yD,QAAS,CACP7iQ,IAAKA,IAIAxH,EAAI,EAAGA,EAAI+kW,EAAsBpqW,OAAQqF,GAAK,EACrDglW,EAAgB,GAAOA,EAAeD,EAAsB/kW,KAG9D8kW,EAAU,IAAIz2C,GAAQ,CACpBvjT,MAAOk6V,KAEDrkL,IAAI,SAEZn5K,EAAI,MA6BJ,IA5BA,IAAIs+V,EAA0B,CAAC,CAC7B3qL,MAAO,wBACN,CACD41I,WAAY,uBACX,CACDE,OAEAzpT,EAAI,KAGNA,EAAI,KACAu+V,EAAkB,CACpBr4C,QAAS,CACPh+N,QAAS,CAAC+nT,GAAuB,SAAUC,GAEzC,MAAO,CACL,IAFUA,EAAQ/sW,QAInB,SAAUgtW,GAEX,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EADdA,EAAQhtW,MACiB,IAAM,MAG/C0/N,QAAS,CACP7iQ,IAAKA,IAIAowY,EAAO,EAAGA,EAAO9xC,EAAwBnrW,OAAQi9Y,GAAQ,EAChE7xC,EAAkB,GAAOA,EAAiBD,EAAwB8xC,IAMpE,OAHA/xC,EAAY,IAAIx0C,GAAU,CACxBvmT,MAAOi7V,IAEF,CACL9sW,EAAG,WACDm5Q,GAAiB0yF,EAAQ56F,GAAGj3G,UAC5BpsJ,EAAI+rI,KACJw/H,GAAiByzF,EAAU37F,GAAGj3G,WAEhCtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgByyF,EAASvnW,EAAQk0G,GACjC+nD,GAAOj8J,EAAQsJ,EAAG4qG,GAClB4gK,GAAgBwzF,EAAWtoW,EAAQk0G,GACnClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAI2/K,EAEJ,OAFsB3/K,EAAM,GAEnBosF,GAAkBkzF,EAAuB,CAACA,EAAsB,GAEzE,IAF6Et/K,EAAM,IAE5E,CACLooI,KAEArmT,EAAI,IAGN,OAFGi+K,EAAM,IAECwsF,GAEVzqQ,EAAI,OAAS,GAIb,KAFIi+K,EAAM,KAGR2/K,EAAgB/6F,QAAU,CACxB5kF,MAAOA,EACPj+K,IAAKA,IAITs9V,EAAQlzK,KAAKwzK,GACb,IAAIe,EAEJ,OAFwB1gL,EAAM,GAErBosF,GAAkBi0F,EAAyB,CAACA,EAAwB,GAAIA,EAAwB,GAEzG,OAF6GrgL,EAAM,IAEzG,CACRwrI,OAEAzpT,EAAI,KAGN,OAFGi+K,EAAM,IAECwsF,GAEVzqQ,EAAI,OAAS,GAIb,WAFIi+K,EAAM,GAIV,KAFaA,EAAM,KAGjB0gL,EAAkB97F,QAAU,CAC1B5kF,MAAOA,EACPj+K,IAAKA,IAITq+V,EAAUj0K,KAAKu0K,IAEjBnmW,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcw1F,EAAQ56F,GAAGj3G,SAAUr8D,GACnC04K,GAAcu2F,EAAU37F,GAAGj3G,SAAUr8D,GACrCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAeu1F,EAAQ56F,GAAGj3G,SAAUr8D,GACpC24K,GAAes2F,EAAU37F,GAAGj3G,SAAUr8D,GACtCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkBoyF,EAASnyF,GACvBA,GAAWx5G,GAAOtyJ,GACtB6rQ,GAAkBmzF,EAAWlzF,KAMnC,SAAS2kI,GAAwB9vY,GAC/B,IAAIgzT,EAIA3zT,EAHA+7T,EAEJp7T,EAAI,KAAKuM,MAAQ,GAEjB,MAAO,CACL9a,EAAG,WACDuhU,EAAO,GAAQ,QACf3zT,EAAI,GAAK+7T,IAEXj7Q,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi9T,EAAM/oN,GACrBn8E,GAAOklS,EAAM3zT,IAEfiC,EAAG,SAAWtB,EAAKi+K,GAGjB,IAFIA,EAAM,IAEHm9I,KAAaA,EAEpBp7T,EAAI,KAAKuM,MAAQ,KAAKq4P,GAASvlQ,EAAG+7T,IAEpCp7Q,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAOqhK,KAM5B,SAASq9E,GAAoBrwY,GAC3B,IAAIqsY,EACAtpX,EAuCJ,OAtCAspX,EAAa,IAAIlG,GAAW,CAC1B7iY,MAAO,CACLujV,WAEA7mV,EAAI,IAEJA,EAAI,IACJ+a,KAAMu1X,GACN1wY,IAEAI,EAAI,IACJmsB,IAAKokX,GACLxlE,SAEA/qU,EAAI,IAAI,GACRirU,SAEAjrU,EAAI,IAAI,GACRtO,MAEAsO,EAAI,IACJ8iY,WAEA9iY,EAAI,GAAG8iY,WACPO,WAAY,GAAGnwY,OAAOoM,KAAKi/B,MAEjB,IAAVv+B,EAAI,KAAY,KAChByjY,aAEAzjY,EAAI,IACJ2jY,YAEA3jY,EAAI,IACJ6jY,WAEA7jY,EAAI,OAGD,CACLvO,EAAG,WACDm5Q,GAAiByhI,EAAW3pI,GAAGj3G,WAEjCtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgBwhI,EAAYt2Y,EAAQk0G,GACpClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAIsuN,EAAqB,GAGzB,UAFItuN,EAAM,KAECsuN,EAAmB1lD,WAE9B7mV,EAAI,IAEJA,EAAI,KAGJ,SAFIi+K,EAAM,KAEAsuN,EAAmB3sY,IAE7BI,EAAI,KAGJ,UAFIi+K,EAAM,KAECsuN,EAAmBxhE,SAE9B/qU,EAAI,IAAI,IAGR,UAFIi+K,EAAM,KAECsuN,EAAmBthE,SAE9BjrU,EAAI,IAAI,IAGR,WAFIi+K,EAAM,KAEEsuN,EAAmB76Y,MAE/BsO,EAAI,KAGJ,GAFIi+K,EAAM,KAENsuN,EAAmBzJ,WAEvB9iY,EAAI,GAAG8iY,YAGP,WAFI7kN,EAAM,KAEEsuN,EAAmBlJ,WAAa,GAAGnwY,OAAOoM,KAAKi/B,MAEjD,IAAVv+B,EAAI,KAAY,MAChBqsY,EAAWjiN,KAAKmiN,IAElB/zY,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcukI,EAAW3pI,GAAGj3G,SAAUr8D,GACtCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAeskI,EAAW3pI,GAAGj3G,SAAUr8D,GACvCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkBmhI,EAAYlhI,KAMpC,SAASqlI,GAAoBxwY,GAC3B,IAAIywY,EACA1tX,EAqCJ,OApCA0tX,EAAe,IAAItD,GAAa,CAC9B7pY,MAAO,CACLujV,WAEA7mV,EAAI,IAEJA,EAAI,IACJw5O,SAEAx5O,EAAI,IACJ8iY,WAEA9iY,EAAI,GAAG8iY,WACP/3D,SAEA/qU,EAAI,IAAI,GACRirU,SAEAjrU,EAAI,IAAI,GACRgtY,aAEAhtY,EAAI,GACJktY,YAEAltY,EAAI,GACJyjY,aAEAzjY,EAAI,IACJ2jY,YAEA3jY,EAAI,IACJ6jY,WAEA7jY,EAAI,OAGD,CACLvO,EAAG,WACDm5Q,GAAiB6lI,EAAa/tI,GAAGj3G,WAEnCtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgB4lI,EAAc16Y,EAAQk0G,GACtClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAIyyN,EAAuB,GAG3B,UAFIzyN,EAAM,KAECyyN,EAAqB7pD,WAEhC7mV,EAAI,IAEJA,EAAI,KAGJ,MAFIi+K,EAAM,KAEHyyN,EAAqBl3J,SAE5Bx5O,EAAI,KAGJ,GAFIi+K,EAAM,KAENyyN,EAAqB5N,WAEzB9iY,EAAI,GAAG8iY,YAGP,UAFI7kN,EAAM,KAECyyN,EAAqB3lE,SAEhC/qU,EAAI,IAAI,IAGR,UAFIi+K,EAAM,KAECyyN,EAAqBzlE,SAEhCjrU,EAAI,IAAI,IAGR,EAFIi+K,EAAM,KAEPyyN,EAAqB1D,aAExBhtY,EAAI,IAGJ,EAFIi+K,EAAM,KAEPyyN,EAAqBxD,YAExBltY,EAAI,IACJywY,EAAarmN,KAAKsmN,IAEpBl4Y,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAc2oI,EAAa/tI,GAAGj3G,SAAUr8D,GACxCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAe0oI,EAAa/tI,GAAGj3G,SAAUr8D,GACzCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkBulI,EAActlI,KAMtC,SAAS8kI,GAAsBjwY,GAC7B,IAAI4oT,EACAhD,EACAD,EACA5iS,EACA8lS,EAAoB,CAAC2nF,GAAqBH,IAC1CvnF,EAAY,GAEhB,SAASC,EAAkB/oT,EAAKi+K,GAC9B,OAEAj+K,EAAI,OAEJA,EAAI,IAAM,YAAoB,EAG9BA,EAAI,OAEJA,EAAI,IAAM,QAAgB,GAClB,EAOV,QAJM4oT,EAA2BG,EAAkB/oT,MACjD4lT,EAAWkD,EAAUF,GAA4BC,EAAkBD,GAA0B5oT,IAGxF,CACLvO,EAAG,WACGm0T,GAAUA,EAASn0T,IACvBk0T,EAAkBxzN,MAEpBhyC,EAAG,SAAWpqD,EAAQk0G,IACf2+M,GACHE,EAAUF,GAA0BzoQ,EAAEpqD,EAAQk0G,GAGhD+nD,GAAOj8J,EAAQ4vT,EAAiB17M,GAChClnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAIgrI,EAAuBL,GAC3BA,EAA2BG,EAAkB/oT,MAEZipT,GAC1BL,GACHE,EAAUF,GAA0BtnT,EAAEtB,EAAKi+K,IAGzC2nI,IACFh+C,KACAG,GAAe+gD,EAAUG,GAAuB,EAAG,GAAG,WACpDH,EAAUG,GAAwB,QAEpCphD,OAGG+gD,IACHhD,EAAWkD,EAAUF,IAMnBhD,EAAStkT,EAAEtB,EAAKi+K,IAHhB2nI,EAAWkD,EAAUF,GAA4BC,EAAkBD,GAA0B5oT,IACpFvO,IAKXq2Q,GAAc89C,EAAU,GACxBA,EAASzlQ,EAAEwlQ,EAAgB71S,WAAY61S,IAEvCC,EAAW,OAIjBptT,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAc89C,GACd7iS,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAe69C,GACf7iS,GAAU,GAEZi9B,EAAG,SAAWmrN,IACPy9C,GACHE,EAAUF,GAA0B5oQ,EAAEmrN,GAGpCA,GAAWx5G,GAAOg0J,KAM5B,SAASgrF,GAAqB3wY,GAC5B,IAAIgqJ,EACAjnI,EACA6iS,EAEJ5lT,EAAI,KAAO6vY,GAAkB7vY,GAC7B,MAAO,CACLvO,EAAG,WACDu4J,EAAM,GAAQ,OACV47J,GAAUA,EAASn0T,IACvBod,GAAKm7I,EAAK,OAAQ,UAClB86G,GAAU96G,EAAK,YAEfhqJ,EAAI,MAENmgD,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQi0J,EAAK//C,GAChB27M,GAAUA,EAASzlQ,EAAE6pG,EAAK,MAC9BjnI,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GAGjBj+K,EAAI,IACE4lT,GACFA,EAAStkT,EAAEtB,EAAKi+K,GAIhB,QAFIA,EAAM,IAGR6pF,GAAc89C,EAAU,MAG1BA,EAAWiqF,GAAkB7vY,IACpBvO,IACTq2Q,GAAc89C,EAAU,GACxBA,EAASzlQ,EAAE6pG,EAAK,OAET47J,IACTh+C,KACAG,GAAe69C,EAAU,EAAG,GAAG,WAC7BA,EAAW,QAEb/9C,MAKF,OAFI5pF,EAAM,IAGR6mF,GAAU96G,EAAK,YAEfhqJ,EAAI,MAGRxH,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAc89C,GACd7iS,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAe69C,GACf7iS,GAAU,GAEZi9B,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAO3H,GAClB47J,GAAUA,EAAS5lQ,MAK7B,SAAS4wV,GAAkB5wY,GACzB,IAAIqsL,EACAwkN,EACA9tX,EAEJ,SAAS+tX,EAAkBp/Y,GAEzBsO,EAAI,KAAKtO,GAGX,IAAIq/Y,EAAa,CACftP,UAEAzhY,EAAI,IACJkmT,QAAS,CACPrrM,OAAQ,CAAC81R,IACThnY,KAAM,CAACgmY,IACPpzX,OAAQ,CAACyyX,KAEXnsI,QAAS,CACP7iQ,IAAKA,IAqBT,YAfY,IAAZA,EAAI,MACF+wY,EAAW1tY,KAEXrD,EAAI,KAGNqsL,EAAO,IAAIw1M,GAAK,CACdv+X,MAAOytY,IAETlqI,GAAkB/zQ,MAAK,WACrB,OAAO,GAAKu5L,EAAM,OAAQykN,MAE5BzkN,EAAKlT,IAAI,UAETn5K,EAAI,MACG,CACLvO,EAAG,WACDm5Q,GAAiBv+E,EAAKq2E,GAAGj3G,WAE3BtrG,EAAG,SAAWpqD,EAAQk0G,GACpB4gK,GAAgBx+E,EAAMt2L,EAAQk0G,GAC9BlnF,GAAU,GAEZzhB,EAAG,SAAWtB,EAAKi+K,GACjB,IAAI+yN,EAAe,GAGnB,QAFI/yN,EAAM,KAED+yN,EAAavP,UAEtBzhY,EAAI,KAIJ,WAFIi+K,EAAM,GAIV,EAFaA,EAAM,GAInB,KAFIA,EAAM,KAGR+yN,EAAanuI,QAAU,CACrB5kF,MAAOA,EACPj+K,IAAKA,KAIJ6wY,GAEL,MAFsB5yN,EAAM,KAG1B4yN,GAAgB,EAChBG,EAAa3tY,KAEbrD,EAAI,IACJqnQ,IAAmB,WACjB,OAAOwpI,GAAgB,MAI3BxkN,EAAKjC,KAAK4mN,IAEZx4Y,EAAG,SAAW42F,GACRrsE,IACJ+kP,GAAcz7E,EAAKq2E,GAAGj3G,SAAUr8D,GAChCrsE,GAAU,IAEZzP,EAAG,SAAW87E,GACZ24K,GAAe17E,EAAKq2E,GAAGj3G,SAAUr8D,GACjCrsE,GAAU,GAEZi9B,EAAG,SAAWmrN,GACZD,GAAkB7+E,EAAM8+E,KAK9B,IAAIolI,GAAoB,EACpBD,GAAqB,EAErBV,GAA0B,SAAiC53Y,EAAGwL,GAChE,OAAOxL,EAAEjC,SAAWyN,GAGtB,SAASytY,GAAW7qG,EAAQx6B,EAASy6B,GACnC,IAAI6qG,EACAC,EACAC,EACAjtB,EACAD,EACAmtB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAz2B,EACA02B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAzwC,EACAz7C,EACAoD,EACA+oF,EACAC,EAEAC,EAQAxnF,EACAs7C,EACAmsC,EACAhqC,EACApB,EACAkB,EACA7W,EACAoX,EACA4pC,EACA/pC,EACA+X,EACA1X,EACA2pC,EACA9pC,EACApX,EACAF,EACAgyB,EACAqvB,EACAttC,EACAG,EACAkF,GACAkoC,GACAttD,GACAiM,GACAoX,GACAkqC,GACAC,GACAxpC,GACAypC,GACAC,GACA9pC,GACA1B,GACAyrC,GACAC,GACA5tC,GACAC,GACAe,GACA6sC,GACAC,GACAC,GACAC,GACAC,GACAC,GAjDAC,GAAyB,GACzBC,GAAuB,WACzB,OAAOD,KAA0BA,GAAyBpkR,GAAUo3L,IAAU,SAAUnD,GACtF,OAAOpd,EAAa,GAAIqsG,EAAYjvF,MAClCmD,IA8CNxgB,EAAO1jC,GAAGC,WAAW7vQ,MAAK,WACxB,OAAO8gZ,QAET,IACIhtF,GAAWh7C,EAAQg7C,SACvBitF,KACA,IAAItnI,GAASX,EAAQW,OACjBunI,GAAwBloI,EAAQmoI,8BAChCA,QAA0D,IAA1BD,GAAmC,SAAWA,GAC9EE,GAAwBpoI,EAAQqoI,mCAChCA,QAA+D,IAA1BD,GAAmC,SAAUr8C,EAAau8C,GACjG,IAAIC,EAA4B,UAAfx8C,EACjB,MAAO,CACLjpU,KAAMylX,EAAa,EAAI,EACvBhsW,KAAMgsW,EAAa,EAAI,EACvBvwY,QAA+B,IAAtBswY,IAETF,GACAI,GAAwBxoI,EAAQyoI,oCAChCA,QAAgE,IAA1BD,QAAmC5lZ,EAAY4lZ,GACrFE,GAAwB1oI,EAAQ2oI,oCAChCA,QAAgE,IAA1BD,IAA0CA,GAChFE,GAAwB5oI,EAAQ6oI,sCAChCA,QAAkE,IAA1BD,GAAmC,QAAUA,GACrFE,GAAyB9oI,EAAQ+oI,wBACjCA,QAAqD,IAA3BD,IAA2CA,GACrEE,GAAyBhpI,EAAQipI,eACjCA,QAA4C,IAA3BD,IAA2CA,GAC5DE,GAAyBlpI,EAAQmpI,oBACjCA,QAAiD,IAA3BD,IAA2CA,GACjEE,GAAyBppI,EAAQqpI,uBACjCA,QAAoD,IAA3BD,IAA2CA,GACpEE,GAAwBtpI,EAAQupI,yBAChCA,QAAqD,IAA1BD,IAA0CA,GACrEE,GAAwBxpI,EAAQypI,wBAChCA,QAAoD,IAA1BD,IAA2CA,GACrEE,GAAyB1pI,EAAQ2pI,mCACjCA,QAAgE,IAA3BD,IAA2CA,GAChFE,GAAwB5pI,EAAQ6pI,yCAChCA,QAAqE,IAA1BD,IAA0CA,GACrFE,GAAwB9pI,EAAQ+pI,+BAChCA,QAA2D,IAA1BD,IAA0CA,GAC3EE,GAAwBhqI,EAAQiqI,2BAChCA,QAAuD,IAA1BD,IAA0CA,GACvEE,GAAyBlqI,EAAQmqI,4BACjCA,QAAyD,IAA3BD,IAA4CA,GAC1EE,GAAyBpqI,EAAQqqI,+BACjCA,QAA4D,IAA3BD,IAA2CA,GAC5EE,GAAyBtqI,EAAQuqI,6BACjCA,QAA0D,IAA3BD,IAA4CA,GAC3EE,GAAwBxqI,EAAQyqI,wBAChCA,QAAoD,IAA1BD,QAAmC5nZ,EAAY4nZ,GACzEE,GAAwB1qI,EAAQ2qI,uBAChCA,QAAmD,IAA1BD,IAA0CA,GACnEE,GAAwB5qI,EAAQ6qI,iCAChCA,QAA6D,IAA1BD,IAA0CA,GAC7EE,GAAyB9qI,EAAQ+qI,uBACjCA,QAAoD,IAA3BD,IAA4CA,GACrEE,GAAyBhrI,EAAQirI,gCACjCA,QAA6D,IAA3BD,IAA4CA,GAC9EE,GAAyBlrI,EAAQmrI,oBACjCA,QAAiD,IAA3BD,GAAoCllK,GAAcklK,GACxEE,GAAyBprI,EAAQqrI,4BACjCA,QAAyD,IAA3BD,QAAoCxoZ,EAAYwoZ,GAC9EE,GAAwBtrI,EAAQurI,wBAChCA,QAAoD,IAA1BD,GAAmC,WAAaA,GAC1EE,GAAwBxrI,EAAQyrI,oBAChCA,QAAgD,IAA1BD,GAAmC,OAASA,GAClEE,GAAwB1rI,EAAQ2rI,qBAChCA,QAAiD,IAA1BD,GAAmC,QAAUA,GACpEE,GAAwB5rI,EAAQ6rI,kBAChCA,QAA8C,IAA1BD,GAAmC1lK,GAAW0lK,GAClEE,GAAwB9rI,EAAQ+rI,gBAChCA,QAA4C,IAA1BD,GAAmC,IAAOA,GAC5DE,GAAmBhsI,EAAQ95K,OAC3BA,QAA8B,IAArB8lT,GAA8B,GAAKA,GAC5CC,GAAwBjsI,EAAQksI,2BAChCA,QAAuD,IAA1BD,GAAmC,SAAU1hV,GAC5E,IAAIvsC,EAAcusC,EAAOvsC,YAGrBmuX,EAAU,GADCnuX,EAAgC,CAACA,EAAc,EAAI,EAAI,GAAqB,IAAhBA,EAAoB,IAAO,GAAKA,EAAc,EAAI,EAAI,IAApG,CAAC,GAAK,GAAK,IACF,GAKtC,MAAO,CACLzrB,EALM45Y,EAAQ,GAMd35Y,EALM25Y,EAAQ,GAMdtmZ,EALMsmZ,EAAQ,KAOdF,GACAG,GAAyBpsI,EAAQqsI,2BACjCA,QAAwD,IAA3BD,GAAoC,SAAU7hV,GAC7E,IAGI+hV,EAAU,GAHO/hV,EAAOgiV,eAEG,CAAC,GAAK,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,GAAK,GACtB,GAMtC,MAAO,CACLh6Y,EANM+5Y,EAAQ,GAOd95Y,EANM85Y,EAAQ,GAOdzmZ,EANMymZ,EAAQ,GAOdl4V,EANMk4V,EAAQ,KAQdF,GAEA9wG,GAAa,GAAW,cAC5BzkC,GAAoB2jC,EAAQc,IAAY,SAAUx1S,GAChD,OAAO20S,EAAa,IAAK6kB,EAAcx5T,MAEzC,IAAIg8W,GAAuB,GAAW,wBACtCjrG,GAAoB2jC,EAAQsnE,IAAsB,SAAUh8W,GAC1D,OAAO20S,EAAa,GAAIitG,GAAwB5hZ,MAElD,IAAIqjX,GAAgB,GAAW,iBAC/BtyG,GAAoB2jC,EAAQ2uE,IAAe,SAAUrjX,GACnD,OAAO20S,EAAa,IAAKogE,GAAiB/0W,MAE5C,IAAIupX,GAAgB,GAAW,iBAC/Bx4G,GAAoB2jC,EAAQ60E,IAAe,SAAUvpX,GACnD,OAAO20S,EAAa,IAAK2iE,EAAiBt3W,MAE5C,IAAIgsX,GAA2B,GAAW,4BAC1Cj7G,GAAoB2jC,EAAQs3E,IAA0B,SAAUhsX,GAC9D,OAAO20S,EAAa,IAAK8sG,GAA4BzhZ,MAEvD,IAAI61V,GAA0B,GAAW,sBACzC9kF,GAAoB2jC,EAAQmhD,IAAyB,SAAU71V,GAC7D,OAAO20S,EAAa,IAAKo/C,GAA2B/zV,MAGtD,IAAIimW,GAAc,OAEdygD,GAA6B9hS,KACjCmsJ,GAAoB2jC,EAAQgyG,IAA4B,SAAU1mZ,GAChE,OAAO20S,EAAa,IAAKgtG,GAA8B3hZ,MAGzD,IAwNI2mZ,GAxNAC,GAAe,WACjB,YAAiC9pZ,IAA1Bi7W,IAGL8uC,GAAkB,SAAyB3uX,GAC7C,OAAO,EAAIA,GAGT4uX,GAAwB,SAA+B/hZ,GAEpDggZ,IAAoCE,KAA2BlgZ,IAEpE4vS,EAAa,GAAIswG,GAAyBlgZ,GAErCgzW,IAAmD,IAA1BA,IACzBgvC,MACL/0I,GAAgBmc,GAAsB4pF,GAAwB8uC,GAAgB9uC,IAAwBA,MAGpGgvC,GAAiC,WAEnC,GAA8B,IAA1BhvC,KAAgCynC,EAA4B,OAAO,EAEvE,IAAIwH,EAA8BH,GAAgB9uC,IAElD,QAAK3wC,GAAeu6E,IAA6B3pX,MAAK,SAAUivX,GAI9D,OAHc,GAAeA,EAAS,GACZ,KAEHD,MAQvBE,GAAgB,SAAuBjhC,EAAeh+H,EAAWC,GACnE,OAAO7H,GAAkB6H,GAAiBD,EAAU95O,QAAUP,KAAKi/B,MAAMo5U,EAAc73W,SAAW65O,EAAU75O,SAAWR,KAAKi/B,MAAMo5U,EAAc93W,OAAS85O,EAAU95O,QAAUP,KAAKi/B,MAAMo5U,EAAc93W,QAAU85O,EAAU75O,SAAWR,KAAKi/B,MAAMo5U,EAAc73W,SAmB5P+4Y,GAAgB,SAAuBnnZ,GACzC,GAA8C,UAA1C+iZ,KAND6D,MACyC,WAA1C7D,IAAsDgE,OAZrC,SAAwB9gC,EAAeh+H,EAAWC,GACrE,IAAIk/J,EAAmBxjK,GAAUF,GAAWR,GAAU+E,GAAYC,IAAgB,SAAUhhP,GAC1F,OAAO0G,KAAKmS,IAAInS,KAAKi/B,MAAM3lC,OAEzBkhP,EAAc3E,GAAW2jK,GACzBnlI,EAAah9B,GAAWghI,GAC5B,OAAOpkI,GAAYuG,EAAa65B,GAM6DD,CAAem1F,EAAgBrD,EAAYG,IAAmBizC,GAAc/vC,EAAgBrD,EAAYG,GAKvG,CAC5FjiG,GAAgB9pB,GAAe+rH,GAAkBj0W,EAAOi0W,GACxD,IAAIozC,EAAYhnK,GAAkB4zH,GAC9BzkT,EAAI63V,EAAYvzC,EAAW1lW,OAAS0lW,EAAW3lW,MAE/Cm5Y,EAAMD,EAAYvzC,EAAW3lW,MAAQ2lW,EAAW1lW,OAEpD4jQ,GAAgBi0G,GAAe9O,EAAiBpyH,GAAW,EAAG,EAAGv1L,EAAG83V,GAAMnwC,GACrEyvC,MAAgB50I,GAAgBmc,GAAsB4pF,GAAwB93H,GAAezwL,EAAG83V,GAAMvvC,SAE3G/lG,GAAgB9pB,GAAe+rH,GAAkBj0W,EAAOi0W,IAKxDszC,GAAW1sI,GACXx0N,GAAUkhW,GAASlhW,QACnBo1H,GAAM8rO,GAAS9rO,IACfinL,GAAgB6kD,GAAS7kD,cACzBymB,GAAwBo+B,GAASp+B,sBACjCD,GAAsBq+B,GAASr+B,oBAC/BvmB,GAAW4kD,GAAS5kD,SACpBC,GAAY2kD,GAAS3kD,UAErBqoB,IADWs8B,GAASx+B,SACHw+B,GAASt8B,gBAC1BxC,GAAgB8+B,GAAS9+B,cACzBnoB,GAAWinD,GAASjnD,SACpBE,GAAY+mD,GAAS/mD,UACrB8iB,GAAiBikC,GAASjkC,eAC1B4S,GAAuBqxB,GAASrxB,qBAChCnH,GAAqBw4B,GAASx4B,mBAC9B4G,GAAY4xB,GAAS5xB,UACrBjE,GAAwB61B,GAAS71B,sBACjC/B,GAAsB43B,GAAS53B,oBAC/BnJ,GAAa+gC,GAAS/gC,WACtBC,GAAa8gC,GAAS9gC,WACtBv+H,GAAgBq/J,GAASr/J,cACzBq8B,GAAqBgjI,GAAShjI,mBAC9BgiG,GAAkBghC,GAAShhC,gBAC3BtjB,GAAqBskD,GAAStkD,mBAC9B2mB,GAA6B29B,GAAS39B,2BACtCC,GAA2B09B,GAAS19B,yBACpCgD,GAAiC06B,GAAS16B,+BAC1CpD,GAAsB89B,GAAS99B,oBAC/BpD,GAAsBkhC,GAASlhC,oBAC/BJ,GAAgBshC,GAASthC,cACzBv3F,GAAmB64H,GAAS74H,iBAC5Bw3F,GAAmBqhC,GAASrhC,iBAC5BC,GAAiBohC,GAASphC,eAC1Bh4F,GAAuBo5H,GAASp5H,qBAChCC,GAAwBm5H,GAASn5H,sBACjCnmC,GAAYs/J,GAASt/J,UACrB2mI,GAAc24B,GAAS34B,YACvB0B,GAAqBi3B,GAASj3B,mBAC9BxF,GAAcy8B,GAASz8B,YACvBb,GAAgBs9B,GAASt9B,cAyF7B,SAASu9B,GAAwBpnT,EAAQloE,GACvC,OAAO,GAAWkoE,EAAOqnT,sBAAwBjgF,GAASpnO,EAAOqnT,qBAAsBrnT,EAAQloE,GAAeutQ,GAAcrlM,EAAOqnT,qBAAsBrB,GAA2B,CAClLluX,YAAaA,IACX,IAAK,KAGX,SAASwvX,GAAiBtnT,EAAQqmT,GAChC,OAAO,GAAWrmT,EAAOunT,sBAAwBngF,GAASpnO,EAAOunT,qBAAsBvnT,EAAQqmT,GAAkBhhH,GAAcrlM,EAAOunT,qBAAsBpB,GAA2B,CACrLE,eAAgBA,IACd,IAAK,KAjGX11I,GAAoB2jC,EAAQj5H,IAAK,SAAUz7K,GACzC,OAAO20S,EAAa,IAAKmgE,EAAO90W,MAElC+wQ,GAAoB2jC,EAAQguD,IAAe,SAAU1iW,GACnD,OAAO20S,EAAa,IAAKurD,EAAiBlgW,MAE5C+wQ,GAAoB2jC,EAAQw0E,IAAqB,SAAUlpX,GACzD,OAAO20S,EAAa,IAAKo9E,EAAuB/xX,MAElD+wQ,GAAoB2jC,EAAQiuD,IAAU,SAAU3iW,GAC9C,OAAO20S,EAAa,GAAIqrD,GAAYhgW,MAEtC+wQ,GAAoB2jC,EAAQkuD,IAAW,SAAU5iW,GAC/C,OAAO20S,EAAa,IAAKorD,EAAa//V,MAExC+wQ,GAAoB2jC,EAAQu2E,IAAgB,SAAUjrX,GACpD,OAAO20S,EAAa,GAAIwsG,EAAkBnhZ,MAE5C+wQ,GAAoB2jC,EAAQq6E,IAAoB,SAAU/uX,GACxD,OAAO20S,EAAa,IAAK6iE,EAAsBx3W,MAEjD+wQ,GAAoB2jC,EAAQihF,IAAW,SAAU31X,GAC/C,OAAO20S,EAAa,IAAKshE,GAAaj2W,MAExC+wQ,GAAoB2jC,EAAQg9E,IAAuB,SAAU1xX,GAC3D,OAAO20S,EAAa,IAAKkhE,EAAyB71W,MAEpD+wQ,GAAoB2jC,EAAQ8xE,IAAY,SAAUxmX,GAChD,OAAO20S,EAAa,IAAKq/D,GAAch0W,MAEzC+wQ,GAAoB2jC,EAAQ+xE,IAAY,SAAUzmX,GAChD,OAAO20S,EAAa,IAAKo/D,GAAc/zW,MAEzC+wQ,GAAoB2jC,EAAQxsD,IAAe,SAAUloP,GACnD,OAAO20S,EAAa,GAAIs/D,EAAiBj0W,MAE3C+wQ,GAAoB2jC,EAAQnwB,IAAoB,SAAUvkR,GACxD,OAAO20S,EAAa,GAAIktG,GAAsB7hZ,MAEhD+wQ,GAAoB2jC,EAAQ6xE,IAAiB,SAAUvmX,GACrD,OAAO20S,EAAa,IAAKusG,EAAmBlhZ,MAE9C+wQ,GAAoB2jC,EAAQuuD,IAAoB,SAAUjjW,GACxD,OAAO20S,EAAa,IAAKsrD,EAAsBjgW,MAEjD+wQ,GAAoB2jC,EAAQk1E,IAA4B,SAAU5pX,GAChE,OAAO20S,EAAa,IAAK0iE,EAA8Br3W,MAEzD+wQ,GAAoB2jC,EAAQm1E,IAA0B,SAAU7pX,GAC9D,OAAO20S,EAAa,IAAKgjE,GAA4B33W,MAEvD+wQ,GAAoB2jC,EAAQm4E,IAAgC,SAAU7sX,GACpE,OAAO20S,EAAa,IAAKoiE,EAAkC/2W,MAE7D+wQ,GAAoB2jC,EAAQ+0E,IAAqB,SAAUzpX,GACzD,OAAO20S,EAAa,IAAKyiE,GAAuBp3W,MAElD+wQ,GAAoB2jC,EAAQ2xE,IAAqB,SAAUrmX,GACzD,OAAO20S,EAAa,IAAK4sG,GAAuBvhZ,MAElD+wQ,GAAoB2jC,EAAQuxE,IAAe,SAAUjmX,GACnD,OAAO20S,EAAa,IAAKwiE,EAAiBn3W,MAE5C+wQ,GAAoB2jC,EAAQhmB,IAAkB,SAAU1uR,GACtD,OAAO20S,EAAa,IAAK0sG,GAAoBrhZ,MAE/C+wQ,GAAoB2jC,EAAQwxE,IAAkB,SAAUlmX,GACtD,OAAO20S,EAAa,IAAK6sG,GAAoBxhZ,MAE/C+wQ,GAAoB2jC,EAAQyxE,IAAgB,SAAUnmX,GACpD,OAAO20S,EAAa,IAAK2sG,GAAkBthZ,MAE7C+wQ,GAAoB2jC,EAAQvmB,IAAsB,SAAUnuR,GAC1D,OAAO20S,EAAa,IAAKojE,GAAwB/3W,MAEnD+wQ,GAAoB2jC,EAAQtmB,IAAuB,SAAUpuR,GAC3D,OAAO20S,EAAa,IAAKwkE,GAAyBn5W,MAEpD+wQ,GAAoB2jC,EAAQzsD,IAAW,SAAUjoP,GAC/C,OAAO20S,EAAa,IAAKm/D,EAAa9zW,MAExC+wQ,GAAoB2jC,EAAQk6E,IAAa,SAAU5uX,GACjD,OAAO20S,EAAa,IAAKu6E,EAAelvX,MAE1C+wQ,GAAoB2jC,EAAQo2E,IAAa,SAAU9qX,GACjD,OAAO20S,EAAa,IAAKsiE,EAAej3W,MAmB1C,IAiDI4nZ,GAA2B,SAAkCvjZ,EAAQ4L,GAKvE,IAAI43Y,EAAuB,CACzBxjZ,OAAQA,EACR4L,UAAWA,GAET63Y,EAA4BtkK,GAAUN,GAAUm+J,IAAoB7pC,GACpEuwC,EAA4BvkK,GAAUN,GAAUs+J,IAAoBhqC,GAEpEwwC,EAAe/P,GAA8B5gC,EAA6BwwC,EAAsB,GAAc,GAAc,GAAI1G,GAAkB,GAAI,CACxJr2W,EAAG,EACHC,EAAG,IACD,CACF7S,YAAa6/U,GACb53F,QAAS2nI,EACT1nI,QAAS2nI,IAQX,GALAC,EAlm7CkB,SAAyBzwW,EAAW2sN,EAAYhsO,GACpE,IACI+vX,EAAiB,GADD1hK,GAAahvM,GACkB,GAC/C5pC,EAAIs6Y,EAAe,GACnBt5Y,EAAIs5Y,EAAe,GACnBv7Y,EAAIu7Y,EAAe,GACnBj8Y,EAAIi8Y,EAAe,GAEnBC,EAAa,GAAc,GAAI3wW,GAoBnC,GAlBI5pC,EAAIu2P,EAAWn5N,IACjBwM,EAAUnpC,OAASmpC,EAAUnpC,QAAU81P,EAAWn5N,EAAIp9B,GACtD4pC,EAAUxM,EAAIm5N,EAAWn5N,GAGvBp8B,EAAIu1P,EAAWp5N,EAAIo5N,EAAW/1P,QAChCopC,EAAUppC,MAAQ+1P,EAAWp5N,EAAIo5N,EAAW/1P,MAAQopC,EAAUzM,GAG5Dp+B,EAAIw3P,EAAWn5N,EAAIm5N,EAAW91P,SAChCmpC,EAAUnpC,OAAS81P,EAAWn5N,EAAIm5N,EAAW91P,OAASmpC,EAAUxM,GAG9D/+B,EAAIk4P,EAAWp5N,IACjByM,EAAUppC,MAAQopC,EAAUppC,OAAS+1P,EAAWp5N,EAAI9+B,GACpDurC,EAAUzM,EAAIo5N,EAAWp5N,GAGvB5S,EAAa,CAEf,IAAIiwX,EAAUv6Y,KAAKM,IAAI,EAAGg6Y,EAAW/5Y,MAAQopC,EAAUppC,MAAO+5Y,EAAW95Y,OAASmpC,EAAUnpC,QAE5F,OAAOq3O,GAAayiK,EAAYC,GAGlC,OAAO5wW,EA+j7CU6wW,CAAgBJ,EAAc,GAAc,GAAc,GAAI7G,GAAkB,GAAI,CACjGr2W,EAAG,EACHC,EAAG,IACDgtU,KAECoB,GACH,MAAO,CACLkvC,cAAeL,EACfM,aAAcN,GAKlB,IAAIO,EA1zDmB,SAA8BL,EAAYM,EAAY1hW,EAAW2hW,GAC1F,IAAItmZ,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9E43B,EAAc/1B,EAAQ+1B,YAC1BgwX,EAAahL,GAAiBgL,GAC9BO,EAAOtL,GAAiBsL,GACxB,IAAIlwS,EAAS8sI,GAAsB6iK,EAAYrQ,GAAwB/wV,EAAUziD,SAC7EqkZ,EAAc5mK,GAAYvpI,GAAQ,SAAUrxG,GAC9C,OAAO+5O,GAAa/5O,EA9BR,MAgCVi5Q,EAAUjoP,EAAckuN,GAAcjkP,EAAQg+Q,QAASjoP,GAAe/1B,EAAQg+Q,QAC9EC,EAAUloP,EAAcouN,GAAgBnkP,EAAQi+Q,QAASloP,GAAe/1B,EAAQi+Q,QAChFuoI,EAAmBtjK,GAAsBmjK,EAAY1hW,EAAUziD,QAInE,GAFWg+O,GAAesmK,EAAkBpwS,GAEjC,EAAG,CACZiwS,EAAarkK,GAAY+jK,GAEzB,IAAIU,EAAWh7Y,KAAKM,IAAIiyQ,EAAQhyQ,MAAQ+5Y,EAAW/5Y,MAAOgyQ,EAAQ/xQ,OAAS85Y,EAAW95Y,QAEtF+2O,GAAYqjK,EAAYI,EAAUrwS,GAIpCiwS,EAAapjK,GAAUjB,GAAYqkK,GAAaroI,EAASC,EAAS7nK,GAClE,IAAIziG,EAAOquO,GAAYqkK,GACvBA,EAAatL,GAAiBsL,GAC9B,IAAIK,EAAYjhK,GAAY6gK,EAAM,GAC9BK,EAAgB9iK,GAAekiK,GAC/Ba,EAAgB/iK,GAAewiK,GAC/BQ,EAAcF,EAAc9kY,WAAU,SAAU0iO,GAClD,OAAO7E,GAAYC,GAAY4E,GAAQ,SAAUx/O,GAC/C,OAAO+5O,GAAa/5O,EAvDV,MAwDRwhZ,MAGFO,EAA8B,SAAqC3+Y,GACrE,OAAOu+Y,EAAUvuY,KAAI,SAAU4uY,GAC7B,OAAOliK,GAAqBkiK,EAAU5+Y,MACrCvF,OAAO2iH,SAAS7tG,OAIrB,GAAIqe,EAAa,CACf,IAAIwvN,EAAgBqhK,EAAczuY,KAAI,SAAUjW,EAAQ0W,GAEtD,GAAIA,IAAUiuY,EAAd,CAEA,IAAIjzT,EAAMqrJ,GAAa7oI,EAAOztE,EAAIzmC,EAAOymC,EAAGytE,EAAOxtE,EAAI1mC,EAAO0mC,GAC9D62M,GAAgB7rJ,GAChBmsJ,GAAensJ,EAAK,IAEpB,IAAIozT,EAAY/nK,GAAa7oI,EAAOztE,EAAIirD,EAAIjrD,EAAGytE,EAAOxtE,EAAIgrD,EAAIhrD,GAC1DuzO,EAAMz6B,GAAWslK,EAAWlM,GAAmB54Y,IAC/C+/E,EAAe6kU,EAA4B3qI,GAC/C,GAAKl6L,EAAL,CACA,IAAIjhD,EAAS2lX,EAAc/tY,GAC3B,MAAO,CACLqpE,aAAcA,EACdglU,WAAY/mK,GAAe9pI,EAAQp1E,GACnCkmX,iBAAkBhnK,GAAe9pI,EAAQn0B,SAE1Cr/E,OAAO2iH,SAEV,GAAIggI,EAAcjmP,OAAQ,CACxB,IAAI6nZ,EAAW5hK,EAAcrvO,QAAO,SAAUpK,EAAQojB,GACpD,IAAI22U,EAAgB32U,EAAQg4X,iBAAmBh4X,EAAQ+3X,WACvD,OAAOphD,EAAgB/5V,EAAS+5V,EAAgB/5V,IAC/C0jD,OAAOoK,kBAEVjmD,EAAOquO,GAAY+jK,GACnB/iK,GAAYrvO,EAAMwzY,EAAU/wS,QAEzB,CAEL,IAAIgxS,EAAiD,IAA5BziW,EAAUziD,OAAO5C,OAEtC4lZ,IAAcoB,EAAK,GAAG19W,IAAM09W,EAAK,GAAG19W,GAAK09W,EAAK,GAAG39W,IAAM29W,EAAK,GAAG39W,GAE/D0+W,EAAiBV,EAAcxuY,KAAI,SAAUmvY,EAAc1uY,GAE7D,GAAIA,IAAUiuY,EAAd,CACA,IAAIU,EAAeX,EAAchuY,GAC7B4uY,GAAcvM,GAAYsM,EAAa5+W,EAAG49W,EAAY59W,KAAOsyW,GAAYsM,EAAa3+W,EAAG29W,EAAY39W,GAEzG,IAAKw+W,GAAuBlC,IAAasC,MACrCJ,IAAuBnM,GAAYsM,EAAa5+W,EAAG49W,EAAY59W,KAAMsyW,GAAYsM,EAAa3+W,EAAG29W,EAAY39W,IAAjH,CACA,IAAIo+W,EAAY7nK,GAAYioK,EAAqBE,EAAelxS,GAE5DxiB,EAAMisJ,GAAeV,GAAY6nK,GAAYO,GACjD9nK,GAAgB7rJ,GAChBmsJ,GAAensJ,EAAK,IAEhBwzT,EACFxnK,GAAUonK,EAAWpzT,GAErBisJ,GAAemnK,EAAWpzT,GAG5B,IAAIuoL,EAAMz6B,GAAWslK,EAAWO,GAC5BtlU,EAAe6kU,EAA4B3qI,GAC/C,GAAKl6L,EACL,OAAOA,OACNr/E,OAAO2iH,SAEV,GAAI8hS,EAAe/nZ,OAAQ,CACzB,IACImoZ,EAAuB,GADA9R,GAAmBhxV,EAAUziD,QACQ,GAC5Dm0Y,EAAmBoR,EAAqB,GACxCnR,EAAkBmR,EAAqB,GACvClR,EAAiBkR,EAAqB,GACtCjR,EAAoBiR,EAAqB,GAGzCC,EAAkB,GADDtjK,GAAaiiK,GACmB,GACjDsB,EAAMD,EAAgB,GACtBE,EAAMF,EAAgB,GACtBn9Y,EAAIm9Y,EAAgB,GACpB79Y,EAAI69Y,EAAgB,GAExBL,EAAexsZ,SAAQ,SAAUgtZ,GAC/B,IAAIl/W,EAAIk/W,EAAQl/W,EACZC,EAAIi/W,EAAQj/W,EACZk/W,EAAKhpK,GAAan2M,EAlJd,GAmJJo/W,EAAKjpK,GAAal2M,EAnJd,GAqJJ2tW,IAAmB0E,GAAY8M,EAAIxB,EAAY39W,KACjD++W,EAAMl8Y,KAAK6sB,IAAIqvX,EAAK/+W,IAGlBytW,IAAqB4E,GAAY6M,EAAIvB,EAAY59W,KACnDi/W,EAAMn8Y,KAAKM,IAAI67Y,EAAKj/W,IAGlB6tW,IAAsByE,GAAY8M,EAAIxB,EAAY39W,KACpDr+B,EAAIkB,KAAKM,IAAIxB,EAAGq+B,IAGd0tW,IAAoB2E,GAAY6M,EAAIvB,EAAY59W,KAClD9+B,EAAI4B,KAAK6sB,IAAIzuB,EAAG8+B,OAKpBh1B,EAAOwuO,GAAqB,CAACwlK,EAAKC,EAAKr9Y,EAAGV,IAE1Cm5O,GAAYrvO,EAAMknY,GAAsBzkS,IAM5C,OADA6sI,GAAUtvO,EAAMqqQ,EAASC,EAAS7nK,GAC3BziG,EAkqDaq0Y,CAAqB9yC,EAA6B2wC,EAAcH,EAAsBpG,GAA2B,CACjIvpX,YAAa6/U,GACb53F,QAAS2nI,EACT1nI,QAAS2nI,IAEX,MAAO,CACLM,cAAeE,EACfD,aAAcC,IAId6B,GAA0B,SAAiC/lZ,EAAQ4L,GACrE,IAAI43Y,EAAuB,CACzBxjZ,OAAQA,EACR4L,UAAWA,GAET63Y,EAA4BtkK,GAAUN,GAAUm+J,IAAoB7pC,GACpEuwC,EAA4BvkK,GAAUN,GAAUs+J,IAAoBhqC,GACpEwwC,EArkF4B,SAAuClyY,EAAMgxC,GAC/E,IAAI3kD,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9E+D,EAASyiD,EAAUziD,OACnB4L,EAAY62C,EAAU72C,UAEtBioB,EAAc/1B,EAAQ+1B,YACtBioP,EAAUh+Q,EAAQg+Q,QAGlB+3H,EAA6Bl3J,GADpB62J,GAAwBxzY,IAEjC8zY,EAAiBp2J,GAAUoC,GAAYruO,GAAOsrO,GAAa82J,EAA2B,GAAKpiY,EAAK3H,MAAO+pY,EAA2B,GAAKpiY,EAAK1H,SAE5IgqY,EAA6Bp3J,GAAyB38O,GACtDg0Y,EAAiBt2J,GAAUoC,GAAYruO,GAAOsrO,GAAag3J,EAA2B,GAAKtiY,EAAK3H,MAAOiqY,EAA2B,GAAKtiY,EAAK1H,SAG5Ii8Y,EAAuB,GADAvS,GAAmBzzY,GACkB,GAC5Dm0Y,EAAmB6R,EAAqB,GACxC5R,EAAkB4R,EAAqB,GACvC3R,EAAiB2R,EAAqB,GACtC1R,EAAoB0R,EAAqB,GACzCtS,EAAwBsS,EAAqB,GAC7CrS,EAAsBqS,EAAqB,GAC3CzR,EAAgByR,EAAqB,GAErC5oK,EAAKxxO,EAAU66B,EACf42M,EAAKzxO,EAAU86B,EACfgtW,EAAuBr2J,EAAK,EAAWs2J,IAAqBv2J,EAAK,GAErE,IACI6oK,EAAiB,GADA/jK,GAAazwO,GACkB,GAChDnI,EAAI28Y,EAAe,GACnB37Y,EAAI27Y,EAAe,GACnB59Y,EAAI49Y,EAAe,GACnBt+Y,EAAIs+Y,EAAe,GAkBvB,GAfI9R,EAAkBxsY,EAAImsY,EAAertW,EAAW2tW,IAAiB9pY,EAAIwpY,EAAertW,GACpF6tW,EAAmBhrY,EAAIwqY,EAAeptW,EAAW2tW,IAAgBhsY,EAAIyrY,EAAeptW,GAEpFytW,EACF7pY,EAAI0pY,EAAevtW,EAAI22M,EACdg3J,IACTzsY,EAAIqsY,EAAevtW,EAAI22M,GAGrBk3J,EACFjsY,EAAI2rY,EAAettW,EAAI22M,EACdg3J,IACT/qY,EAAI0qY,EAAettW,EAAI22M,GAGrBy+B,GAAW43H,GAAyBrrY,EAAIiB,EAAIwyQ,EAAQ/xQ,OAAQ,CAC9D,IAAIklM,EAAK6sE,EAAQ/xQ,QAAU1B,EAAIiB,GAC/BA,GAAU,GAAL2lM,EACL5mM,GAAU,GAAL4mM,EAIP,GAAI6sE,GAAW63H,GAAuBrpY,EAAI3C,EAAIm0Q,EAAQhyQ,MAAO,CAC3D,IAAIklM,EAAK8sE,EAAQhyQ,OAASQ,EAAI3C,GAC9BA,GAAU,GAALqnM,EACL1kM,GAAU,GAAL0kM,EAIP,GAAIn7K,EAEF,GAAI0gX,EAAe,CACjB,IAAI2R,EAAO57Y,EAAI3C,EAEXw+Y,EAAO99Y,EAAIiB,EAEXoqY,GACFyS,EAAOD,EAAOryX,EACdvqB,EAAIwqY,EAAeptW,EAAW,GAAPy/W,EACvB99Y,EAAIyrY,EAAeptW,EAAW,GAAPy/W,GACdxS,IACTuS,EAAOC,EAAOtyX,EACdlsB,EAAImsY,EAAertW,EAAW,GAAPy/W,EACvB57Y,EAAIwpY,EAAertW,EAAW,GAAPy/W,OAGtB,CACH,IAAI16D,EAAUzuG,GAAai3J,EAAevtW,EAAI22M,EAAK02J,EAAertW,EAAGutW,EAAettW,EAAI22M,EAAKy2J,EAAeptW,GAExG1mC,IAAWw8O,IACbgvG,EAAQ/kT,EAAIl9B,KAAK6sB,IAAI,EAAGo1T,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAKM,IAAI,EAAG2hV,EAAQ9kT,IACvB1mC,IAAWy8O,IACpB+uG,EAAQ/kT,EAAIl9B,KAAK6sB,IAAI,EAAGo1T,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAK6sB,IAAI,EAAGo1T,EAAQ9kT,IACvB1mC,IAAW08O,IACpB8uG,EAAQ/kT,EAAIl9B,KAAKM,IAAI,EAAG2hV,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAK6sB,IAAI,EAAGo1T,EAAQ9kT,IACvB1mC,IAAWu8O,KACpBivG,EAAQ/kT,EAAIl9B,KAAKM,IAAI,EAAG2hV,EAAQ/kT,GAChC+kT,EAAQ9kT,EAAIn9B,KAAKM,IAAI,EAAG2hV,EAAQ9kT,IAIlC,IAAIgvW,EAAgBp4J,GAAakuG,GAC7BsqD,EAAqB/4J,GAAalpN,EAAa,GAC/CkiX,EAAgBl4J,GAAeN,GAAgBu4J,GAAqBJ,GAEpE11Y,IAAWw8O,IACblyO,EAAIwpY,EAAertW,EAAIsvW,EAActvW,EACrCn9B,EAAIwqY,EAAeptW,EAAIqvW,EAAcrvW,GAC5B1mC,IAAWy8O,IACpBnyO,EAAIwpY,EAAertW,EAAIsvW,EAActvW,EACrCp+B,EAAIyrY,EAAeptW,EAAIqvW,EAAcrvW,GAC5B1mC,IAAW08O,IACpB/0O,EAAImsY,EAAertW,EAAIsvW,EAActvW,EACrCp+B,EAAIyrY,EAAeptW,EAAIqvW,EAAcrvW,GAC5B1mC,IAAWu8O,KACpB50O,EAAImsY,EAAertW,EAAIsvW,EAActvW,EACrCn9B,EAAIwqY,EAAeptW,EAAIqvW,EAAcrvW,GAK3C,OAAOg6M,GAAW/4O,EAAG2B,EAAGgB,EAAI3C,EAAGU,EAAIiB,GA28Ed88Y,CAA8BpzC,EAA6BwwC,EAAsB,CAClG3vX,YAAa6/U,GAEb53F,QAAS2nI,IAWX,MAAO,CACLO,cATgBpQ,GAA8B5gC,EAA6BwwC,EAAsB,GAAc,GAAc,GAAI1G,GAAkB,GAAI,CACvJr2W,EAAG,EACHC,EAAG,IACD,CACF7S,YAAa6/U,GACb53F,QAAS2nI,EACT1nI,QAAS2nI,IAITO,aAAcN,IAkCd0C,QAAsB5tZ,EACtB6tZ,QAA2B7tZ,EA0C3B8tZ,GAAkB,SAAyBC,GAC7C,IAAI7vG,EAAc6vG,EAAQ7vG,YACtB/sS,EAAS48Y,EAAQ58Y,OAGjBqpW,IACFrpW,EAAS,EACT+sS,EAAcz5D,GAAaD,GAAY05D,KAGzC,IAGI8vG,EAHAC,EAA+Bn9Y,KAAKM,IAAI+xV,EAAoB9xV,MAAQgpW,EAAehpW,MAAO8xV,EAAoB7xV,OAAS+oW,EAAe/oW,QACtI48Y,EAAoB9oK,GAAeZ,GAAY05D,GAAc,EAAI+vG,GAIrE,GAAKJ,GAGE,CAEL,IAAIM,EAAmBjpK,GAAeV,GAAYqpK,IAA2B3vG,GAC7E2vG,GAA2B3vG,EAC3B8vG,EAAa5lK,GAAgBf,GAAYgzH,GAAiB8zC,QAN1DH,EAAa5lK,GAAgBf,GAAYumK,IAAsBnpK,GAAaD,GAAY0pK,UACzEluZ,IAAXmR,GAAsBk3O,GAAY2lK,EAAY,EAAI78Y,GASxD+jQ,GAAgBy3G,GAAqBrS,GAAuB0zC,EAAY1zC,IAExEplG,GAAgBi0G,GAAe9O,EAAiB2zC,EAAY3zC,IAe1D+zC,GAA4BtwI,GAAQ,CAACurG,GAAgBF,KAAgB,SAAUklC,EAAStqY,GAC1F,IAAIuqY,EAAU,GAAeD,EAAS,GAClC7J,EAAkB8J,EAAQ,GAC1Bj0C,EAAiBi0C,EAAQ,GAE7B,GAAKj0C,EAAL,CAEA,IAAIk0C,EAAmB,GAAe/J,EAAiB,GACnDnhI,EAAUkrI,EAAiB,GAC3BjrI,EAAUirI,EAAiB,GAE3BnzX,EAAc0tN,GAAgBuxH,GAClCt2V,EAAI,CAACuiO,GAAmBoD,GAAUJ,GAAc+5B,EAASjoP,GAAc+oN,KAAgBmC,GAAmBoD,GAAUF,GAAgB85B,EAASloP,GAAc+oN,WAE7J8vB,GAAoB2jC,EAAQw2G,IAA2B,SAAUlrZ,GAC/D,OAAO20S,EAAa,IAAKysG,EAA6BphZ,MAGxD,IAAIsrZ,GAAsB1wI,GAAQ,CAAC3yB,GAAWmmC,GAAuBM,GAAkBw3F,GAAkBC,GAAgBj+H,KAAgB,SAAUqjK,EAAS1qY,GAC1J,IAAI2qY,EAAU,GAAeD,EAAS,GAClCz3C,EAAa03C,EAAQ,GACrBryC,EAAyBqyC,EAAQ,GACjCnK,EAAoBmK,EAAQ,GAE5BlK,GADoBkK,EAAQ,GACVA,EAAQ,IAC1Bv3C,EAAiBu3C,EAAQ,GAE7B,GAAK13C,EAAL,CACA,IAEI23C,EACAC,EAHAC,EAAerK,EAAgB,GAC/BsK,EAAetK,EAAgB,GAI/BnoC,GACFsyC,EA1CqB,SAA4BxjK,EAAWnwO,EAAMowO,GACpE,OAAI7H,GAAkB6H,GACb,EAAI,EAAIt6O,KAAKM,IAAI+5O,EAAU75O,OAAS0J,EAAK3J,MAAO85O,EAAU95O,MAAQ2J,EAAK1J,QAGzE,EAAI,EAAIR,KAAKM,IAAI+5O,EAAU95O,MAAQ2J,EAAK3J,MAAO85O,EAAU75O,OAAS0J,EAAK1J,QAqClEy9Y,CAAmB/3C,EAAY83C,EAAc33C,GACvDy3C,EAAU99Y,KAAKM,IAAIy9Y,EAAax9Y,MAAQkzY,EAAkBlzY,MAAOw9Y,EAAav9Y,OAASizY,EAAkBjzY,UAEzGq9Y,GA/CuB,EAgDvBC,EAAU,GAGZ,IAAIh8Y,EAAQ,CAAC+7Y,EAASC,GAASpxY,KAAI,SAAUpT,GAC3C,OAAO+5O,GAAa/5O,MAEtB2Z,EAAInR,OAENqhQ,GAAoB2jC,EAAQ42G,IAAqB,SAAUtrZ,GACzD,OAAO20S,EAAa,GAAImtG,GAAuB9hZ,MAEjD,IAAI8rZ,GAAiBlxI,GAAQ,CAAC3yB,GAAWg+H,GAAeE,GAAgBj+H,KAAgB,SAAU6jK,EAASlrY,GACzG,IAQI0uC,EARAy8V,EAAU,GAAeD,EAAS,GAClCj4C,EAAak4C,EAAQ,GACrB70C,EAAiB60C,EAAQ,GACzB1K,EAAkB0K,EAAQ,GAC1B/3C,EAAiB+3C,EAAQ,GAG7B,IAAKl4C,IAAeqD,EAAgB,OAAOt2V,EAAI,GAE/C,IAAI8qY,EAAerK,EAAgB,GAC/BsK,EAAetK,EAAgB,GAC/B2K,EAAmB90C,EAAehpW,MAClC+9Y,EAAoB/0C,EAAe/oW,OACnC+9Y,EAAyBvmK,GAAgBuxH,GACzChvH,EAAY9H,GAAkB4zH,GAAkB3wH,GAAWwwH,EAAW1lW,OAAQ0lW,EAAW3lW,OAAS2lW,EAClGs4C,EAAmB9lK,GAAgB6B,EAAWgkK,GAElD,GAAIF,GAAoBG,EAAiBj+Y,OAAS+9Y,GAAqBE,EAAiBh+Y,OAAQ,CAE9F,IAAIohD,EAAI48V,EAAiBj+Y,MAAQw9Y,EAAax9Y,MAE1Ck+Y,EAAMD,EAAiBh+Y,OAASu9Y,EAAav9Y,OAI/CmhD,EADQ,IAANC,GAAmB,IAAR68V,EACT,EAEA,EAAIz+Y,KAAKM,KAAK+9Y,EAAmBN,EAAax9Y,OAASqhD,GAAI08V,EAAoBP,EAAav9Y,QAAUi+Y,OAEvG,CAEL,IAAIzkT,EAAKgkT,EAAaz9Y,MAAQi+Y,EAAiBj+Y,MAE3Cm+Y,EAAMV,EAAax9Y,OAASg+Y,EAAiBh+Y,OAE7Cm+Y,EAAMjmK,GAAgB,CACxBn4O,MAAOy5F,EACPx5F,OAAQk+Y,GACPH,GAEH58V,GAAK3hD,KAAKM,KAAK+9Y,EAAmBG,EAAiBj+Y,OAASo+Y,EAAIp+Y,OAAQ+9Y,EAAoBE,EAAiBh+Y,QAAUm+Y,EAAIn+Y,QAG7HyS,EAAI0uC,MAENwhN,GAAoB2jC,EAAQo3G,IAAgB,SAAU9rZ,GACpD,OAAO20S,EAAa,GAAIotG,GAAkB/hZ,MAG5C,IA2EIwsZ,GA2CAC,GAiIAC,GAnPAC,GAAc,SAAqB9oD,GACrC,IACIh0G,EACAC,EACAnhP,EAHAupB,EAAc0tN,GAAgB8kK,IAI9BviK,EAAY9H,GAAkB4zH,GAAkB3wH,GAAWwwH,EAAW1lW,OAAQ0lW,EAAW3lW,OAAS2lW,EAClGs4C,EAAmB9lK,GAAgB6B,EAAWjwN,GAElD,GAAI2rU,GAAQ,EAAG,CAEb,IAAI+oD,EAAaR,EAAiBj+Y,MAAQmzY,GAAgB,GAAGnzY,MACzD0+Y,EAAcT,EAAiBh+Y,OAASkzY,GAAgB,GAAGlzY,OAC/DyhP,EAAcu8J,EAAiBj+Y,MAAQy+Y,EAAa/oD,EACpD/zG,EAAes8J,EAAiBh+Y,OAASy+Y,EAAchpD,EACvDl1V,EAAIy3O,GAAc,CAChBj4O,MAAO0hP,EACPzhP,OAAQ0hP,GACP53N,OACE,CAEL,IAAI40X,EAAcxL,GAAgB,GAAGnzY,MAAQi+Y,EAAiBj+Y,MAE1D4+Y,EAAezL,GAAgB,GAAGlzY,OAASg+Y,EAAiBh+Y,OAEhEyhP,EAAcu8J,EAAiBj+Y,MAAQ2+Y,GAAejpD,EACtD/zG,EAAes8J,EAAiBh+Y,OAAS2+Y,GAAgBlpD,EACzDl1V,EAAI23O,GAAgB,CAClBn4O,MAAO0hP,EACPzhP,OAAQ0hP,GACP53N,GAGL23N,EAAclhP,EAAER,MAChB2hP,EAAenhP,EAAEP,OACjB,IAAI4+Y,EAAUtC,GAAoB5/W,EAAgC,GAA5B4/W,GAAoBv8Y,MAA4B,GAAd0hP,EACpEo9J,EAAUvC,GAAoB3/W,EAAiC,GAA7B2/W,GAAoBt8Y,OAA8B,GAAf0hP,EACzEkiB,GAAgBi0G,GAAe9O,EAAiB,CAC9CrsU,EAAGkiX,EACHjiX,EAAGkiX,EACH9+Y,MAAO0hP,EACPzhP,OAAQ0hP,GACPqnH,IAkDD+1C,GAAqB,SAA4Bh9Y,GACnD,IAAI46Y,EAAa3lK,GAAYhB,GAAYqoK,IAAwB,EAAIt8Y,GACrE8hQ,GAAgBy3G,GAAqBrS,GAAuB0zC,EAAY1zC,IACxEplG,GAAgBi0G,GAAe9O,EAAiB2zC,EAAY3zC,IAyH1Dg2C,GAAuB,WAEzBljC,GAAcppW,IAAI,KA4BhBusY,GAAkBltY,GAAO,EAAG,CAC9BghE,UAAW,OAEb6vL,GAAoB2jC,EAAQ04G,IAAiB,SAAUptZ,GACrD,OAAO20S,EAAa,GAAIqtG,GAAmBhiZ,MAE7C,IAAIqtZ,GAAiBntY,KACrB6wP,GAAoB2jC,EAAQ24G,IAAgB,SAAUrtZ,GACpD,OAAO20S,EAAa,GAAIstG,GAAkBjiZ,MAK5C,IAgBIstZ,GAAsB1yI,GAAQ,CAACuT,GAAsBo4F,GAAiBmgC,KAA6B,SAAU6G,EAAS1sY,GACxH,IAAI2sY,EAAU,GAAeD,EAAS,GAClCE,EAAmBD,EAAQ,GAC3BtM,EAAmBsM,EAAQ,GAC3B7L,EAA8B6L,EAAQ,GAE1C,GAAKhO,EAAL,CACA,IAAIr9Y,EAAUilU,GAAeu6E,GAEzB+L,EAAqB,GAAmBvrZ,GAC5CmY,KAAI,SAAUgR,GACZ,OAAOA,EAAO,MAEhBpD,MAAK,SAAUzb,EAAGC,GAChB,OAAI,GAAQD,EAAE,MAAQ,GAAQC,EAAE,IAAY,GACpC,KAEVsrB,MAAK,SAAUh4B,GACb,GAAI,GAAQA,IAAUkhZ,EAAkB,CAEtC,IAAIyM,EAAU,GAAe3tZ,EAAO,GAChC4tZ,EAAUD,EAAQ,GAClBE,EAAWF,EAAQ,GAEnBG,EAAoB5M,EAAiB/yY,QAAUy/Y,GAAW1M,EAAiB9yY,SAAWy/Y,EACtFE,EAAqBN,IAAqBxtK,GAAe2tK,EAASC,GACtE,OAAOC,GAAqBC,EAI9B,OAAO/tZ,IAAUytZ,KAInB,IAAKC,EAAoB,OAAO7sY,OAAI/jB,GAQpC+jB,EAPY1e,EACZmY,KAAI,SAAUgR,GACZ,OAAOA,EAAO,MAEhBtH,WAAU,SAAUhkB,GAClB,OAAO,GAAQA,GAAS8hR,GAAW9hR,EAAO0tZ,GAAsB1tZ,IAAU0tZ,UAI9E38I,GAAoB2jC,EAAQ44G,IAAqB,SAAUttZ,GACzD,OAAO20S,EAAa,IAAK+sG,GAAuB1hZ,MAGlD,IAAIguZ,GAAgC,SAAuCx/P,EAAersJ,GACxF,GAAKq9Y,IAAiD,IAAnBhxP,QAA0C1xJ,IAAlB0xJ,EAA3D,CACA,IAAIy/P,EAAgB7mF,GAAejlU,GAASqsJ,GAAe,GAC3D,OAAQy/P,EAA4B,GAAQA,GAAiBhuK,GAAeguK,EAAc,GAAIA,EAAc,IAAMA,OAA1FnxZ,IAKtBoxZ,GAAuBtzI,GAAQ,CAAC6tG,GAAeoE,GAAgC1D,KAAwB,SAAUglC,EAASttY,GAC5H,IAAIutY,EAAU,GAAeD,EAAS,GAClC/5C,EAAiBg6C,EAAQ,GACzBp+B,EAAQo+B,EAAQ,GAChBj6C,EAAyBi6C,EAAQ,GAEjCC,EAAwB9L,GAAmCt8C,GAAakO,GACxEn3U,EAAOqxX,EAAsBrxX,KAC7ByZ,EAAO43W,EAAsB53W,KAC7BvkC,EAAUm8Y,EAAsBn8Y,QAEpC,IAAK89W,GAAS99W,GAAW,EAAG,OAAO2O,EAAI,IASvC,IARA,IAAIiqB,EAAIklV,EAAMllV,EACVC,EAAIilV,EAAMjlV,EACV58B,EAAQ6hX,EAAM7hX,MACdC,EAAS4hX,EAAM5hX,OACfohD,EAAIrhD,EAAQsoC,EACZl0C,EAAI6L,EAAS4uB,EACbinO,EAAS,GAEJqqJ,EAAM,EAAGA,GAAOtxX,EAAO,EAAGsxX,IAAO,CACxC,IAAIC,EAAKxjX,EAAIxoC,EAAI+rZ,EACjBrqJ,EAAO7iQ,KAAK,CACViB,GAAI,6BAA6Bb,OAAO8sZ,GACxC7rK,OAAQ,CAACrB,GAAat2M,EAAGyjX,GAAKntK,GAAat2M,EAAI38B,EAAOogZ,IACtDr8Y,QAASA,EACT8vP,YAAa,EACbC,YAAamyG,IAKjB,IAAK,IAAIr0W,EAAI,EAAGA,GAAK02C,EAAO,EAAG12C,IAAK,CAClC,IAAIyuZ,EAAK1jX,EAAI0kB,EAAIzvD,EACjBkkQ,EAAO7iQ,KAAK,CACViB,GAAI,6BAA6Bb,OAAOzB,GACxC0iP,OAAQ,CAACrB,GAAaotK,EAAIzjX,GAAIq2M,GAAaotK,EAAIzjX,EAAI38B,IACnD8D,QAASA,EACT8vP,YAAa,EACbC,YAAamyG,IAIjBvzV,EAAIojP,MAEN8M,GAAoB2jC,EAAQw5G,IAAsB,SAAUluZ,GAC1D,OAAO20S,EAAa,IAAKssG,EAAwBjhZ,MAGnD,IAqBIyuZ,GANAC,GAAe,QAAQltZ,OAAO8qB,MAE9BqiY,GAAuBD,GAAe,KADnBzL,GAA0BwC,GAA0B,QAEvEmJ,GAAoBD,GACpBh9Y,QAAO7U,EAGP+xZ,GAAe3uY,GAAOs5S,EAAc,GAAK,GA2jB7C,OA1jBAzoD,GAAoB2jC,EAAQm6G,IAAc,SAAU7uZ,GAClD,OAAO20S,EAAa,IAAKosG,EAAgB/gZ,MAgC3C00S,EAAOv6B,MAAQ,SAAUD,GACnB,aAAcA,GAASioI,GAAqBxtG,EAAa,EAAGugB,GAAWh7C,EAAQg7C,WAC/E,WAAYh7C,GAASy6B,EAAa,GAAI95B,GAASX,EAAQW,QACvD,kCAAmCX,GAASy6B,EAAa,EAAG0tG,GAAgCnoI,EAAQmoI,+BACpG,uCAAwCnoI,GAASy6B,EAAa,IAAK4tG,GAAqCroI,EAAQqoI,oCAChH,wCAAyCroI,GAASy6B,EAAa,IAAKguG,GAAsCzoI,EAAQyoI,qCAClH,wCAAyCzoI,GAASy6B,EAAa,IAAKkuG,GAAsC3oI,EAAQ2oI,qCAClH,0CAA2C3oI,GAASy6B,EAAa,IAAKouG,GAAwC7oI,EAAQ6oI,uCACtH,4BAA6B7oI,GAASy6B,EAAa,IAAKsuG,GAA0B/oI,EAAQ+oI,yBAC1F,mBAAoB/oI,GAASy6B,EAAa,EAAGwuG,GAAiBjpI,EAAQipI,gBACtE,wBAAyBjpI,GAASy6B,EAAa,IAAK0uG,GAAsBnpI,EAAQmpI,qBAClF,2BAA4BnpI,GAASy6B,EAAa,IAAK4uG,GAAyBrpI,EAAQqpI,wBACxF,6BAA8BrpI,GAASy6B,EAAa,IAAK8uG,GAA2BvpI,EAAQupI,0BAC5F,4BAA6BvpI,GAASy6B,EAAa,IAAKgvG,GAA0BzpI,EAAQypI,yBAC1F,uCAAwCzpI,GAASy6B,EAAa,IAAKkvG,GAAqC3pI,EAAQ2pI,oCAChH,6CAA8C3pI,GAASy6B,EAAa,IAAKovG,GAA2C7pI,EAAQ6pI,0CAC5H,mCAAoC7pI,GAASy6B,EAAa,IAAKsvG,GAAiC/pI,EAAQ+pI,gCACxG,+BAAgC/pI,GAASy6B,EAAa,IAAKwvG,GAA6BjqI,EAAQiqI,4BAChG,gCAAiCjqI,GAASy6B,EAAa,IAAK0vG,GAA8BnqI,EAAQmqI,6BAClG,mCAAoCnqI,GAASy6B,EAAa,IAAK4vG,GAAiCrqI,EAAQqqI,gCACxG,iCAAkCrqI,GAASy6B,EAAa,IAAK8vG,GAA+BvqI,EAAQuqI,8BACpG,4BAA6BvqI,GAASy6B,EAAa,IAAKgwG,GAA0BzqI,EAAQyqI,yBAC1F,2BAA4BzqI,GAASy6B,EAAa,IAAKkwG,GAAyB3qI,EAAQ2qI,wBACxF,qCAAsC3qI,GAASy6B,EAAa,IAAKowG,GAAmC7qI,EAAQ6qI,kCAC5G,2BAA4B7qI,GAASy6B,EAAa,GAAIswG,GAAyB/qI,EAAQ+qI,wBACvF,oCAAqC/qI,GAASy6B,EAAa,IAAKwwG,GAAkCjrI,EAAQirI,iCAC1G,wBAAyBjrI,GAASy6B,EAAa,IAAK0wG,GAAsBnrI,EAAQmrI,qBAClF,gCAAiCnrI,GAASy6B,EAAa,IAAK4wG,GAA8BrrI,EAAQqrI,6BAClG,4BAA6BrrI,GAASy6B,EAAa,IAAK8wG,GAA0BvrI,EAAQurI,yBAC1F,wBAAyBvrI,GAASy6B,EAAa,IAAKgxG,GAAsBzrI,EAAQyrI,qBAClF,yBAA0BzrI,GAASy6B,EAAa,IAAKkxG,GAAuB3rI,EAAQ2rI,sBACpF,sBAAuB3rI,GAASy6B,EAAa,EAAGoxG,GAAoB7rI,EAAQ6rI,mBAC5E,oBAAqB7rI,GAASy6B,EAAa,IAAKsxG,GAAkB/rI,EAAQ+rI,iBAC1E,WAAY/rI,GAASy6B,EAAa,EAAGv0M,GAAS85K,EAAQ95K,QACtD,+BAAgC85K,GAASy6B,EAAa,IAAKyxG,GAA6BlsI,EAAQksI,4BAChG,+BAAgClsI,GAASy6B,EAAa,IAAK4xG,GAA6BrsI,EAAQqsI,6BAGtG7xG,EAAO1jC,GAAGxhL,OAAS,WAGjB,KAFIklN,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAGrBg9L,GAAc1oW,IAA6B,cAAzBglY,IAAwC7E,GAK5D,QAFItsG,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAK6qG,EAA6BmF,IAA2BrjZ,MAAMiD,QAAQogZ,KAA4BA,GAAwBljZ,QAK9I,QAFIizS,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAGxBm6N,GAA2B7lY,IAAI2+X,EAA6BmF,GAA0B,IAKxF,KAFIjwG,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAGrBy0N,GAAarxB,GAAoB9uW,IAAI,EAAG,CACtCiwR,MAAO0oB,IAMX,KAFI9kB,EAAO1jC,GAAGzkF,MAAM,IAIlB+zK,GAASz/U,KAAKmgY,GAKhB,KAFItsG,EAAO1jC,GAAGzkF,MAAM,IAGlBi0K,GAAU3/U,KAAKmgY,GAKjB,KAFItsG,EAAO1jC,GAAGzkF,MAAM,IAGlBy0N,GAAa19B,GAAeziW,KAAI,GAKlC,QAFI6zR,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKqrG,EAAoC,YAApBlrC,EAAK4F,YAKzC,SAFIhmE,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFWmoH,EAAO1jC,GAAGzkF,MAAM,IAGzBooH,EAAa,IAAK8rG,EAA2BoE,KAA2B7E,GAK1E,MAFItrG,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFQmoH,EAAO1jC,GAAGzkF,MAAM,IAItBooH,EAAa,IAAKgrG,EAA6BwB,GAAmBlhD,GAAuB/5G,GAAei7J,EAAiBlhD,IAK3H,OAFIvrD,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFSmoH,EAAO1jC,GAAGzkF,MAAM,IAGvBooH,EAAa,IAAKirG,KAA+B3/C,IAAuB0/C,IAK1E,OAFIjrG,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFSmoH,EAAO1jC,GAAGzkF,MAAM,IAGvBooH,EAAa,IAAKkrG,EAA2BD,GAA6Bj6J,GAAUs6G,EAAqB0/C,GAA4B,SAAU3/Y,GAC7I,OAAOihP,GAAajhP,EAAO,OAM/B,MAFI00S,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFQmoH,EAAO1jC,GAAGzkF,MAAM,GAIxB,QAFYmoH,EAAO1jC,GAAGzkF,MAAM,GAI5B,KAFUmoH,EAAO1jC,GAAGzkF,MAAM,IAIxBooH,EAAa,GAAI8qG,EAAY1qC,IAAkBswC,GAAoB,CAAClB,IAA8B,CAAC,SAAU,cAAe,CAC1HtpY,MAAOulF,GAAO0uT,0BACdjpF,WAAY,4BACZ35R,KAAMk0D,GAAO2uT,yBACb52R,QAAS,WACPgvR,IAAev5Y,KAAKE,GAAK,GACzBu4C,GAAQ7+C,WAER68Y,IAA+B,CAAC,SAAU,eAAgB,CAC5DxpY,MAAOulF,GAAO4uT,2BACdnpF,WAAY,4BACZ35R,KAAMk0D,GAAO6uT,0BACb92R,QAAS,WACPgvR,GAAcv5Y,KAAKE,GAAK,GACxBu4C,GAAQ7+C,WAER+8Y,IAAkC,CAAC,SAAU,kBAAmB,CAClE1pY,MAAOulF,GAAO8uT,8BACdrpF,WAAY,4BACZ35R,KAAMk0D,GAAO+uT,6BACbh3R,QAAS,WACHkoH,GAAkB4zH,GACpBjiG,GAAgBy0G,GAAY1S,IAAeA,GAAaA,IAExD/hG,GAAgBw0G,GAAYxS,IAAeA,GAAaA,IAG1D3tT,GAAQ7+C,WAERi9Y,IAAgC,CAAC,SAAU,gBAAiB,CAC9D5pY,MAAOulF,GAAOgvT,4BACdvpF,WAAY,4BACZ35R,KAAMk0D,GAAOivT,2BACbl3R,QAAS,WACHkoH,GAAkB4zH,GACpBjiG,GAAgBw0G,GAAYxS,IAAeA,GAAaA,IAExDhiG,GAAgBy0G,GAAY1S,IAAeA,GAAaA,IAG1D1tT,GAAQ7+C,WAERi5Y,GAA4BjB,GAA8B,EAA4B,IAA3ByF,GAAmC,WAAarI,GAAgB,gBAAiB,CAC9I1wW,KAAMs7W,GAAwBpnT,GAAQ4tT,GAA8BtM,GAAsBC,KAC1F9mY,MAAO2sT,GAASpnO,GAAOkvT,sBAAuBlvT,GAAQ4tT,GAA8BtM,GAAsBC,KAC1G97E,WAAY,4BACZ1jU,QAASw/Y,GACT58Y,OAAQkgZ,GACR5I,eAAgByK,GAChBt4P,cAAekzP,GACf92R,SAAU,SAAkB2kS,GAC1B,IAAIvvZ,EAAQuvZ,EAAQvvZ,MAEhB,GAAQA,IACVgyQ,GAAgBmc,GAAsB4pF,GAAwB93H,GAAejgP,EAAM,GAAIA,EAAM,IAAK+3W,IAClG/lG,GAAgBu0G,GAAiB26B,EA3y9CnB,SAA6Bz0Y,GACrD,OAAOw2O,GAAOx2O,EAAE,GAAIA,EAAE,IA0y9CwC+iZ,CAAoBxvZ,GAAQkhZ,IAEhFlvI,GAAgBmc,GAAsB4pF,GAAwB/3W,EAAO+3W,IAGnE8nC,GACFsN,KAGF9mW,GAAQ7+C,SAEV8/T,aAAc,SAAsBh8S,GAElC,IAAImG,GAAW,EAEXg+X,EAAoB,GAAQnkY,EAAOtrB,OAASsrB,EAAOtrB,MAAM,GAAKsrB,EAAOtrB,MAAM,GAAKsrB,EAAOtrB,MAE3F,GAAIyvZ,EAAmB,CACrB,IAAIC,EAAcpwI,GAAiBw0F,EAAYG,EAAgBw7C,GAC/Dh+X,EAAWi+X,EAAYvhZ,MAAQkzY,GAAkBlzY,OAASuhZ,EAAYthZ,OAASizY,GAAkBjzY,OAOnG,OAHAkd,EAAO4gB,KAhjGkB,SAAsClsC,GACvE,IAYI8qC,EACAC,EACAykB,EACAjtD,EAfAJ,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9EqvZ,EAAkBxtZ,EAAQgM,MAC1BA,OAA4B,IAApBwhZ,EAA6B,GAAKA,EAC1CC,EAAmBztZ,EAAQiM,OAC3BA,OAA8B,IAArBwhZ,EAA8B,GAAKA,EAC5CC,EAAkB1tZ,EAAQgiD,OAC1BA,OAA6B,IAApB0rW,EAA6B,GAAKA,EAC3CC,EAAkB3tZ,EAAQwoC,OAC1BA,OAA6B,IAApBmlX,EAA6B,EAAIA,EAC1C53X,EAAc,GAAQl4B,GAASigP,GAAejgP,EAAM,GAAIA,EAAM,IAAMA,EACpE+vZ,IAAuB73X,EAO3B31B,GADAitD,GALAt3B,EAAc63X,EAAqB73X,EAAc,GAK/B,EAAIisB,EAASjsB,EAAcisB,GACrCjsB,EACR4S,EAAIl9B,KAAKi/B,MAAoB,IAAb1+B,EAAQqhD,IACxBzkB,EAAIn9B,KAAKi/B,MAAqB,IAAdz+B,EAAS7L,IACzB,IAAIuqF,EAAOijU,EAAqB,eAAiB,OAC7C3hL,EAAS2hL,EAAqB,OAAS,eACvC/tJ,EAAc7zP,EAAQ,GACtB6hZ,EAAkB,CAAC7hZ,EAAQ,GAAIA,EAAQ,GAAG9G,KAAK,KACnD,MAAO,eAAgB7F,OAAOsrF,EAAM,cAAgBtrF,OAAO4sO,EAAQ,oBAAsB5sO,OAAOwgQ,EAAa,wBAA0BxgQ,OAAOwuZ,EAAiB,SAAWxuZ,OAAOspC,EAAG,SAAWtpC,OAAOupC,EAAG,aAAevpC,OAAOguD,EAAG,cAAgBhuD,OAAOe,EAAG,UAAYf,OAAOmpC,EAAQ,OAuhGjQslX,CAA6B3kY,EAAOtrB,MAAO,CACvDmkD,OAAQ,KAEH,GAAc,GAAc,GAAI74B,GAAS,GAAI,CAClDmG,SAAUA,OAGZ0zX,IAAmC,CAAC,WAAY,oBAAqB,CACvEj5W,KAAMw7W,GAAiBtnT,GAAQ+4Q,IAC/Bt+V,MAAOulF,GAAO8vT,sBACdrqF,WAAY,4BACZj7M,SAAU,SAAkBulS,GAC1B,IAAInwZ,EAAQmwZ,EAAQnwZ,MACpBgyQ,GAAgBoc,GAAuB+qF,GAAyBn5W,EAAOm5W,IACvE9yT,GAAQ7+C,SAEVrF,QAAS,CAAC,EAAC,EAAMi+F,GAAOgwT,0BAA2B,CACjDlkX,KAAMw7W,GAAiBtnT,IAAQ,KAC7B,EAAC,EAAOA,GAAOiwT,0BAA2B,CAC5CnkX,KAAMw7W,GAAiBtnT,IAAQ,SAE/Br7F,OAAO2iH,SAAUotP,GAAM,WACzB,OAAOuO,GAAcxiW,IAAI,OACxB9b,OAAO2iH,UAKZ,MAFIgtL,EAAO1jC,GAAGzkF,MAAM,GAIpB,WAFQmoH,EAAO1jC,GAAGzkF,MAAM,GAIxB,QAFamoH,EAAO1jC,GAAGzkF,MAAM,IAG3BylF,GAAgB2jH,GAAW1f,GAAa+qC,GAChB,UAAxB2E,KAA4D,WAAxBA,IAA2D,UAAvB7wC,EAAKvE,eAA6ByvC,GAAiBP,EAAUnlY,KAAI,SAAUg2Y,GACjJ,IAAIC,EAAU,GAAeD,EAAS,GAClC/sZ,EAAOgtZ,EAAQ,GACfluZ,EAAKkuZ,EAAQ,GACb3+Y,EAAQ2+Y,EAAQ,GAGpB,OAAIjvZ,MAAMiD,QAAQqN,GAAe,CAACrO,EAAMlB,EAAIuP,GAErC,CAACrO,EAAMlB,EAAI,GAAc,GAAc,GAAIuP,GAAQ,GAAI,CAC5Dg0T,WAAW,QAEV,GAAIqwC,IAKX,GAFIvhE,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAI+qG,EAAoBvmC,GAAyB,GAnzBvC,GAwzBzB,MAFIzkE,EAAO1jC,GAAGzkF,MAAM,GAIpB,EAFQmoH,EAAO1jC,GAAGzkF,MAAM,IAItBooH,EAAa,IAAK89E,EAAuB0uB,GAAmB//J,KAAe2+G,EAAWj1T,EAAIq2W,EAAgBr2W,KAAMi1T,EAAWh1T,EAAIo2W,EAAgBp2W,KAKjJ,SAFI2pQ,EAAO1jC,GAAGzkF,MAAM,IAIlBooH,EAAa,IAAK69E,EAAuBzb,GAAmC0b,GAAwBrxI,GAAa++E,GAAY42C,EAAgCjsU,EAA4C,GAAxCisU,EAAgC5oW,MAAcskX,EAAqB3nV,GAAIq1R,GAAY42C,EAAgChsU,EAA6C,GAAzCgsU,EAAgC3oW,OAAeqkX,EAAqB1nV,KAK9V,EAFI2pQ,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKmrG,EAAqD,MAA/BzoC,GAK1C,MAFI3iE,EAAO1jC,GAAGzkF,MAAM,GAIpB,OAFQmoH,EAAO1jC,GAAGzkF,MAAM,IAGtBooH,EAAa,IAAKorG,EAAqBoB,GAAmBxB,IAA+BA,EAA2BvxY,SAAW+yY,EAAgB/yY,QAAUuxY,EAA2BxxY,QAAUgzY,EAAgBhzY,QAKhN,WAFIumS,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKsrG,GAAmBF,GAAsBvoC,EAAsB,GAAK0X,EAAe,GAKvG,OAFIx6E,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAGurG,EAAYN,IAA8BE,KAAyBD,GAA4BI,IAKjH,MAFIvrG,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFQmoH,EAAO1jC,GAAGzkF,MAAM,IAGtBooH,EAAa,GAAIwrG,EAA4BwD,MAA6BxsC,IAAmB6oC,GAK/F,UAFItrG,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIyrG,IAAoBmF,SAAqCzoZ,GAK5E,KAFI43S,EAAO1jC,GAAGzkF,MAAM,GAIpB,UAFOmoH,EAAO1jC,GAAGzkF,MAAM,GAIvB,UAFYmoH,EAAO1jC,GAAGzkF,MAAM,IAG1BooH,EAAa,GAAI0rG,EAAYF,GAA6BoF,GAA8BA,GAA4BpuC,EAAgB+pC,GAAoBf,GAxiB5J,SAAsB/tV,EAAM27L,GAC1B,IAAIhxN,EAAO,GAEX,GAAIgxN,EAAY,CACd,IAAI83B,EAAkBzzN,EAAKjkD,MAAQikD,EAAKhkD,OAEpC2/O,EAAW5/O,QAAU4/O,EAAW3/O,SAClC2uB,EAAOumN,GAAWyK,EAAW5/O,MAAO4/O,EAAW5/O,MAAQ03Q,IAGrD93B,EAAW3/O,SAAW2/O,EAAW5/O,QACnC4uB,EAAOumN,GAAWyK,EAAW3/O,OAASy3Q,EAAiB93B,EAAW3/O,SAGpE2uB,EAAOmmN,GAAU6K,QAEjBhxN,EAAOumN,GAAWlxL,EAAKjkD,MAAOikD,EAAKhkD,QAGrC,MAAO,GAAG5M,OAAOoM,KAAKi/B,MAAM9P,EAAK5uB,OAAQ,aAAa3M,OAAOoM,KAAKi/B,MAAM9P,EAAK3uB,SAqhB0GoiZ,CAAar5C,EAAgB+pC,IAKpN,SAFIxsG,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAGm1E,EAA2B/S,GAAmC0b,GAAwB,CACpG3nV,EAAGisU,EAAgCjsU,EAAI2nV,EAAqB3nV,EAC5DC,EAAGgsU,EAAgChsU,EAAI0nV,EAAqB1nV,EAC5D58B,MAAO4oW,EAAgC5oW,MACvCC,OAAQ2oW,EAAgC3oW,SAM5C,IAFIsmS,EAAO1jC,GAAGzkF,MAAM,GAIpB,MAFMmoH,EAAO1jC,GAAGzkF,MAAM,GAItB,GAFQmoH,EAAO1jC,GAAGzkF,MAAM,IAGtBooH,EAAa,GAAI2rG,EAA6BmD,MAA8B35B,IAA6Bk2B,GAK3G,OAFItrG,EAAO1jC,GAAGzkF,MAAM,GAIpB,SAFSmoH,EAAO1jC,GAAGzkF,MAAM,IAGvBooH,EAAa,GAAI4rG,EAA2C0D,MAAoCzxB,IAAyBmwB,KAAwCrrC,GAKnK,IAFI5iE,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFMmoH,EAAO1jC,GAAGzkF,MAAM,GAItB,SAFMmoH,EAAO1jC,GAAGzkF,MAAM,IAGhB2zN,GAAayC,KAAwCziD,IACvDx/T,aAAagsX,IACb/3G,EAAa,IAAK+3G,GAAwCxwZ,WAAWixZ,GAAsBxK,MAM/F,SAFIjuG,EAAO1jC,GAAGzkF,MAAM,IAGd2zK,GAAgBx/T,aAAagsX,IAKnC,KAFIh4G,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAGrB6gO,GAAgBvsY,IAAI0/X,GAA4CL,EAAY,EAAI,EAAG,CACjFpvG,MAAsB,IAAhB0oB,IAMV,QAFI9kB,EAAO1jC,GAAGzkF,MAAM,IAGlB8gO,GAAexsY,IAAI2xW,EAAsB,CACvC1hF,MAAsB,IAAhB0oB,IAMV,KAFI9kB,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFOmoH,EAAO1jC,GAAGzkF,MAAM,KAGjBy0N,IAAc/pC,GA3kBpBjlG,GAAgB0/G,GAAuB7b,EAA6B,KAAI,CACtEjgE,YAAaqwG,GACbjwG,kBAAmBiwG,IAClBpwC,GAEH6b,GAAsB7wW,IAAIg1V,YAInBA,EAA6B,KAEpC6b,GAAsB7wW,IAAIg1V,KAykB1B,QAFInhE,EAAO1jC,GAAGzkF,MAAM,IAIlB00N,GA5dF3wB,GAAmB9gS,QAAO,SAAUy0K,GAClC,IAAIwsJ,EAAgBxsJ,EAAOl/P,QAAO,SAAUy4X,GAC1C,OAAQ,2BAA2Bj1X,KAAKi1X,EAAOn7X,OAGjD,OAAI2+Y,EACK,GAAGx/Y,OAAO,GAAmBivZ,GAAgB,GAAmBxP,IAGlEwP,KAwdT,QAFI/7G,EAAO1jC,GAAGzkF,MAAM,IAOlBooH,EAAa,IAAK6rG,EAAgD,UAAvB1rC,EAAKvE,eAKlD,WAFI77D,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFamoH,EAAO1jC,GAAGzkF,MAAM,IAG3BooH,EAAa,GAAI+rG,EACO,UAAxBiF,KAAoC3F,GACpCQ,GAAkD,WAAxBmF,IAK5B,EAFIjxG,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFImoH,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,IAAKgsG,EAAuBwC,IAAkBE,IAK7D,KAFI3uG,EAAO1jC,GAAGzkF,MAAM,GAIpB,IAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAGrBooH,EAAa,IAAKisG,EAAwB2C,GAAyB/C,GAA0BG,EAAuBA,GAKtH,KAFIjsG,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAGrBooH,EAAa,GAAIksG,EAAqBoC,IAA2BrC,GAKnE,GAFIlsG,EAAO1jC,GAAGzkF,MAAM,KAGbq0N,GACHjsG,EAAa,EAAGi6G,GAAoBD,KAMxC,GAFIj6G,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIy7D,EAAa,CAC5B7sW,KAAMmrZ,GACNl1R,SAAUo1R,KAMd,GAFIl6G,EAAO1jC,GAAGzkF,MAAM,GAIpB,KAFKmoH,EAAO1jC,GAAGzkF,MAAM,GAIrB,GAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAGrBooH,EAAa,EAAGggB,EAAO,CAACsuF,IAA2B,CACjD5gZ,GAAIqsZ,GAAe,YACnB7zY,MAAOulF,GAAOswT,sBACb9P,GAAyB,CAC1Bv+Y,GAAIqsZ,GAAe,QACnB7zY,MAAOulF,GAAOuwT,mBACb5rZ,OAAO2iH,UAKZ,IAFIgtL,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIojB,EAASpD,EAAKr6S,KAAI,SAAUkkM,GAC3C,OAAOA,EAAIn8M,OAMf,GAFIqyS,EAAO1jC,GAAGzkF,MAAM,GAIpB,GAFKmoH,EAAO1jC,GAAGzkF,MAAM,IAGfkiO,KAAaA,GAASzwY,SAASvc,QAAUu+Y,GAC3CyO,GAASl3Y,cAAc,IAAIC,YAAY,UAAW,CAChDC,OAAQg3Y,GAAS34Y,QAOvB,KAFI4+R,EAAO1jC,GAAGzkF,MAAM,GAIpB,QAFOmoH,EAAO1jC,GAAGzkF,MAAM,IAGrBitI,GAAeq1F,GAAahuY,IAAImgY,EAAY,EAAI,IAKlD,OAFItsG,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAImsG,EAAuBC,EAAgB,cAAcv/Y,OAAOu/Y,EAAe,OAAS,SAIlG,CAAC7rF,GAAUmtF,GAA+Bc,GAAgB4C,GAAmB3lT,GAAQwuT,GAAmBH,GAAU95F,EAAMm1D,EAA0Bo2B,EAAWK,EAA0CJ,EAA2BV,EAAWuB,EAAWG,EAAiBltC,EAAgBtiW,GAAMmvY,EAAsB/oF,EAAQq4C,EAAYywC,EAAoBH,EAAqBJ,EAA4BD,EAAWD,EAAmBV,EAAmB1/C,GAAW4hD,GAAuBC,GAAqBC,GAAsBC,GAAiBC,GAAkBC,GAAiBzsG,GAAYwmE,GAAsBqH,GAAekG,GAAeyC,GAA0Bn2B,GAAyB6wD,GAA4BjrO,GAAKinL,GAAewmB,GAAqBvmB,GAAUC,GAAWqoB,GAAgBiL,GAAsBnH,GAAoB4G,GAAWjE,GAAuBlL,GAAYC,GAAYv+H,GAAeq8B,GAAoBgiG,GAAiBtjB,GAAoB2mB,GAA4BC,GAA0BgD,GAAgCpD,GAAqBpD,GAAqBJ,GAAev3F,GAAkBw3F,GAAkBC,GAAgBh4F,GAAsBC,GAAuBnmC,GAAW2mI,GAAa9D,GAhyC9rC,WACxB7kB,GAAc,SAEdj0F,GAAgB0wF,GAAexC,GAAiB,EAAMA,GAEtDluF,GAAgB43G,GAA4BvS,EAA8BlzH,GAAY87G,GAAsBoX,GAE5GsvC,GAA2BrvC,EAAiBswC,GAA2BwC,IAG/C,SAA6BwG,GACrD,IAAIn5Y,EAASm5Y,EAAQn5Y,OAEjBo5Y,EAAwBlK,GAAyBlvY,EAAO8/F,UAAW9/F,EAAOujS,aAC1EqtG,EAAgBwI,EAAsBxI,cACtCC,EAAeuI,EAAsBvI,aAGzCt2I,GAAgBk3G,GAAqB6I,GAAuB,EAAMA,GAElE//G,GAAgB63G,GAA0BlS,GAA4B2wC,EAAc3wC,IAEpF3lG,GAAgBixF,GAAoBhD,EAAsBooD,EAAepoD,IAG9C,SAAgC6wD,GAC3D,IAAIr5Y,EAASq5Y,EAAQr5Y,OAGjB4wY,EADyB1B,GAAyBlvY,EAAO8/F,UAAW9/F,EAAOujS,aACpCqtG,cAG3Cr2I,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnE//G,GAAgB0wF,GAAexC,GAAiB,EAAOA,GAEvDluF,GAAgB63G,GAA0BlS,QAA4B76W,EAAW66W,IAE7Eh2H,GAAalqO,EAAOujS,eACtBhpC,GAAgBixF,GAAoBhD,EAAsBooD,EAAepoD,GACzE55S,GAAQ7+C,SAIVwqQ,GAAgB43G,GAA4BvS,OAA8Bv6W,EAAWu6W,GAErFpR,QAAcnpW,GA6EQ,WACtBmpW,GAAc,SAEdj0F,GAAgB0wF,GAAexC,GAAiB,EAAMA,GAEtDluF,GAAgBq0G,GAAqBk7B,GAAuBp9J,GAAYgzH,GAAiBoqC,KAGpE,SAA0BvhZ,GAE/CgyQ,GAAgBk3G,GAAqB6I,GAAuB,EAAMA,GAClE//G,GAAgB9pB,GAAe+rH,EAAiBj0W,EAAOi0W,IAGnC,SAAyBj0W,GAE7CgyQ,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnE//G,GAAgB0wF,GAAexC,GAAiB,EAAOA,GAEvDluF,GAAgB9pB,GAAe+rH,EAAiBj0W,EAAOi0W,GACvD5tT,GAAQ7+C,QAERwqQ,GAAgBq0G,GAAqBk7B,QAAuBzkZ,EAAWykZ,KAQ9C,WACzBt7C,GAAc,MACd0kD,QAA2B7tZ,EAC3Bk1Q,GAAgB0wF,GAAexC,GAAiB,EAAMA,GACtDwqD,GAAsBvmK,GAAYgzH,IAGd,SAAyB45C,GAC7C,IAAIt5Y,EAASs5Y,EAAQt5Y,OAErBu6P,GAAgBk3G,GAAqB6I,GAAuB,EAAMA,GAClE64B,GAAgBnzY,IAGO,SAA4Bu5Y,GACnD,IAAIv5Y,EAASu5Y,EAAQv5Y,OAErBu6P,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnE//G,GAAgB0wF,GAAexC,GAAiB,EAAOA,IAEnDv+G,GAAalqO,EAAOujS,aAAe,GAAuB,IAAlBvjS,EAAOxJ,UACjD28Y,GAAgBnzY,GAChB4uC,GAAQ7+C,SAIVwqQ,GAAgBy3G,GAAqBrS,QAAuBt6W,EAAWs6W,IAEvEszC,QAAsB5tZ,GAGK,SAAgCm0Z,GAC3D,IAAIj2G,EAAci2G,EAAQx5Y,OAAOujS,YAE7Bs8D,IAAgBt8D,EAAcz5D,GAAaD,GAAY05D,KAC3D2vG,GAA2B3vG,EAC3BhpC,GAAgB0wF,GAAexC,GAAiB,EAAOA,IAimCu3CgrD,GAA2BI,GAAqBQ,GAh6Bx8C,WACtB7lD,GAAc,OAEdj0F,GAAgB0wF,GAAexC,GAAiB,EAAMA,GAlDtDwqD,GAAsBvmK,GAAYgzH,IAsDb,SAA0Bn3W,GAE/CgyQ,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnE46B,GAAY3sZ,IAGQ,SAAyBA,GAC7C2sZ,GAAY3sZ,GACZqmD,GAAQ7+C,QAERwqQ,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnE//G,GAAgB0wF,GAAexC,GAAiB,EAAOA,GAEvDwqD,QAAsB5tZ,GAOC,WACvBmpW,GAAc,OAEVykD,KACJ8B,GAAwBroK,GAAYgzH,GAEpCnlG,GAAgB0wF,GAAexC,GAAiB,EAAMA,KAG9B,SAA6BgxD,GACrD,IAAIz5Y,EAASy5Y,EAAQz5Y,OAEhB+0Y,KAELx6I,GAAgBk3G,GAAqB6I,GAAuB,EAAMA,GAClEm7B,GAAmBz1Y,KASE,SAA0B05Y,GAC/C,IAAI15Y,EAAS05Y,EAAQ15Y,OAEhB+0Y,KAELx6I,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnE//G,GAAgB0wF,GAAexC,GAAiB,EAAOA,GACvDgtD,GAAmBz1Y,GAEnBu6P,GAAgBy3G,GAAqBrS,QAAuBt6W,EAAWs6W,IACvEo1C,QAAwB1vZ,EACxBupD,GAAQ7+C,UAOQ,SAAqBlB,GACrC,IAAImgW,EAAqB5H,GAAwBv4V,EAAG05V,GAAWD,GAE/D,IAAIgkD,IAA6C59J,GAAkB85G,EAAqBwG,GAAxF,CACAR,GAAc,OAEdj0F,GAAgB0wF,GAAexC,GAAiB,EAAMA,GAEtDluF,GAAgBk3G,GAAqB6I,GAAuB,EAAMA,GAElEzrX,EAAE0tC,iBACF1tC,EAAE0qC,kBAEF,IAAI6c,EAAQmlS,GAAc1sV,EAAG,CAC3BitV,mBAAoBQ,KAElB9lV,EAAS,EAAI4/C,EAAQ,IAErBujW,EAAkBjtK,GAAYgzH,GAE9Bk6C,EAA2H,IAA/GzjZ,KAAKM,IAAIipW,EAAehpW,MAAQkzY,GAAkBlzY,MAAOgpW,EAAe/oW,OAASizY,GAAkBjzY,QAEnH,GAAIy0Y,IAAuC1pC,GAAwB,CACjE,IAAIm4C,EAAkBpK,GAAc/vC,EAAgBrD,EAAYG,GAEhE,GAAI2yC,MAAkB0K,GAAmBzjW,EAAQ,GAAKgyV,EAA0B,CAC9E7tI,GAAgB0wF,GAAexC,GAAiB,EAAOA,GAEvDluF,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnE,IAAIw/B,EAAelxK,GAAkB4zH,GAAkB5vH,GAAmB,CACxEj2O,OAAQ0lW,EAAW3lW,MACnBA,MAAO2lW,EAAW1lW,SACfi2O,GAAmByvH,GAGxB,GAAInuH,GAAUyrK,EAAiBG,GAAe,OAI9C,GAFA7wX,aAAa+rX,IAET9mK,GAAUt/L,GAAQrqC,MAAMo2C,KAAMm/V,GAAe,OAIjD,OAFAv/I,GAAgBi0G,GAAe9O,EAAiBo6C,EAAcp6C,QAC9D9wT,GAAQ7+C,SAMZ,IAAI27B,EAAS8hN,GAAWkyH,GAIxB,GAFqC0sC,IAA+D,cAAzBgC,IAErCh4V,EAAQ,IAAMwjW,EAAW,CAC7D,IAAIG,EAAkBxvK,GAAeV,GAAYmlH,GAAqBxG,GAClEwxD,EAAsB7jZ,KAAKM,IAAI+xV,EAAoB9xV,MAAQgpW,EAAehpW,MAAO8xV,EAAoB7xV,OAAS+oW,EAAe/oW,QAE7HsjZ,EAAyBvsK,GAAYhB,GAAY87G,GAAsB,KAC3E98T,EAASgjN,GAAkBurK,EAAwBjrD,GAAsB1kH,GAAUoC,GAAYgzH,GAAiBj1H,GAAesvK,EAAiB,EAAIC,IAAwBtuX,EAG9K,IAAIwuX,EAAcxsK,GAAYhB,GAAYgzH,GAAiBlpW,EAAQk1B,GAanE,GAXKwgN,GAAay9J,EAA2B,GAAIuQ,KAE/CA,EAAc3sK,GAAqBC,GAAW0sK,GAAcvQ,EAA2B,KAGpFz9J,GAAaguK,EAAavQ,EAA2B,MAExDuQ,EAAc3sK,GAAqBC,GAAW0sK,GAAcvQ,EAA2B,KAIrFz7J,GAAUyrK,EAAiBO,EAAa1wK,IAI1C,OAHA+wB,GAAgB0wF,GAAexC,GAAiB,EAAOA,QAEvDluF,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAKrE//G,GAAgBi0G,GAAe9O,EAAiB3wH,GAAUmrK,GAAa,SAAUzqZ,GAC/E,OAAO+5O,GAAa/5O,EAAG,MACrBiwW,GAEJnlG,GAAgB0wF,GAAexC,GAAiB,EAAOA,GAEvDluF,GAAgBk3G,GAAqB6I,GAAuB,EAAOA,GAEnErxV,aAAa+rX,IACbA,GAAuBvwZ,YAAW,WAChCmqD,GAAQ7+C,UACP,OA2vBymD2lZ,GAAsBC,GAAiBC,GAAgBC,GAAqBY,GAAsBQ,GAAcG,GAAc5J,GAtoDjuD,OAsoD+vDpqI,GAAQ0nI,GAAoCI,GAAqCE,GAAqCE,GAAuCE,GAAyBI,GAAqBE,GAAwBE,GAA0BE,GAAyBE,GAAoCE,GAA0CE,GAAgCE,GAA4BE,GAA6BE,GAAgCE,GAA8BE,GAAyBE,GAAwBE,GAAkCI,GAAiCE,GAAqBE,GAA6BE,GAAyBE,GAAqBE,GAAsBI,GAAiBG,GAA4BG,GAA4BmG,GAAuC1M,EAAeY,EAAuBD,EAAsBH,EAAwBC,EAA0BjB,EAA4B/sB,EAAsBD,EAAsBytB,EAAiBJ,EAA0BC,EAAqBF,EAA2BG,EAAoBJ,EAA4BoB,EAAevnF,EAAas7C,EAAMmsC,EAAuBhqC,EAAcF,EAAiC7W,EAAgBoX,EAAgB4pC,EAAkB/pC,EAAgB+X,EAAc1X,EAAqBH,EAA6BpX,EAAqBF,EAAY+T,EAAYqF,GAAwBkoC,GAAmBK,GAAsBC,GAA6B5tC,GAAaC,GAAae,GAtjB/yG,SAA2B9wV,GACzBgxP,GAAOjyQ,KAAK3D,KAAMq1S,EAAQzwR,IAGP,SAAwB2tY,GAC3C,IAAIn6Y,EAASm6Y,EAAQn6Y,OACrB,OAAOk9R,EAAa,EAAGi6G,GAAoBn3Y,IAG7C,SAAsBs6S,GACpB58C,GAAkB48C,EAAU,UAAY,SAAQ,WAE9Cpd,EAAa,EADb85G,GAAW18F,OAKe,SAAiCzrT,GAC7D,OAAOs4V,GAA2Bt4V,IAGpC,SAA2BtG,GAEzB20S,EAAa,GADbhjS,GAAO3R,IAIT,SAAyBikB,GACvBgxP,GAAOjyQ,KAAK3D,KAAMq1S,EAAQzwR,KA+hB9B,IAgcI4tY,GAAe,CACjBl3N,KAAM,CAAC,OAjce,SAAUm3N,GAChC7sS,GAAU8sS,EAAMD,GAEhB,IAAIE,EAAW35K,GAAa05K,GAE5B,SAASA,EAAK5vZ,GACZ,IAAI8vZ,EA2CJ,OAzCA1tS,GAAgBllH,KAAM0yZ,GAGtB5nS,GAAKjE,GADL+rS,EAAUD,EAAShvZ,KAAK3D,OACc8C,EAASo9Y,GAAYL,GAAmBvuI,GAAgB,CAC5FptQ,KAAM,GACN2xT,SAAU,EACVr6C,OAAQ,GACRwnI,8BAA+B,EAC/BE,mCAAoC,IACpCI,oCAAqC,IACrCE,oCAAqC,IACrCE,sCAAuC,IACvCE,wBAAyB,IACzBE,eAAgB,EAChBE,oBAAqB,IACrBE,uBAAwB,IACxBE,yBAA0B,IAC1BE,wBAAyB,IACzBE,mCAAoC,IACpCE,yCAA0C,IAC1CE,+BAAgC,IAChCE,2BAA4B,IAC5BE,4BAA6B,IAC7BE,+BAAgC,IAChCE,6BAA8B,IAC9BE,wBAAyB,IACzBE,uBAAwB,IACxBE,iCAAkC,IAClCE,uBAAwB,GACxBE,gCAAiC,IACjCE,oBAAqB,IACrBE,4BAA6B,IAC7BE,wBAAyB,IACzBE,oBAAqB,IACrBE,qBAAsB,IACtBE,kBAAmB,EACnBE,gBAAiB,IACjB7lT,OAAQ,EACRgmT,2BAA4B,IAC5BG,2BAA4B,KAC3B,KAAM,EAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChC0L,EA2YT,OAxYAptS,GAAaktS,EAAM,CAAC,CAClB70Z,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAEpB,CACDpR,IAAK,WACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAaq0S,GAChB71T,KAAK86Q,MAAM,CACT+6C,SAAUA,IAEZ9tO,OAED,CACDlqF,IAAK,SACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAag6P,GAChBx7Q,KAAK86Q,MAAM,CACTU,OAAQA,IAEVzzL,OAED,CACDlqF,IAAK,gCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAawhY,GAChBhjZ,KAAK86Q,MAAM,CACTkoI,8BAA+BA,IAEjCj7T,OAED,CACDlqF,IAAK,qCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa0hY,GAChBljZ,KAAK86Q,MAAM,CACTooI,mCAAoCA,IAEtCn7T,OAED,CACDlqF,IAAK,sCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa8hY,GAChBtjZ,KAAK86Q,MAAM,CACTwoI,oCAAqCA,IAEvCv7T,OAED,CACDlqF,IAAK,sCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAagiY,GAChBxjZ,KAAK86Q,MAAM,CACT0oI,oCAAqCA,IAEvCz7T,OAED,CACDlqF,IAAK,wCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAakiY,GAChB1jZ,KAAK86Q,MAAM,CACT4oI,sCAAuCA,IAEzC37T,OAED,CACDlqF,IAAK,0BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaoiY,GAChB5jZ,KAAK86Q,MAAM,CACT8oI,wBAAyBA,IAE3B77T,OAED,CACDlqF,IAAK,iBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAasiY,GAChB9jZ,KAAK86Q,MAAM,CACTgpI,eAAgBA,IAElB/7T,OAED,CACDlqF,IAAK,sBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAawiY,GAChBhkZ,KAAK86Q,MAAM,CACTkpI,oBAAqBA,IAEvBj8T,OAED,CACDlqF,IAAK,yBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa0iY,GAChBlkZ,KAAK86Q,MAAM,CACTopI,uBAAwBA,IAE1Bn8T,OAED,CACDlqF,IAAK,2BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa4iY,GAChBpkZ,KAAK86Q,MAAM,CACTspI,yBAA0BA,IAE5Br8T,OAED,CACDlqF,IAAK,0BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa8iY,GAChBtkZ,KAAK86Q,MAAM,CACTwpI,wBAAyBA,IAE3Bv8T,OAED,CACDlqF,IAAK,qCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAagjY,GAChBxkZ,KAAK86Q,MAAM,CACT0pI,mCAAoCA,IAEtCz8T,OAED,CACDlqF,IAAK,2CACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAakjY,GAChB1kZ,KAAK86Q,MAAM,CACT4pI,yCAA0CA,IAE5C38T,OAED,CACDlqF,IAAK,iCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaojY,GAChB5kZ,KAAK86Q,MAAM,CACT8pI,+BAAgCA,IAElC78T,OAED,CACDlqF,IAAK,6BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAasjY,GAChB9kZ,KAAK86Q,MAAM,CACTgqI,2BAA4BA,IAE9B/8T,OAED,CACDlqF,IAAK,8BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAawjY,GAChBhlZ,KAAK86Q,MAAM,CACTkqI,4BAA6BA,IAE/Bj9T,OAED,CACDlqF,IAAK,iCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa0jY,GAChBllZ,KAAK86Q,MAAM,CACToqI,+BAAgCA,IAElCn9T,OAED,CACDlqF,IAAK,+BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa4jY,GAChBplZ,KAAK86Q,MAAM,CACTsqI,6BAA8BA,IAEhCr9T,OAED,CACDlqF,IAAK,0BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa8jY,GAChBtlZ,KAAK86Q,MAAM,CACTwqI,wBAAyBA,IAE3Bv9T,OAED,CACDlqF,IAAK,yBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAagkY,GAChBxlZ,KAAK86Q,MAAM,CACT0qI,uBAAwBA,IAE1Bz9T,OAED,CACDlqF,IAAK,mCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAakkY,GAChB1lZ,KAAK86Q,MAAM,CACT4qI,iCAAkCA,IAEpC39T,OAED,CACDlqF,IAAK,yBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaokY,GAChB5lZ,KAAK86Q,MAAM,CACT8qI,uBAAwBA,IAE1B79T,OAED,CACDlqF,IAAK,kCACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaskY,GAChB9lZ,KAAK86Q,MAAM,CACTgrI,gCAAiCA,IAEnC/9T,OAED,CACDlqF,IAAK,sBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAawkY,GAChBhmZ,KAAK86Q,MAAM,CACTkrI,oBAAqBA,IAEvBj+T,OAED,CACDlqF,IAAK,8BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa0kY,GAChBlmZ,KAAK86Q,MAAM,CACTorI,4BAA6BA,IAE/Bn+T,OAED,CACDlqF,IAAK,0BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa4kY,GAChBpmZ,KAAK86Q,MAAM,CACTsrI,wBAAyBA,IAE3Br+T,OAED,CACDlqF,IAAK,sBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa8kY,GAChBtmZ,KAAK86Q,MAAM,CACTwrI,oBAAqBA,IAEvBv+T,OAED,CACDlqF,IAAK,uBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaglY,GAChBxmZ,KAAK86Q,MAAM,CACT0rI,qBAAsBA,IAExBz+T,OAED,CACDlqF,IAAK,oBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAaklY,GAChB1mZ,KAAK86Q,MAAM,CACT4rI,kBAAmBA,IAErB3+T,OAED,CACDlqF,IAAK,kBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaolY,GAChB5mZ,KAAK86Q,MAAM,CACT8rI,gBAAiBA,IAEnB7+T,OAED,CACDlqF,IAAK,SACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAau/E,GAChB/gG,KAAK86Q,MAAM,CACT/5K,OAAQA,IAEVhZ,OAED,CACDlqF,IAAK,6BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAaulY,GAChB/mZ,KAAK86Q,MAAM,CACTisI,2BAA4BA,IAE9Bh/T,OAED,CACDlqF,IAAK,6BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAErBuS,IAAK,SAAa0lY,GAChBlnZ,KAAK86Q,MAAM,CACTosI,2BAA4BA,IAE9Bn/T,SAIG2qU,EA5be,CA6btB93I,MAyhH0B,CAAC,IAAK,IAAK,IAAK,UAAU3/P,KAAI,SAAU9I,GAClE,MAAO,CACLA,IAAKA,EACL0gZ,QAAS,IAAI/pZ,OAAO,IAAI3G,OAAOgQ,EAAK,KAAM,KAC1C2gZ,SAAU,IAAIhqZ,OAAO,KAAK3G,OAAOgQ,EAAK,KAAM,KAC5C4gZ,gBAAiB,IAAIjqZ,OAAO,MAAM3G,OAAOgQ,EAAK,QAAS,KACvD6gZ,iBAAkB,IAAIlqZ,OAAO,MAAM3G,OAAOgQ,EAAK,QAAS,SA8onB5D,IAkUI8gZ,GAAY,kLACZC,GAAa,qGACbC,GAAgB,CAElBphB,WAAY,QACZqhB,aAAc,UACdC,UAAW,OACXC,UAAW,OACXC,UAAW,OACX5yB,WAAY,QACZb,kBAAmB,2CAEnB0L,WAAY,QACZgoB,WAAY,QACZpmB,UAAW,OACXE,YAAa,SACbI,YAAa,SACb+lB,WAAY,QACZjmB,YAAa,SAEbhqD,kBAAmB,gBAEnBkwE,oBAAqB,cACrBC,eAAgB,QAChBC,qBAAsB,eACtBC,gBAAiB,SACjBC,qBAAsB,eACtBC,eAAgB,QAChBC,oBAAqB,cAErBC,kBAAmB,SACnBlzB,gBAAiB,OACjBE,gBAAiB,OACjBJ,kBAAmB,SACnBQ,kBAAmB,OAEnB/3B,UAAW,OACXC,YAAa,UACbH,aAAc,WACdR,aAAc,cACdC,gBAAiB,cACjBW,WAAY,6EACZH,YAAa,oEAEb2B,iBAAkB,oPAClB41B,gBAAiBqyB,GACjBnyB,iBAAkB,mRAClBE,eAAgB,mOAChBE,eAAgB,qOAChBI,iBAAkB,wGAElBf,uBAAwB,QACxBC,sBAAuByyB,GAEvBtzC,oBAAqB,oBACrBC,uBAAwB,uDACxBI,uBAAwB,0BACxBC,oBAAqB,wBACrBF,qBAAsB,sBACtBQ,uBAAwB,2BACxBD,wBAAyB,yBACzBD,sBAAuB,0BACvBD,uBAAwB,yBAmOtB8zC,IAzNkC,GAAG/xZ,OAAO+wZ,IACT,+FAA6G/wZ,OAAO+wZ,IACrH,8JAAwL/wZ,OAAO+wZ,IAuNjN,SAAuB3yY,EAAaujB,GACtD,IAAIo4M,EAAc12O,OAAO01I,0BAA0B36H,GACnD/a,OAAOC,KAAKy2O,GAAav+O,SAAQ,SAAUE,GAEnCq+O,EAAYr+O,GAAU,IAC1B2H,OAAOqY,eAAeimB,EAAQjmC,EAAK,CACjC4jB,IAAK,WACH,OAAOlB,EAAY1iB,IAErB2jB,IAAK,SAAa7gB,GAChB,OAAO4f,EAAY1iB,GAAO8C,KAK9BmjC,EAAOjmC,GAAO0iB,EAAY1iB,QAS5Bs2Z,GAAiB,SAAwBnvZ,GAC3C,IAAI04Q,EAAY,GAEZ02I,EAAW79J,KACX19O,EAAMu7Y,EAASv7Y,IACf49O,EAAM29J,EAAS39J,IARZv3O,MAAoC,OAArBtW,SAASgtM,SAWZxpM,QAAQC,KAAK,+EAEhC,IAAIgoZ,EAAOtmI,KACXmmI,GAAcG,EAAM32I,GAEpB,IAAI5nQ,EAz/gCiB,SAA0B9Q,EAAQw2Q,GACvD,IAAIkC,EAAY,GAEZ42I,EAAY,IAAIppV,IAEhBqpV,EAAS,IAAIpxB,GAAG,CAClBn+X,OAAQA,EACRuN,MAAO,CACLipQ,OAAQA,EACRmoG,iBAAkB1hX,MAAM4sB,KAAK80V,OAI7Bl6J,GAAc,EAEdvlM,EAAU,SAASA,IACjBulM,IACAvqM,MAAaxU,OAAO6Z,oBAAoB,WAAYL,GACnDqwY,IACL9qM,GAAc,EACd8qM,EAAO7gO,cAQT,SAAS8gO,EAAcnvZ,EAAM1E,GAE3B,OAAI2zZ,EAAU7yY,IAAIpc,KAAU1E,IAE5B2zZ,EAAU9yY,IAAInc,EAAM1E,IACb,GATJuiY,KAAaA,GAAc,IAAI/3T,IAAI8tP,GAA0BkqE,IAAIz9X,QAAO,SAAUL,GACrF,OAAQq+X,GAAiBrlX,SAAShZ,QAWpC69X,GAAYvlY,SAAQ,SAAU0H,GAC5BG,OAAOqY,eAAe6/P,EAAWr4Q,EAAM,CACrCoc,IAAK,WACH,OAAO8yY,EAAOlvZ,IAEhBmc,IAAK,GAAWnD,SAAShZ,GACzB,SAAU1E,GACJ6zZ,EAAcnvZ,EAAM1E,KACxB4zZ,EAAOlvZ,GAAQ,GAAc,GAAc,GAAIkvZ,EAAOlvZ,IAAQ1E,KAEhE,SAAUA,GACJ6zZ,EAAcnvZ,EAAM1E,KACxB4zZ,EAAOlvZ,GAAQ1E,SAKrB6E,OAAOqY,eAAe6/P,EAAW,mBAAoB,CACnDj8P,IAAK,WACH,OAAO8yY,EAAOniC,uBAIlBuR,GAAYhmY,SAAQ,SAAU0H,GAC5B,IAAIypD,EAAU80U,GAAcv+X,GACxBmM,EAASs9C,EAAQ,GAErBtpD,OAAOqY,eAAe6/P,EAAWr4Q,EAAM,CACrCoc,IAAK,WACH,OAAO8yY,EAAOzwC,gBAAgBtyW,GAAQnM,IAExCmc,IAAK,SAAa7gB,GAChB,IAAI6zZ,EAAcnvZ,EAAM1E,GAAxB,CACA,IAAIwL,EAAO2iD,EAAQ91C,QAAO,SAAUo4B,EAAM5/B,GAExC,OADA4/B,EAAK5/B,GAAU,GAAc,GAAc,GAAI+iZ,EAAO1wC,cAAcryW,IAAU,GAAI,GAAgB,GAAInM,EAAM1E,IACrGywC,IACN,IACHmjX,EAAO1wC,cAAgB,GAAc,GAAc,GAAI0wC,EAAO1wC,eAAgB13W,UAKpF3G,OAAOqY,eAAe6/P,EAAW,UAAW,CAC1Cj8P,IAAK,WACH,OAAO8yY,EAAOjiZ,MAEhBkP,IAAK,eAKP,IAAIwlC,EAAUutW,EAAOvtW,QAsErB,OArEAy3N,GAAcf,EAAW,CACvBj5P,GAAI,SAAYG,EAAOlQ,GAErB,GAAI+0M,EAAa,OAAO,aAGxB,GAAI,gCAAgCvgN,KAAK0b,GAAQ,OAAOoiC,EAAQviC,GAAGG,EAAOlQ,GAE1E,IAAIg7Q,EAAS,CAAC6kI,EAAO17Y,IAAI+L,EAAOlQ,GAAK6/Y,EAAOnsO,IAAIxjK,GAAO,SAAU3d,GAC/D,OAAOyN,EAAGzN,aAAakR,cAAgBlR,EAAEmR,YAAS3a,EAAYwJ,OAC5DvB,OAAO2iH,SAEX,OAAO,WACL,OAAOqnK,EAAO/xR,SAAQ,SAAU4zQ,GAC9B,OAAOA,SAIbkjJ,mBAAoB,SAA4B1gZ,GAC9CwgZ,EAAOhxC,gBAAkBxvW,GAE3B0zG,MAAO,WACL,OAAQgiG,GAAe8qM,EAAO99J,IAAI,UAEpCvyO,QAASA,IAEX1e,OAAOqY,eAAe6/P,EAAW,UAAW,CAC1Cj8P,IAAK,WACH,MAAO,CACLkzW,KAAM,WACJ,OAAO3tU,EAAQ2tU,QAEjBE,KAAM,WACJ,OAAO7tU,EAAQ6tU,QAEjBzqW,OAAQ,WACN,OAAO48B,EAAQ58B,UAEjB3I,IAAK,WACH,OAAOulC,EAAQvlC,OAEjBizY,aAAc,WAEZ,OADc1tW,EAAQvlC,MACP3C,OAAO,EAAGkoC,EAAQtrC,MAAQ,IAE3C8F,IAAK,SAAag9B,GAChB,OAAOwI,EAAQxlC,IAAIg9B,IAErBr2C,MAAO,SAAewU,GACpB,OAAOqqC,EAAQ7+C,MAAMwU,IAGnBva,aACF,OAAO4kD,EAAQ5kD,UAGbsZ,YACF,OAAOsrC,EAAQtrC,OAGbA,UAAMA,GACRsrC,EAAQtrC,MAAQA,OAOpBwD,MAAaxU,OAAOxM,iBAAiB,WAAYgmB,GAC9Cw5P,EA41gCIi3I,CAAiB3vZ,EAAQqvZ,EAAK74I,QACzC04I,GAAcp+Y,EAAM4nQ,GAEpB,IAAIgS,EAAS,CAAC,YAAa,eAAgB,oBAAqB,kBAAkBz0Q,KAAI,SAAU2J,GAC9F,OAAO9O,EAAK2O,GAAGG,GAAO,SAAU3d,GAE9B,IAAIkuJ,EAAWk/P,EAAKzvY,GAAO3d,GAAKA,EAAEmR,QAC9B+8I,aAAoB56J,SAAS46J,EAASn6I,MAAM8/N,UAIhDr8G,EAAY,SAAmB75G,EAAOlQ,GACxC,IAAIkgZ,EAAY/7Y,EAAI+L,EAAOlQ,GACvBmgZ,EAAYR,EAAK5vY,GAAGG,EAAOlQ,GAC3BogZ,EAAYh/Y,EAAK2O,GAAGG,EAAOlQ,GAC/B,OAAO,WACLkgZ,IACAC,IACAC,MAKJp3I,EAAUq3I,YAAcj6K,GACxB,IAAIk6K,EAAoBnxB,GAAa5oX,KAAI,SAAU3P,GACjD,OAAOmzH,EAAUnzH,GAAM,SAAU8tB,GAC/B,OAAOskP,EAAUq3I,YAAYzpZ,EAAM8tB,SA2CvC,OAvCAqlP,GAAcf,EAAW,CACvBj5P,GAAIg6G,EACJw2R,YAAa,SAAqBlhZ,GAChC,OAAO,IAAIxZ,SAAQ,SAAUC,EAASC,GAEpC,IAAIy6Z,EAAgBx3I,EAAU12N,QAAQvlC,MAClC0zY,EAAqBz3I,EAAU12N,QAAQtrC,MAEvC05Y,EAAc13I,EAAUtnC,WAE5Bi+K,EAAKpnW,UAAUl5C,GAAKxV,MAAK,SAAU66B,GAEjCskP,EAAU12N,QAAQxlC,IAAI0zY,GACtBx3I,EAAU12N,QAAQtrC,MAAQy5Y,EAE1Bz3I,EAAUtnC,WAAag/K,EAEvB56Z,EAAQ4+B,MACPpe,MAAMvgB,OAGbgtH,MAAO,WACLgvI,EAAI,UAENvyO,QAAS,WAEP,GAAG/hB,OAAO,GAAmButR,GAAS,GAAmBslI,IAAoBr3Z,SAAQ,SAAU4zQ,GAC7F,OAAOA,OAGTz7P,EAAKoO,UACLmwY,EAAKnwY,UAELuyO,EAAI,cAGR55P,YAAW,WACT,OAAO45P,EAAI,OAAQinB,KAClB,GACIA,GA4EL23I,IA7D4Bn2Y,MA8CC5C,YAehB27P,GAAQrvQ,UACrB0sZ,GAAWr9I,GAAQvtQ,OAEvB,SAAS4vQ,GAAgBrrQ,GACvB,IAAIX,EACA2qJ,EACAiiC,EACAkhC,EAIJ,OAHAi6C,GAEApnQ,EAAI,KACG,CACLvO,EAAG,WACD4N,EAAI+rI,KAEJv8H,GADAm7I,EAAM,GAAQ,OACJ,QAEVhqJ,EAAI,IACJ6O,GAAKm7I,EAAK,aAAc,QACxBn7I,GAAKm7I,EAAK,aAAc,WACxBn7I,GAAKm7I,EAAK,OAAQ,UAClBn7I,GAAKm7I,EAAK,WAAY,MACtB86G,GAAU96G,EAAK,iBAAkB,GACjC86G,GAAU96G,EAAK,wBAEfhqJ,EAAI,IACJ8kQ,GAAU96G,EAAK,UAEfhqJ,EAAI,IACJ8kQ,GAAU96G,EAAK,SAEfhqJ,EAAI,KAENmgD,EAAG,SAAWpqD,EAAQk0G,GACpB+nD,GAAOj8J,EAAQsJ,EAAG4qG,GAClB+nD,GAAOj8J,EAAQi0J,EAAK//C,GAGpBjqG,EAAI,IAAIgqJ,GAEHiiC,IACHkhC,EAAU,CAAC53K,GAAO8wW,GAAU,UAE5BrmZ,EAAI,KAAMu1C,GAAO8wW,GAAU,oBAE3BrmZ,EAAI,KAAMu1C,GAAO8wW,GAAU,SAE3BrmZ,EAAI,KAAMu1C,GAAO6wW,GAAWt2X,KAAM,WAAW,WACvCsyO,IAEJpiQ,EAAI,IAEJA,EAAI,QAEJA,EAAI,IAEJA,EAAI,KAAK/M,MAAMlC,KAAMiB,cACnBujD,GAAO6wW,GAAWt2X,KAAM,YAAY,WAClCsyO,GAEJpiQ,EAAI,IAEJA,EAAI,OAEJA,EAAI,IAEJA,EAAI,KAAK/M,MAAMlC,KAAMiB,cACnBujD,GAAO6wW,GAAWt2X,KAAM,UAE5B9vB,EAAI,IAAKu1C,GAAOy0G,EAAK,QAErBhqJ,EAAI,IAAK,CACPq2C,SAAS,KAEX41I,GAAU,IAGd3qL,EAAG,SAAWmkT,EAASxnI,GACrBj+K,EAAMylT,EAIN,GAFIxnI,EAAM,IAGRpvK,GAAKm7I,EAAK,QAEVhqJ,EAAI,IAKN,GAFIi+K,EAAM,IAGR6mF,GAAU96G,EAAK,wBAEfhqJ,EAAI,IAKN,IAFIi+K,EAAM,IAGR6mF,GAAU96G,EAAK,UAEfhqJ,EAAI,IAKN,GAFIi+K,EAAM,IAGR6mF,GAAU96G,EAAK,SAEfhqJ,EAAI,KAGRxH,EAAG,GACH8a,EAAG,GACH0sC,EAAG,SAAWmrN,GACRA,GAAWx5G,GAAOtyJ,GAClB8rQ,GAAWx5G,GAAO3H,GAGtBhqJ,EAAI,IAAI,MACRisL,GAAU,EACVk2E,GAAQh1C,KAKd,IAAIm5L,GAAkB,mBAEtB,SAASt2Z,GAASo2S,EAAQx6B,EAASy6B,GACjC,IAAI/yR,EACAizY,EACAC,EACAz7F,EACA07F,EACAC,EACAr3Y,EACAs3Y,EACAr7F,EACAvmT,EAAWyhQ,KACXnjQ,EAAOuoQ,EAAQvoQ,KACfujZ,EAAwBh7I,EAAQi7I,oBAChCA,OAAgD,IAA1BD,GAA0CA,EAChEE,EAAwBl7I,EAAQm7I,0BAChCA,OAAsD,IAA1BD,GAA0CA,EACtEE,EAAwBp7I,EAAQq7I,6BAChCA,OAAyD,IAA1BD,GAA0CA,EACzEE,EAAwBt7I,EAAQu7I,sBAChCA,OAAkD,IAA1BD,GAA2CA,EACnEE,EAAmBx7I,EAAQj4F,MAC3BiyB,OAA6B,IAArBwhN,OAA8B54Z,EAAY44Z,EAClDn/Y,GAAS,EACTo/Y,GAAS,EACTC,GAAU,EACV1wQ,EAAM3mI,MAAetW,SAASg5C,gBAC9B7iB,EAAO7f,MAAetW,SAASm2B,KAC/B+lD,EAAO5lE,MAAetW,SAASk8E,KAC/BjyE,EAAUgO,GAAO,EAAG,CACtBghE,UAAW,KACX1zE,QAAS,KAEXujQ,GAAoB2jC,EAAQxiS,GAAS,SAAUlS,GAC7C,OAAO20S,EAAa,GAAIilB,EAAW55T,MAGrC,IA+HI61Z,EAoEAC,EAEAC,EArMAC,EAAe9jZ,EAAQ4rH,WAAU,SAAUl8G,GACzCg0Y,GAAWh0Y,GAAK,GAClB+yR,EAAa,GAAIihH,GAAU,GAE3BjhH,EAAa,EAAGp+R,GAAS,GACzBlD,EAAS,SACAsiZ,GAAU/zY,GAAK,IACxB+yR,EAAa,GAAIghH,GAAS,GAE1BhhH,EAAa,EAAGp+R,GAAS,GACzBlD,EAAS,YAGT4iZ,GAAuB,EACvBC,OAAmBp5Z,EACnBq5Z,OAAgBr5Z,EAChBs5Z,OAAgBt5Z,EAEhBu5Z,EAAqB,WACvB,OAAOpuZ,SAASoyC,cAAc,wBAG5Bi8W,EAAmB,WACrB,OAAOh1Z,MAAM4sB,KAAKjmB,SAASmjD,iBAAiB,4BAqE1CmrW,EAA2B,SAAS/0Z,OAAOozZ,GAAiB,aAAapzZ,OAAOozZ,GAAiB,UAAUpzZ,OAAOozZ,GAAiB,WAAWpzZ,OAAOozZ,GAAiB,mBAEtK4B,EAAsB,SAA6B1kZ,GACrD,MAAqB,UAAjBA,EAAQnH,KAAyBrJ,MAAM4sB,KAAKvc,EAAKy5C,iBAAiB,eAAgB5pD,OAAOsQ,EAAQvO,KAAM,QACpG,CAACuO,IAkGN8gX,EAAe,EAIf6jC,OAAuB35Z,EAEvB45Z,EAAsB,WAEpBX,IAEJA,EAAiB,GAAE,MAAO,CACxB3yY,MAAO,sCAETgb,EAAKhC,OAAO25X,KAGdthJ,IAAQ,WAEDghJ,GAAuB9jZ,EAAK61G,QAE5B+tS,GAAiC,MAEtCmB,OAEF/hJ,IAAY,WAELohJ,IAELphH,EAAa,GAAI8hH,EAAuBV,EAAelxY,cAEvDkxY,EAAe1tZ,SACf0tZ,OAAiBj5Z,MAKnB,IAAI65Z,OAAgB75Z,EAEhB85Z,EAAa,WACf,OAAO1xQ,EAAI9hI,MAAM8gJ,YAAY,4BAA6B,GAAG1iK,OAAOuI,OAAO0qH,YAAa,QAkH1F,OAzFAogJ,IAAU,WAER3vH,EAAIn0G,UAAU1oC,OAAO,wBAErB2tZ,OAcFthH,EAAOv6B,MAAQ,SAAUD,GACnB,SAAUA,GAASy6B,EAAa,EAAGhjS,EAAOuoQ,EAAQvoQ,MAClD,wBAAyBuoQ,GAASy6B,EAAa,GAAIwgH,EAAsBj7I,EAAQi7I,qBACjF,8BAA+Bj7I,GAASy6B,EAAa,GAAI0gH,EAA4Bn7I,EAAQm7I,2BAC7F,iCAAkCn7I,GAASy6B,EAAa,GAAI4gH,EAA+Br7I,EAAQq7I,8BACnG,0BAA2Br7I,GAASy6B,EAAa,GAAI8gH,EAAwBv7I,EAAQu7I,uBACrF,UAAWv7I,GAASy6B,EAAa,GAAIzgG,EAAQgmE,EAAQj4F,QAG3DyyH,EAAO1jC,GAAGxhL,OAAS,WAGjB,UAFIklN,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAI/yR,EAAIg0Y,GAAWD,EAAS/7F,EAAWrjT,EAAS,EAAI,GAKnE,MAFIm+R,EAAO1jC,GAAGzkF,MAAM,KAGlBsoO,EAAgB,2DAA6DM,EAAsB,mCAAqC,KAK1I,SAFIzgH,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAImgH,GAAYc,IAAYr/Y,IAAWo/Y,GAKtD,GAFIjhH,EAAO1jC,GAAGzkF,MAAM,KAGb0pO,GAAsBthH,EAAa,GAAImhH,EAAuBljC,IAKrE,UAFIl+E,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAG0kB,EAAez3S,GAKjC,SAFI8yR,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAGogH,EAAc,GAAGvzZ,OAAOs0Z,EAAsB,OAKhE,SAFIphH,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAGqgH,EAAiBltZ,GAAS2uZ,GAAwB,yBAAyBj1Z,OAAOi1Z,EAAuB7jC,EAAe,EAAI,QAAK91X,GAKnJ,OAFI43S,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,EAAGh3R,EAAYw0S,GAAU,CAAC,iBAAkB,eAAgBj+G,KAK3E,MAFIwgG,EAAO1jC,GAAGzkF,MAAM,IAGlBooH,EAAa,GAAIsgH,EAA2BI,GAA6B,MAAW,MAAM9sZ,KAAKS,UAAUC,YAK3G,UAFIyrS,EAAO1jC,GAAGzkF,MAAM,IAGlB0oO,GA3GqB,SAA4BH,GAC/CA,GACF6B,EAAgB5sZ,OAAO0iH,QAEvBy4B,EAAIn0G,UAAUptB,IAAI,uBAElBizY,IAEA7sZ,OAAOxM,iBAAiB,SAAUq5Z,KAGlC7sZ,OAAO6Z,oBAAoB,SAAUgzY,GAErC1xQ,EAAIn0G,UAAU1oC,OAAO,uBACrBP,GAAS6uZ,IAAkB5sZ,OAAO6iH,SAAS,EAAG+pS,GAC9CA,OAAgB75Z,GA4FY+5Z,CAAmB/B,IAI5C,CAACnjZ,EAAM4E,EAAQ0/Y,EAAsBrjC,EAAcj1W,EAAWq3Y,EAAgBD,EAAa17F,EAAcnnT,EAxPhG,SAAmB5L,GACjC,GAAc,QAAVA,EAAEpJ,IAAN,CACA,IAMI45Z,EANAl1W,EAAgB35C,SAAS25C,cAEzB+2E,EAAoBhnH,EAAKy5C,iBAAiBmrW,GAC1CQ,EAAyBP,EAAoB79R,EAAkB,IAC/Dq+R,EAAwBR,EAAoB79R,EAAkBA,EAAkBl3H,OAAS,IAIzF6E,EAAEyyH,UAAYg+R,EAAuBr5Y,SAASkkC,GAChDk1W,EAAmBE,EAAsB,IAC/B1wZ,EAAEyyH,UAAYi+R,EAAsBt5Y,SAASkkC,KACvDk1W,EAAmBC,EAAuB,IAIvCD,IAELA,EAAiBtvS,QAEjBlhH,EAAE0tC,oBASgB,SAAuB1tC,GAEpCg6T,GAAYh6T,EAAEjC,UAEnBswS,EAAa,EAAGshH,GAAuB,GACvCJ,EAAsBjjC,IAGH,SAAwBtsX,GAE3C,GAAKg6T,GAAYh6T,EAAEjC,QAInB,GAFAq8B,kBAfEu2X,GAiBEpB,IAAwBjjC,EAC1Bj+E,EAAa,EAAGshH,GAAuB,OAEvC,CACE,IAAIiB,EAAsBtkC,EASDrqX,EARjB,WACN,OAAOqqX,IAAiBskC,GAOKnjZ,EAN5B,WACD,OAAO4gS,EAAa,EAAGshH,GAAuB,IAepDtoW,uBATY,SAAS4kO,IACfhqR,IACFwL,IAIF45C,sBAAsB4kO,MAPZ,IAAiBhqR,EAAMwL,GAiBnB,SAAqBzN,GACjCA,EAAEjC,QAAU,eAAekE,KAAKjC,EAAEjC,OAAOsZ,YAAYrX,EAAE0tC,kBAI7C,SAAmB1tC,GAEjC,IAAIpJ,EAAMoJ,EAAEpJ,IAEZ,GAAK,UAAUqL,KAAKrL,GAApB,CAEA,IAAIktH,EAAgB9jH,EAAEjC,OACtB,IAAI+lH,IAAiB,kBAAkB7hH,KAAK6hH,EAAcvoE,UAA1D,CAEA,IAAIs1W,EAASlvZ,SAASmjD,iBAAiB,iBACnC+rW,EAAOA,EAAO11Z,OAAS,KAAOkQ,GAElC0B,EAAS,YA6JgLqjZ,EAAqBvB,EAAqBE,EAA2BE,EAA8BE,EAAuBvhN,EAjU1S,WAET,IAAI0hN,GAAYr/Y,EAAhB,CAEAo+R,EAAa,GAAIihH,GAAU,GAE3B,IAAIwB,EAAkBf,KAAwB,GAAE,OAAQ,CACtD9yZ,KAAM,aAER2yZ,GAAoBA,GAAoBkB,EAAgB/5Y,aAAa,WACrE+5Y,EAAgB9tZ,aAAa,UAAWurZ,GAAiB,QAAQtsZ,KAAK2tZ,GAAoB,sBAAwB,KAC7GkB,EAAgBh5Y,YAAY+lE,EAAK/nD,OAAOg7X,GAE7C,IAAI7gS,EAAkBrwG,iBAAiBvU,GAAMkiH,iBAAiB,sBAC1DwjS,EAAgBf,IAEpB,GAAIe,EAAc51Z,OAEhB00Z,EAAgBkB,EAAc/8Y,KAAI,SAAUxI,GAC1C,OAAOA,EAAQuL,aAAa,kBAEzB,CAEL,IAAIi6Y,EAAe,GAAE,OAAQ,CAC3B/zZ,KAAM,gBAER4gF,EAAK/nD,OAAOk7X,GACZD,EAAcj2Z,KAAKk2Z,GAIrBD,EAAcr6Z,SAAQ,SAAU8U,GAC9B,OAAOA,EAAQxI,aAAa,UAAW,OAAO9H,OAAO+0H,EAAiB,SAExE71F,aAAa01X,GACbA,EAAgBl6Z,YAAW,WACzB,OAAOgW,EAAQ2O,IAAI,KAClB,OAGM,WAET,IAAI80Y,IAAUp/Y,EAAd,CAEAmqB,aAAa01X,GAEbzhH,EAAa,GAAIghH,GAAS,GAG1B,IAAIyB,EAAkBf,IAClBH,EAAkBkB,EAAgB9tZ,aAAa,UAAW4sZ,GAAuBkB,EAAgB/uZ,SAErG,IAAIgvZ,EAAgBf,IAEhBH,EACFkB,EAAcr6Z,SAAQ,SAAU8U,EAASiJ,GACvCjJ,EAAQxI,aAAa,UAAW6sZ,EAAcp7Y,OAE3Cs8Y,EAAcr6Z,SAAQ,SAAU8U,GACrC,OAAOA,EAAQzJ,YAIjB6J,EAAQ2O,IAAI,KAkQ0T80Y,EAAQC,EAASE,EAAsBW,EAAsB3B,EAAUG,EAA0BrzY,EAAGg4S,EAlF5a,WACEjlB,EAAa,EAAGi+E,EAAe+hC,GAASlgS,cAG1C,SAAqBs9L,GACnB58C,GAAkB48C,EAAU,UAAY,SAAQ,WAE9Cpd,EAAa,EADbhjS,EAAOogT,QA+Eb,IAjr/BiDwlG,GAC3CvlZ,GAgr/BFwlZ,GAAqB,SAAUC,GACjCxyS,GAAUuyS,EAAOC,GAEjB,IAAIC,EAAWr/K,GAAam/K,GAE5B,SAASA,EAAMr1Z,GACb,IAAIw1Z,EAeJ,OAbApzS,GAAgBllH,KAAMm4Z,GAGtBrtS,GAAKjE,GADLyxS,EAAUD,EAAS10Z,KAAK3D,OACc8C,EAAS7D,GAAUq7Q,GAAiBhJ,GAAgB,CACxFh/P,KAAM,EACNwjZ,oBAAqB,GACrBE,0BAA2B,GAC3BE,6BAA8B,GAC9BE,sBAAuB,GACvBxzO,MAAO,GACPn6D,KAAM,GACNE,KAAM,IACL,KAAM,EAAE,GAAI,IACR2vS,EAiFT,OA9EA9yS,GAAa2yS,EAAO,CAAC,CACnBt6Z,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,IAErBuS,IAAK,SAAalP,GAChBtS,KAAK86Q,MAAM,CACTxoQ,KAAMA,IAERy1E,OAED,CACDlqF,IAAK,sBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAas0Y,GAChB91Z,KAAK86Q,MAAM,CACTg7I,oBAAqBA,IAEvB/tU,OAED,CACDlqF,IAAK,4BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaw0Y,GAChBh2Z,KAAK86Q,MAAM,CACTk7I,0BAA2BA,IAE7BjuU,OAED,CACDlqF,IAAK,+BACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa00Y,GAChBl2Z,KAAK86Q,MAAM,CACTo7I,6BAA8BA,IAEhCnuU,OAED,CACDlqF,IAAK,wBACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAa40Y,GAChBp2Z,KAAK86Q,MAAM,CACTs7I,sBAAuBA,IAEzBruU,OAED,CACDlqF,IAAK,QACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,KAErBuS,IAAK,SAAaqzL,GAChB70M,KAAK86Q,MAAM,CACTl4F,MAAOiyB,IAET9sH,OAED,CACDlqF,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,MAEpB,CACDpR,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAK2xQ,GAAG1iQ,IAAI,QAIhBkpZ,EAtGgB,CAuGvBv9I,IAGE29I,GAAc,WAChB,IAAIz1Z,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9Ewd,EAASxd,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EACnD,OAAO,IAAI06Z,GAAM,CACfnzZ,OAAQyZ,GAAU7V,SAASm2B,KAC3BxsB,MAAO,CACLqwK,MAAO9/K,EAAQ8/K,MACfwzO,sBAAuBtzZ,EAAQszZ,sBAC/BN,oBAAqBhzZ,EAAQgzZ,oBAC7BE,0BAA2BlzZ,EAAQkzZ,0BACnCE,6BAA8BpzZ,EAAQozZ,iCAk1BxCsC,GAA2BtkI,GAC3BukI,GAA2BtkI,GAG3BukI,GAA6B,WAC/B,MAAO,CACLl7Z,KAAM69O,GACNn5O,MAAOi7O,KAqDPw7K,IAxmhCgB,WAClB,IAAIT,EAAQj3Z,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,CAAC,OAAQ,OAAQ,UAAW,SAAU,OAAQ,OAAQ,QAAS,YAAa,UAAW,OAAQ,UACxKi3Z,EAAMj9Y,KAAI,SAAUorX,GAEzB,OAAIx/X,GAASw/X,GAAcD,GAAkBC,GAEzCpkY,MAAMiD,QAAQmhY,GAEZ,GAASA,EAAK,IAAYD,GAAkBC,EAAK,QAAI5oY,EAAW4oY,EAAK,IAElED,GAAkBC,EAAK,GAAIA,EAAK,GAAIA,EAAK,SAJlD,KAMC3gY,OAAO2iH,SAwlhCWuwS,GA9qhCjBjmZ,GAAS,CACXkmZ,QAASnzB,GAAgB,OAAQ,CAC/B5/P,QAAQ,EACR6mI,WAAY,QACZF,UAAW,QACX9J,YAAaqiI,GACbpiI,YAAa,GAAGzgQ,OAAO4iY,IACvBM,YAAa,UACbC,WAAY,cACZriH,cAAc,EACdG,eAAe,EACfC,aAAa,GACZ,CACD6iH,kBAAkB,IAEpBf,OAAQO,GAAgB,UACxBr9X,KAAMq9X,GAAgB,OAAQ,CAC5Bp4H,eAAW7vQ,EACXklQ,YAAaqiI,GACbpiI,YAAa,GAAGzgQ,OAAO4iY,IACvB7tQ,gBAAiB,CAAC,EAAG,EAAG,EAAG,IAC1B,CACD4uQ,UAAW,SAEb76X,KAAMy6X,GAAgB,OAAQ,CAC5B9iI,YAAa,GAAGzgQ,OAAO4iY,IACvBpiI,YAAaqiI,KAEft4K,MAAOg5K,GAAgB,OAAQ,CAC7BniH,UAAW,OACXC,QAAS,cACT5gB,YAAa,GAAGzgQ,OAAO4iY,IACvBpiI,YAAaqiI,KAEfQ,UAAWE,GAAgB,YAAa,CACtC9iI,YAAa,GAAGzgQ,OAAO8iY,IACvB/tQ,gBAAiB,GAAG/0H,OAAO4iY,MAE7Bt/I,QAASigJ,GAAgB,UAAW,CAClC9iI,YAAa,GAAGzgQ,OAAO8iY,IACvB/tQ,gBAAiB,GAAG/0H,OAAO4iY,MAE7Bh6V,KAAM26V,GAAgB,OAAQ,CAC5B/1X,MAAO,GAAGxN,OAAO4iY,IACjBvvU,SAAU,QAId0iW,IAAS1yZ,OAAOg5C,QAAQ05W,IAAOv6Z,SAAQ,SAAUm7Z,GAC/C,IAAIC,EAAU,GAAeD,EAAS,GAClCE,EAAUD,EAAQ,GAClBE,EAAYF,EAAQ,GAGpB92Z,MAAMiD,QAAQ+zZ,GAChBtmZ,GAAOqmZ,GAAWC,EAEX,GAASA,IAActmZ,GAAOqmZ,KACrCrmZ,GAAOqmZ,GAAW,CAClB,GAAc,GAAc,GAAIrmZ,GAAOqmZ,GAAS,IAAKC,GACrDtmZ,GAAOqmZ,GAAS,QA2vBS,WAC7B,IAAIl2Z,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAG9Em5C,EAAQ,GAAc,GAAc,GAAIkxV,IAAuBxoY,GAG/DolC,EAAS,GAEb1iC,OAAOg5C,QAAQpE,GAAOz8C,SAAQ,SAAUu7Z,GACtC,IAAIC,EAAU,GAAeD,EAAS,GAClCr7Z,EAAMs7Z,EAAQ,GACdx4Z,EAAQw4Z,EAAQ,GAGpB,IAAI,WAAWjwZ,KAAKrL,GAEpB,GAAIytY,GAAqBztY,IAAQ,GAAS8C,KAAW,GAAQA,GAAQ,CACnE,IAAIy4Z,EAAah/W,EAAMv8C,GACnBohI,EAAYm6R,EAAWn6R,UACvBjxH,EAAUorZ,EAAWprZ,QACrBue,EAAQ6sY,EAAW7sY,MACnB8sY,EAAqBD,EAAWt2Z,QAChCw2Z,OAAmC,IAAvBD,EAAgC,GAAKA,EAGrD,GAAIxyZ,GAASmH,GACXk6B,EAAOrqC,GAAO,CAACmQ,EAASsrZ,OAErB,CAEH,IAAIC,EAAejuB,GAAqBztY,GAAK0uB,MACzCitY,EAAe3yZ,GAAS0yZ,GAAgBn/W,EAAMm/W,IAAiB9wB,GAA4B8wB,UAAkB97Z,EAE7GoJ,GAAS0lB,IAAUk8W,GAA4Bl8W,GAK7CitY,EAJAp/W,EAAM7tB,GACJ6tB,EAAM7tB,GAAO6U,OAAM,SAAUxtB,GAC/B,OAAQ3R,MAAMiD,QAAQ0O,MAEPwmC,EAAM7tB,GAAOtR,KAAI,SAAUrH,GACxC,MAAO,CAACA,EAAMA,MAGDwmC,EAAM7tB,GAGRk8W,GAA4Bl8W,MAGtCA,GAAS+sY,EAAU/sY,SAC1BitY,EAAejtY,GAAS+sY,EAAU/sY,OAIpC,IAAIktY,EAAYzrZ,GAAWs9X,GAAqBztY,GAAKmQ,QAEjD,GAAWyrZ,GACbvxX,EAAOrqC,GAAO27Z,EAAeC,EAAUD,EAAcF,GAAaG,EAAUH,GAErEr6R,IACP/2F,EAAOrqC,GAAO,CAACohI,EAAW,GAAc,GAAc,GAAIq6R,GAAY,GAAI,CACxE/sY,MAAOA,YAKb2b,EAAOrqC,GAAO8C,KAuz/Bc+4Z,GA5rkCP,WACzB,IAAK,IAAIC,EAAS14Z,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM03Z,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFpyZ,EAAKoyZ,GAAU34Z,UAAU24Z,GAG3BpyZ,EACC9B,QAAO,SAAU8L,GAChB,QAASA,EAAO8pL,QAEjB39L,SAAQ,SAAU6T,GACjB,IAAIqoZ,EAAe,GAAeroZ,EAAO8pL,KAAM,GAC3Ct4L,EAAK62Z,EAAa,GAClB3gG,EAAY2gG,EAAa,GACzBC,EAAgBD,EAAa,GAC7B1qX,OAAgC,IAAlB2qX,EAA2B,WAC3C,OAAO,GACLA,EAGAn2C,GAAiB58S,IAAI/jE,KAEzB2gX,GAAiBniW,IAAIxe,EAAI,CACvBk2T,UAAWA,EACX/pR,YAAaA,IAGf8pR,GAA0BC,GAAWxzT,QAAO,SAAUL,GACpD,OAAQo+X,GAAiBplX,SAAShZ,MACjC1H,SAAQ,SAAU0H,GACnBs+X,GAAYr/W,IAAIjf,GAEZu+X,GAAcv+X,GAChBu+X,GAAcv+X,GAAMtD,KAAKiB,GAI3B4gY,GAAcv+X,GAAQ,CAACrC,YA2pkCzB+2Z,GAAcvH,GAcdwH,GAAe7G,GAEf8G,GAnzD4B,CAC9BC,UAAW,OACXC,SAAU,2IACV7b,uBAAwB,qNACxBoR,yBAA0B,2SAC1BE,0BAA2B,8SAC3BI,2BAA4B,iQAC5BF,6BAA8B,6PAC9B1H,qBAAsB,gQACtBE,qBAAsB,yUACtBjK,wBAAyB,WACzBoR,0BAA2B,cAC3BE,2BAA4B,eAC5BE,8BAA+B,kBAC/BE,4BAA6B,gBAC7BE,sBAAuB,aACvBY,sBAAuB,gBACvBE,0BAA2B,gBAC3BC,0BAA2B,OAC3BK,qBAAsB,WACtBC,iBAAkB,SAozDhB8I,GA/6Bc,WAChB,IAAIt3Z,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9Ewd,EAASxd,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAG/C48Z,EAAW9jK,KACX19O,EAAMwhZ,EAASxhZ,IACf49O,EAAM4jK,EAAS5jK,IAEfinB,EAAY,GACZlmJ,EAAQ+gS,GAAYz1Z,EAAS2b,GAE7BkqG,EAAO,WACJ6O,EAAM7O,MAEX6O,EAAM7O,QAGJF,EAAO,WACJ+O,EAAM/O,MAEX+O,EAAM/O,QAGJ3yG,EAAOq+Y,GAAe38R,EAAMllH,MAChC4hZ,GAAcp+Y,EAAM4nQ,GAEpBA,EAAUq3I,YAAcj6K,GAExBhlO,EAAKi/Y,YAAc,SAAUzpZ,EAAM8M,GAEjC,GAAa,SAAT9M,EAAiB,OAAOoyQ,EAAUq3I,YAAYzpZ,EAAMoyQ,GAExDA,EAAUq3I,YAAYzpZ,EAAM8M,IAI9BtC,EAAK2O,GAAG,QAAsB,GAAgC,SAAyB,SAAS61Y,IAC9F,IAAIC,EACJ,OAAO,SAAyB,SAAoBC,GAClD,OACE,OAAQA,EAAWppX,KAAOopX,EAAWzsY,MACnC,KAAK,EAGH,GAFAwsY,EAAYz3Z,EAAQy3Z,UAEL,CACbC,EAAWzsY,KAAO,EAClB,MAGF,OAAOysY,EAAWtlP,OAAO,SAAUvsD,KAErC,KAAK,EAEH,OADA6xS,EAAWzsY,KAAO,EACXwsY,IAET,KAAK,EACWC,EAAWzlP,MACRpsD,IAEnB,KAAK,EACL,IAAK,MACH,OAAO6xS,EAAWhqZ,UAGvB8pZ,QAGL,IAAI77R,EAAY,SAAmB75G,EAAOlQ,GAExC,MAAI,YAAYxL,KAAK0b,GAAe/L,EAAI+L,EAAOlQ,GAExCoB,EAAK2O,GAAGG,EAAOlQ,IAGpB+lZ,EAAyB,CAAC,OAAQ,QAAQx/Y,KAAI,SAAU3P,GAC1D,OAAOmzH,EAAUnzH,GAAM,SAAU8M,GAC/B,OAAOslQ,EAAUq3I,YAAYzpZ,EAAM8M,SAInC8L,EAAU,WAEZu2Y,EAAuB98Z,SAAQ,SAAU4zQ,GACvC,OAAOA,OAGT5oJ,IACA6O,EAAMk8D,WACN59K,EAAKoO,WAoCP,OAjCAu6P,GAAcf,EAAW,CACvBj5P,GAAIg6G,EACJv6G,QAASA,EACTykG,KAAMA,EACNF,KAAMA,IAGRjjH,OAAOqY,eAAe6/P,EAAW,QAAS,CACxCj8P,IAAK,WACH,OAAO+1G,EAAMllH,MAEfkP,IAAK,eAKPg2G,EAAM4wD,IAAI,QAAStyK,EAAK2xG,OACxB+P,EAAM4wD,IAAI,QAAQ,WAChB,OAAOquE,EAAI,WAEbj/H,EAAM4wD,IAAI,QAAQ,WAChBquE,EAAI,SAC8B,IAA9B3zP,EAAQ43Z,mBAA6Bx2Y,QAGZ,IAA3BphB,EAAQ63Z,gBAA0B7kZ,EAAK2O,GAAG,UAAWkkG,GACzD7yG,EAAK2O,GAAG,YAAagkG,IAEa,IAA9B3lH,EAAQq7W,oBAA6Br7W,EAAQq7W,mBAAoB,UAE9Dr7W,EAAQ8/K,MAEfp9K,OAAO0V,OAAOwiQ,EAAW56Q,GAClB46Q,GC5lzET,SAAS,GAAQt0Q,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GASzU,SAASwxZ,GAAalvY,GACpB,IAAIigK,EAAYjgK,EAAOmvY,kBAMvB,OAJKlvO,IACHA,EAAYjgK,EAAOmvY,kBAAoB,IAGlClvO,EAST,IAAImvO,GAAc,CAkChB9yY,MAAO,SAAe0D,GAKpB,OAJAA,EAAOjH,GAAKzkB,KAAKykB,GACjBiH,EAAOhH,IAAM1kB,KAAK0kB,IAClBgH,EAAOgwI,QAAU17J,KAAK07J,QACtBhwI,EAAOmvY,uBAAoBp9Z,EACpBiuB,GAiBTjH,GAAI,SAAYs2Y,EAAW5vZ,GACzB,GAAwB,mBAAbA,EACT,MAAM,IAAI/K,UAAU,+BAGtB,IAAI46Z,EAAeJ,GAAa56Z,MAC5B2rL,EAAYqvO,EAAaD,GAExBpvO,IACHA,EAAYqvO,EAAaD,GAAa,KAGH,IAAjCpvO,EAAU/uL,QAAQuO,IACpBwgL,EAAU5pL,KAAKoJ,IAkCnBuZ,IAAK,SAAaq2Y,EAAW5vZ,GAC3B,IAAI6vZ,EAAeJ,GAAa56Z,MAEhC,GAAKmL,EAAL,CAKA,IAAIwgL,EAAYqvO,EAAaD,GACzBr/Y,EAAQiwK,EAAU/uL,QAAQuO,IAEf,IAAXuQ,GACFiwK,EAAU7sK,OAAOpD,EAAO,QARxBs/Y,EAAaD,GAAa,IAqC9Br/P,QAAS,SAAiBq/P,EAAWj4Z,EAAS0Y,GAC5C,IACImwK,EADeivO,GAAa56Z,MACH+6Z,GAE7B,GAAIpvO,EAIF,IAFA,IAESlkL,EAAI,EAAGA,EAAIkkL,EAAUvpL,OAAQqF,KACpC0D,EAAWwgL,EAAUlkL,IACZ3E,EAAS0Y,KAKtB,GAAS,CACXy/Y,YAAY,GAId,SAASC,GAAUh3Z,EAAMvD,GACvB,GAAyB,IAArBM,UAAUmB,OAGZ,OAAO,GAAO8B,GAFd,GAAOA,GAAQvD,EAJnBm6Z,GAAmB,MAAE,IAUrB,IAAI,GAAQ,GAqBZ,SAASG,GAAWF,EAAWz8Z,EAASogB,GAClC,IAAM,GAAM3c,KAAK,CACnBmC,KAAM62Z,EACNvxZ,QAAS,CACP3L,IAAKS,EAAQ68Z,SACbn4Z,GAAI1E,EAAQ88Z,IACZL,UAAWA,EACX3iZ,OAAQ9Z,EAAQ+8Z,QAChBC,QAAS58Y,GAASA,EAAM08Y,IACxB5/Y,MAAOld,EAAQi9Z,OACfz9P,UAAWp1J,KAAKO,MAChBxG,MAAO,GAAO,yBAA2B,IAAIe,MAAMlF,EAAQi9Z,QAAU,SA7BzE1+Z,YAAW,WACT,IAAK,IAAI4K,EAAI,EAAGA,EAAI,GAAMrF,OAAQqF,IAAK,CACrC,IAAIg2C,EAAQ,GAAMh2C,GACd+B,EAAUi0C,EAAMj0C,QACpBA,EAAQy9I,KAAOz9I,EAAQ3L,IAAM2L,EAAQxG,GACrCwG,EAAQgyZ,UAAYhyZ,EAAQ3L,IAAM2L,EAAQ8xZ,QAEtC9xZ,EAAQ/G,QACV+G,EAAQhF,MAAQgF,EAAQ/G,MAAM+B,OAGhC,GAAgB,QAAEi5C,EAAMv5C,KAAMu5C,EAAMj0C,SAGtC,GAAMpH,OAAS,IACd,IA2DL,SAASq5Z,GAAW/vY,EAAQlQ,GAI1B,GAAIkQ,GAA8B,WAApB,GAAQA,IAAwBA,EAAOniB,cAFnCvJ,KAGhB,OAAO0rB,EAGT,IAAIptB,EAAU,IANI0B,KAMY,GAAMwb,GAEpC,OADAkgZ,GAAUp9Z,EAASotB,GACZptB,EAaT,SAAS,MAET,IAAIq9Z,QAAU,EAGVC,GAAkB,CACpBn5Z,MAAO,MAGT,SAASo5Z,GAAQv9Z,GACf,IACE,OAAOA,EAAQC,KACf,MAAOkE,GAEP,OADAm5Z,GAAgBn5Z,MAAQA,EACjBm5Z,IAIX,IAAIE,QAAmB,EAEvB,SAASC,KACP,IACE,IAAI/2Z,EAAS82Z,GAEb,OADAA,GAAmB,KACZ92Z,EAAO9C,MAAMlC,KAAMiB,WAC1B,MAAOgG,GAEP,OADA20Z,GAAgBn5Z,MAAQwE,EACjB20Z,IAIX,SAASxmP,GAASnyK,GAEhB,OADA64Z,GAAmB74Z,EACZ84Z,GAuDT,SAASC,GAAoB19Z,EAAS29Z,EAAeC,GAGnD,GAFoBD,EAAc1yZ,cAAgBjL,EAAQiL,aAAe2yZ,IAAY39Z,IAAQD,EAAQiL,YAAY/O,UAAYiha,IApB/H,SAA2Bn9Z,EAAS69Z,GAlEpB,IAmEVA,EAASC,OACXnpJ,GAAQ30Q,EAAS69Z,EAASd,SAnEf,IAoEFc,EAASC,QAClBD,EAASE,SAAW,KACpB5ha,GAAO6D,EAAS69Z,EAASd,UAEzB,GAAUc,OAAU1+Z,GAAW,SAAUkD,GACnCw7Z,IAAax7Z,EACfsyQ,GAAQ30Q,EAASqC,GAEjB+6Z,GAAUp9Z,EAASqC,MAEpB,SAAUJ,GACX,OAAO9F,GAAO6D,EAASiC,MASzB+7Z,CAAkBh+Z,EAAS29Z,QACtB,GAAIC,IAAYN,GAAiB,CACtC,IAAIn5Z,EAAQm5Z,GAAgBn5Z,MAC5Bm5Z,GAAgBn5Z,MAAQ,KACxBhI,GAAO6D,EAASmE,OACY,mBAAZy5Z,EA7DpB,SAA+B59Z,EAAS69Z,EAAUD,GAChD,GAAO3uP,OAAM,SAAUjvK,GACrB,IAAIwyL,GAAS,EACTtkL,EAAS4oK,GAAS8mP,GAASv4Z,KAAKw4Z,GAAU,SAAUx7Z,GAClDmwL,IAIJA,GAAS,EAELqrO,IAAax7Z,EACfsyQ,GAAQ30Q,EAASqC,GAEjB+6Z,GAAUp9Z,EAASqC,OAEpB,SAAUJ,GACPuwL,IAIJA,GAAS,EACTr2L,GAAO6D,EAASiC,MACf,YAAcjC,EAAQi9Z,QAAU,qBAEnC,IAAKzqO,GAAUtkL,IAAWovZ,GAAiB,CACzC9qO,GAAS,EACT,IAAIruL,EAAQm5Z,GAAgBn5Z,MAC5Bm5Z,GAAgBn5Z,MAAQ,KACxBhI,GAAO6D,EAASmE,MAEjBnE,GAgCDi+Z,CAAsBj+Z,EAAS29Z,EAAeC,GAE9CjpJ,GAAQ30Q,EAAS29Z,GAIrB,SAASP,GAAUp9Z,EAASqC,GA9G5B,IAA0B8qC,EACpBngC,EA8GAhN,IAAYqC,IA9GZ2K,EAAO,GADamgC,EAiHI9qC,GA9Gf,OAAN8qC,GAAwB,WAATngC,GAA8B,aAATA,GA6GzC2nQ,GAAQ30Q,EAASqC,GAEjBq7Z,GAAoB19Z,EAASqC,EAAOk7Z,GAAQl7Z,IAMhD,SAAS67Z,GAAiBl+Z,GACpBA,EAAQ+9Z,UACV/9Z,EAAQ+9Z,SAAS/9Z,EAAQ+8Z,SAG3Bp1C,GAAQ3nX,GAGV,SAAS20Q,GAAQ30Q,EAASqC,GACpBrC,EAAQ89Z,SAAWT,KAIvBr9Z,EAAQ+8Z,QAAU16Z,EAClBrC,EAAQ89Z,OA7HM,EA+HsB,IAAhC99Z,EAAQm+Z,aAAar6Z,OACnB,GAAO64Z,YACTA,GAAW,YAAa38Z,GAG1B,GAAOivK,MAAM04M,GAAS3nX,IAI1B,SAAS7D,GAAO6D,EAASiC,GACnBjC,EAAQ89Z,SAAWT,KAIvBr9Z,EAAQ89Z,OA5IK,EA6Ib99Z,EAAQ+8Z,QAAU96Z,EAClB,GAAOgtK,MAAMivP,GAAkBl+Z,IAGjC,SAAS,GAAUmgB,EAAQC,EAAOg+Y,EAAeC,GAC/C,IAAI1hJ,EAAcx8P,EAAOg+Y,aACrBr6Z,EAAS64Q,EAAY74Q,OACzBqc,EAAO49Y,SAAW,KAClBphJ,EAAY74Q,GAAUsc,EACtBu8P,EAAY74Q,EAvJE,GAuJoBs6Z,EAClCzhJ,EAAY74Q,EAvJC,GAuJoBu6Z,EAElB,IAAXv6Z,GAAgBqc,EAAO29Y,QACzB,GAAO7uP,MAAM04M,GAASxnW,GAI1B,SAASwnW,GAAQ3nX,GACf,IAAI28Q,EAAc38Q,EAAQm+Z,aACtBzrH,EAAU1yS,EAAQ89Z,OAMtB,GAJI,GAAOnB,YACTA,GApKY,IAoKDjqH,EAAwB,YAAc,WAAY1yS,GAGpC,IAAvB28Q,EAAY74Q,OAAhB,CAQA,IAJA,IAAIsc,OAAQ,EACRvT,OAAW,EACXqB,EAASlO,EAAQ+8Z,QAEZ5zZ,EAAI,EAAGA,EAAIwzQ,EAAY74Q,OAAQqF,GAAK,EAC3CiX,EAAQu8P,EAAYxzQ,GACpB0D,EAAW8vQ,EAAYxzQ,EAAIupS,GAEvBtyR,EACFk+Y,GAAe5rH,EAAStyR,EAAOvT,EAAUqB,GAEzCrB,EAASqB,GAIblO,EAAQm+Z,aAAar6Z,OAAS,GAGhC,SAASw6Z,GAAejgZ,EAAOre,EAAS6M,EAAUqB,GAChD,IACI7L,EADAk8Z,EAAkC,mBAAb1xZ,EASzB,GALExK,EADEk8Z,EACMznP,GAASjqK,EAATiqK,CAAmB5oK,GAEnBA,EAGNlO,EAAQ89Z,SAAWT,SAChB,GAAIh7Z,IAAUrC,EACnB7D,GAAO6D,EArNF,IAAI8B,UAAU,8DAsNd,GAAIO,IAAUi7Z,GAAiB,CACpC,IAAIn5Z,EAAQm5Z,GAAgBn5Z,MAC5Bm5Z,GAAgBn5Z,MAAQ,KAExBhI,GAAO6D,EAASmE,QACPo6Z,EACTnB,GAAUp9Z,EAASqC,GAhNP,IAiNHgc,EACTs2P,GAAQ30Q,EAASqC,GAjNN,IAkNFgc,GACTliB,GAAO6D,EAASqC,GA4BpB,SAASpC,GAAKm+Z,EAAeC,EAAanhZ,GACxC,IAAIiD,EAASze,KACT2c,EAAQ8B,EAAO29Y,OAEnB,GApPc,IAoPVz/Y,IAAwB+/Y,GAnPf,IAmPgC//Y,IAAuBggZ,EAElE,OADA,GAAO1B,YAAcA,GAAW,UAAWx8Y,EAAQA,GAC5CA,EAGTA,EAAO49Y,SAAW,KAClB,IAAI39Y,EAAQ,IAAID,EAAOlV,YAAY,GAAMiS,GACrChP,EAASiS,EAAO48Y,QAGpB,GAFA,GAAOJ,YAAcA,GAAW,UAAWx8Y,EAAQC,GAE/C/B,IAAUg/Y,GACZ,GAAUl9Y,EAAQC,EAAOg+Y,EAAeC,OACnC,CACL,IAAIxxZ,EAjQQ,IAiQGwR,EAAsB+/Y,EAAgBC,EACrD,GAAOpvP,OAAM,WACX,OAAOqvP,GAAejgZ,EAAO+B,EAAOvT,EAAUqB,MAIlD,OAAOkS,EAGT,IAAIo+Y,GAAa,WACf,SAASA,EAAW33S,EAAa/qE,EAAO2iX,EAAevhZ,GACrDxb,KAAKg9Z,qBAAuB73S,EAC5BnlH,KAAK1B,QAAU,IAAI6mH,EAAY,GAAM3pG,GACrCxb,KAAKi9Z,eAAiBF,EACtB/8Z,KAAKk9Z,mBAAqB/3S,IAAgB,GAC1CnlH,KAAKm9Z,mBAAqBh4S,EAAY3qH,UAAYiha,GAElDz7Z,KAAK63L,MAAM31L,MAAMlC,KAAMiB,WA+FzB,OA5FA67Z,EAAW59Z,UAAU24L,MAAQ,SAAe1yE,EAAa/qE,GACvD,IAAI0oD,EAAM1oD,EAAMh4C,QAAU,EAC1BpC,KAAKoC,OAAS0gG,EACd9iG,KAAKo9Z,WAAat6T,EAClB9iG,KAAKq7Z,QAAU,IAAIp5Z,MAAM6gG,GAEzB9iG,KAAKq9Z,WAAWjjX,IAGlB0iX,EAAW59Z,UAAUm+Z,WAAa,SAAoBjjX,GAIpD,IAHA,IAAIh4C,EAASpC,KAAKoC,OACd9D,EAAU0B,KAAK1B,QAEVmJ,EAAI,EAAGnJ,EAAQ89Z,SAAWT,IAAWl0Z,EAAIrF,EAAQqF,IACxDzH,KAAKs9Z,WAAWljX,EAAM3yC,GAAIA,GAAG,GAG/BzH,KAAKu9Z,sBAGPT,EAAW59Z,UAAUq+Z,mBAAqB,WACxC,GAAwB,IAApBv9Z,KAAKo9Z,WAAkB,CACzB,IAAI5wZ,EAASxM,KAAKq7Z,QAClBpoJ,GAAQjzQ,KAAK1B,QAASkO,GACtBxM,KAAKq7Z,QAAU,OAInByB,EAAW59Z,UAAUs+Z,qBAAuB,SAA8B//W,EAAOh2C,EAAGg2Z,GAClF,IAAI/8Z,EAAIV,KAAKg9Z,qBAEb,GAAIh9Z,KAAKm9Z,mBAAoB,CAC3B,IAAIjB,EAAUL,GAAQp+W,GAEtB,GAAIy+W,IAAY39Z,IAAQk/C,EAAM2+W,SAAWT,GACvCl+W,EAAM4+W,SAAW,KAEjBr8Z,KAAK09Z,WAAWjgX,EAAM2+W,OAAQ30Z,EAAGg2C,EAAM49W,QAASoC,QAC3C,GAAuB,mBAAZvB,EAChBl8Z,KAAK09Z,WA5TG,EA4TmBj2Z,EAAGg2C,EAAOggX,QAChC,GAAIz9Z,KAAKk9Z,mBAAoB,CAClC,IAAI5+Z,EAAU,IAAIoC,EAAE,IACpBs7Z,GAAoB19Z,EAASm/C,EAAOy+W,GAEpCl8Z,KAAK29Z,cAAcr/Z,EAASmJ,EAAGg2Z,QAE/Bz9Z,KAAK29Z,cAAc,IAAIj9Z,GAAE,SAAUlG,GACjC,OAAOA,EAAQijD,MACbh2C,EAAGg2Z,QAGTz9Z,KAAK29Z,cAAcj9Z,EAAElG,QAAQijD,GAAQh2C,EAAGg2Z,IAI5CX,EAAW59Z,UAAUo+Z,WAAa,SAAoB7/W,EAAOh2C,EAAGg2Z,GAChD,OAAVhgX,GAAqC,WAAnB,GAAQA,GAC5Bz9C,KAAKw9Z,qBAAqB//W,EAAOh2C,EAAGg2Z,GAEpCz9Z,KAAK49Z,aAhVK,EAgVmBn2Z,EAAGg2C,EAAOggX,IAI3CX,EAAW59Z,UAAUw+Z,WAAa,SAAoB/gZ,EAAOlV,EAAG9G,EAAO88Z,GACrE,IAAIn/Z,EAAU0B,KAAK1B,QAEfA,EAAQ89Z,SAAWT,KACjB37Z,KAAKi9Z,gBAvVA,IAuVkBtgZ,EACzBliB,GAAO6D,EAASqC,IAEhBX,KAAK49Z,aAAajhZ,EAAOlV,EAAG9G,EAAO88Z,GAEnCz9Z,KAAKu9Z,wBAKXT,EAAW59Z,UAAU0+Z,aAAe,SAAsBjhZ,EAAOlV,EAAG9G,EAAO88Z,GACzEz9Z,KAAKo9Z,aACLp9Z,KAAKq7Z,QAAQ5zZ,GAAK9G,GAGpBm8Z,EAAW59Z,UAAUy+Z,cAAgB,SAAuBr/Z,EAASmJ,EAAGg2Z,GACtE,IAAI7qS,EAAQ5yH,KAEZ,GAAU1B,OAASb,GAAW,SAAUkD,GACtC,OAAOiyH,EAAM8qS,WA3WH,EA2WyBj2Z,EAAG9G,EAAO88Z,MAC5C,SAAUl9Z,GACX,OAAOqyH,EAAM8qS,WA5WJ,EA4WyBj2Z,EAAGlH,EAAQk9Z,OAI1CX,EAvGQ,GA0GjB,SAASe,GAAiBlhZ,EAAOlV,EAAG9G,GAClCX,KAAKo9Z,aAGHp9Z,KAAKq7Z,QAAQ5zZ,GAxXD,IAuXVkV,EACgB,CAChBA,MAAO,YACPhc,MAAOA,GAGS,CAChBgc,MAAO,WACPpc,OAAQI,GAmNd,IAAIm9Z,GAAU,QAAUp1Z,KAAKO,MAAQ,IACjC4tI,GAAU,EAoHV,GAAU,WACZ,SAASt8I,EAAQ0tF,EAAUzsE,GACzBxb,KAAKo7Z,IAAMvkR,KACX72I,KAAKu7Z,OAAS//Y,EACdxb,KAAKo8Z,YAAS3+Z,EACduC,KAAKq7Z,aAAU59Z,EACfuC,KAAKy8Z,aAAe,GACpB,GAAOxB,YAAcA,GAAW,UAAWj7Z,MAEvC,KAASioF,IACS,mBAAbA,GA5Hb,WACE,MAAM,IAAI7nF,UAAU,sFA2HkB29Z,GAClC/9Z,gBAAgBzF,EA1ftB,SAA2B+D,EAAS2pF,GAClC,IAAI+rG,GAAW,EAEf,IACE/rG,GAAS,SAAUtnF,GACbqzL,IAIJA,GAAW,EACX0nO,GAAUp9Z,EAASqC,OAClB,SAAUJ,GACPyzL,IAIJA,GAAW,EACXv5L,GAAO6D,EAASiC,OAElB,MAAO0G,GACPxM,GAAO6D,EAAS2I,IAseY+2Z,CAAkBh+Z,KAAMioF,GAzHxD,WACE,MAAM,IAAI7nF,UAAU,yHAwH8C69Z,IA2GlE,OAvGA1ja,EAAQ2E,UAAUm9Z,SAAW,SAAkB97Z,GAC7C,IAAIqyH,EAAQ5yH,KAEZ,GAAO6sF,OAAM,WACP+lC,EAAMypS,UACR,GAAO3gQ,QAAQ,QAASn7J,EAAQqyH,EAAM2oS,YAkC5Chha,EAAQ2E,UAAU8b,MAAQ,SAAgB2hZ,EAAanhZ,GACrD,OAAOxb,KAAKzB,UAAKd,EAAWk/Z,EAAanhZ,IA4C3CjhB,EAAQ2E,UAAUg8H,QAAU,SAAkB/vH,EAAUqQ,GACtD,IAAIld,EAAU0B,KACVuJ,EAAcjL,EAAQiL,YAE1B,MAAwB,mBAAb4B,EACF7M,EAAQC,MAAK,SAAUoC,GAC5B,OAAO4I,EAAY/O,QAAQ2Q,KAAY5M,MAAK,WAC1C,OAAOoC,QAER,SAAUJ,GACX,OAAOgJ,EAAY/O,QAAQ2Q,KAAY5M,MAAK,WAC1C,MAAMgC,QAKLjC,EAAQC,KAAK4M,EAAUA,IAGzB5Q,EAtHK,GAqUd,SAAS2ja,GAAWxsZ,EAAGysZ,GAKrB,IAJA,IAAI/0Z,EAAM,GACNhH,EAASsP,EAAEtP,OACXoF,EAAO,IAAIvF,MAAMG,GAEZqpC,EAAI,EAAGA,EAAIrpC,EAAQqpC,IAC1BjkC,EAAKikC,GAAK/5B,EAAE+5B,GAGd,IAAK,IAAIhkC,EAAI,EAAGA,EAAI02Z,EAAc/7Z,OAAQqF,IAExC2B,EADW+0Z,EAAc12Z,IACbD,EAAKC,EAAI,GAGvB,OAAO2B,EAGT,SAASg1Z,GAAY1sZ,GAInB,IAHA,IAAItP,EAASsP,EAAEtP,OACXoF,EAAO,IAAIvF,MAAMG,EAAS,GAErBqF,EAAI,EAAGA,EAAIrF,EAAQqF,IAC1BD,EAAKC,EAAI,GAAKiK,EAAEjK,GAGlB,OAAOD,EAGT,SAAS62Z,GAAaC,EAAOhga,GAC3B,MAAO,CACLC,KAAM,SAAcgga,EAAe5B,GACjC,OAAO2B,EAAM36Z,KAAKrF,EAASiga,EAAe5B,KA2LhD,SAAS6B,GAAiBlga,EAASkJ,EAAMi3Z,EAAU1wZ,GAGjD,GAFaqnK,GAASqpP,GAAUv8Z,MAAM6L,EAAMvG,KAE7Bo0Z,GAAiB,CAC9B,IAAIn5Z,EAAQm5Z,GAAgBn5Z,MAC5Bm5Z,GAAgBn5Z,MAAQ,KACxBhI,GAAO6D,EAASmE,GAGlB,OAAOnE,EAGT,SAASoga,GAAmBpga,EAASkJ,EAAMi3Z,EAAU1wZ,GACnD,OAAO,GAAQpO,IAAI6H,GAAMjJ,MAAK,SAAUiJ,GACtC,OAAOg3Z,GAAiBlga,EAASkJ,EAAMi3Z,EAAU1wZ,MAIrD,SAAS4wZ,GAAkBhxY,GACzB,OAAY,OAARA,GAAiC,WAAjB,GAAQA,KACtBA,EAAIpkB,cAAgB,IAGfsyZ,GAAQluY,IA7brB,GAAQixY,KAAOnD,GAEf,GAAQ97Z,IA1YR,SAAa6+C,EAAShjC,GACpB,OAAKvZ,MAAMiD,QAAQs5C,GAIZ,IAAIs+W,GAAW98Z,KAAMw+C,GAAS,EAEnChjC,GAAOld,QALA0B,KAAKvF,OAAO,IAAI2F,UAAU,4CAA6Cob,IAyYlF,GAAQ6iI,KAvTR,SAAc7/F,EAAShjC,GAErB,IACIld,EAAU,IADI0B,KACY,GAAMwb,GAEpC,IAAKvZ,MAAMiD,QAAQs5C,GAEjB,OADA/jD,GAAO6D,EAAS,IAAI8B,UAAU,8CACvB9B,EAGT,IAAK,IAAImJ,EAAI,EAAGnJ,EAAQ89Z,SAAWT,IAAWl0Z,EAAI+2C,EAAQp8C,OAAQqF,IAChE,GATgBzH,KASMxF,QAAQgkD,EAAQ/2C,SAAKhK,GAAW,SAAUkD,GAC9D,OAAO+6Z,GAAUp9Z,EAASqC,MACzB,SAAUJ,GACX,OAAO9F,GAAO6D,EAASiC,MAI3B,OAAOjC,GAsST,GAAQ9D,QAAUiha,GAClB,GAAQhha,OA3PR,SAAkB8F,EAAQib,GAExB,IACIld,EAAU,IADI0B,KACY,GAAMwb,GAEpC,OADA/gB,GAAO6D,EAASiC,GACTjC,GAuPT,GAAQY,UAAUi8Z,SAAW2C,GAoM7B,GAAQ5+Z,UAAUX,KAAOA,GAuSzB,IAAIsga,GAAa,SAAUC,GAGzB,SAASD,EAAW15S,EAAa3mE,EAAShjC,GACxC,OAjCJ,SAAoCzN,EAAMpK,GACxC,IAAKoK,EACH,MAAM,IAAI64G,eAAe,6DAG3B,OAAOjjH,GAA2B,WAAlB,GAAQA,IAAsC,mBAATA,EAA8BoK,EAAPpK,EA4BnE,CAA2B3D,KAAM8+Z,EAAYn7Z,KAAK3D,KAAMmlH,EAAa3mE,GAAS,EAEnFhjC,IAGJ,OA9BF,SAAmBqqG,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI1lH,UAAU,2DAA6D,GAAQ0lH,IAG3FD,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CACrEqK,YAAa,CACX5I,MAAOklH,EACPx5F,YAAY,EACZk5F,UAAU,EACVD,cAAc,KAGdQ,IAAYtgH,OAAOygH,eAAiBzgH,OAAOygH,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAS3G,CAAU+4S,EAAYC,GAQfD,EATQ,CAUf/B,IAyEF,SAASiC,GAA6BhxZ,EAAMpK,GAC1C,IAAKoK,EACH,MAAM,IAAI64G,eAAe,6DAG3B,OAAOjjH,GAA2B,WAAlB,GAAQA,IAAsC,mBAATA,EAA8BoK,EAAPpK,EA5E9Ek7Z,GAAW3/Z,UAAU0+Z,aAAeC,GA+FpC,IAAImB,GAAc,SAAUF,GAG1B,SAASE,EAAY75S,EAAaz5F,GAChC,IAAIqxY,IAAgB97Z,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,KAAmBA,UAAU,GAC/Eua,EAAQva,UAAU,GACtB,OAAO89Z,GAA6B/+Z,KAAM8+Z,EAAYn7Z,KAAK3D,KAAMmlH,EAAaz5F,EAAQqxY,EAAevhZ,IA2BvG,OAjDF,SAAqBqqG,EAAUC,GAC7B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI1lH,UAAU,2DAA6D,GAAQ0lH,IAG3FD,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CACrEqK,YAAa,CACX5I,MAAOklH,EACPx5F,YAAY,EACZk5F,UAAU,EACVD,cAAc,KAGdQ,IAAYtgH,OAAOygH,eAAiBzgH,OAAOygH,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAI3Gm5S,CAAYD,EAAaF,GAQzBE,EAAY9/Z,UAAU24L,MAAQ,SAAe1yE,EAAaz5F,GACxD1rB,KAAKq7Z,QAAU,GAEfr7Z,KAAKq9Z,WAAW3xY,IAGlBszY,EAAY9/Z,UAAUm+Z,WAAa,SAAoBjjX,GACrD,IAAI30C,EAAOD,OAAOC,KAAK20C,GACnBh4C,EAASqD,EAAKrD,OACd9D,EAAU0B,KAAK1B,QACnB0B,KAAKo9Z,WAAah7Z,EAIlB,IAHA,IAAIvE,OAAM,EACND,OAAM,EAED6J,EAAI,EAAGnJ,EAAQ89Z,SAAWT,IAAWl0Z,EAAIrF,EAAQqF,IAExD7J,EAAMw8C,EADNv8C,EAAM4H,EAAKgC,IAGXzH,KAAKs9Z,WAAW1/Z,EAAKC,GAAK,GAG5BmC,KAAKu9Z,sBAGAyB,EAjCS,CAkChBlC,IA+HEoC,GAAc,SAAUC,GAG1B,SAASD,EAAY/5S,EAAaz5F,EAAQlQ,GACxC,OA5BJ,SAAsCzN,EAAMpK,GAC1C,IAAKoK,EACH,MAAM,IAAI64G,eAAe,6DAG3B,OAAOjjH,GAA2B,WAAlB,GAAQA,IAAsC,mBAATA,EAA8BoK,EAAPpK,EAuBnEy7Z,CAA6Bp/Z,KAAMm/Z,EAAax7Z,KAAK3D,KAAMmlH,EAAaz5F,GAAQ,EAAOlQ,IAGhG,OAvBF,SAAqBqqG,EAAUC,GAC7B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI1lH,UAAU,2DAA6D,GAAQ0lH,IAG3FD,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CACrEqK,YAAa,CACX5I,MAAOklH,EACPx5F,YAAY,EACZk5F,UAAU,EACVD,cAAc,KAGdQ,IAAYtgH,OAAOygH,eAAiBzgH,OAAOygH,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAI3Gu5S,CAAYH,EAAaC,GAMlBD,EAPS,CAQhBF,IAEFE,GAAYhga,UAAU0+Z,aAAeC,GAiPrC,IAAIyB,GAAgB,SAAUR,GAG5B,SAASQ,EAAcn6S,EAAa3mE,EAAS6tF,EAAO7wH,GAClD,OA5BJ,SAAsCzN,EAAMpK,GAC1C,IAAKoK,EACH,MAAM,IAAI64G,eAAe,6DAG3B,OAAOjjH,GAA2B,WAAlB,GAAQA,IAAsC,mBAATA,EAA8BoK,EAAPpK,EAuBnE47Z,CAA6Bv/Z,KAAM8+Z,EAAYn7Z,KAAK3D,KAAMmlH,EAAa3mE,GAAS,EAAMhjC,EAAO6wH,IA4BtG,OAhDF,SAAqBxmB,EAAUC,GAC7B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI1lH,UAAU,2DAA6D,GAAQ0lH,IAG3FD,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CACrEqK,YAAa,CACX5I,MAAOklH,EACPx5F,YAAY,EACZk5F,UAAU,EACVD,cAAc,KAGdQ,IAAYtgH,OAAOygH,eAAiBzgH,OAAOygH,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAI3G05S,CAAYF,EAAeR,GAM3BQ,EAAcpga,UAAU24L,MAAQ,SAAe1yE,EAAa/qE,EAAO2uH,EAAMvtJ,EAAO6wH,GAC9E,IAAIvpC,EAAM1oD,EAAMh4C,QAAU,EAC1BpC,KAAKoC,OAAS0gG,EACd9iG,KAAKo9Z,WAAat6T,EAClB9iG,KAAKq7Z,QAAU,IAAIp5Z,MAAM6gG,GACzB9iG,KAAKy/Z,OAASpzR,EAEdrsI,KAAKq9Z,WAAWjjX,IAGlBklX,EAAcpga,UAAU0+Z,aAAe,SAAsBjhZ,EAAOlV,EAAG9G,EAAO88Z,GAC5E,GAAIA,EAAW,CACb,IAAI7/Z,EAAMw3K,GAASp1K,KAAKy/Z,OAAdrqP,CAAsBz0K,EAAO8G,GAEnC7J,IAAQg+Z,GACV57Z,KAAK09Z,WA70DE,EA60DmBj2Z,EAAG7J,EAAI6E,OAAO,GAExCzC,KAAKs9Z,WAAW1/Z,EAAK6J,GAAG,QAG1BzH,KAAKo9Z,aACLp9Z,KAAKq7Z,QAAQ5zZ,GAAK9G,GAIf2+Z,EAhCW,CAiClBxC,IAgHF,SAAS4C,GAAU/+Z,EAAO6a,GACxB,OAAO,GAAQhhB,QAAQmG,EAAO6a,GAoBhC,SAASmkZ,GAA6B5xZ,EAAMpK,GAC1C,IAAKoK,EACH,MAAM,IAAI64G,eAAe,6DAG3B,OAAOjjH,GAA2B,WAAlB,GAAQA,IAAsC,mBAATA,EAA8BoK,EAAPpK,EAmB9E,IAAIi8Z,GAAe,GAEfC,GAAmB,SAAUC,GAG/B,SAASD,IACP,OAAOF,GAA6B3/Z,KAAM8/Z,EAAe59Z,MAAMlC,KAAMiB,YAiCvE,OAvDF,SAAqB4kH,EAAUC,GAC7B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI1lH,UAAU,2DAA6D,GAAQ0lH,IAG3FD,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CACrEqK,YAAa,CACX5I,MAAOklH,EACPx5F,YAAY,EACZk5F,UAAU,EACVD,cAAc,KAGdQ,IAAYtgH,OAAOygH,eAAiBzgH,OAAOygH,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAM3Gi6S,CAAYF,EAAkBC,GAM9BD,EAAiB3ga,UAAUq+Z,mBAAqB,WAC9C,GAAwB,IAApBv9Z,KAAKo9Z,YAAqC,OAAjBp9Z,KAAKq7Z,QAAkB,CAClD,IAAI7uZ,EAASxM,KAAKq7Z,QAAQ31Z,QAAO,SAAU9H,GACzC,OAAOA,IAAQgia,MAGjB3sJ,GAAQjzQ,KAAK1B,QAASkO,GACtBxM,KAAKq7Z,QAAU,OAInBwE,EAAiB3ga,UAAU0+Z,aAAe,SAAsBjhZ,EAAOlV,EAAG9G,EAAO88Z,GAC/E,GAAIA,EAAW,CACbz9Z,KAAKq7Z,QAAQ5zZ,GAAK9G,EAClB,IAAI/C,EAAMw3K,GAASp1K,KAAKy/Z,OAAdrqP,CAAsBz0K,EAAO8G,GAEnC7J,IAAQg+Z,GACV57Z,KAAK09Z,WA/gEE,EA+gEmBj2Z,EAAG7J,EAAI6E,OAAO,GAExCzC,KAAKs9Z,WAAW1/Z,EAAK6J,GAAG,QAG1BzH,KAAKo9Z,aAEAz8Z,IACHX,KAAKq7Z,QAAQ5zZ,GAAKm4Z,KAKjBC,EArCc,CAsCrBP,IA2GE,GAAM,EACNU,QAAY,EAEhB,SAASC,GAAK90Z,EAAUwiB,GACtBuyY,GAAQ,IAAO/0Z,EACf+0Z,GAAQ,GAAM,GAAKvyY,EAGP,KAFZ,IAAO,IAMLwyY,KAIJ,IAAIC,GAAkC,oBAAX11Z,OAAyBA,YAASjN,EACzD4ia,GAAgBD,IAAiB,GACjCE,GAA0BD,GAAc7vR,kBAAoB6vR,GAAc5vR,uBAC1E,GAAyB,oBAAT1iI,MAA2C,oBAAZ/H,SAAyD,qBAA9B,GAAG/F,SAAS0D,KAAKqC,SAE3Fu6Z,GAAwC,oBAAtBhxK,mBAA8D,oBAAlBt4G,eAA2D,oBAAnBL,eAiD1G,SAAS4pR,KACP,OAAO,WACL,OAAO3ja,WAAW,GAAO,IAI7B,IAAIqja,GAAU,IAAIj+Z,MAAM,KAExB,SAAS,KACP,IAAK,IAAIwF,EAAI,EAAGA,EAAI,GAAKA,GAAK,GAG5B0D,EAFe+0Z,GAAQz4Z,IACby4Z,GAAQz4Z,EAAI,IAEtBy4Z,GAAQz4Z,QAAKhK,EACbyia,GAAQz4Z,EAAI,QAAKhK,EAGnB,GAAM,EAcR,IAtCM84I,GAsCF4pR,QAAkB,EAElB,GACFA,GAjFF,WACE,IAAIrvR,EAAW9qI,QAAQ8qI,SAGnBplI,EAAU1F,QAAQokI,SAASrsH,KAAKlV,MAAM,sCAM1C,OAJI5G,MAAMiD,QAAQwG,IAA2B,MAAfA,EAAQ,IAA6B,OAAfA,EAAQ,KAC1DolI,EAAW2F,cAGN,WACL,OAAO3F,EAAS,KAsEA2vR,GACTH,GACTH,GAzDF,WACE,IAAIO,EAAa,EACb/gX,EAAW,IAAI2gX,GAAwB,IACvCviZ,EAAOnV,SAASsiC,eAAe,IAInC,OAHAyU,EAASoxF,QAAQhzH,EAAM,CACrBizH,eAAe,IAEV,WACL,OAAOjzH,EAAKpjB,KAAO+la,IAAeA,EAAa,GAiD/BC,GACTJ,KA5CLhqR,GAAU,IAAIK,gBACVI,MAAMnqF,UAAY,GA4C1BszW,GA3CO,WACL,OAAO5pR,GAAQQ,MAAMjqF,YAAY,KA4CnCqzW,QAD2B1ia,IAAlB2ia,GAnBX,WACE,IACE,IAAIQ,EAAQ9yZ,SAAS,cAATA,GAA0B01D,QAAQ,SAG9C,YAvDuB,KAsDvBw8V,GAAYY,EAAMC,WAAaD,EAAME,cArD9B,WACLd,GAAU,KAIPQ,KAkDL,MAAOv5Z,GACP,OAAOu5Z,MAaSO,GAEAP,KAIpB,GAAOjzP,MAAQ0yP,GAEf,GAAOpzU,MAAQ,SAAUn4E,GACvB,OAAO7X,WAAW6X,EAAI,IAGxB,IAAIkqZ,GAAOc,GAMX,SAAS,KACP,GAAOj7Y,GAAGviB,MAAM,GAAQjB,WAQ1B,GAAsB,oBAAXyJ,QAA6E,WAAnD,GAAQA,OAAoC,6BAAiB,CAChG,IAAI,GAAYA,OAAoC,4BAGpD,IAAK,IAAIqwZ,MAFTG,GAAU,cAAc,GAEF,GAChB,GAAUtuZ,eAAemuZ,KAC3B,GAAGA,GAAW,GAAUA,KAO9B,IAAIiG,GAAO,CACTf,KAAMA,GACNrB,KAAMA,GACNrka,QAAS,GACTuga,YAAaA,GACbn7Z,IAphCF,SAAegrB,EAAOnP,GACpB,OAAO,GAAQ7b,IAAIgrB,EAAOnP,IAohC1BylZ,WAz7BF,SAAoBziX,EAAShjC,GAC3B,OAAKvZ,MAAMiD,QAAQs5C,GAIZ,IAAIqgX,GAAW,GAASrgX,EAAShjC,GAAOld,QAHtC,GAAQ7D,OAAO,IAAI2F,UAAU,mDAAoDob,IAw7B1F6iI,KAt6BF,SAAgB1zH,EAAOnP,GACrB,OAAO,GAAQ6iI,KAAK1zH,EAAOnP,IAs6B3BnR,KA5wBF,SAAcqhB,EAAQlQ,GACpB,OAAO,GAAQhhB,QAAQkxB,EAAQlQ,GAAOjd,MAAK,SAAUmtB,GACnD,GAAe,OAAXA,GAAuC,WAApB,GAAQA,GAC7B,MAAM,IAAItrB,UAAU,8CAGtB,OAAO,IAAI4+Z,GAAY,GAAStzY,EAAQlQ,GAAOld,YAuwBjD4ia,YAnnBF,SAAqBx1Y,EAAQlQ,GAC3B,OAAO,GAAQhhB,QAAQkxB,EAAQlQ,GAAOjd,MAAK,SAAUmtB,GACnD,GAAe,OAAXA,GAAuC,WAApB,GAAQA,GAC7B,MAAM,IAAItrB,UAAU,6CAGtB,OAAO,IAAI8+Z,GAAY,GAASxzY,GAAQ,EAAOlQ,GAAOld,YA8mBxD6ia,QA9jBF,SAAiB5ga,GAIf,MAHA1D,YAAW,WACT,MAAM0D,KAEFA,GA2jBNynF,MAthBF,SAAexsE,GACb,IAAIw5I,EAAW,CACbx6J,aAASiD,EACThD,YAAQgD,GAMV,OAJAu3J,EAAS12J,QAAU,IAAI,IAAQ,SAAU9D,EAASC,GAChDu6J,EAASx6J,QAAUA,EACnBw6J,EAASv6J,OAASA,IACjB+gB,GACIw5I,GA8gBPosQ,UA3nCF,SAAmB3C,EAAU37Z,GAC3B,IAAIG,EAAK,WAKP,IAJA,IAAI0J,EAAI1L,UAAUmB,OACdoF,EAAO,IAAIvF,MAAM0K,EAAI,GACrB00Z,GAAe,EAEV55Z,EAAI,EAAGA,EAAIkF,IAAKlF,EAAG,CAC1B,IAAIkmB,EAAM1sB,UAAUwG,GAEpB,IAAK45Z,EAAc,CAIjB,IAFAA,EAAe1C,GAAkBhxY,MAEZiuY,GAAiB,CACpC,IAAIn5Z,EAAQm5Z,GAAgBn5Z,MAC5Bm5Z,GAAgBn5Z,MAAQ,KACxB,IAAI8N,EAAI,IAAI,GAAQ,IAEpB,OADA9V,GAAO8V,EAAG9N,GACH8N,EACE8wZ,IAAiC,IAAjBA,IACzB1zY,EAAM0wY,GAAagD,EAAc1zY,IAIrCnmB,EAAKC,GAAKkmB,EAGZ,IAAIrvB,EAAU,IAAI,GAAQ,IAgB1B,OAdAkJ,EAAKmF,GAAK,SAAUmhB,EAAKlwB,GACnBkwB,EACFrzB,GAAO6D,EAASwvB,QACKrwB,IAAZqF,EACT44Z,GAAUp9Z,EAASV,IACE,IAAZkF,EACT44Z,GAAUp9Z,EAAS8/Z,GAAYn9Z,YACtBgB,MAAMiD,QAAQpC,GACvB44Z,GAAUp9Z,EAAS4/Z,GAAWj9Z,UAAW6B,IAEzC44Z,GAAUp9Z,EAASV,IAInByja,EACK3C,GAAmBpga,EAASkJ,EAAMi3Z,EAAUz+Z,MAE5Cw+Z,GAAiBlga,EAASkJ,EAAMi3Z,EAAUz+Z,OAKrD,OADAiD,EAAGijH,UAAYu4S,EACRx7Z,GAykCPi4Z,UAAWA,GACXz2Y,GAAI,GACJC,IAjCF,WACE,GAAOA,IAAIxiB,MAAM,GAAQjB,YAiCzBzG,QAASkla,GACTjla,OAtVF,SAAkB8F,EAAQib,GACxB,OAAO,GAAQ/gB,OAAO8F,EAAQib,IAsV9BP,IApYF,SAAarb,EAAUysI,EAAO7wH,GAC5B,MAAqB,mBAAV6wH,EACF,GAAQ5xI,OAAO,IAAI2F,UAAU,+CAAgDob,GAG/E,GAAQhhB,QAAQoF,EAAU4b,GAAOjd,MAAK,SAAUqB,GACrD,IAAKqC,MAAMiD,QAAQtF,GACjB,MAAM,IAAIQ,UAAU,oCAGtB,OAAO,IAAIk/Z,GAAc,GAAS1/Z,EAAUysI,EAAO7wH,GAAOld,YA2X5DivK,MA7CU,SAAepiK,EAAUwiB,GACnC,OAAO,GAAO4/I,MAAMpiK,EAAUwiB,IA6C9BjoB,OAxLF,SAAgB9F,EAAU0ha,EAAU9lZ,GAClC,MAAwB,mBAAb8lZ,EACF,GAAQ7ma,OAAO,IAAI2F,UAAU,gDAAiDob,GAGhF,GAAQhhB,QAAQoF,EAAU4b,GAAOjd,MAAK,SAAUqB,GACrD,IAAKqC,MAAMiD,QAAQtF,GACjB,MAAM,IAAIQ,UAAU,uCAGtB,OAAO,IAAIy/Z,GAAiB,GAASjga,EAAU0ha,EAAU9lZ,GAAOld,aAgLpE,y2BChjFAq6Z,GAAWA,IAGX4I,GAAAA,eACAC,KACAC,GACAC,KACAC,MAKA,QACAz9Z,KAAAA,yBACAqO,MAAAA,CACAqvZ,SAAAA,CACAt2Z,KAAAA,OACA+mB,UAAAA,GAEAwvY,UAAAA,CACAv2Z,KAAAA,OACA+mB,UAAAA,GAEAyvY,kBAAAA,CACAx2Z,KAAAA,OACA+mB,UAAAA,GAEA0vY,oBAAAA,CACAz2Z,KAAAA,MACA6rF,QAFA,WAGA,WAGAzB,OAAAA,CACApqF,KAAAA,OACA+mB,UAAAA,GAEAy8P,qBAAAA,CACAxjR,KAAAA,OACA6rF,aAAAA,GAEA/jE,SAAAA,CACA9nB,KAAAA,OACA6rF,QAAAA,GAEA6qU,aAAAA,CACA12Z,KAAAA,OACA+mB,UAAAA,GAEA4vY,eAAAA,CACA32Z,KAAAA,OACA+mB,UAAAA,GAEA6vY,OAAAA,CACA52Z,KAAAA,OACA6rF,QAAAA,uBAGA+5F,WAAAA,CACAqwO,SAAAA,GACAY,KAAAA,IAEAxna,KAlDA,WAmDA,IAqMA2pS,EArMA,OAqCA,OACAlwQ,OAAAA,CACA9J,KAAAA,SAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GACA,qBACAD,MAAAA,GAAAA,MAAAA,SAAAA,GACAtuB,EAAAA,OAAAA,MAAAA,SAAAA,GACAuuB,EAAAA,UAIAF,OAAAA,SAAAA,EAAAA,EAAAA,GAGA,oEACA,OACAsyJ,EAAAA,OAAAA,OAAAA,EAAAA,GAEAA,EAAAA,cAEApyJ,KAEAthB,OAAAA,SAAAA,EAAAA,EAAAA,GACA,4EACA,QAEA0zK,EAAAA,OAAAA,GAAAA,UAAAA,GAEAA,EAAAA,cAEApyJ,KAEAtkB,QAAAA,SAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAlEA,YACA,aAGA,OAFA02K,EAAAA,UAAAA,EAEA,8BACA,OACA0lP,WAAAA,CACAl+Z,KAAAA,EACAwxF,OAAAA,EAAAA,OACA2sU,cAAAA,EAAAA,aACAC,gBAAAA,EAAAA,iBAGA,iCACAlja,GAAAA,KAAAA,EAAAA,GACAb,MAAA,YACA,OACA0pB,UAAAA,EACAs6Y,QAAAA,KACAC,aAAAA,GACAC,UAAAA,GACAz/Z,GAAAA,EAAAA,KAAAA,GACA0/Z,UAAAA,EAAAA,KAAAA,KACAC,aAAAA,EAAAA,KAAAA,IACA1ma,OAAAA,kBAEAygL,EAAAA,OAAAA,KAAAA,GACAliL,EAAAA,MAEAwgB,OAAA,YACAvgB,EAAAA,UAqCAmoa,CAAAA,GACArka,MAAA,YACA,IAGA,GACAska,WAJA,gBACAv+Y,IAAA,UACAw8E,OAAA,2BAEA+hU,IACA//M,WAAAA,CACA,gBACA,kBACA,+CAEA,gDACA,uCACA,+CAGA1jN,GAAAA,KAAAA,EAAAA,YAAAA,iBAAAA,GACAb,MAAA,YAEAuka,EAAAA,UAAAA,EAAAA,KAAAA,OACAA,EAAAA,aAAAA,EAAAA,KAAAA,UAEA,mBACAthY,EAAAA,OAAAA,MAAAA,EAAAA,cACAA,EAAAA,OAAAA,MAAAA,WACAA,EAAAA,OAAAA,mBAAAA,EAAAA,cAAAA,EAAAA,UACAA,EAAAA,OAAAA,kBAAAA,oBACAA,EAAAA,OAAAA,aAAAA,EAAAA,iBAAAA,EAAAA,UACAA,EAAAA,OAAAA,SAAAA,EAAAA,WACAA,EAAAA,OAAAA,kBAAAA,EAAAA,cACAA,EAAAA,OAAAA,OAAAA,EAAAA,EAAAA,MAEA,yBAwCA,OAvCAxmC,EAAAA,KAAAA,OAAAA,EAAAA,SAAAA,KAIAA,EAAAA,OAAAA,WAAAA,SAAAA,GACAojC,EAAAA,EAAAA,iBAAAA,EAAAA,OAAAA,EAAAA,QAMApjC,EAAAA,OAAAA,WACA,gCACA,mCAEA6B,YAAAA,WACAuP,QAAAA,IAAAA,8BAAAA,EAAAA,cACAhN,GAAAA,KAAAA,EAAAA,CAAAA,IAAAA,EAAAA,eACAb,MAAA,YAEA6N,QAAAA,IAAAA,8BAAAA,EAAAA,cACAke,EAAAA,EAAAA,cACAw4Y,EAAAA,OAAAA,WACApmP,EAAAA,iBAEA1hK,OAAA,YACA5O,QAAAA,MAAAA,6BAAAA,EAAAA,aAAAA,GACA3J,EAAAA,mCAEA,UAGAA,EAAAA,UAIAzH,EAAAA,KAAAA,GAGA,CACAyD,MAAAA,WAEAzD,EAAAA,QAGAyD,SAIAuc,OAAA,YACA5O,QAAAA,IAAAA,uBACAA,QAAAA,IAAAA,GACA3J,EAAAA,0BAGAuY,OAAA,YAEAvY,EAAAA,kCAKAsga,OAAAA,GAeAvqY,MAAAA,GAEA/1B,OAAAA,EACAu5D,aAAAA,wBACA3pC,UAAAA,EACA+gN,KAAAA,mBAGA4vL,cAAAA,CAEArsL,aAAAA,GAGAX,YAAAA,CACAwiL,GACA,CAEAl0H,qBAAAA,qMAAAA,CAAAA,KAAAA,MAAAA,SAAAA,EAAAA,EAAAA,EAAAA,GAAAA,IAAAA,EAAAA,OAAAA,KAAAA,MAAAA,SAAAA,GAAAA,OAAAA,OAAAA,EAAAA,KAAAA,EAAAA,MAAAA,KAAAA,EAAAA,GAEA,oBAFA,yCAEA/rR,GAFA,uBAKC0qZ,IAAAA,CAAAA,CACD9mY,KAAAA,EACA++B,OAAAA,aACAC,QAAAA,MARA,cAKAh/B,EALA,yBAYAkkN,GAAAA,EAAAA,EAAAA,OAZA,8FAoBApK,YAAAA,CACAwiL,IAIA1iL,eAAAA,GAGAG,cAAAA,CACA44C,qBAAAA,KAAAA,qBACAw2H,wBAAAA,CACA,kBACA,aACA,kBACA,kBAEAoT,2BAAAA,GACA33T,OAAAA,GAAAA,GAAAA,GACAi5T,IACAC,QAMAloV,SAAAA,CACAmxV,cADA,WAEA,uBAEAC,OAJA,WAMA,OADA,4BACA,YAGAnoO,QA9SA,WA+SA,WAEAte,EAAAA,oBAAAA,SAAAA,SAAAA,GACAA,EAAAA,OAAAA,KAAAA,CACA15K,GAAAA,EAAAA,GACAilB,UAAAA,EACAs6Y,QAAAA,KACAC,aAAAA,GACAC,UAAAA,GACAW,OAAAA,GACAV,UAAAA,EAAAA,KACAC,aAAAA,EAAAA,IACA1ma,OAAAA,aAGA,mCACAygL,EAAAA,MAAAA,KAAAA,CAEAj8K,OAAAA,EAEAqC,QAAAA,CACAwI,KAAAA,QACA40B,SAAAA,CACArsB,OAAAA,UAMAqnL,QA5UA,WA6UAqmO,GAAAA,OAAAA,SAAAA,cAAAA,KAAAA,eAAAA,CACA/pZ,oBAAAA,IACA6rZ,mBAAAA,IACAjwY,SAAAA,KAAAA,SACAT,cAAAA,KAAAA,SAAAA,EACAiC,UAAAA,mBACAla,kBAAAA,2BACAtB,YAAAA,OACAqf,SAAAA,EACArE,OAAAA,KAAAA,OACAmkN,YAAAA,KAAAA,cACAT,wBAAAA,EACAt/M,MAAAA,KAAAA,SAGAtO,QAAAA,CACAo5Y,cADA,SACAf,GACA,iCACA,0DAIAgB,iBAPA,SAOAhB,GAEA,OADA,kCACA,KAEAiB,YAXA,WAYA,0CAEAn6P,SAdA,WAeA,kBACA,YAGA,MC1ZA,GAXgB,GCPuN,ICA1N,WAAa,IAAI0jB,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,MAAM,CAAC2iD,MAAMmK,EAAI1jB,YAAY,CAACppC,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACltH,IAAI,OAAOqtH,MAAM,CAAC,GAAK2sD,EAAIm1O,OAAO,KAAO,OAAO,SAAW,MAAMn1O,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAS,MAAE5sD,WAAW,UAAUg9D,YAAY,eAAe,CAACpQ,EAAI3G,GAAG,aAAa2G,EAAIjH,GAAGiH,EAAI/wH,cAAc,sBAClZ,IFUpB,EACA,KACA,KACA,MAI8B,mBGAhC,GAXgB,GCwBhB,CACA93D,KAAAA,qBACAqO,MAAAA,CACA,WACA,iBACA,WACA,YACA,YACA,qBAEA2+K,WAAAA,CACAuyO,qBAAAA,IAEA9oa,KAbA,WAcA,OACAm4O,OAAAA,CACA4wL,cAAAA,KACAf,aAAAA,GACAD,UAAAA,GACAzma,OAAAA,IAGA0na,qBAAAA,KACAz2O,OAAAA,EACAimD,OAAAA,EACA1wO,OAAAA,EACAu5D,aAAAA,wBACA3pC,UAAAA,EACA+gN,KAAAA,KAGArhK,SAAAA,CACA4hK,WADA,WAEA,WACA,oBAIA,mDAEAouL,oBATA,WAUA,WAEA,OADA,qDAKA,CACA,CAGA/+Z,GAAAA,EAAAA,eAAAA,OAAAA,cACAkB,KAAAA,EAAAA,eAAAA,OAAAA,UACArG,IAAAA,EAAAA,eAAAA,OAAAA,eATA,KAcAm9L,QA1DA,WA2DA,WACA,uDACA,IACAte,EAAAA,qBAAAA,EACAA,EAAAA,OAAAA,EAAAA,eAAAA,QAGA,aACAA,EAAAA,SAAAA,EAAAA,SAAAA,SACAA,EAAAA,KAAAA,EAAAA,SAAAA,IAGAA,EAAAA,iBACAA,EAAAA,qBAAAA,IAAAA,kBAAAA,EAAAA,WAEAue,UA1EA,WA2EA,iEAEA/wK,QAAAA,CACA05Y,cADA,SACAb,GAKA,OACAW,cAAAA,KACAf,aAAAA,GACAD,UAAAA,GACAzma,OAAAA,IAGA8ma,EAAAA,SAAAA,SAAAA,GACA,aACAc,EAAAA,cAAAA,EAAAA,GACAA,EAAAA,aAAAA,EAAAA,aACAA,EAAAA,UAAAA,EAAAA,UACAA,EAAAA,OAAAA,EAAAA,WAKA,2BAEA,gBACA,sBACA,aAEAC,gBA7BA,WA8BA,gBACA,sBACA,aAEAhmR,KAlCA,WAmCA,WACA4+B,EAAAA,MAAAA,iBAAAA,EAAAA,SAAAA,EAAAA,OAAAA,EAAAA,MAAAA,EAAAA,QAEArT,SAtCA,WAuCA,kBACA,uBAGA,cAEAgqE,SA7CA,WA8CA,WAEA,wBAKA,gDACA32D,EAAAA,OAAAA,EALAA,EAAAA,OAAAA,GAUA62D,eA3DA,WA4DA,2CACA,YAEA,iBAGAvhL,SAlEA,WAmEA,wBAEAwhL,OArEA,WAsEA,WACA,eACA,SAGA,wBAMA,OAJA,aACAA,GAAAA,eAGA,MC7La,WAAa,IAAIzmD,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,qBAAqB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,OAAO,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,aAAa,CAACl9D,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,MAAM,CAAC2iD,MAAMmK,EAAI1jB,YAAY,CAACppC,EAAG,QAAQ,CAAC8sD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIymD,aAAazmD,EAAI3G,GAAG,KAAM2G,EAAc,WAAE9sD,EAAG,MAAM,CAACI,SAAS,CAAC,UAAY0sD,EAAIjH,GAAGiH,EAAIviE,SAASopH,YAAY7mD,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACA,EAAG,yBAAyB,CAACG,MAAM,CAAC,UAAUpgI,KAAKyzO,UAAUjL,MAAM,WAAYxoO,KAAKozO,MAAM,aAAarmD,EAAI80O,UAAU,SAAW90O,EAAI60O,SAAS,sBAAsB70O,EAAI+0O,kBAAkB,uBAAuB/0O,EAAIg1O,oBAAoB,OAAS,yBAAyBt9Y,GAAG,CAAC,iBAAiBsoK,EAAI62O,iBAAiB72O,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAS,MAAE5sD,WAAW,UAAUg9D,YAAY,eAAe,CAACpQ,EAAI3G,GAAG,+BAA+B2G,EAAIjH,GAAGiH,EAAI/wH,cAAc,+BAA+B,eACr7B,IFUpB,EACA,KACA,KACA,MAI8B,QGAhC,GAXgB,GCqBhB,CACA93D,KAAAA,0BACAqO,MAAAA,CACAi4G,SAAAA,CACAl/G,KAAAA,OACA+mB,UAAAA,GAEA0xY,eAAAA,CACAz4Z,KAAAA,QAEA04Z,aAAAA,CACA14Z,KAAAA,OACA6rF,QAAAA,QAGAx8F,KAfA,WAgBA,OACAm4O,OAAAA,GACAI,eAAAA,KACAhmD,OAAAA,EACAimD,OAAAA,EACA1wO,OAAAA,EACAu5D,aAAAA,0BACA3pC,UAAAA,EACA+gN,KAAAA,KAGArhK,SAAAA,CACA4hK,WADA,WAEA,WACA,oBAIA,oDAGAp0G,MAAAA,CAEAuzG,OAFA,WAGA,gBACA,sBACA,cAGA93C,QA7CA,WA8CA,WACA,mBACAte,EAAAA,eAAAA,EAAAA,eAAAA,OACAA,EAAAA,OAAAA,EAAAA,eAAAA,QAGA,aACAA,EAAAA,SAAAA,EAAAA,SAAAA,SACAA,EAAAA,KAAAA,EAAAA,SAAAA,IAGAA,EAAAA,iBACAA,EAAAA,qBAAAA,IAAAA,kBAAAA,EAAAA,WAEAue,UA5DA,WA6DA,iEAEA/wK,QAAAA,CACA4zH,KADA,WAEA,WACA4+B,EAAAA,MAAAA,iBAAAA,EAAAA,SAAAA,EAAAA,OAAAA,EAAAA,MAAAA,EAAAA,QAEArT,SALA,WAMA,kBACA,uBAGA,cAEAgqE,SAZA,WAaA,WACA,4BACA32D,EAAAA,OAAAA,EAEAA,EAAAA,OAAAA,GAGA62D,eApBA,WAqBA,yBACA,uCAEAvhL,SAxBA,WAyBA,wBAEAwhL,OA3BA,WA4BA,WACA,eACA,SAGA,wBAMA,OAJA,aACAA,GAAAA,eAGA,MClIa,WAAa,IAAIzmD,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,kBAAkB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,OAAO,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,aAAa,CAACl9D,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,MAAM,CAAC2iD,MAAMmK,EAAI1jB,YAAY,CAACppC,EAAG,QAAQ,CAACG,MAAM,CAAC,IAAMpgI,KAAKyzO,UAAUjL,MAAM,QAASxoO,KAAKozO,QAAQ,CAACrmD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIymD,aAAazmD,EAAI3G,GAAG,KAAM2G,EAAc,WAAE9sD,EAAG,MAAM,CAACI,SAAS,CAAC,UAAY0sD,EAAIjH,GAAGiH,EAAIviE,SAASopH,YAAY7mD,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,QAAQ,CAACZ,WAAW,CAAC,CAACn7H,KAAK,QAAQg8H,QAAQ,UAAUv/H,MAAOosL,EAAU,OAAE5sD,WAAW,WAAWptH,IAAI,eAAeoqL,YAAY,eAAe/8D,MAAM,CAAC,GAAKpgI,KAAKyzO,UAAUjL,MAAM,QAASxoO,KAAKozO,MAAM,KAAO,OAAO,aAAermD,EAAIi3O,cAAc3jS,SAAS,CAAC,MAAS0sD,EAAU,QAAGtoK,GAAG,CAAC,KAAO,SAAS8/J,GAAQ,OAAOwI,EAAI/6H,YAAY,MAAQ,SAASuyH,GAAWA,EAAOv/K,OAAOihM,YAAqBlZ,EAAI+lD,OAAOvuD,EAAOv/K,OAAOrE,WAAUosL,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAS,MAAE5sD,WAAW,UAAUg9D,YAAY,eAAe,CAACpQ,EAAI3G,GAAG,6BAA6B2G,EAAIjH,GAAGiH,EAAI/wH,cAAc,wCACpjC,IFUpB,EACA,KACA,KACA,MAI8B,QGX5B,GAAY,GCahB,CACA93D,KAAAA,6BACAqO,MAAAA,CACA,WACA,kBAEA5X,KANA,WAOA,OACAm4O,OAAAA,GACAmxL,gBAAAA,GACA/wL,eAAAA,KACAhmD,OAAAA,EACAimD,OAAAA,EACA1wO,OAAAA,EACAu5D,aAAAA,0BACA3pC,UAAAA,EACA+gN,KAAAA,KAGA7zG,MAAAA,CAEAuzG,OAFA,WAGA,gBACA,sBACA,cAGA/gK,SAAAA,CACA4hK,WADA,WAEA,WACA,oBAIA,oDAGA34C,QArCA,WAsCA,WACA,mBACAte,EAAAA,eAAAA,EAAAA,eAAAA,OACAA,EAAAA,OAAAA,EAAAA,eAAAA,QAGA,aACAA,EAAAA,SAAAA,EAAAA,SAAAA,SACAA,EAAAA,KAAAA,EAAAA,SAAAA,GACAA,EAAAA,gBAAAA,EAAAA,SAAAA,SAGAA,EAAAA,iBACAA,EAAAA,qBAAAA,IAAAA,kBAAAA,EAAAA,WAEAue,UArDA,WAsDA,iEAEA/wK,QAAAA,CACA4zH,KADA,WAEA,WACA4+B,EAAAA,MAAAA,iBAAAA,EAAAA,SAAAA,EAAAA,OAAAA,EAAAA,MAAAA,EAAAA,QAEArT,SALA,WAMA,kBACA,uBAGA,cAEAgqE,SAZA,WAaA,WACA,4BACA32D,EAAAA,OAAAA,EAEAA,EAAAA,OAAAA,GAGA62D,eApBA,WAqBA,yBACA,uCAEAvhL,SAxBA,WAyBA,wBAEAwhL,OA3BA,WA4BA,WACA,eACA,SAGA,wBAMA,OAJA,aACAA,GAAAA,eAGA,MCnHa,WAAa,IAAIzmD,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,qBAAqB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,OAAO,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,aAAa,CAACl9D,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,MAAM,CAAC2iD,MAAMmK,EAAI1jB,YAAY,CAACppC,EAAG,QAAQ,CAACG,MAAM,CAAC,IAAMpgI,KAAKyzO,UAAUjL,MAAM,SAAUxoO,KAAKozO,QAAQ,CAACrmD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIymD,aAAazmD,EAAI3G,GAAG,KAAM2G,EAAc,WAAE9sD,EAAG,MAAM,CAACI,SAAS,CAAC,UAAY0sD,EAAIjH,GAAGiH,EAAIviE,SAASopH,YAAY7mD,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,SAAS,CAACZ,WAAW,CAAC,CAACn7H,KAAK,QAAQg8H,QAAQ,UAAUv/H,MAAOosL,EAAU,OAAE5sD,WAAW,WAAWptH,IAAI,kBAAkBoqL,YAAY,mBAAmB/8D,MAAM,CAAC,GAAKpgI,KAAKyzO,UAAUjL,MAAM,SAAUxoO,KAAKozO,OAAO3uN,GAAG,CAAC,OAAS,SAAS8/J,GAAQ,IAAI2/O,EAAgBjia,MAAM/C,UAAUwG,OAAO/B,KAAK4gL,EAAOv/K,OAAOlC,SAAQ,SAASyf,GAAG,OAAOA,EAAE43G,YAAWl/G,KAAI,SAASsH,GAAgD,MAAnC,WAAYA,EAAIA,EAAEsjL,OAAStjL,EAAE5hB,SAAoBosL,EAAI+lD,OAAOvuD,EAAOv/K,OAAOq2D,SAAW6oW,EAAgBA,EAAc,MAAM,CAACjkS,EAAG,SAAS,CAACG,MAAM,CAAC,SAAW,GAAG,MAAQ,MAAM2sD,EAAI3G,GAAG,KAAK2G,EAAI5pF,GAAI4pF,EAAmB,iBAAE,SAAS+lD,GAAQ,OAAO7yG,EAAG,SAAS,CAACI,SAAS,CAAC,MAAQyyG,IAAS,CAAC/lD,EAAI3G,GAAG2G,EAAIjH,GAAGgtD,UAAc,eAC9mC,IFUpB,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QGAhC,GAXgB,GCchB,CACA5uO,KAAAA,4BACAqO,MAAAA,CACA,WACA,kBAEA5X,KANA,WAOA,OACAm4O,OAAAA,GACAmxL,gBAAAA,GACA/wL,eAAAA,KACAhmD,OAAAA,EACAimD,OAAAA,EACA1wO,OAAAA,EACAu5D,aAAAA,0BACA3pC,UAAAA,EACA+gN,KAAAA,KAGA7zG,MAAAA,CAEAuzG,OAFA,WAGA,gBACA,sBACA,cAGA/gK,SAAAA,CACA4hK,WADA,WAEA,WACA,oBAIA,oDAGA34C,QArCA,WAsCA,WACA,mBACAte,EAAAA,eAAAA,EAAAA,eAAAA,OACA,sBAEAA,EAAAA,OAAAA,GAEAA,EAAAA,OAAAA,EAAAA,eAAAA,QAIA,aACAA,EAAAA,SAAAA,EAAAA,SAAAA,SACAA,EAAAA,KAAAA,EAAAA,SAAAA,GACAA,EAAAA,gBAAAA,EAAAA,SAAAA,SAGAA,EAAAA,iBACAA,EAAAA,qBAAAA,IAAAA,kBAAAA,EAAAA,WAEAue,UA1DA,WA2DA,iEAEA/wK,QAAAA,CACA4zH,KADA,WAEA,WACA4+B,EAAAA,MAAAA,iBAAAA,EAAAA,SAAAA,EAAAA,OAAAA,EAAAA,MAAAA,EAAAA,QAEArT,SALA,WAMA,kBACA,uBAGA,cAEAgqE,SAZA,WAaA,WACA,4BACA32D,EAAAA,OAAAA,EAEAA,EAAAA,OAAAA,GAGA62D,eApBA,WAqBA,yBACA,uCAEAvhL,SAxBA,WAyBA,wBAEAwhL,OA3BA,WA4BA,WACA,eACA,SAGA,wBAMA,OAJA,aACAA,GAAAA,eAGA,MCzHa,WAAa,IAAIzmD,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,qBAAqB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,OAAO,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,aAAa,CAACl9D,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,MAAM,CAAC2iD,MAAMmK,EAAI1jB,YAAY,CAACppC,EAAG,QAAQ,CAACG,MAAM,CAAC,IAAMpgI,KAAKyzO,UAAUjL,MAAM,SAAUxoO,KAAKozO,QAAQ,CAACrmD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIymD,aAAazmD,EAAI3G,GAAG,KAAM2G,EAAc,WAAE9sD,EAAG,MAAM,CAACI,SAAS,CAAC,UAAY0sD,EAAIjH,GAAGiH,EAAIviE,SAASopH,YAAY7mD,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM8sD,EAAI5pF,GAAI4pF,EAAmB,iBAAE,SAASo3O,GAAS,OAAOlkS,EAAG,QAAQ,CAACymE,YAAY,CAAC,QAAU,UAAU,CAACzmE,EAAG,QAAQ,CAACZ,WAAW,CAAC,CAACn7H,KAAK,QAAQg8H,QAAQ,UAAUv/H,MAAOosL,EAAU,OAAE5sD,WAAW,WAAWC,MAAM,CAAC,KAAO,YAAYC,SAAS,CAAC,MAAQ8jS,EAAQ,QAAUlia,MAAMiD,QAAQ6nL,EAAI+lD,QAAQ/lD,EAAI7pF,GAAG6pF,EAAI+lD,OAAOqxL,IAAU,EAAGp3O,EAAU,QAAGtoK,GAAG,CAAC,OAAS,SAAS8/J,GAAQ,IAAI6/O,EAAIr3O,EAAI+lD,OAAOuxL,EAAK9/O,EAAOv/K,OAAOs/Z,IAAID,EAAK3rS,QAAuB,GAAGz2H,MAAMiD,QAAQk/Z,GAAK,CAAC,IAAI1wL,EAAIywL,EAAQI,EAAIx3O,EAAI7pF,GAAGkhU,EAAI1wL,GAAQ2wL,EAAK3rS,QAAS6rS,EAAI,IAAIx3O,EAAI+lD,OAAOsxL,EAAIjia,OAAO,CAACuxO,KAAY6wL,GAAK,IAAIx3O,EAAI+lD,OAAOsxL,EAAIj/Z,MAAM,EAAEo/Z,GAAKpia,OAAOiia,EAAIj/Z,MAAMo/Z,EAAI,UAAWx3O,EAAI+lD,OAAOwxL,MAASv3O,EAAI3G,GAAG,IAAI2G,EAAIjH,GAAGq+O,GAAS,mCAAkC,eACrpC,IFUpB,EACA,KACA,KACA,MAI8B,mBGX5B,GAAY,GCgChB,CACAjga,KAAAA,sBACAqO,MAAAA,CACA,WACA,kBAEA5X,KANA,WAOA,OACAm4O,OAAAA,CACAA,OAAAA,GACA0xL,WAAAA,IAIAC,QAAAA,GACAC,WAAAA,GACAT,gBAAAA,GACA/wL,eAAAA,KACAhmD,OAAAA,EACAimD,OAAAA,EACA1wO,OAAAA,EACAu5D,aAAAA,0BACA3pC,UAAAA,EACA+gN,KAAAA,KAGA7zG,MAAAA,CAEAklS,QAFA,WAGA,oBACA,gBACA,sBACA,aAEAC,WARA,WASA,oBACA,gBACA,sBACA,cAGA3yV,SAAAA,CACA4hK,WADA,WAEA,WACA,oBAIA,mDAEAgxL,eATA,WAUA,WACA,uDAIA,yBACA,YAEAC,gBAlBA,WAmBA,IACA,EADA,KACA,uBACA,SACA,eAGA,IAEAC,uBA3BA,WA4BA,WACA,qFAGA7pO,QAzEA,WA0EA,WACA,iDACAte,EAAAA,eAAAA,EAAAA,eAAAA,OAAAA,OACAA,EAAAA,OAAAA,EAAAA,eAAAA,OACAA,EAAAA,QAAAA,EAAAA,OAAAA,OACAA,EAAAA,WAAAA,EAAAA,OAAAA,YAGA,aACAA,EAAAA,SAAAA,EAAAA,SAAAA,SACAA,EAAAA,KAAAA,EAAAA,SAAAA,GACAA,EAAAA,gBAAAA,EAAAA,SAAAA,SAGAA,EAAAA,iBACAA,EAAAA,qBAAAA,IAAAA,kBAAAA,EAAAA,WAEAue,UA3FA,WA4FA,iEAEA/wK,QAAAA,CACA4zH,KADA,WAEA,WACA4+B,EAAAA,MAAAA,iBAAAA,EAAAA,SAAAA,EAAAA,OAAAA,EAAAA,MAAAA,EAAAA,QAEArT,SALA,WAMA,kBACA,uBAGA,cAEAiqE,aAZA,WAaA,WACA52D,EAAAA,OAAAA,OAAAA,EAAAA,QACA,iBACAA,EAAAA,OAAAA,WAAAA,EAAAA,WAEAA,EAAAA,OAAAA,WAAAA,IAGA22D,SArBA,WAsBA,WACA,qDACA32D,EAAAA,OAAAA,EAEAA,EAAAA,OAAAA,GAGA62D,eA7BA,WA8BA,gCAEA,oBACA,gDAEA,sCAGA,YAEA,iBAGAvhL,SA3CA,WA4CA,wBAEAwhL,OA9CA,WA+CA,WACA,eACA,SAGA,wBAMA,OAJA,aACAA,GAAAA,eAGA,MC/La,WAAa,IAAIzmD,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,qBAAqB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,OAAO,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,aAAa,CAACl9D,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,MAAM,CAAC2iD,MAAMmK,EAAI1jB,YAAY,CAACppC,EAAG,QAAQ,CAAC8sD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIymD,aAAazmD,EAAI3G,GAAG,KAAM2G,EAAc,WAAE9sD,EAAG,MAAM,CAACI,SAAS,CAAC,UAAY0sD,EAAIjH,GAAGiH,EAAIviE,SAASopH,YAAY7mD,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAAC8sD,EAAI5pF,GAAI4pF,EAAmB,iBAAE,SAAS3/K,GAAG,OAAO6yH,EAAG,MAAM,CAACA,EAAG,MAAM,CAACk9D,YAAY,SAAS,CAACl9D,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACZ,WAAW,CAAC,CAACn7H,KAAK,QAAQg8H,QAAQ,UAAUv/H,MAAOosL,EAAW,QAAE5sD,WAAW,YAAYC,MAAM,CAAC,KAAO,SAASC,SAAS,CAAC,MAAQjzH,EAAEomO,OAAO,QAAUzmD,EAAI/G,GAAG+G,EAAI03O,QAAQr3Z,EAAEomO,SAAS/uN,GAAG,CAAC,OAAS,SAAS8/J,GAAQwI,EAAI03O,QAAQr3Z,EAAEomO,WAAWzmD,EAAI3G,GAAG2G,EAAIjH,GAAG14K,EAAEomO,QAAQ,+CAA8CzmD,EAAI3G,GAAG,KAAM2G,EAAkB,eAAE9sD,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACG,MAAM,CAAC,IAAMpgI,KAAKyzO,UAAUjL,MAAM,QAASxoO,KAAKozO,QAAQ,CAACrmD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAI63O,oBAAoB73O,EAAI3G,GAAG,KAAM2G,EAAkB,eAAE9sD,EAAG,QAAQ,CAACZ,WAAW,CAAC,CAACn7H,KAAK,QAAQg8H,QAAQ,UAAUv/H,MAAOosL,EAAc,WAAE5sD,WAAW,eAAeptH,IAAI,eAAeoqL,YAAY,eAAe/8D,MAAM,CAAC,GAAKpgI,KAAKyzO,UAAUjL,MAAM,QAASxoO,KAAKozO,MAAM,KAAO,QAAQ/yG,SAAS,CAAC,MAAS0sD,EAAc,YAAGtoK,GAAG,CAAC,KAAO,SAAS8/J,GAAQ,OAAOwI,EAAI/6H,YAAY,MAAQ,SAASuyH,GAAWA,EAAOv/K,OAAOihM,YAAqBlZ,EAAI23O,WAAWngP,EAAOv/K,OAAOrE,WAAUosL,EAAI1G,OAAO0G,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAS,MAAE5sD,WAAW,UAAUg9D,YAAY,eAAe,CAACpQ,EAAI3G,GAAG,iCAAiC2G,EAAIjH,GAAGiH,EAAI/wH,cAAc,iCAAiC,eACxoD,IFUpB,EACA,KACA,KACA,MAIF,GAAe,GAAiB,mBGhBnB8oW,GAAc,CACzBnqa,KADyB,WAEvB,MAAO,CACLoqa,cAAc,IAGlB76Y,QAAS,CACP86Y,mBADO,SACYx9Z,GAAO,IAAD,OACjBk1K,EAAK18K,KACX,GAAI08K,EAAGuoP,OAAQ,CACb,IAAMtpa,EAAM+gL,EAAGwoP,YAAYC,aACrBxqa,EAAO,CACXyqa,aAAc16Z,OAAOC,SAASH,UAG9B7P,EAAK6M,KADHA,GAGU,GAKd7M,EAAK6M,KAAK69Z,wBAAyB,EAEnCjma,GAAMkma,IAAI3pa,EAAKhB,GACZ4D,MAAK,SAACxC,GACL,IAAQ4gB,EAAU5gB,EAASpB,KAAnBgiB,MACRjS,OAAOC,SAASuQ,OAAOwhK,EAAG6oP,YAAY5oZ,OAEvC3B,OAAM,SAACvY,GAAW,IAAD,EAChBi6K,EAAG8oP,QAAS,EACZ9oP,EAAGqoP,cAAe,EAClBroP,EAAG1gH,aAAH,iCAAmDv5D,EAAMxC,WACzDy8K,EAAGj6K,OAAQ,EAEoB,OAA3B,SAAAA,EAAM1G,eAAN,IAAgBE,SAClB,EAAKwpa,sBAKfA,eAnCO,WAoCL3yS,KAAAA,KAAU,CACRxnH,KAAM,QACN4iC,MAAO,wBACPsgF,KAAM,mOACNc,mBAAoB,sBACpBH,kBAAmB,KACnBQ,gBAAgB,IAEfpxH,MAAK,SAACiO,GACL9B,OAAOC,SAASuQ,OAAO,iBAG7BqqZ,YAhDO,SAgDK5oZ,GACV,OAAQA,GACN,IAAK,gBACH,MAAO,iBACT,IAAK,gBACH,MAAO,uBACT,IAAK,gBACH,MAAO,0BACT,IAAK,aACH,MAAO,cACT,IAAK,eACH,MAAO,mBACT,QACE,MAAO,g2BCmCjB,QACAzY,KAAAA,yBACAwO,OAAAA,CAAAA,IACAw+K,WAAAA,CACAw0O,uBAAAA,GACAC,iBAAAA,GACAC,wBAAAA,GACAC,iBAAAA,GACAC,YAAAA,GACAC,qBAAAA,GACAC,uBAAAA,GACAC,iBAAAA,GACAC,gBAAAA,GACAC,mBAAAA,GACAl9L,QAAAA,IAEA12N,MAAAA,CACAqvZ,SAAAA,CACAt2Z,KAAAA,OACA+mB,UAAAA,GAEAwvY,UAAAA,CACAv2Z,KAAAA,OACA+mB,UAAAA,GAEAyvY,kBAAAA,CACAx2Z,KAAAA,OACA+mB,UAAAA,GAEA+zY,iBAAAA,CACA96Z,KAAAA,OACA+mB,UAAAA,GAEAg0Y,SAAAA,CACA/6Z,KAAAA,OACA+mB,UAAAA,GAEAs1M,UAAAA,CACAr8N,KAAAA,OACA+mB,UAAAA,GAEAu1M,YAAAA,CACAt8N,KAAAA,OACA+mB,UAAAA,GAEAi0Y,YAAAA,CACAh7Z,KAAAA,OACA+mB,UAAAA,GAEAw1M,UAAAA,CACAv8N,KAAAA,OACA+mB,UAAAA,GAEAk0Y,UAAAA,CACAj7Z,KAAAA,OACA6rF,QAAAA,QAEAqvU,kBAAAA,CACAl7Z,KAAAA,MACA+mB,UAAAA,GAEAy1M,aAAAA,CACAx8N,KAAAA,OACA+mB,UAAAA,GAEA4yY,OAAAA,CACA35Z,KAAAA,QACA6rF,SAAAA,GAEAsvU,aAAAA,CACAn7Z,KAAAA,OACA6rF,QAAAA,MAEAuvU,eAAAA,CACAp7Z,KAAAA,OACA6rF,QAAAA,MAEAwvU,YAAAA,CACAr7Z,KAAAA,QACA6rF,SAAAA,GAGAxhC,WAAAA,CACArqD,KAAAA,OACA6rF,QAAAA,WAGAx8F,KAvFA,WAwFA,OACAm3H,SAAAA,EACArvH,OAAAA,EACAu5D,aAAAA,GAEA4qW,UAAAA,GAEAC,iBAAAA,KAGAC,QAAAA,GAEAtB,QAAAA,IAGAxqO,QAvGA,WAwGA,yBAEAz7D,MAAAA,CACAsoG,UAAAA,SAAAA,GACA,yBAEA2+L,kBAAAA,SAAAA,GACA,0BAGAz0V,SAAAA,CACAg1V,iBADA,WAGA,oCAGA78Y,QAAAA,CACA88Y,cADA,SACAtrZ,GACA,aACA,+BAGA,0BAEAurZ,cARA,SAQAC,GACA,4BACA,EAGA,uBAGAC,oBAhBA,SAgBA38S,EAAAsoH,EAAA5lD,EAAAimD,GACA,mDACA,GAKAi0L,EAAAA,OAAAA,EAGAA,EAAAA,MAAAA,IAAAA,EAAAA,GACAA,EAAAA,MAAAA,GARAh7Z,QAAAA,IAAAA,oBAUAi7Z,wBA7BA,SA6BA78S,EAAAs8S,GAGA,IAFA,IAEA,oBACA,WACA,qCACA,SAIA,aAEAQ,4BAzCA,SAyCA98S,EAAAs8S,GAEA,kBACA,YAGA,4BACA,WAIA,8CACA,SAGA,0CACA,wBACA,SAIA,aAEAS,iBAhEA,WAiEA,WAIA,GAHA7qP,EAAAA,SAAAA,EAGA,oBAGA,OAFAA,EAAAA,wBAAAA,EAAAA,wBACAA,EAAAA,iBAIA,wIACAA,EAAAA,YAAAA,aAAAA,EAAAA,0BACAn+K,MAAA,YACAm+K,EAAAA,wBAAAA,GACAA,EAAAA,oBAEA1hK,OAAA,YACA0hK,EAAAA,SAAAA,EACAA,EAAAA,aAAAA,2CAAAA,EAAAA,WACAA,EAAAA,OAAAA,MAGA8qP,eAvFA,WAwFA,WAGA,iBACA9qP,EAAAA,SAAAA,MADA,CAKA,8KACAA,EAAAA,YAAAA,aAAAA,EAAAA,wBACAn+K,MAAA,YACAm+K,EAAAA,mBAAAA,GACAA,EAAAA,SAAAA,KAEA1hK,OAAA,YACA0hK,EAAAA,SAAAA,EACAA,EAAAA,aAAAA,yCAAAA,EAAAA,WACAA,EAAAA,OAAAA,OAKA+qP,uBA9GA,SA8GA30L,EAAAtoH,EAAAk9S,GAgBA,OAfA50L,EAAAA,OAAAA,EACAA,EAAAA,OAAAA,EACAA,EAAAA,WAAAA,KAAAA,UACAA,EAAAA,aAAAA,KAAAA,YACAA,EAAAA,YAAAA,KAAAA,UACAA,EAAAA,yBAAAA,EAAAA,GACA,IAIAA,EAAAA,GAAAA,KAGAA,EAAAA,OAAAA,GAEA,GAGA60L,mBAjIA,SAiIAC,GACA,WAEAlrP,EAAAA,QAAAA,GAEAA,EAAAA,UAAAA,SAAAA,SAAAA,GACA,qCACA,KAEAA,EAAAA,QAAAA,KAAAA,EAAAA,uBAAAA,EAAAA,GAAAA,QAFA,CAMA,yCACA,KAGAA,EAAAA,QAAAA,KAAAA,EAAAA,uBAAAA,EAAAA,GAAAA,QAHA,CAQA,OACA15K,GAAAA,KACA6ka,yBAAAA,EAAAA,GACAC,cAAAA,EAAAA,aACAC,gBAAAA,EAAAA,eACAj1L,OAAAA,GACAK,OAAAA,EACAjmD,OAAAA,EACA86O,WAAAA,EAAAA,UACAC,aAAAA,EAAAA,YACAC,YAAAA,EAAAA,WAEAxrP,EAAAA,QAAAA,KAAAA,SAGAyrP,wBAtKA,SAsKAC,GACA,WACA1rP,EAAAA,UAAAA,EACA,6BAEAA,EAAAA,iBAAAA,GAEA,gDAEAA,EAAAA,iBAAAA,GAAAA,GAGA,0DACAA,EAAAA,iBAAAA,EAAAA,YAAAA,KAAAA,KAGA2rP,kBAtLA,WAuLA,IACA,KAOA,OARA,KAGA3rP,QAAAA,SAAAA,SAAAA,GACA,SACAiL,EAAAA,KAAAA,MAGA,GAEA2gP,YAjMA,SAiMAxB,GACA,oBACA,SAGA,SAQA,OANAA,EAAAA,SAAAA,SAAAA,IACA,mBACA3zL,GAAAA,MAIA,GAEAo1L,sBAhNA,WAiNA,WAEA,KAUA,OARA7rP,EAAAA,UAAAA,SAAAA,SAAAA,GACA,aACA,uCACA,QACA8rP,GAAAA,OAIA,GAEAC,YA/NA,SA+NA3B,GAEA,OACA4B,qBAAAA,IAGA/3Z,KAAAA,GAAAA,UAAAA,WACA,WACA,8BAKA,4BACA,KACA,aACAg4Z,EAAAA,EAAAA,YAAAA,IAGA,gCACA,UAMA,OAHAjsP,EAAAA,aAAAA,0EACAA,EAAAA,OAAAA,OACAA,EAAAA,qBAAAA,MAAAA,mBAJAA,EAAAA,OAAAA,EASAA,EAAAA,QAAAA,EAEA,uBAEA,yCACAt9K,GAAAA,KAAAA,EAAAA,GACAb,MAAA,YACAm+K,EAAAA,qBAAAA,MAAAA,aAAAA,cAAAA,GACAA,EAAAA,qBAAAA,MAAAA,0BAAAA,EAAAA,UAAAA,EAAAA,aACA,SACAA,EAAAA,qBACA,YACAA,EAAAA,QAAAA,EACAhyK,OAAAA,SAAAA,OAAAA,EAAAA,WAEAgyK,EAAAA,QAAAA,KAGA1hK,OAAA,YACA0hK,EAAAA,QAAAA,EACAA,EAAAA,aAAAA,sBAAAA,EAAAA,WACAA,EAAAA,OAAAA,QAEA,OC7eI,GAAY,GCPiN,ICApN,WAAa,IAAIqQ,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAAE8sD,EAAW,QAAE,CAAEA,EAAW,QAAE9sD,EAAG,WAAW8sD,EAAI1G,MAAM0G,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAO2G,EAAIj7D,QAAslFi7D,EAAI1G,KAAjlFpmD,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAAS,CAAE2sD,EAAe,YAAE9sD,EAAG,KAAK,CAACk9D,YAAY,iBAAiB,CAACpQ,EAAI3G,GAAG,kCAAkC2G,EAAIjH,GAAGiH,EAAIu5O,gBAAgBv5O,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAK2G,EAAI5pF,GAAI4pF,EAAoB,kBAAE,SAAS65O,EAAUM,EAAUxrZ,GAAO,OAAOukH,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC2iD,MAAMmK,EAAIi6O,cAActrZ,IAAQ,CAACukH,EAAG,MAAM,CAACk9D,YAAY,uBAAuB,CAACl9D,EAAG,KAAK,CAAC8sD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIk6O,cAAcC,SAAiBn6O,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,YAAYpQ,EAAI5pF,GAAG,GAAY,SAASqnB,GAAU,OAAOyV,EAAG,MAAM,CAACk9D,YAAY,sCAAsC,CAAoB,uBAAlB3yE,EAASl/G,KAA+B,CAAC20H,EAAG,uBAAuB,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,oBAAlB38S,EAASl/G,KAA4B,CAAC20H,EAAG,oBAAoB,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,qBAAlB38S,EAASl/G,KAA6B,CAAC20H,EAAG,qBAAqB,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,2BAAlB38S,EAASl/G,KAAmC,CAAC20H,EAAG,4BAA4B,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,yBAAlB38S,EAASl/G,KAAiC,CAAC20H,EAAG,0BAA0B,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,4BAAlB38S,EAASl/G,KAAoC,CAAC20H,EAAG,6BAA6B,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,2BAAlB38S,EAASl/G,KAAmC,CAAC20H,EAAG,4BAA4B,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,qBAAlB38S,EAASl/G,KAA6B,CAAC20H,EAAG,sBAAsB,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,UAAUriZ,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAA2C,qBAAlB38S,EAASl/G,KAA6B,CAAC20H,EAAG,qBAAqB,CAACG,MAAM,CAAC,SAAW5V,EAAS,kBAAkBuiE,EAAIs6O,wBAAwB78S,EAAUuiE,EAAI+5O,SAAS,SAAW/5O,EAAI60O,SAAS,aAAa70O,EAAI80O,UAAU,sBAAsB90O,EAAI+0O,mBAAmBr9Y,GAAG,CAAC,iBAAiBsoK,EAAIo6O,wBAAwBp6O,EAAI1G,MAAM,MAAK,WAAU,GAAY0G,EAAI3G,GAAG,KAAO2G,EAAI45O,YAAggB55O,EAAI1G,KAAvfpmD,EAAG,MAAM,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,OAAQosL,EAAIj7D,QAASqO,WAAW,aAAag9D,YAAY,0BAA0B,CAACl9D,EAAG,eAAe,CAACG,MAAM,CAAC,WAAW,cAAc,QAAU2sD,EAAIj7D,SAASrtG,GAAG,CAAC,UAAYsoK,EAAIp8K,OAAO,CAACo8K,EAAI3G,GAAG,iBAAiB2G,EAAIjH,GAAGiH,EAAIw5O,WAAW,gBAAgBx5O,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAS,MAAE5sD,WAAW,WAAW,CAACF,EAAG,QAAQ,CAACA,EAAG,OAAO,CAACk9D,YAAY,eAAe,CAACpQ,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAI/wH,sBAAsB,IAAa,KAC/xG,IFUpB,EACA,KACA,KACA,MGIF,GAXgB,GC8BhB,CACA93D,KAAAA,aACAgtL,WAAAA,CAAAA,qBJrBe,GAAiB,SI0BhC3+K,MAAAA,CACAq2Z,iBAAAA,CACAt9Z,KAAAA,MACA6rF,QAFA,WAGA,WAGAyqU,SAAAA,CACAt2Z,KAAAA,OACA+mB,UAAAA,GAEAwvY,UAAAA,CACAv2Z,KAAAA,OACA+mB,UAAAA,GAEAyvY,kBAAAA,CACAx2Z,KAAAA,OACA+mB,UAAAA,GAEAzL,MAAAA,CACAtb,KAAAA,OACA+mB,UAAAA,IAGA13B,KA/BA,WAgCA,UAEAo3E,SAAAA,CACA82V,oBADA,WAEA,qDAEAv7L,QAJA,WAKA,yCAGAtyC,QA1CA,WA2CA,8EAEAC,UA7CA,WA8CA,+EAEA/wK,QAAAA,CACA4+Y,eADA,SACAnhM,EAAAC,GAAA,MACA,oFACA,oECxFa,WAAa,IAAI76C,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAAE8sD,EAAuB,oBAAE9sD,EAAG,MAAM,CAACk9D,YAAY,SAAS,CAACl9D,EAAG,MAAM,CAACA,EAAG,KAAK,CAAC8sD,EAAI3G,GAAG,oDAAoD2G,EAAIjH,GAAGiH,EAAIugD,QAAQa,QAAQE,cAAc,cAActhD,EAAI3G,GAAG,KAAKnmD,EAAG,KAAK,CAACk9D,YAAY,eAAepQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,6CAA6C,CAACl9D,EAAG,yBAAyB,CAACG,MAAM,CAAC,eAAe,kBAAkB,aAAa2sD,EAAIugD,QAAQy7L,oBAAoB,cAAch8O,EAAIugD,QAAQtqO,GAAG,qBAAqB+pL,EAAI67O,iBAAiB,SAAW77O,EAAI60O,SAAS,aAAa70O,EAAI80O,UAAU,sBAAsB90O,EAAI+0O,kBAAkB,gBAAgB9ha,KAAK4mB,MAAMjK,MAAMkvN,MAAM7oO,GAAG,kBAAkB,YAAY,KAAKi9H,EAAG,MAAM,CAACA,EAAG,KAAK,CAACk9D,YAAY,SAAS,CAACpQ,EAAI3G,GAAG,mCAAmC2G,EAAI3G,GAAG,KAAKnmD,EAAG,KAAK,CAACk9D,YAAY,aAAapQ,EAAI3G,GAAG,KAAK2G,EAAI9G,GAAG,SAC54B,CAAC,WAAa,IAAI8G,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,IAAI,CAACA,EAAG,QAAQ,CAAC8sD,EAAI3G,GAAG,+BFUnI,EACA,KACA,KACA,MAI8B,8BGsUhC,IACAliL,KAAAA,YACAgtL,WAAAA,CACA83O,YAAAA,GACAC,UAAAA,GACAC,kBAAAA,GACAC,wBAAAA,GACAC,OAAAA,GACAC,oBAAAA,IAEA1ua,KAVA,WAWA,OACAg1O,WAAAA,EAEA25L,SAAAA,EACAC,WAAAA,EAIA3iZ,MAAAA,CACA03G,OAAAA,EACA3hH,MAAAA,CAEAkvN,MAAAA,KAGA29L,SAAAA,KAGAC,KAAAA,GACAC,aAAAA,EAGAC,cAAAA,EACAC,YAAAA,EAGAl7L,eAAAA,KACAm7L,aAAAA,CACA7ma,IAAAA,GAGAopO,QAAAA,GAEA09L,gBAAAA,GACAC,mBAAAA,EACAC,eAAAA,GAEAr9L,SAAAA,GAEAi8L,iBAAAA,GAGAqB,mBAAAA,GAEAC,mBAAAA,GAEAC,eAAAA,KAEA17L,iBAAAA,EAEA27L,cAAAA,GAEAC,YA5CA,SA4CAC,GACA,wDACA,uBAEAC,kBAhDA,SAgDAlmZ,GACA,8DACA,4BACA,4DACA,iBACA,oCACA,2BAGAmmZ,kBAzDA,SAyDA5lZ,GACA,8DACA,6BAEA6lZ,mBA7DA,SA6DAC,GACA,+DACA,mDAEAC,WAjEA,SAiEAv+L,GACA,sDACA,qBACA,0BAEAw+L,kBAtEA,WAuEA,sCAEA,KAGA,uDACA,yCACAC,EAAAA,KAAAA,GAIA,4DACA,GACAC,EAAAA,SAAAA,SAAAA,GACA,kBACAD,EAAAA,KAAAA,MAKA,4BAEAE,cA7FA,SA6FAz9L,EAAA09L,GACA,8CACA,oDACA,uBAEA,OAEA,gEACAA,EAAAA,MAAAA,aAAAA,EAAAA,QAAAA,aAAAA,0BAAAA,KAGA,+BACAA,EAAAA,MAAAA,aAAAA,EAAAA,QAAAA,aAAAA,eAAAA,IAIA,sCACA,8BAGAC,YAjHA,SAiHAt+L,GACA,wDACA,uBAEAu+L,oBArHA,SAqHAtE,GACA,gEACA,+BAIAuE,4BA3HA,SA2HA14L,EAAAvkM,EAAAnD,EAAA+jF,EAAAs8S,GACA,wEACA,8DACA,+BAEA,OAEA,0CAGA,kGAEAC,iBAvIA,SAuIAC,GACA,6DACA,uGAEA,8DACA,8EAEA,OACA,0CAEA,2GAEAC,qBAnJA,SAmJAj+L,GACA,iEACA,sCAEA,2BACA,0CAGAk+L,kCA3JA,WA4JA,uEACA,6CACA,2BAEAC,kBAhKA,SAgKAn+L,GACA,8DACA,6BAEAo+L,iBApKA,SAoKA7jM,GAAA,MACA,6DACAn2N,GAAAA,OAAAA,KAAAA,MAAAA,oBAAAA,SAAAA,GAAAA,OAAAA,EAAAA,KAAAA,KACA,uDACA,0CAGAi6Z,SA3KA,SA2KA9/L,GACA,GACA+/L,aAAAA,QAAAA,YAAAA,KAAAA,UAAAA,IACAxsa,KAAAA,SAAAA,QAAAA,OAAAA,cAAAA,UAAAA,EAAAA,KAAAA,QACA,qBAEAA,KAAAA,SAAAA,QAAAA,OAAAA,cAAAA,SACAwsa,aAAAA,WAAAA,aACA,2BAMA1wO,QA5MA,WA8MA,IACA,oDACA,uBACA97L,KAAAA,SAAAA,QAAAA,OAAAA,cAAAA,UAAAA,EAAAA,KAAAA,QACA,SAEAwsa,aAAAA,WAAAA,aACAxsa,KAAAA,SAAAA,QAAAA,OAAAA,cAAAA,WAGA47L,QAxNA,WAyNA,6DACAtwL,OAAAA,iBAAAA,UAAAA,KAAAA,SAAAA,IAEAuwL,UA5NA,WA6NA,8DACAvwL,OAAAA,oBAAAA,UAAAA,KAAAA,SAAAA,IAEAqnE,SAAAA,CACA85V,sBADA,WAEA,iFAEAC,gBAJA,WAKA,yJAEAC,WAPA,WAQA,sCAEAC,gBAVA,WAWA,kDAEAC,iBAbA,WAaA,WACA,yBACA,SAEA,sDACA,0DAEA,uCAEAC,gBAtBA,WAsBA,WACA,uDACA,2DAGAC,wBA3BA,WA4BA,gGAEAC,aA9BA,WA+BA,sEAGA7sS,MAAAA,CACAwsS,WADA,WAEA,iBACA,kBAGAC,gBANA,WAOA,uBACA,mCAGA,6BAXA,SAWAK,GAEA,GADA,6BACA,EAIA,GAHAT,aAAAA,QAAAA,oBAAAA,KAAAA,UAAAA,IACA,sBAEA,oCACA,0CACA,sCAEA,oCAGAA,aAAAA,WAAAA,sBAGA,2BA3BA,SA2BAU,GACAV,aAAAA,QAAAA,gBAAAA,KAAAA,UAAAA,KAEA,8BA9BA,SA8BAW,GAGA,uBAIA,sBACAX,aAAAA,QAAAA,oBAAAA,KAAAA,UAAAA,IAEAA,aAAAA,WAAAA,qBAEAA,aAAAA,WAAAA,uBAGA,2BA7CA,SA6CAY,GACAZ,aAAAA,QAAAA,iBAAAA,KAAAA,UAAAA,MAGA1hZ,QAAAA,CACAuiZ,mBADA,SACAC,GACA,iFACA,kCAEAC,gBALA,SAKAD,EAAAnoP,GACA,wBACA,kFAEA,4BAGAqoP,eAZA,SAYAF,GACA,2DAEAh5H,QAfA,SAeAzsS,GACA,aACAmF,QAAAA,IAAAA,gBACAA,QAAAA,IAAAA,GACAA,QAAAA,IAAAA,EAAAA,MAEA,6BAEA,iBACA,6CACA,2BAGAyga,iBA5BA,SA4BAC,GAAA,WAEA,UADA,cAGA,UADA,mBAGA,UADA,mBAEA,YACA,gBASA,GARA,EACAC,EAAAA,EAAAA,GACA,EACAA,EAAAA,EAAAA,GACA,IACAA,EAAAA,EAAAA,IAEA,gDACA,6BAEA,YADA,uGAGA,gCAEA,qDACA,OACA3ta,KAAAA,IAAAA,GACAb,MAAA,YACA,oCACAm+K,EAAAA,0BAAAA,EAAAA,KAAAA,oBAAAA,IAEA,0FAEAA,EAAAA,MAAAA,MAAAA,aAAAA,KAEA1hK,OAAA,YACA0hK,EAAAA,MAAAA,MAAAA,aAAAA,EACA,mEAGA,qDAGAswP,wBAtEA,SAsEA1B,GAAA,WACA,OACAx4S,KAAAA,KAAAA,CACAxnH,KAAAA,UACA4iC,MAAAA,EAAAA,MACAnD,KAAAA,EAAAA,KACAkkF,kBAAAA,EACAW,gBAAAA,EACAN,mBAAAA,wBACAH,kBAAAA,wBACAO,kBAAAA,kBACAZ,cAAAA,EAAAA,cACAa,gBAAAA,IAEApxH,MAAA,YACA,WACA+sa,EAAAA,sBACA,CACA,kDACA,yEAGA5uP,EAAAA,MAAAA,iBAAAA,OAGAuwP,0BA/FA,SA+FAC,GACA,iCAKA,8CACA,8BAEA,OACA,oCACA,gQACA,cACAxwP,EAAAA,eAAAA,EAAAA,YAGA,4EAEA,gCAGAywP,UApHA,WAqHA,WACA/ga,QAAAA,IAAAA,wBACA7R,QAAAA,IAAAA,CAAAA,KAAAA,aAAAA,KAAAA,+BAAAA,KAAAA,cAAAA,KAAAA,aACAgE,MAAA,YAEA,WACAm+K,EAAAA,MAAAA,kBAAAA,GAEA,WACAA,EAAAA,MAAAA,oBAAAA,GAGAA,EAAAA,MAAAA,MAAAA,aAAAA,KAAAA,MAAAA,aAAAA,QAAAA,kBAEAA,EAAAA,MAAAA,MAAAA,aAAAA,KAAAA,MAAAA,aAAAA,QAAAA,qBAAAA,EAGA,WACAA,EAAAA,MAAAA,WAAAA,GAGA,WACAA,EAAAA,MAAAA,YAAAA,GAEAA,EAAAA,SAAAA,KAEA1hK,OAAA,YACA5O,QAAAA,IAAAA,GACAswK,EAAAA,WAAAA,MAGAq+O,UApJA,SAoJAn2Y,GACA,SAKA,OAJA,YACA5C,EAAAA,KAAAA,GAAAA,EAAAA,UACA8+E,OAAA,mBAEA,cAEAssU,UA5JA,SA4JAxoZ,GACA,4DAEA,uCACA8nE,SAAA,SAAAwK,GAAAA,EAAAA,QAGA,sCACA,4DACA,UACA,qBAEA,yDAGAm2U,SA3KA,WA4KA,0EACA9ua,MAAA,8CACAyc,OAAA,yCAEAsyZ,6BAhLA,WAiLA,IACA,EADA,KACA,6CAEA,OAHA,KAGA,qDACA/ua,MAAA,yCACAyc,OAAA,yCAEAuyZ,WAxLA,WAyLA,IAMA,aANA,KACAvxT,QAAA,OACAj0G,cAIA,QAHA,KACAs0G,MAAA,OACAt0G,cACA,0BACA,gCACA,iDACAxJ,MAAA,yCACAyc,OAAA,yCAEAwyZ,aArMA,SAqMAC,GACA,WAEA,gBAGA,OADA/wP,EAAAA,MAAAA,MAAAA,iBAAAA,EACA,6FACAn+K,MAAA,YACAm+K,EAAAA,MAAAA,YAAAA,GACAA,EAAAA,MAAAA,MAAAA,iBAAAA,KAEA1hK,OAAA,uCAGA,oBACA,aAEA,OADA0hK,EAAAA,MAAAA,MAAAA,iBAAAA,EACA,kFACAn+K,MAAA,YACAm+K,EAAAA,MAAAA,YAAAA,GACAA,EAAAA,MAAAA,MAAAA,iBAAAA,KAEA1hK,OAAA,wCAIA0yZ,YA/NA,WAgOA,oCACA,kDACAnva,MAAA,yCACAyc,OAAA,yCAEA2yZ,sBArOA,SAqOAl7L,GACA,iDAIA,sBACA56H,SAAA3gB,OAEA02U,kCA7OA,SA6OAn7L,GACA,yEACA,SAGA,wDACAF,SAAC,EAADA,QAAAA,YAAAA,EAAAA,UAIA,qBAKA,sEAEAs7L,kBA9PA,SA8PAp7L,GACArmO,QAAAA,IAAAA,oBAAAA,GACA0mH,KAAAA,KAAAA,CACAxnH,KAAAA,UACA4iC,MAAAA,mBAAAA,EAAAA,aAAAA,6BACAnD,KAAAA,6EACAkkF,kBAAAA,EACAW,gBAAAA,EACAN,mBAAAA,wBACAH,kBAAAA,KACAO,kBAAAA,kBACAZ,eAAAA,EACAa,gBAAAA,KAGAm+S,eA7QA,SA6QAr7L,GAGA,GADA,mDACA,0CACA,+BAIA,qDACA,kCACA,OACA,sNACA,cACA/1D,EAAAA,YAAAA,MAGA,gFAEA,qBAGAqxP,YAlSA,SAkSAt7L,GAAA,WAEA,GACAu7L,SAAAA,CACAjF,oBAAAA,EAAAA,GACA9sa,OAAAA,YAIA,oDACA,YACAK,EAAAA,SAAAA,GAEA,WACA,6BACA8C,KAAAA,KAAAA,EAAAA,GACAb,MAAA,YACAm+K,EAAAA,MAAAA,cAAAA,EAAAA,KAAAA,EAAAA,yBAEA1hK,OAAA,YACA5O,QAAAA,MAAAA,OAIAi8N,aA1TA,WA2TA,0CAEA4lM,aA7TA,SA6TA79L,GACA,kBAEA89L,OAhUA,WAiUA,6BCr8BI,GAAY,GCPoM,ICAvM,WAAa,IAAInhP,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,aAAa,CAAEpQ,EAAc,WAAE,CAAC9sD,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQ2sD,EAAInmK,UAAWmmK,EAAW,QAAE,CAAC9sD,EAAG,MAAM,CAACk9D,YAAY,cAAc,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,+DAA+D,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,QAAQ,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,gCAAgC,CAACpQ,EAAI9G,GAAG,GAAG8G,EAAI3G,GAAG,KAAKnmD,EAAG,KAAK,CAACk9D,YAAY,UAAU,CAACpQ,EAAI3G,GAAG,iCAAiC2G,EAAI3G,GAAG,KAAM2G,EAAa,UAAE9sD,EAAG,IAAI,CAACk9D,YAAY,sBAAsB,CAACpQ,EAAI3G,GAAG,8GAA8GnmD,EAAG,MAAMA,EAAG,MAAM8sD,EAAI3G,GAAG,0FAA0F2G,EAAI1G,cAAc,CAACpmD,EAAG,MAAM,CAACk9D,YAAY,OAAO,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,oCAAoC,CAAEn9L,KAAK4mB,MAAMjK,MAAoB,eAAEsjH,EAAG,MAAM,CAACk9D,YAAY,QAAQ,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,iHAAiH,CAACl9D,EAAG,KAAK,CAACk9D,YAAY,YAAY,CAAGpQ,EAAI8+O,sBAA2I5rS,EAAG,OAAO,CAAC8sD,EAAI3G,GAAG,gDAAtInmD,EAAG,OAAO,CAAC8sD,EAAI3G,GAAG,gCAAgC2G,EAAIjH,GAAGiH,EAAInmK,MAAMjK,MAAM+xN,eAAexqO,MAAM,0BAA4F6oL,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,uBAAuB,CAACl9D,EAAG,SAAS,CAACk9D,YAAY,qBAAqB/8D,MAAM,CAAC,GAAK,cAAc,wBAAuB,EAAM,YAAY,QAAQ,eAAe,YAAY,YAAc,6BAA6B,iBAAiB2sD,EAAInmK,MAAMjK,MAAMgtZ,aAAa,aAAa58O,EAAIi/O,gBAAkBj/O,EAAInmK,MAAMjK,MAAMmtZ,gBAAkB,KAAK,WAAW/8O,EAAIs7C,gBAAgBlmD,YAAY4K,EAAIzG,GAAG,CAAC,CAACzoL,IAAI,OAAOoF,GAAG,SAASkra,GAAW,MAAO,CAACluS,EAAG,wBAAwB,CAACpiI,IAAIswa,EAAU3ha,OAAOxJ,GAAGo9H,MAAM,CAAC,SAAW+tS,EAAU3ha,QAAQiY,GAAG,CAAC,WAAWsoK,EAAI+gP,qBAAqB,CAACjwa,IAAI,eAAeoF,GAAG,WAAW,MAAO,CAAE8pL,EAAmB,gBAAE9sD,EAAG,MAAM,CAACk9D,YAAY,iBAAiB,CAACl9D,EAAG,IAAI,CAAC8sD,EAAI3G,GAAG,gDAAgDnmD,EAAG,SAAS,CAAC8sD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIk/O,qBAAqBl/O,EAAI3G,GAAG,uJAAuJ2G,EAAI1G,OAAO1mC,OAAM,IAAO,MAAK,EAAM,eAAe,KAAKotC,EAAI1G,OAAO0G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,oCAAoC,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,gBAAgB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,gBAAgB,CAAGn9L,KAAK4mB,MAAMjK,MAAM+xN,eAA82CzuG,EAAG,MAAM,CAACA,EAAG,MAAM,CAACk9D,YAAY,mCAAmC,CAACl9D,EAAG,MAAM,CAACA,EAAG,MAAM,CAACk9D,YAAY,YAAY,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,+BAA+B,CAACpQ,EAAI3G,GAAG,2BAA2B2G,EAAIjH,GAAGiH,EAAInmK,MAAMjK,MAAM6sZ,SAAStla,MAAM,4BAA4B6oL,EAAI3G,GAAG,KAAKnmD,EAAG,KAAK,CAACk9D,YAAY,kBAAkB,CAAEpQ,EAAyB,sBAAE9sD,EAAG,OAAO,CAAC8sD,EAAI3G,GAAG,eAAenmD,EAAG,OAAO,CAAC8sD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAInmK,MAAMjK,MAAM+xN,eAAexqO,aAAa6oL,EAAI3G,GAAG,KAAM2G,EAAyB,sBAAE9sD,EAAG,IAAI,CAAC8sD,EAAI3G,GAAG,kEAAkEnmD,EAAG,IAAI,CAACA,EAAG,OAAO,CAACk9D,YAAY,cAAc,CAACpQ,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIqgP,UAAUrgP,EAAInmK,MAAMjK,MAAM+xN,wBAAwB3hD,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,iBAAiB,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,8DAA8D14K,GAAG,CAAC,MAAQ,SAAS8/J,GAAQ,OAAOwI,EAAInmK,MAAM4jZ,kBAAkB,UAAUz9O,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAACk9D,YAAY,2CAA2C14K,GAAG,CAAC,MAAQ,SAAS8/J,GAAQwI,EAAInmK,MAAMjK,MAAMitZ,YAAc78O,EAAInmK,MAAMjK,MAAMitZ,mBAAmB78O,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAInmK,MAAMjK,MAAgB,WAAEwjH,WAAW,2BAA2Bg9D,YAAY,kCAAkCuJ,YAAY,CAAC,SAAW,aAAa,CAACzmE,EAAG,MAAM,CAACk9D,YAAY,wBAAwBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,6BAA6B,CAACl9D,EAAG,QAAQ,CAACk9D,YAAY,kBAAkBva,MAAM,CAAE,gBAAiBmK,EAAIi/O,gBAAiB,qBAAsBj/O,EAAIi/O,kBAAmB,CAAC/rS,EAAG,QAAQ,CAACZ,WAAW,CAAC,CAACn7H,KAAK,QAAQg8H,QAAQ,UAAUv/H,MAAOosL,EAAInmK,MAAMjK,MAAkB,aAAEwjH,WAAW,6BAA6BC,MAAM,CAAC,KAAO,WAAW,SAAW2sD,EAAIi/O,iBAAiB3rS,SAAS,CAAC,QAAUp+H,MAAMiD,QAAQ6nL,EAAInmK,MAAMjK,MAAMgtZ,cAAc58O,EAAI7pF,GAAG6pF,EAAInmK,MAAMjK,MAAMgtZ,aAAa,OAAO,EAAG58O,EAAInmK,MAAMjK,MAAkB,cAAG8H,GAAG,CAAC,OAAS,SAAS8/J,GAAQ,IAAI6/O,EAAIr3O,EAAInmK,MAAMjK,MAAMgtZ,aAAatF,EAAK9/O,EAAOv/K,OAAOs/Z,IAAID,EAAK3rS,QAAuB,GAAGz2H,MAAMiD,QAAQk/Z,GAAK,CAAC,IAAaG,EAAIx3O,EAAI7pF,GAAGkhU,EAAhB,MAA4BC,EAAK3rS,QAAS6rS,EAAI,GAAIx3O,EAAIsM,KAAKtM,EAAInmK,MAAMjK,MAAO,eAAgBynZ,EAAIjia,OAAO,CAAvG,QAAqHoia,GAAK,GAAIx3O,EAAIsM,KAAKtM,EAAInmK,MAAMjK,MAAO,eAAgBynZ,EAAIj/Z,MAAM,EAAEo/Z,GAAKpia,OAAOiia,EAAIj/Z,MAAMo/Z,EAAI,UAAYx3O,EAAIsM,KAAKtM,EAAInmK,MAAMjK,MAAO,eAAgB2nZ,OAAUv3O,EAAI3G,GAAG,4FAA4F2G,EAAI3G,GAAG,KAAKnmD,EAAG,QAAQ,CAACk9D,YAAY,UAAU,CAACl9D,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,gBAAgB+hD,YAAY4K,EAAIzG,GAAG,CAAC,CAACzoL,IAAI,SAASoF,GAAG,WAAW,MAAO,CAACg9H,EAAG,MAAM,CAAE8sD,EAAmB,gBAAE9sD,EAAG,MAAM,CAACA,EAAG,IAAI,CAACk9D,YAAY,UAAU,CAACpQ,EAAI3G,GAAG,wDAAwD2G,EAAIjH,GAAGiH,EAAIk/O,kBAAkB,yEAAyEl/O,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAAC8sD,EAAI3G,GAAG,4GAA4GnmD,EAAG,SAAS,CAAC8sD,EAAI3G,GAAG,wBAAwB2G,EAAI3G,GAAG,mHAAmHnmD,EAAG,MAAM,CAACA,EAAG,IAAI,CAACk9D,YAAY,UAAU,CAACpQ,EAAI3G,GAAG,mFAAmF2G,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAAC8sD,EAAI3G,GAAG,2GAA2GnmD,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,gHAAgH,OAAS,WAAW,CAAC2sD,EAAI3G,GAAG,gGAAgG2G,EAAI3G,GAAG,2EAA2E2G,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAAC8sD,EAAI3G,GAAG,qJAAqJzmC,OAAM,MAAS,CAAC1f,EAAG,IAAI,CAACk9D,YAAY,sBAAsB,KAAKpQ,EAAI3G,GAAG,KAAM2G,EAA2B,wBAAE9sD,EAAG,QAAQ,CAACk9D,YAAY,mBAAmB,CAACl9D,EAAG,QAAQ,CAACZ,WAAW,CAAC,CAACn7H,KAAK,QAAQg8H,QAAQ,UAAUv/H,MAAOosL,EAAInmK,MAAMjK,MAAkB,aAAEwjH,WAAW,6BAA6BC,MAAM,CAAC,KAAO,YAAYC,SAAS,CAAC,QAAUp+H,MAAMiD,QAAQ6nL,EAAInmK,MAAMjK,MAAMytZ,cAAcr9O,EAAI7pF,GAAG6pF,EAAInmK,MAAMjK,MAAMytZ,aAAa,OAAO,EAAGr9O,EAAInmK,MAAMjK,MAAkB,cAAG8H,GAAG,CAAC,OAAS,SAAS8/J,GAAQ,IAAI6/O,EAAIr3O,EAAInmK,MAAMjK,MAAMytZ,aAAa/F,EAAK9/O,EAAOv/K,OAAOs/Z,IAAID,EAAK3rS,QAAuB,GAAGz2H,MAAMiD,QAAQk/Z,GAAK,CAAC,IAAaG,EAAIx3O,EAAI7pF,GAAGkhU,EAAhB,MAA4BC,EAAK3rS,QAAS6rS,EAAI,GAAIx3O,EAAIsM,KAAKtM,EAAInmK,MAAMjK,MAAO,eAAgBynZ,EAAIjia,OAAO,CAAvG,QAAqHoia,GAAK,GAAIx3O,EAAIsM,KAAKtM,EAAInmK,MAAMjK,MAAO,eAAgBynZ,EAAIj/Z,MAAM,EAAEo/Z,GAAKpia,OAAOiia,EAAIj/Z,MAAMo/Z,EAAI,UAAYx3O,EAAIsM,KAAKtM,EAAInmK,MAAMjK,MAAO,eAAgB2nZ,OAAUv3O,EAAI3G,GAAG,4CAA4C2G,EAAI1G,OAAO0G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,6FAA6FuJ,YAAY,CAAC,eAAe,OAAO,cAAc,QAAQ,gBAAgB,OAAO,eAAe,UAAU,CAACzmE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACk9D,YAAY,mCAAmC,CAACl9D,EAAG,KAAK,CAACk9D,YAAY,wDAAwD,CAACpQ,EAAI3G,GAAG,2DAA2D2G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,oBAAoBuJ,YAAY,CAAC,OAAS,OAAO,MAAQ,OAAOtmE,MAAM,CAAC,cAAc,UAAU2sD,EAAI3G,GAAG,KAAKnmD,EAAG,SAAS,CAACk9D,YAAY,mGAAmG14K,GAAG,CAAC,MAAQ,SAAS8/J,GAAQA,EAAO5vI,iBAAiBo4I,EAAInmK,MAAMjK,MAAMotZ,mBAAqBh9O,EAAInmK,MAAMjK,MAAMotZ,qBAAqB,CAAC9pS,EAAG,OAAO,CAACk9D,YAAY,iBAAiB,CAACpQ,EAAI3G,GAAG,YAAY2G,EAAI3G,GAAG,KAAM2G,EAAInmK,MAAMjK,MAAMmtZ,gBAAgB1na,OAAS,EAAG69H,EAAG,OAAO,CAACk9D,YAAY,+GAA+G,CAACpQ,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAInmK,MAAMjK,MAAMmtZ,gBAAgB1na,WAAW2qL,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,OAAO,CAACk9D,YAAY,mCAAmC,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,gBAAgBva,MAAM,CAACmK,EAAInmK,MAAMjK,MAAMotZ,kBAAoB,aAAe,YAAYrjO,YAAY,CAAC,OAAS,OAAO,MAAQ,QAAQtmE,MAAM,CAAC,MAAQ,6BAA6B,QAAU,YAAY,KAAO,eAAe,cAAc,SAAS,CAACH,EAAG,OAAO,CAACG,MAAM,CAAC,YAAY,UAAU,EAAI,sIAAsI,YAAY,qBAAqB2sD,EAAI3G,GAAG,KAAKnmD,EAAG,aAAa,CAACG,MAAM,CAAC,qBAAqB,mCAAmC,cAAc,0BAA0B,iBAAiB,0BAA0B,qBAAqB,kCAAkC,cAAc,4BAA4B,iBAAiB,4BAA4B,CAACH,EAAG,MAAM,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAInmK,MAAMjK,MAAuB,kBAAEwjH,WAAW,kCAAkCg9D,YAAY,UAAU,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,mDAAmDpQ,EAAI5pF,GAAI4pF,EAAInmK,MAAMjK,MAAa,SAAE,SAASsP,EAAOmiZ,GAAW,OAAOnuS,EAAG,MAAM,CAACpiI,IAAIouB,EAAOjpB,GAAGm6L,YAAY,2BAA2B,CAACl9D,EAAG,QAAQ,CAACG,MAAM,CAAC,KAAO,WAAW,GAAM,UAAYguS,GAAY/tS,SAAS,CAAC,QAAU0sD,EAAI6/O,eAAe3gZ,IAASxH,GAAG,CAAC,OAAS,SAAS8/J,GAAQ,OAAOwI,EAAI4/O,gBAAgB1gZ,EAAQs4J,OAAYwI,EAAI3G,GAAG,KAAKnmD,EAAG,QAAQ,CAACk9D,YAAY,uDAAuD/8D,MAAM,CAAC,IAAO,UAAYguS,IAAa,CAACrhP,EAAI3G,GAAG2G,EAAIjH,GAAG75J,EAAO/nB,cAAa,QAAQ,GAAG6oL,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACZ,WAAW,CAAC,CAACn7H,KAAK,OAAOg8H,QAAQ,SAASv/H,MAAOosL,EAAIm/O,gBAAgB9pa,OAAS,GAAK2qL,EAAInmK,MAAMjK,MAAMgtZ,aAAcxpS,WAAW,2DAA2Dg9D,YAAY,wCAAwC,CAACpQ,EAAI5pF,GAAI4pF,EAAmB,iBAAE,SAASrnL,GAAQ,OAAOu6H,EAAG,SAAS,CAACpiI,IAAI6H,EAAO1C,GAAGm6L,YAAY,oDAAoDuJ,YAAY,CAAC,QAAU,WAAWjiL,GAAG,CAAC,MAAQ,SAAS8/J,GAAgC,OAAxBA,EAAO5vI,iBAAwBo4I,EAAI0/O,mBAAmB/ma,MAAW,CAACqnL,EAAI3G,GAAG,yBAAyB2G,EAAIjH,GAAGpgL,EAAOxB,MAAM,0BAA0B+7H,EAAG,IAAI,CAACk9D,YAAY,qBAAoBpQ,EAAI3G,GAAG,KAAM2G,EAAInmK,MAAMjK,MAAMgtZ,eAAiB58O,EAAIi/O,gBAAiB/rS,EAAG,SAAS,CAACk9D,YAAY,oDAAoDuJ,YAAY,CAAC,QAAU,WAAWjiL,GAAG,CAAC,MAAQ,SAAS8/J,GAAQwI,EAAInmK,MAAMjK,MAAMgtZ,cAAe,KAAS,CAAC58O,EAAI3G,GAAG,0CAA0CnmD,EAAG,IAAI,CAACk9D,YAAY,0BAA0BpQ,EAAI1G,MAAM,KAAK0G,EAAI3G,GAAG,KAAM2G,EAAInmK,MAAMjK,MAAMstZ,mBAAmB7na,OAAS,EAAG69H,EAAG,MAAM,CAACk9D,YAAY,UAAU,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,oCAAoC,CAACl9D,EAAG,SAAS,CAAC8sD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAInmK,MAAMjK,MAAMstZ,mBAAmB7na,WAAW2qL,EAAI3G,GAAG,0CAA0C2G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,iCAAiCpQ,EAAI5pF,GAAI4pF,EAAInmK,MAAMjK,MAAwB,oBAAE,SAAS2uZ,GAAY,OAAOrrS,EAAG,MAAM,CAACk9D,YAAY,qDAAqD14K,GAAG,CAAC,MAAQ,SAAS8/J,GAAQ,OAAOwI,EAAIigP,wBAAwB1B,MAAe,CAAEA,EAAWn9L,QAAwB,iBAAEluG,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACk9D,YAAY,iBAAiB/8D,MAAM,CAAC,IAAMkrS,EAAWn9L,QAAQC,iBAAiB,IAAM,uBAAuBnuG,EAAG,4BAA4B,CAACG,MAAM,CAAC,QAAU,mCAAmC2sD,EAAI3G,GAAG,KAAKnmD,EAAG,KAAK,CAACk9D,YAAY,mBAAmB,CAACpQ,EAAI3G,GAAG,2BAA2B2G,EAAIjH,GAAGwlP,EAAWn9L,QAAQE,cAAc,4BAA4BthD,EAAI3G,GAAG,KAAK2G,EAAI9G,GAAG,GAAE,IAAO,MAAK,KAAK8G,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,sBAAsB,CAACG,MAAM,CAAC,YAAYpgI,KAAK4mB,MAAMjK,MAAMgwN,SAAS,OAAS3sO,KAAK4mB,MAAMjK,MAAMqtZ,eAAe,MAAQhqa,KAAK4mB,UAAU,GAAr0Vq5G,EAAG,MAAM,CAACA,EAAG,MAAM,CAACk9D,YAAY,gBAAgB,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,+BAA+B,CAACpQ,EAAI3G,GAAG,uBAAuB2G,EAAIjH,GAAGiH,EAAInmK,MAAMjK,MAAM6sZ,SAAStla,MAAM,wBAAwB6oL,EAAI3G,GAAG,KAAKnmD,EAAG,KAAK,CAACk9D,YAAY,WAAW,CAACpQ,EAAI3G,GAAG,iFAAiF2G,EAAI3G,GAAG,KAAKnmD,EAAG,WAAW,CAACk9D,YAAY,SAAS,CAACl9D,EAAG,SAAS,CAACk9D,YAAY,WAAW,CAACpQ,EAAI3G,GAAG,0EAA0E2G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACk9D,YAAY,8FAA8F14K,GAAG,CAAC,MAAQ,SAAS8/J,GAAQ,OAAOwI,EAAInmK,MAAM4jZ,kBAAkBz9O,EAAInmK,MAAMjK,MAAMktZ,iBAAiB,CAAC98O,EAAI9G,GAAG,GAAG8G,EAAI3G,GAAG,KAAK2G,EAAI9G,GAAG,KAAK8G,EAAI3G,GAAG,KAAK2G,EAAI5pF,GAAI4pF,EAAInmK,MAAMjK,MAAoB,gBAAE,SAAS1V,EAAEyU,GAAO,OAAOukH,EAAG,QAAQ,CAACk9D,YAAY,oGAAoGva,MAAM,CAAE,gBAAiBmK,EAAInmK,MAAMjK,MAAMqtZ,eAAe5na,OAAS,IAAMsZ,GAAQ+I,GAAG,CAAC,MAAQ,SAAS8/J,GAAQ,OAAOwI,EAAInmK,MAAM4jZ,kBAAkBvja,MAAM,CAACg5H,EAAG,MAAM,CAACA,EAAG,IAAI,CAACk9D,YAAY,8BAA8B,CAACpQ,EAAI3G,GAAG,IAAI2G,EAAIjH,GAAG7+K,EAAE/C,SAAS6oL,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAACk9D,YAAY,uBAAuB,CAACl9D,EAAG,QAAQ,CAAC8sD,EAAI3G,GAAG2G,EAAIjH,GAAGiH,EAAIqgP,UAAUnma,WAAW8lL,EAAI3G,GAAG,KAAK2G,EAAI9G,GAAG,GAAE,SAAW,KAAK8G,EAAI3G,GAAG,KAAK2G,EAAI9G,GAAG,SAAm/S8G,EAAI3G,GAAG,KAAMpmL,KAAK4mB,MAAMjK,MAAMisZ,iBAAiBxma,OAAS,EAAG69H,EAAG,MAAM,CAACk9D,YAAY,gBAAgB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,gBAAgB,CAACl9D,EAAG,aAAa,CAACG,MAAM,CAAC,qBAAqBpgI,KAAK4mB,MAAMjK,MAAMisZ,iBAAiB,MAAQ5oa,KAAK4mB,UAAU,KAAKmmK,EAAI1G,SAAS0G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,mCAAmC,CAAEpQ,EAAInmK,MAAMjK,MAAiB,YAAEsjH,EAAG,MAAM,CAAC8sD,EAAI9G,GAAG,KAAK8G,EAAI1G,KAAK0G,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,gCAAgC,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,kCAAkC14K,GAAG,CAAC,MAAQsoK,EAAImhP,SAAS,CAACnhP,EAAI3G,GAAG,0CAA0C,KACj6b,CAAC,WAAa,IAAI2G,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,uCAAuC,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,0BAA0BpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,0BAA0BpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,6BAA6B,WAAa,IAAIpQ,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACA,EAAG,IAAI,CAACk9D,YAAY,8BAA8B,CAACpQ,EAAI3G,GAAG,sBAAsB2G,EAAI3G,GAAG,KAAKnmD,EAAG,IAAI,CAACk9D,YAAY,uBAAuB,CAACl9D,EAAG,QAAQ,CAAC8sD,EAAI3G,GAAG,sGAAsG,WAAa,IAAiBgxC,EAATp3N,KAAgB+/H,eAAmBE,EAAnCjgI,KAA0CggI,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,SAAS,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,yBAAyB,WAAa,IAAiBi6B,EAATp3N,KAAgB+/H,eAAmBE,EAAnCjgI,KAA0CggI,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,SAAS,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,yBAAyB,WAAa,IAAIpQ,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,IAAI,CAACk9D,YAAY,eAAe,CAACl9D,EAAG,QAAQ,CAACk9D,YAAY,kBAAkB,CAACpQ,EAAI3G,GAAG,2GAA2G,WAAa,IAAiBgxC,EAATp3N,KAAgB+/H,eAAmBE,EAAnCjgI,KAA0CggI,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,iDAAiD,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,eAAe,CAACl9D,EAAG,OAAO,CAACk9D,YAAY,iBAAiB,CAACl9D,EAAG,IAAI,CAACk9D,YAAY,yBAAyB,WAAa,IAAIpQ,EAAI/sL,KAASo3N,EAAGrqC,EAAIhtD,eAAmBE,EAAG8sD,EAAI/sD,MAAMC,IAAIm3F,EAAG,OAAOn3F,EAAG,MAAM,CAACk9D,YAAY,iBAAiB,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,8BAA8B,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,iDAAiD,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,uCAAuC,CAACl9D,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,yBAAyBpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,0BAA0BpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,0BAA0BpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,4BAA4BpQ,EAAI3G,GAAG,KAAKnmD,EAAG,MAAM,CAACk9D,YAAY,UAAU,CAACpQ,EAAI3G,GAAG,4EFUplG,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QGlB5BioP,GAAc,SCKdC,GAAmC,gBAKnCC,GAAwC,qBAKxCC,GAA+B,YAK/BC,GAAmC,gBAGnCC,GAAoD,iCAGpDC,GAA6C,0BAG7CC,GAA8C,2BAM9CC,GAAoC,wBCnCxC,SAAS,GAAQzla,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAGzU,IAAI2qE,GAAiBvuE,OAAOtG,UAAUe,SAStC,SAAS2oF,GAAQkmV,GACf,OAAQ/6V,GAAepwE,KAAKmra,IAC1B,IAAK,iBACL,IAAK,qBACL,IAAK,wBACL,IAAK,iCACH,OAAO,EAET,QACE,OAAOC,GAAaD,EAAKtra,QAY/B,SAASwra,GAAUF,EAAKxwZ,GACtB,OAAOy1D,GAAepwE,KAAKmra,KAAS,WAAW3sa,OAAOmc,EAAW,KAWnE,SAAS2wZ,GAAaH,GACpB,OAAOE,GAAUF,EAAK,cAWxB,SAASI,GAAWJ,GAClB,OAAOE,GAAUF,EAAK,YAuBxB,SAAS,GAASA,GAChB,OAAOE,GAAUF,EAAK,UAWxB,SAASK,GAAsBL,GAC7B,MAAwB,WAAjB,GAAQA,IAA6B,OAARA,GAAgB,+BAAgCA,GAAO,+BAAgCA,EAW7H,SAAS,GAAYA,GACnB,OAAe,OAARA,GAAgBK,GAAsBL,IAAyB,WAAjB,GAAQA,IAAoC,mBAARA,EAW3F,SAAS,GAAcA,GACrB,OAAOE,GAAUF,EAAK,UAWxB,SAASM,GAAQN,GACf,MAAwB,oBAAVnzQ,OAAyBozQ,GAAaD,EAAKnzQ,OAuB3D,SAAS,GAASmzQ,GAChB,OAAOE,GAAUF,EAAK,UAQxB,SAAS,GAAWA,GAElB,OAAOzmT,QAAQymT,GAAOA,EAAIvwa,MAA4B,mBAAbuwa,EAAIvwa,MAwB/C,SAASwwa,GAAaD,EAAK9kZ,GACzB,IACE,OAAO8kZ,aAAe9kZ,EACtB,MAAOq8J,GACP,OAAO,GAWX,SAASgpP,GAAeP,GAEtB,QAA2B,WAAjB,GAAQA,IAA6B,OAARA,IAAiBA,EAAIQ,UAAWR,EAAIzuP,QC1M7E,IAAIkvP,GAAa3ha,WAajB,SAAS4ha,GAAmBtra,EAAMura,EAASrma,GACzC,IAAIsma,EAAMtma,GAAOmma,GAEbI,EAAaD,EAAIC,WAAaD,EAAIC,YAAc,GAEhDC,EAAmBD,EAAWtB,IAAesB,EAAWtB,KAAgB,GAC5E,OAAOuB,EAAiB1ra,KAAU0ra,EAAiB1ra,GAAQura,KClB7D,SAAS,GAAkBrka,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAIhL,IAAImhZ,GAASN,GASb,SAASO,GAAiB7nT,GACxB,IAAInlH,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAElF,IAAKgnH,EACH,MAAO,YAOT,IAYE,IAXA,IAOI8nT,EAPAC,EAAc/nT,EACdgoT,EAAsB,EACtB/3U,EAAM,GACNnpF,EAAS,EACT+zF,EAAM,EACNl2E,EAAY,MACZsjZ,EAAYtjZ,EAAUxqB,OAEtB+ta,EAAWlua,MAAMiD,QAAQpC,GAAWA,EAAUA,EAAQqta,SACtDC,GAAmBnua,MAAMiD,QAAQpC,IAAYA,EAAQsta,iBA7B7B,GA+BrBJ,GAAejha,IAAWkha,KAMf,UALhBF,EAAUM,GAAqBL,EAAaG,KAKlBpha,EAAS,GAAK+zF,EAAM5K,EAAI91F,OAAS8ta,EAAYH,EAAQ3ta,QAAUgua,IAIzFl4U,EAAIn2F,KAAKgua,GACTjtU,GAAOitU,EAAQ3ta,OACf4ta,EAAcA,EAAYjxZ,WAG5B,OAAOm5E,EAAIj2E,UAAUja,KAAK4kB,GAC1B,MAAO0jZ,GACP,MAAO,aAUX,SAASD,GAAqBjxZ,EAAI+wZ,GAChC,IAAIloT,EAAO7oG,EACP84E,EAAM,GAEV,IAAK+vB,IAASA,EAAKn9E,QACjB,MAAO,GAIT,GAAI+kY,GAAOvzZ,aAEL2rG,aAAgB3rG,aAAe2rG,EAAK/7E,QAAS,CAC/C,GAAI+7E,EAAK/7E,QAAyB,gBAChC,OAAO+7E,EAAK/7E,QAAyB,gBAGvC,GAAI+7E,EAAK/7E,QAAuB,cAC9B,OAAO+7E,EAAK/7E,QAAuB,cAKzCgsD,EAAIn2F,KAAKkmH,EAAKn9E,QAAQhtC,eAEtB,IAAIyya,EAAeJ,GAAYA,EAAS/ta,OAAS+ta,EAASzqa,QAAO,SAAU8qa,GACzE,OAAOvoT,EAAKjqG,aAAawyZ,MACxBv1Z,KAAI,SAAUu1Z,GACf,MAAO,CAACA,EAASvoT,EAAKjqG,aAAawyZ,OAChC,KAEL,GAAID,GAAgBA,EAAanua,OAC/Bmua,EAAa5ya,SAAQ,SAAU8ya,GAC7Bv4U,EAAIn2F,KAAK,IAAII,OAAOsua,EAAY,GAAI,MAAOtua,OAAOsua,EAAY,GAAI,cAE/D,CACDxoT,EAAKjlH,IACPk1F,EAAIn2F,KAAK,IAAII,OAAO8lH,EAAKjlH,KAG3B,IAAIsb,EAAY2pG,EAAK3pG,UAErB,GAAIA,GAAa,GAASA,GAAY,CACpC,IAGIyf,EADAC,EA/GV,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAE9K,SAAqCz+G,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAF1H,CAA4BnwM,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KA+Gn8B,CAFFxP,EAAUtT,MAAM,QAK9B,IACE,IAAKgzB,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIntB,EAAIq9B,EAAMp9B,MACdu3F,EAAIn2F,KAAK,IAAII,OAAOzB,KAEtB,MAAOotB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,MAOhB,IAFA,IAESoxE,EAAK,EAAGwtU,EAFE,CAAC,aAAc,OAAQ,OAAQ,QAAS,OAEZxtU,EAAKwtU,EAActua,OAAQ8gG,IAAM,CAC9E,IAAI7zC,EAAIqhX,EAAcxtU,GAClBplF,EAAOmqG,EAAKjqG,aAAaqxC,GAEzBvxC,GACFo6E,EAAIn2F,KAAK,IAAII,OAAOktD,EAAG,MAAOltD,OAAO2b,EAAM,OAI/C,OAAOo6E,EAAIlwF,KAAK,IAOlB,SAAS2oa,KACP,IACE,OAAOd,GAAOjna,SAAS+B,SAASX,KAChC,MAAO4ma,GACP,MAAO,IAsCX,SAAS,GAAiB3oT,GAExB,IAAK4nT,GAAOvzZ,YACV,OAAO,KAMT,IAHA,IAAI0zZ,EAAc/nT,EAGTxgH,EAAI,EAAGA,EAFU,EAEeA,IAAK,CAC5C,IAAKuoa,EACH,OAAO,KAGT,GAAIA,aAAuB1zZ,YAAa,CACtC,GAAI0zZ,EAAY9jY,QAAyB,gBACvC,OAAO8jY,EAAY9jY,QAAyB,gBAG9C,GAAI8jY,EAAY9jY,QAAuB,cACrC,OAAO8jY,EAAY9jY,QAAuB,cAI9C8jY,EAAcA,EAAYjxZ,WAG5B,OAAO,KCjNT,IAAI,GAA0C,oBAArB8xZ,kBAAoCA,iBCDzDC,GAAS,iBACTC,GAAiB,CAAC,QAAS,OAAQ,OAAQ,QAAS,MAAO,SAAU,SAGrEC,GAAyB,GAU7B,SAASC,GAAe9la,GACtB,KAAM,YAAaoka,IACjB,OAAOpka,IAGT,IAAIiB,EAAUmja,GAAWnja,QACrB8ka,EAAe,GACfC,EAAgB3ra,OAAOC,KAAKura,IAEhCG,EAAcxza,SAAQ,SAAUwtB,GAC9B,IAAIimZ,EAAwBJ,GAAuB7lZ,GACnD+lZ,EAAa/lZ,GAAS/e,EAAQ+e,GAC9B/e,EAAQ+e,GAASimZ,KAGnB,IACE,OAAOjma,IACP,QAEAgma,EAAcxza,SAAQ,SAAUwtB,GAC9B/e,EAAQ+e,GAAS+lZ,EAAa/lZ,OAoDpC,IAAI,GAASqkZ,GAAmB,UA/ChC,WACE,IAAIrrX,GAAU,EACVktX,EAAS,CACXvoH,OAAQ,WACN3kQ,GAAU,GAEZuwG,QAAS,WACPvwG,GAAU,GAEZmtX,UAAW,WACT,OAAOntX,IA6BX,OAzBI,GACF4sX,GAAepza,SAAQ,SAAUuG,GAE/Bmta,EAAOnta,GAAQ,WACb,IAAK,IAAImZ,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGrB6mC,GACF8sX,IAAe,WACb,IAAIM,GAEHA,EAAsBhC,GAAWnja,SAASlI,GAAMhC,MAAMqva,EAAqB,CAAC,GAAGpva,OAAO2ua,GAAQ,KAAK3ua,OAAO+B,EAAM,OAAO/B,OAAOqF,WAMvIupa,GAAepza,SAAQ,SAAUuG,GAC/Bmta,EAAOnta,GAAQ,gBAMZmta,KCzET,SAASh8U,GAAS/nF,GAChB,IAAI8tB,EAAMn6B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EAE9E,MAAmB,iBAARqM,GAA4B,IAAR8tB,GAIxB9tB,EAAIlL,QAAUg5B,EAHZ9tB,EAGwB,GAAGnL,OAAOmL,EAAInI,MAAM,EAAGi2B,GAAM,OAYhE,SAASo2Y,GAASvma,EAAMwma,GACtB,IAAIC,EAAUzma,EACV0ma,EAAaD,EAAQtva,OAEzB,GAAIuva,GAAc,IAChB,OAAOD,EAGLD,EAAQE,IAEVF,EAAQE,GAGV,IAAI3vZ,EAAQzT,KAAK6sB,IAAIq2Y,EAAQ,GAAI,GAE7BzvZ,EAAQ,IACVA,EAAQ,GAGV,IAAIyqB,EAAMl+B,KAAKM,IAAImT,EAAQ,IAAK2vZ,GAoBhC,OAlBIllY,EAAMklY,EAAa,IACrBllY,EAAMklY,GAGJllY,IAAQklY,IACV3vZ,EAAQzT,KAAK6sB,IAAIqR,EAAM,IAAK,IAG9BilY,EAAUA,EAAQvsa,MAAM6c,EAAOyqB,GAE3BzqB,EAAQ,IACV0vZ,EAAU,WAAWvva,OAAOuva,IAG1BjlY,EAAMklY,IACRD,GAAW,WAGNA,EAWT,SAASE,GAASx3X,EAAOy3X,GACvB,IAAK5va,MAAMiD,QAAQk1C,GACjB,MAAO,GAKT,IAFA,IAAIlS,EAAS,GAEJzgC,EAAI,EAAGA,EAAI2yC,EAAMh4C,OAAQqF,IAAK,CACrC,IAAI9G,EAAQy5C,EAAM3yC,GAElB,IAMM4na,GAAe1ua,GACjBunC,EAAOnmC,KAAK,kBAEZmmC,EAAOnmC,KAAKg2D,OAAOp3D,IAErB,MAAOsG,GACPihC,EAAOnmC,KAAK,iCAIhB,OAAOmmC,EAAOlgC,KAAK6pa,GAYrB,SAASC,GAAkBnxa,EAAOwqF,GAChC,IAAI4mV,EAA0B9wa,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAE7F,QAAK,GAASN,KAIV,GAASwqF,GACJA,EAAQjiF,KAAKvI,KAGlB,GAASwqF,KACJ4mV,EAA0Bpxa,IAAUwqF,EAAUxqF,EAAM0d,SAAS8sE,KAiBxE,SAAS6mV,GAAyBC,GAChC,IAAIC,EAAWjxa,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC/E8wa,EAA0B9wa,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAC7F,OAAOixa,EAAS93Z,MAAK,SAAU+wE,GAC7B,OAAO2mV,GAAkBG,EAAY9mV,EAAS4mV,MCjJlD,SAAS,GAAkB3ma,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,SAAS,GAAQtlB,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAEzU,SAAS,GAAQsiB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAmB3M,SAASqkF,GAAKhtF,EAAQyD,EAAMiua,GAC1B,GAAMjua,KAAQzD,EAAd,CAIA,IAAIsrI,EAAWtrI,EAAOyD,GAClBmpB,EAAU8kZ,EAAmBpmS,GAGV,mBAAZ1+G,GACT+kZ,GAAoB/kZ,EAAS0+G,GAG/BtrI,EAAOyD,GAAQmpB,GAWjB,SAASglZ,GAAyBjpa,EAAKlF,EAAMvD,GAC3C,IACE6E,OAAOqY,eAAezU,EAAKlF,EAAM,CAE/BvD,MAAOA,EACP4kH,UAAU,EACVD,cAAc,IAEhB,MAAOgtT,GACP,IAAe,GAAA/zS,IAAW,0CAA2Cp8H,OAAO+B,EAAM,eAAiBkF,IAYvG,SAASgpa,GAAoB/kZ,EAAS0+G,GACpC,IACE,IAAIv/D,EAAQu/D,EAAS7sI,WAAa,GAClCmuB,EAAQnuB,UAAY6sI,EAAS7sI,UAAYstE,EACzC6lW,GAAyBhlZ,EAAS,sBAAuB0+G,GACzD,MAAOumS,KAYX,SAASC,GAAoB/uX,GAC3B,OAAOA,EAAKgvX,oBAyBd,SAASC,GAAqB9xa,GAC5B,GAAIioF,GAAQjoF,GACV,OAAO,GAAc,CACnBZ,QAASY,EAAMZ,QACfmE,KAAMvD,EAAMuD,KACZM,MAAO7D,EAAM6D,OACZkua,GAAiB/xa,IACf,GAAIyua,GAAQzua,GAAQ,CACzB,IAAIgya,EAAS,GAAc,CACzBrna,KAAM3K,EAAM2K,KACZtG,OAAQ4ta,GAAqBjya,EAAMqE,QACnC+3J,cAAe61Q,GAAqBjya,EAAMo8J,gBACzC21Q,GAAiB/xa,IAMpB,MAJ2B,oBAAhBwX,aAA+B42Z,GAAapua,EAAOwX,eAC5Dw6Z,EAAOv6Z,OAASzX,EAAMyX,QAGjBu6Z,EAEP,OAAOhya,EAMX,SAASiya,GAAqB5ta,GAC5B,IACE,MNLwB,oBAAZghN,SAA2B+oN,GMKtB/pa,ENLwCghN,SMK9B8pN,GAAiB9qa,GAAUQ,OAAOtG,UAAUe,SAAS0D,KAAKqB,GACrF,MAAOsra,GACP,MAAO,aAMX,SAASoC,GAAiBtpa,GACxB,GAAqB,WAAjB,GAAQA,IAA6B,OAARA,EAAc,CAC7C,IAAIypa,EAAiB,GAErB,IAAK,IAAIj1Z,KAAYxU,EACf5D,OAAOtG,UAAU0N,eAAejJ,KAAKyF,EAAKwU,KAC5Ci1Z,EAAej1Z,GAAYxU,EAAIwU,IAInC,OAAOi1Z,EAEP,MAAO,GAgDX,SAASC,GAAkBviT,GAMzB,OAAOwiT,GAAmBxiT,EAFL,IAAIrlD,KAK3B,SAAS6nW,GAAmBxiT,EAAYyiT,GACtC,GAoDF,SAAgB54X,GACd,IAAK,GAAcA,GACjB,OAAO,EAGT,IACE,IAAIl2C,EAAOsB,OAAOiH,eAAe2tC,GAAO7wC,YAAYrF,KACpD,OAAQA,GAAiB,WAATA,EAChB,MAAO+C,GACP,OAAO,GA7DLgsa,CAAO1iT,GAAa,CAEtB,IAAI2iT,EAAUF,EAAevxZ,IAAI8uG,GAEjC,QAAgB9yH,IAAZy1a,EACF,OAAOA,EAGT,IAAIx1Q,EAAc,GAElBs1Q,EAAexxZ,IAAI+uG,EAAYmtC,GAE/B,IACI3/H,EADAC,EA7OR,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAE9K,SAAqCz+G,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAF1H,CAA4BnwM,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KA6Or8B,CAA2BtoB,OAAOwqB,oBAAoBugG,IAGtE,IACE,IAAKvyF,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIhwB,EAAMkgC,EAAMp9B,WAEe,IAApB4vH,EAAW1yH,KACpB6/J,EAAY7/J,GAAOk1a,GAAmBxiT,EAAW1yH,GAAMm1a,KAG3D,MAAOllZ,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,OAAO4rI,EAGT,GAAIz7J,MAAMiD,QAAQqrH,GAAa,CAE7B,IAAI4iT,EAAWH,EAAevxZ,IAAI8uG,GAElC,QAAiB9yH,IAAb01a,EACF,OAAOA,EAGT,IAAIC,EAAe,GAMnB,OAJAJ,EAAexxZ,IAAI+uG,EAAY6iT,GAC/B7iT,EAAW5yH,SAAQ,SAAUiW,GAC3Bw/Z,EAAarxa,KAAKgxa,GAAmBn/Z,EAAMo/Z,OAEtCI,EAGT,OAAO7iT,EClRT,SAAS,GAAQ7kG,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAW3M,SAAS,KACP,IAAIsma,EAAMH,GACN8D,EAAS3D,EAAI2D,QAAU3D,EAAI4D,SAE3BC,EAAgB,WAClB,OAAuB,GAAhBhla,KAAK2e,UAGd,IACE,GAAImmZ,GAAUA,EAAOG,WACnB,OAAOH,EAAOG,aAAa7wa,QAAQ,KAAM,IAGvC0wa,GAAUA,EAAOI,kBACnBF,EAAgB,WAKd,IAAI52V,EAAa,IAAI99C,WAAW,GAGhC,OAFAw0Y,EAAOI,gBAAgB92V,GAEhBA,EAAW,KAGtB,MAAOjrE,IAMT,OAAQ,CAAC,KAAO,IAAM,IAAM,IAAM,MAAM/O,QAAQ,UAAU,SAAUjC,GAClE,OACGA,GAAuB,GAAlB6ya,MAAyB7ya,EAAI,GAAGT,SAAS,OAKrD,SAASyza,GAAkB9uZ,GACzB,OAAOA,EAAM0yJ,WAAa1yJ,EAAM0yJ,UAAUlyG,OAASxgD,EAAM0yJ,UAAUlyG,OAAO,QAAK3nE,EAQjF,SAASk2a,GAAoB/uZ,GAC3B,IAAI7kB,EAAU6kB,EAAM7kB,QAChBsnO,EAAUziN,EAAMgvZ,SAEpB,GAAI7za,EACF,OAAOA,EAGT,IAAI8za,EAAiBH,GAAkB9uZ,GAEvC,OAAIivZ,EACEA,EAAevoa,MAAQuoa,EAAelza,MACjC,GAAGwB,OAAO0xa,EAAevoa,KAAM,MAAMnJ,OAAO0xa,EAAelza,OAG7Dkza,EAAevoa,MAAQuoa,EAAelza,OAAS0mO,GAAW,YAG5DA,GAAW,YAWpB,SAASysM,GAAsBlvZ,EAAOjkB,EAAO2K,GAC3C,IAAIgsK,EAAY1yJ,EAAM0yJ,UAAY1yJ,EAAM0yJ,WAAa,GACjDlyG,EAASkyG,EAAUlyG,OAASkyG,EAAUlyG,QAAU,GAChDyuW,EAAiBzuW,EAAO,GAAKA,EAAO,IAAM,GAEzCyuW,EAAelza,QAClBkza,EAAelza,MAAQA,GAAS,IAG7Bkza,EAAevoa,OAClBuoa,EAAevoa,KAAOA,GAAQ,SAYlC,SAASyoa,GAAsBnvZ,EAAOovZ,GACpC,IAAIH,EAAiBH,GAAkB9uZ,GAEvC,GAAKivZ,EAAL,CAIA,IAIII,EAAmBJ,EAAeK,UAGtC,GAFAL,EAAeK,UAAY,GAAc,GAAc,GAAc,GAL9C,CACrB5oa,KAAM,UACNyzI,SAAS,IAGiFk1R,GAAmBD,GAE3GA,GAAgB,SAAUA,EAAc,CAC1C,IAAIG,EAAa,GAAc,GAAc,GAAIF,GAAoBA,EAAiBt5a,MAAOq5a,EAAar5a,MAE1Gk5a,EAAeK,UAAUv5a,KAAOw5a,IAyFpC,SAASC,GAAwB98P,GAE/B,GAAIA,GAAaA,EAAU+8P,oBACzB,OAAO,EAGT,IAGEhC,GAAyB/6P,EAAW,uBAAuB,GAC3D,MAAOxpJ,IAGT,OAAO,EAUT,SAASwmZ,GAASC,GAChB,OAAOtya,MAAMiD,QAAQqva,GAAcA,EAAa,CAACA,GC9OnD,SAASC,KACP,MAAO,CACLC,QAAS,KACTC,OAAQ,KAAQvnZ,UAAU,KCK9B,SAASwnZ,KACP,OAAOjsa,KAAKO,MAbS,IA0DvB,IAAI,GAnCJ,WACE,IAAIolD,EAAckhX,GAAWlhX,YAE7B,IAAKA,IAAgBA,EAAYplD,IAC/B,OAAO0ra,GAKT,IAAIC,EAA2Blsa,KAAKO,MAAQolD,EAAYplD,MACpD4ra,EAAuCp3a,MAA1B4wD,EAAYwmX,WAA0BD,EAA2BvmX,EAAYwmX,WAU9F,OAAO,WACL,OAAQA,EAAaxmX,EAAYplD,OA5Cd,KA0DE6ra,GAYrBC,GAA+B,WAIjC,IAAI1mX,EAAckhX,GAAWlhX,YAE7B,GAAKA,GAAgBA,EAAYplD,IAAjC,CAKA,IAAIq7G,EAAY,KACZ0wT,EAAiB3mX,EAAYplD,MAC7Bgsa,EAAUvsa,KAAKO,MAEfisa,EAAkB7mX,EAAYwmX,WAAatma,KAAKmS,IAAI2tC,EAAYwmX,WAAaG,EAAiBC,GAAW3wT,EACzG6wT,EAAuBD,EAAkB5wT,EAOzC8wT,EAAkB/mX,EAAYgnX,QAAUhnX,EAAYgnX,OAAOD,gBAG3DE,EAFgD,iBAApBF,EAEgB7ma,KAAKmS,IAAI00Z,EAAkBJ,EAAiBC,GAAW3wT,EAGvG,OAAI6wT,GAF4BG,EAAuBhxT,EAIjD4wT,GAAmBI,EAEdjnX,EAAYwmX,WAGZO,EAMJH,GA1C0B,GCxBnC,SAASM,GAAcC,GACrB,IAAIx2a,EAAUiC,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAuClF,GArCIjC,EAAQguL,QACLwoP,EAAQC,WAAaz2a,EAAQguL,KAAK0oP,aACrCF,EAAQC,UAAYz2a,EAAQguL,KAAK0oP,YAG9BF,EAAQG,KAAQ32a,EAAQ22a,MAC3BH,EAAQG,IAAM32a,EAAQguL,KAAKhqL,IAAMhE,EAAQguL,KAAKl4D,OAAS91H,EAAQguL,KAAK7xL,WAIxEq6a,EAAQztZ,UAAY/oB,EAAQ+oB,WAAa,KAErC/oB,EAAQ42a,qBACVJ,EAAQI,mBAAqB52a,EAAQ42a,oBAGnC52a,EAAQ62a,iBACVL,EAAQK,eAAiB72a,EAAQ62a,gBAG/B72a,EAAQ82a,MAEVN,EAAQM,IAA6B,KAAvB92a,EAAQ82a,IAAI1za,OAAgBpD,EAAQ82a,IAAM,WAGrCr4a,IAAjBuB,EAAQ8rH,OACV0qT,EAAQ1qT,KAAO9rH,EAAQ8rH,OAGpB0qT,EAAQG,KAAO32a,EAAQ22a,MAC1BH,EAAQG,IAAM,GAAGxza,OAAOnD,EAAQ22a,MAGH,iBAApB32a,EAAQ41H,UACjB4gT,EAAQ5gT,QAAU51H,EAAQ41H,SAGxB4gT,EAAQK,eACVL,EAAQrha,cAAW1W,OACd,GAAgC,iBAArBuB,EAAQmV,SACxBqha,EAAQrha,SAAWnV,EAAQmV,aACtB,CACL,IAAIA,EAAWqha,EAAQztZ,UAAYytZ,EAAQ5gT,QAC3C4gT,EAAQrha,SAAWA,GAAY,EAAIA,EAAW,EAG5CnV,EAAQ8nC,UACV0uY,EAAQ1uY,QAAU9nC,EAAQ8nC,SAGxB9nC,EAAQ+2a,cACVP,EAAQO,YAAc/2a,EAAQ+2a,cAG3BP,EAAQC,WAAaz2a,EAAQy2a,YAChCD,EAAQC,UAAYz2a,EAAQy2a,YAGzBD,EAAQ5ra,WAAa5K,EAAQ4K,YAChC4ra,EAAQ5ra,UAAY5K,EAAQ4K,WAGA,iBAAnB5K,EAAQ0lN,SACjB8wN,EAAQ9wN,OAAS1lN,EAAQ0lN,QAGvB1lN,EAAQ/C,SACVu5a,EAAQv5a,OAAS+C,EAAQ/C,QC9G7B,SAAS+5a,GAAiB90X,EAAO+gR,GAC3BA,EACFowG,GAAyBnxX,EARN,cAQ+B+gR,UAG3C/gR,EAAsB,YASjC,SAAS+0X,GAAiB/0X,GACxB,OAAOA,EAAsB,YCd/B,SAAS,GAAQx1B,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAmBgC,GAAO,OAQnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAIlI,SAAS,GAA4BmiB,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAM7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAIhL,SAAS,GAAkB1pB,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAW7S,IAKI6wT,GAA0B,WA6C5B,SAASA,KA/DX,SAAyBj3a,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAgE5G,CAAgBJ,KAAMk2a,GAEtBl2a,KAAKm2a,qBAAsB,EAC3Bn2a,KAAKo2a,gBAAkB,GACvBp2a,KAAKq2a,iBAAmB,GACxBr2a,KAAKs2a,aAAe,GACpBt2a,KAAKu2a,aAAe,GACpBv2a,KAAKw2a,MAAQ,GACbx2a,KAAKy2a,MAAQ,GACbz2a,KAAK02a,OAAS,GACd12a,KAAK22a,UAAY,GACjB32a,KAAK42a,uBAAyB,GAC9B52a,KAAK62a,oBAAsBrC,KAxE/B,IAAsBrvT,EAAaM,EAmoBjC,OAnoBoBN,EA+EP+wT,EA/EoBzwT,EA+ER,CAAC,CACxB5nH,IAAK,QACL8C,MAAO,WACL,IAAIm2a,EAAW,IAAIZ,EAoBnB,OAnBAY,EAASR,aAAe,GAAmBt2a,KAAKs2a,cAChDQ,EAASL,MAAQ,GAAc,GAAIz2a,KAAKy2a,OACxCK,EAASJ,OAAS,GAAc,GAAI12a,KAAK02a,QACzCI,EAASH,UAAY,GAAc,GAAI32a,KAAK22a,WAC5CG,EAASN,MAAQx2a,KAAKw2a,MACtBM,EAASC,OAAS/2a,KAAK+2a,OACvBD,EAASE,SAAWh3a,KAAKg3a,SACzBF,EAASG,iBAAmBj3a,KAAKi3a,iBACjCH,EAASI,aAAel3a,KAAKk3a,aAC7BJ,EAAST,iBAAmB,GAAmBr2a,KAAKq2a,kBACpDS,EAASK,gBAAkBn3a,KAAKm3a,gBAChCL,EAASP,aAAe,GAAmBv2a,KAAKu2a,cAChDO,EAASF,uBAAyB,GAAc,GAAI52a,KAAK42a,wBACzDE,EAASD,oBAAsB,GAAc,GAAI72a,KAAK62a,qBACtDC,EAASM,QAAUp3a,KAAKo3a,QACxBN,EAASO,aAAer3a,KAAKq3a,aAE7BrB,GAAiBc,EAAUb,GAAiBj2a,OAErC82a,IAMR,CACDj5a,IAAK,YACL8C,MAAO,SAAmBk/C,GACxB7/C,KAAKo3a,QAAUv3X,IAMhB,CACDhiD,IAAK,iBACL8C,MAAO,SAAwB22a,GAC7Bt3a,KAAKq3a,aAAeC,IAMrB,CACDz5a,IAAK,YACL8C,MAAO,WACL,OAAOX,KAAKo3a,UAMb,CACDv5a,IAAK,cACL8C,MAAO,WACL,OAAOX,KAAKq3a,eAMb,CACDx5a,IAAK,mBACL8C,MAAO,SAA0BwK,GAC/BnL,KAAKo2a,gBAAgBr0a,KAAKoJ,KAM3B,CACDtN,IAAK,oBACL8C,MAAO,SAA2BwK,GAGhC,OAFAnL,KAAKq2a,iBAAiBt0a,KAAKoJ,GAEpBnL,OAMR,CACDnC,IAAK,UACL8C,MAAO,SAAiBqsL,GAkBtB,OAfAhtL,KAAKw2a,MAAQxpP,GAAQ,CACnBl4D,WAAOr3H,EACPuF,QAAIvF,EACJi4a,gBAAYj4a,EACZtC,cAAUsC,GAGRuC,KAAKg3a,UACPzB,GAAcv1a,KAAKg3a,SAAU,CAC3BhqP,KAAMA,IAIVhtL,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,UACL8C,MAAO,WACL,OAAOX,KAAKw2a,QAMb,CACD34a,IAAK,oBACL8C,MAAO,WACL,OAAOX,KAAKm3a,kBAMb,CACDt5a,IAAK,oBACL8C,MAAO,SAA2B62a,GAEhC,OADAx3a,KAAKm3a,gBAAkBK,EAChBx3a,OAMR,CACDnC,IAAK,UACL8C,MAAO,SAAiB0rO,GAKtB,OAJArsO,KAAKy2a,MAAQ,GAAc,GAAc,GAAIz2a,KAAKy2a,OAAQpqM,GAE1DrsO,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,SACL8C,MAAO,SAAgB9C,EAAK8C,GAK1B,OAJAX,KAAKy2a,MAAQ,GAAc,GAAc,GAAIz2a,KAAKy2a,OAAQ,GAAI,GAAgB,GAAI54a,EAAK8C,IAEvFX,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,YACL8C,MAAO,SAAmB82a,GAKxB,OAJAz3a,KAAK02a,OAAS,GAAc,GAAc,GAAI12a,KAAK02a,QAASe,GAE5Dz3a,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,WACL8C,MAAO,SAAkB9C,EAAKwmK,GAK5B,OAJArkK,KAAK02a,OAAS,GAAc,GAAc,GAAI12a,KAAK02a,QAAS,GAAI,GAAgB,GAAI74a,EAAKwmK,IAEzFrkK,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,iBACL8C,MAAO,SAAwB+2a,GAK7B,OAJA13a,KAAKk3a,aAAeQ,EAEpB13a,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,WACL8C,MAAO,SAAkBwqB,GAKvB,OAJAnrB,KAAK+2a,OAAS5rZ,EAEdnrB,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,qBACL8C,MAAO,SAA4BuD,GAKjC,OAJAlE,KAAKi3a,iBAAmB/ya,EAExBlE,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,aACL8C,MAAO,SAAoB9C,EAAKmB,GAU9B,OATgB,OAAZA,SAEKgB,KAAK22a,UAAU94a,GAEtBmC,KAAK22a,UAAU94a,GAAOmB,EAGxBgB,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,aACL8C,MAAO,SAAoB60a,GASzB,OARKA,EAGHx1a,KAAKg3a,SAAWxB,SAFTx1a,KAAKg3a,SAKdh3a,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,aACL8C,MAAO,WACL,OAAOX,KAAKg3a,WAMb,CACDn5a,IAAK,SACL8C,MAAO,SAAgBg3a,GACrB,IAAKA,EACH,OAAO33a,KAGT,IAAI43a,EAAyC,mBAAnBD,EAAgCA,EAAe33a,MAAQ23a,EAG7Ehka,EAzYV,SAAwBvI,EAAK3D,GAAK,OAMlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EANtB,CAAgBA,IAIzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GAJzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAyYvH,CADDw3a,aAAwBC,GAAQ,CAACD,EAAaE,eAAgBF,EAAaG,qBAAuB,GAAcH,GAAgB,CAACD,EAAgBA,EAAeH,gBAAkB,GAC5J,GAC7BQ,EAAgBrka,EAAM,GACtB6ja,EAAiB7ja,EAAM,GAEvBa,EAAQwja,GAAiB,GACzB3rM,EAAO73N,EAAM63N,KACbhoE,EAAQ7vJ,EAAM6vJ,MACd2oB,EAAOx4K,EAAMw4K,KACb18B,EAAW97I,EAAM87I,SACjBnlI,EAAQ3W,EAAM2W,MACd8sZ,EAAoBzja,EAAMkja,YAC1BA,OAAoC,IAAtBO,EAA+B,GAAKA,EAClDC,EAAqB1ja,EAAM0ja,mBA0B/B,OAxBAl4a,KAAKy2a,MAAQ,GAAc,GAAc,GAAIz2a,KAAKy2a,OAAQpqM,GAC1DrsO,KAAK02a,OAAS,GAAc,GAAc,GAAI12a,KAAK02a,QAASryQ,GAC5DrkK,KAAK22a,UAAY,GAAc,GAAc,GAAI32a,KAAK22a,WAAYrmR,GAE9D08B,GAAQxnL,OAAOC,KAAKunL,GAAM5qL,SAC5BpC,KAAKw2a,MAAQxpP,GAGX7hK,IACFnrB,KAAK+2a,OAAS5rZ,GAGZusZ,EAAYt1a,SACdpC,KAAKk3a,aAAeQ,GAGlBQ,IACFl4a,KAAK62a,oBAAsBqB,GAGzBV,IACFx3a,KAAKm3a,gBAAkBK,GAGlBx3a,OAMR,CACDnC,IAAK,QACL8C,MAAO,WAoBL,OAlBAX,KAAKs2a,aAAe,GACpBt2a,KAAKy2a,MAAQ,GACbz2a,KAAK02a,OAAS,GACd12a,KAAKw2a,MAAQ,GACbx2a,KAAK22a,UAAY,GACjB32a,KAAK+2a,YAASt5a,EACduC,KAAKi3a,sBAAmBx5a,EACxBuC,KAAKk3a,kBAAez5a,EACpBuC,KAAKm3a,qBAAkB15a,EACvBuC,KAAKg3a,cAAWv5a,EAEhBu4a,GAAiBh2a,UAAMvC,GAEvBuC,KAAKu2a,aAAe,GACpBv2a,KAAK62a,oBAAsBrC,KAE3Bx0a,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,gBACL8C,MAAO,SAAuBw3a,EAAYC,GACxC,IAAIC,EAAsC,iBAAnBD,EAA8BA,EA7a7B,IA+axB,GAAIC,GAAa,EACf,OAAOr4a,KAGT,IAAIs4a,EAAmB,GAAc,CACnCvwZ,UAAW4sZ,MACVwD,GAECI,EAAcv4a,KAAKs2a,aAMvB,OALAiC,EAAYx2a,KAAKu2a,GACjBt4a,KAAKs2a,aAAeiC,EAAYn2a,OAASi2a,EAAYE,EAAYpza,OAAOkza,GAAaE,EAErFv4a,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,oBACL8C,MAAO,WACL,OAAOX,KAAKs2a,aAAat2a,KAAKs2a,aAAal0a,OAAS,KAMrD,CACDvE,IAAK,mBACL8C,MAAO,WAKL,OAJAX,KAAKs2a,aAAe,GAEpBt2a,KAAKu3a,wBAEEv3a,OAMR,CACDnC,IAAK,gBACL8C,MAAO,SAAuByha,GAG5B,OAFApia,KAAKu2a,aAAax0a,KAAKqga,GAEhBpia,OAMR,CACDnC,IAAK,mBACL8C,MAAO,WAEL,OADAX,KAAKu2a,aAAe,GACbv2a,OAIR,CACDnC,IAAK,eACL8C,MAAO,WACL,MAAO,CACL43a,YAAav4a,KAAKs2a,aAClBkC,YAAax4a,KAAKu2a,aAClBjmR,SAAUtwJ,KAAK22a,UACftqM,KAAMrsO,KAAKy2a,MACXpyQ,MAAOrkK,KAAK02a,OACZ1pP,KAAMhtL,KAAKw2a,MACXrrZ,MAAOnrB,KAAK+2a,OACZW,YAAa13a,KAAKk3a,cAAgB,GAClCuB,gBAAiBz4a,KAAKq2a,iBACtB6B,mBAAoBl4a,KAAK62a,oBACzB6B,sBAAuB14a,KAAK42a,uBAC5B+B,gBAAiB34a,KAAKi3a,iBACtBh1G,KAAMg0G,GAAiBj2a,SAO1B,CACDnC,IAAK,2BACL8C,MAAO,SAAkC8gF,GAEvC,OADAzhF,KAAK42a,uBAAyB,GAAc,GAAc,GAAI52a,KAAK42a,wBAAyBn1V,GACrFzhF,OAMR,CACDnC,IAAK,wBACL8C,MAAO,SAA+B3B,GAEpC,OADAgB,KAAK62a,oBAAsB73a,EACpBgB,OAMR,CACDnC,IAAK,wBACL8C,MAAO,WACL,OAAOX,KAAK62a,sBAMb,CACDh5a,IAAK,mBACL8C,MAAO,SAA0B22K,EAAW5yB,GAC1C,IAAI2iF,EAAU3iF,GAAQA,EAAKkvR,SAAWlvR,EAAKkvR,SAAW,KAEtD,IAAK5za,KAAKo3a,QAER,OADA,QAAY,+DACL/vM,EAGT,IAAIuxM,EAAqB,IAAIp1a,MAAM,6BASnC,OAPAxD,KAAKo3a,QAAQyB,iBAAiBvhQ,EAAW,GAAc,GAAc,CACnEwhQ,kBAAmBxhQ,EACnBshQ,mBAAoBA,GACnBl0R,GAAO,GAAI,CACZkvR,SAAUvsM,IACRrnO,MAEGqnO,IAMR,CACDxpO,IAAK,iBACL8C,MAAO,SAAwBZ,EAASorB,EAAOu5H,GAC7C,IAAI2iF,EAAU3iF,GAAQA,EAAKkvR,SAAWlvR,EAAKkvR,SAAW,KAEtD,IAAK5za,KAAKo3a,QAER,OADA,QAAY,6DACL/vM,EAGT,IAAIuxM,EAAqB,IAAIp1a,MAAMzD,GASnC,OAPAC,KAAKo3a,QAAQ2B,eAAeh5a,EAASorB,EAAO,GAAc,GAAc,CACtE2tZ,kBAAmB/4a,EACnB64a,mBAAoBA,GACnBl0R,GAAO,GAAI,CACZkvR,SAAUvsM,IACRrnO,MAEGqnO,IAMR,CACDxpO,IAAK,eACL8C,MAAO,SAAsBikB,EAAO8/H,GAClC,IAAI2iF,EAAU3iF,GAAQA,EAAKkvR,SAAWlvR,EAAKkvR,SAAW,KAEtD,OAAK5za,KAAKo3a,SAKVp3a,KAAKo3a,QAAQ4B,aAAap0Z,EAAO,GAAc,GAAc,GAAI8/H,GAAO,GAAI,CAC1EkvR,SAAUvsM,IACRrnO,MAEGqnO,IARL,QAAY,2DACLA,KAaV,CACDxpO,IAAK,wBACL8C,MAAO,WACL,IAAIiyH,EAAQ5yH,KAKPA,KAAKm2a,sBACRn2a,KAAKm2a,qBAAsB,EAE3Bn2a,KAAKo2a,gBAAgBz4a,SAAQ,SAAUwN,GACrCA,EAASynH,MAGX5yH,KAAKm2a,qBAAsB,MA9nB+B1wT,GAAY,GAAkBN,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IAmoBrP2wT,EArnBqB,GA+nB1B2B,GAAQ3B,GC7pBZ,SAAS,KAGP,OADA,GAAiB3G,IACVA,GAKT,SAAS,GAAiB0J,GACxB,IAAItJ,EAAasJ,EAAQtJ,WAAasJ,EAAQtJ,YAAc,GAM5D,OAHAA,EAAWjka,QAAUika,EAAWjka,SAAW2ia,GAGpCsB,EAAWtB,IAAesB,EAAWtB,KAAgB,GC3B9D,SAAS,GAAkBrpa,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAY7S,IAAI6zT,GAAiC,WACnC,SAASA,EAAkBh4X,EAAOi4X,GAGhC,IAAIC,EAQAC,GA1BR,SAAyBp6a,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAgB5G,CAAgBJ,KAAMk5a,GAOpBE,EAHGl4X,GACa,IAAI22X,GAUpBwB,EAHGF,GACsB,IAAItB,GAM/B73a,KAAKs5a,OAAS,CAAC,CACbp4X,MAAOk4X,IAETp5a,KAAKu5a,gBAAkBF,EAlC3B,IAAsBl0T,EAAaM,EA4IjC,OA5IoBN,EAyCP+zT,GAzCoBzzT,EAyCD,CAAC,CAC/B5nH,IAAK,YACL8C,MAAO,SAAmBwK,GACxB,IAIIqua,EAJA5mT,EAAQ5yH,KAERkhD,EAAQlhD,KAAKy5a,aAIjB,IACED,EAAqBrua,EAAS+1C,GAC9B,MAAOj6C,GAGP,MAFAjH,KAAK05a,YAECzya,EAGR,OAAI,GAAWuya,GAENA,EAAmBj7a,MAAK,SAAU66B,GAGvC,OAFAw5F,EAAM8mT,YAECtgZ,KACN,SAAUnyB,GAGX,MAFA2rH,EAAM8mT,YAEAzya,MAIVjH,KAAK05a,YAEEF,KAMR,CACD37a,IAAK,YACL8C,MAAO,WACL,OAAOX,KAAK25a,cAAc95X,SAM3B,CACDhiD,IAAK,WACL8C,MAAO,WACL,OAAOX,KAAK25a,cAAcz4X,QAM3B,CACDrjD,IAAK,oBACL8C,MAAO,WACL,OAAOX,KAAKu5a,kBAMb,CACD17a,IAAK,cACL8C,MAAO,WACL,OAAOX,KAAKs5a,OAAOt5a,KAAKs5a,OAAOl3a,OAAS,KAMzC,CACDvE,IAAK,aACL8C,MAAO,WAEL,IAAIugD,EAAQlhD,KAAK45a,WAAWn1V,QAO5B,OALAzkF,KAAKs5a,OAAOv3a,KAAK,CACf89C,OAAQ7/C,KAAK65a,YACb34X,MAAOA,IAGFA,IAMR,CACDrjD,IAAK,YACL8C,MAAO,WACL,QAAIX,KAAKs5a,OAAOl3a,QAAU,IACjBpC,KAAKs5a,OAAO9+Z,YAxImD,GAAkB2qG,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IA4IrP2zT,EAlI4B,GA0IrC,SAASY,KACP,IACIC,EAAS,GADE,MAEf,OAAOA,EAAOv1a,MAAQu1a,EAAOv1a,OAAS,IAAI00a,GCtJnC1J,GAAmB,uBAAuB,WAC/C,OAAO,IAAIqI,MAONrI,GAAmB,yBAAyB,WACjD,OAAO,IAAIqI,ODgJf,SAASmC,GAAU7ua,GACjB,OAAO2ua,KAAuBE,UAAU7ua,GAG1C,SAAS8ua,GAAa/4X,EAAO/1C,GAC3B,IAAI3G,EAAQs1a,KACZ,OAAOt1a,EAAMw1a,WAAU,WAErB,OADAx1a,EAAMm1a,cAAcz4X,MAAQA,EACrB/1C,EAAS+1C,MAIpB,SAAS,GAAmB/1C,GAC1B,OAAO2ua,KAAuBE,WAAU,WACtC,OAAO7ua,EAAS2ua,KAAuBI,wBExJ3C,SAASC,GAAwBlB,GAC/B,IAAIc,EAAS,GAAiBd,GAE9B,OAAIc,EAAOK,IACFL,EAAOK,IF6JT,CACLC,mBAAoB,GACpBL,UAAWA,GACXC,aAAcA,GACdK,sBAAuB,SAA+Bf,EAAiBpua,GACrE,OAAO,GAAmBA,IAE5Bova,gBAAiB,WACf,OAAOT,KAAuBF,YAEhCM,kBAAmB,WACjB,OAAOJ,KAAuBI,sBGxLpC,SAAS,KAGP,OADUC,GADI,MAEHI,kBAQb,SAASL,KAGP,OADUC,GADI,MAEHD,oBAQb,SAASM,KACP,OAAOhL,GAAmB,eAAe,WACvC,OAAO,IAAIqI,MAcf,SAAS,KAIP,IAHA,IAAIoB,EAAU,KACVmB,EAAMD,GAAwBlB,GAEzB57Z,EAAOpc,UAAUmB,OAAQ2sF,EAAO,IAAI9sF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EyxE,EAAKzxE,GAAQrc,UAAUqc,GAGzB,GAAoB,IAAhByxE,EAAK3sF,OAAc,CACrB,IAAI8+C,EAAQ6tC,EAAK,GACb5jF,EAAW4jF,EAAK,GAEpB,OAAK7tC,EAIEk5X,EAAIH,aAAa/4X,EAAO/1C,GAHtBiva,EAAIJ,UAAU7ua,GAMzB,OAAOiva,EAAIJ,UAAUjrV,EAAK,IAkB5B,SAAS,KAIP,IAHA,IAAIkqV,EAAU,KACVmB,EAAMD,GAAwBlB,GAEzBtpZ,EAAQ1uB,UAAUmB,OAAQ2sF,EAAO,IAAI9sF,MAAM0tB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFm/D,EAAKn/D,GAAS3uB,UAAU2uB,GAG1B,GAAoB,IAAhBm/D,EAAK3sF,OAAc,CACrB,IAAI+2a,EAAiBpqV,EAAK,GACtB5jF,EAAW4jF,EAAK,GAEpB,OAAKoqV,EAIEiB,EAAIE,sBAAsBnB,EAAgBhua,GAHxCiva,EAAIC,mBAAmBlva,GAMlC,OAAOiva,EAAIC,mBAAmBtrV,EAAK,IAOrC,SAAS,KACP,OAAO,KAAkB8qV,YC9G3B,SAAS,GAAQnuZ,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAI9U,SAAS,GAAgB2D,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAiB3M,SAASqxa,GAActC,EAAYzzR,GACjC,IAAI7kG,EAAS,KACTs5X,EAAiBe,KACrB,GAAKr6X,EAAL,CAEA,IAAI66X,EAAqB76X,EAAO3tB,aAC5ByoZ,EAAwBD,EAAmBE,iBAC3CA,OAA6C,IAA1BD,EAAmC,KAAOA,EAC7DE,EAAwBH,EAAmBtC,eAC3CA,OAA2C,IAA1ByC,EAjBG,IAiBsDA,EAE9E,KAAIzC,GAAkB,GAAtB,CACA,IAEIE,EAjCN,SAAuBtza,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAiCxd,CAAc,CACnC+iB,UAHc4sZ,MAIbwD,GAEC2C,EAAkBF,EAAmB3J,IAAe,WACtD,OAAO2J,EAAiBtC,EAAkB5zR,MACvC4zR,EACmB,OAApBwC,IAEAj7X,EAAOi+F,MACTj+F,EAAOi+F,KAAK,sBAAuBg9R,EAAiBp2R,GAGtDy0R,EAAesB,cAAcK,EAAiB1C,MChDhD,IAAI2C,GAAsB,aCKtB,GAA0C,oBAArBlK,kBAAoCA,iBCE7D,SAASmK,KACP,IAAIC,EAAgC,mBAAZC,QACpBt7Z,EAAQq7Z,EAAa,IAAIC,QAAY,GAsCzC,MAAO,CApCP,SAAiB9xa,GACf,GAAI6xa,EACF,QAAIr7Z,EAAMmnD,IAAI39D,KAIdwW,EAAM0E,IAAIlb,IACH,GAIT,IAAK,IAAI3B,EAAI,EAAGA,EAAImY,EAAMxd,OAAQqF,IAGhC,GAFYmY,EAAMnY,KAEJ2B,EACZ,OAAO,EAKX,OADAwW,EAAM7d,KAAKqH,IACJ,GAGT,SAAmBA,GACjB,GAAI6xa,EACFr7Z,EAAM27K,OAAOnyL,QAEb,IAAK,IAAI3B,EAAI,EAAGA,EAAImY,EAAMxd,OAAQqF,IAChC,GAAImY,EAAMnY,KAAO2B,EAAK,CACpBwW,EAAMd,OAAOrX,EAAG,GAChB,SCzCV,SAAS,GAAQikB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAmBgC,GAAO,OAMnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAN1C,CAAmBA,IAI7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GAJjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAQlI,SAAS,GAA2BmiB,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAEz9B,SAAS,GAA4BvL,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,IACIysZ,GAAmB,IAEnBC,GAAuB,kBACvBC,GAAqB,kCASzB,SAASC,KACP,IAAK,IAAIj+Z,EAAOpc,UAAUmB,OAAQm5a,EAAU,IAAIt5a,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFi+Z,EAAQj+Z,GAAQrc,UAAUqc,GAG5B,IAAIk+Z,EAAgBD,EAAQ1yZ,MAAK,SAAUzb,EAAGC,GAC5C,OAAOD,EAAE,GAAKC,EAAE,MACf4N,KAAI,SAAU1K,GACf,OAAOA,EAAE,MAEX,OAAO,SAAU/L,GAMf,IALA,IAAIi3a,EAAiBx6a,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EACrFy6a,EAAcz6a,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EAClFi2D,EAAS,GACTyxK,EAAQnkO,EAAMwG,MAAM,MAEfvD,EAAIg0a,EAAgBh0a,EAAIkhO,EAAMvmO,OAAQqF,IAAK,CAClD,IAAIwD,EAAO09N,EAAMlhO,GAKjB,KAAIwD,EAAK7I,OAAS,MAAlB,CAMA,IAAIu5a,EAAcP,GAAqBlya,KAAK+B,GAAQA,EAAKtI,QAAQy4a,GAAsB,MAAQnwa,EAG/F,IAAI0wa,EAAY9ya,MAAM,cAAtB,CAIA,IACIk1B,EADAC,EAAY,GAA2Bw9Y,GAG3C,IACE,IAAKx9Y,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIlnB,EAASo3B,EAAMp9B,MACfuyR,EAAQvsR,EAAOg1a,GAEnB,GAAIzoJ,EAAO,CACTh8N,EAAOn1D,KAAKmxR,GACZ,QAGJ,MAAOplQ,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,GAAIolC,EAAO90D,QAnEY,GAmEuBs5a,EAC5C,QAIJ,OAAOE,GAA4B1kX,EAAO/xD,MAAMu2a,KAWpD,SAASG,GAAkCC,GACzC,OAAI75a,MAAMiD,QAAQ42a,GACTR,GAAkBp5a,WAAM,EAAQ,GAAmB45a,IAGrDA,EAUT,SAASF,GAA4Bp3a,GACnC,IAAKA,EAAMpC,OACT,MAAO,GAGT,IAAI25a,EAAa95a,MAAM4sB,KAAKrqB,GAwB5B,MAtBI,gBAAgB0E,KAAK8ya,GAAkBD,GAAY9wZ,UAAY,KACjE8wZ,EAAWvha,MAIbuha,EAAW95Z,UAEPo5Z,GAAmBnya,KAAK8ya,GAAkBD,GAAY9wZ,UAAY,MACpE8wZ,EAAWvha,MASP6ga,GAAmBnya,KAAK8ya,GAAkBD,GAAY9wZ,UAAY,KACpE8wZ,EAAWvha,OAIRuha,EAAW52a,MAAM,EA/HG,IA+HwB8V,KAAI,SAAUi4Q,GAC/D,OAAO,GAAc,GAAc,GAAIA,GAAQ,GAAI,CACjDt4Q,SAAUs4Q,EAAMt4Q,UAAYoha,GAAkBD,GAAYnha,SAC1DqQ,SAAUioQ,EAAMjoQ,UAAYkwZ,QAKlC,SAASa,GAAkB5wa,GACzB,OAAOA,EAAIA,EAAIhJ,OAAS,IAAM,GAGhC,IClJI65a,GDkJAC,GAAsB,cAK1B,SAASC,GAAgBl5a,GACvB,IACE,OAAKA,GAAoB,mBAAPA,GAIXA,EAAGiB,MAHDg4a,GAIT,MAAOj1a,GAGP,OAAOi1a,IAQX,SAASE,GAAmBx3Z,GAC1B,IAAI0yJ,EAAY1yJ,EAAM0yJ,UAEtB,GAAIA,EAAW,CACb,IAAIpgH,EAAS,GAEb,IASE,OAPAogH,EAAUlyG,OAAOznE,SAAQ,SAAUgD,GAE7BA,EAAM07a,WAAWnlX,QAEnBA,EAAOn1D,KAAKG,MAAMg1D,EAAQ,GAAmBv2D,EAAM07a,WAAWnlX,YAG3DA,EACP,MAAOo5W,GACP,SEvMN,SAAS,GAAQlna,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAEzU,SAAS,GAAegC,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAMzI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EA+BhL,SAAS,GAAU0rB,GACjB,IAAI04B,EAAQ7xE,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,IAC5Eq7a,EAAgBr7a,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,IAExF,IAEE,OAAOs7a,GAAM,GAAIniY,EAAO04B,EAAOwpW,GAC/B,MAAOxuZ,GACP,MAAO,CACLmL,MAAO,yBAAyB92B,OAAO2rB,EAAK,OAOlD,SAAS0uZ,GACT9wZ,GACE,IAAIonD,EAAQ7xE,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EAC5E8/Q,EAAU9/Q,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,OAC9Es5F,EAAa,GAAU7uE,EAAQonD,GAEnC,OAAI2pW,GAASliV,GAAcwmL,EAClBy7J,GAAgB9wZ,EAAQonD,EAAQ,EAAGiuM,GAGrCxmL,EAaT,SAASgiV,GAAM1+a,EAAK8C,GAClB,IAAImyE,EAAQ7xE,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,IAC5Eq7a,EAAgBr7a,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,IACpFy7a,EAAOz7a,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK+5a,KAE3E2B,EAAQ,GAAeD,EAAM,GAC7Bp4V,EAAUq4V,EAAM,GAChBC,EAAYD,EAAM,GAGtB,GAAa,MAATh8a,GACJ,CAAC,UAAW,UAAU0d,SAAS,GAAQ1d,KAA4B,iBAAVA,GAAsB2xD,OAAOxoC,SAASnpB,GAC7F,OAAOA,EAGT,IAAI08L,EAAcw/O,GAAeh/a,EAAK8C,GAGtC,IAAK08L,EAAYvpG,WAAW,YAC1B,OAAOupG,EAOT,GAAI18L,EAAqC,8BACvC,OAAOA,EAMT,IAAIm8a,EAA6E,iBAArDn8a,EAA+C,wCAAiBA,EAA+C,wCAAImyE,EAE/I,GAAuB,IAAnBgqW,EAEF,OAAOz/O,EAAY16L,QAAQ,UAAW,IAIxC,GAAI2hF,EAAQ3jF,GACV,MAAO,eAIT,IAAIo8a,EAAkBp8a,EAEtB,GAAIo8a,GAAqD,mBAA3BA,EAAgB94a,OAC5C,IACE,IAAI+4a,EAAYD,EAAgB94a,SAEhC,OAAOs4a,GAAM,GAAIS,EAAWF,EAAiB,EAAGR,EAAeI,GAC/D,MAAO5uZ,IAOX,IAAIysE,EAAat4F,MAAMiD,QAAQvE,GAAS,GAAK,GACzCs8a,EAAW,EAGXC,EAAYzK,GAAqB9xa,GAErC,IAAK,IAAIw8a,KAAYD,EAEnB,GAAK13a,OAAOtG,UAAU0N,eAAejJ,KAAKu5a,EAAWC,GAArD,CAIA,GAAIF,GAAYX,EAAe,CAC7B/hV,EAAW4iV,GAAY,oBACvB,MAIF,IAAIC,EAAaF,EAAUC,GAC3B5iV,EAAW4iV,GAAYZ,GAAMY,EAAUC,EAAYN,EAAiB,EAAGR,EAAeI,GACtFO,IAMF,OAFAL,EAAUj8a,GAEH45F,EAeT,SAASsiV,GAAeh/a,EAExB8C,GACE,IACE,GAAY,WAAR9C,GAAoB8C,GAA4B,WAAnB,GAAQA,IAAuBA,EAAM63L,QACpE,MAAO,WAGT,GAAY,kBAAR36L,EACF,MAAO,kBAKT,GAAsB,oBAAX03F,QAA0B50F,IAAU40F,OAC7C,MAAO,WAIT,GAAsB,oBAAX7qF,QAA0B/J,IAAU+J,OAC7C,MAAO,WAIT,GAAwB,oBAAb9B,UAA4BjI,IAAUiI,SAC/C,MAAO,aAGT,GAAIyma,GAAe1ua,GACjB,MAAO,iBAIT,GxBpCK,GADiBmua,EwBqCDnua,IxBpCM,gBAAiBmua,GAAO,mBAAoBA,GAAO,oBAAqBA,EwBqCjG,MAAO,mBAGT,GAAqB,iBAAVnua,IAAuB2xD,OAAOxoC,SAASnpB,GAChD,MAAO,IAAIwB,OAAOxB,EAAO,KAG3B,GAAqB,mBAAVA,EACT,MAAO,cAAcwB,OAAOg6a,GAAgBx7a,GAAQ,KAGtD,GAAuB,WAAnB,GAAQA,GACV,MAAO,IAAIwB,OAAO41D,OAAOp3D,GAAQ,KAInC,GAAqB,iBAAVA,EACT,MAAO,YAAYwB,OAAO41D,OAAOp3D,GAAQ,KAO3C,IAAI08a,EAcR,SAA4B18a,GAC1B,IAAIzB,EAAYsG,OAAOiH,eAAe9L,GACtC,OAAOzB,EAAYA,EAAUqK,YAAYrF,KAAO,iBAhBhCo5a,CAAmB38a,GAEjC,MAAI,qBAAqBuI,KAAKm0a,GACrB,iBAAiBl7a,OAAOk7a,EAAS,KAGnC,WAAWl7a,OAAOk7a,EAAS,KAClC,MAAOvvZ,GACP,MAAO,yBAAyB3rB,OAAO2rB,EAAK,KxBtEhD,IAA0BghZ,EwB2F1B,SAAS2N,GAAS97a,GAChB,OATF,SAAoBA,GAElB,QAAS8+B,UAAU9+B,GAAOqK,MAAM,SAAS5I,OAOlCm7a,CAAWz2a,KAAKI,UAAUvG,IDzQnC,SAAS,GAAkBqE,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAmC7S,SAASm4T,GAAoB78a,GAC3B,OAAO,IAAI88a,IAAY,SAAUjjb,GAC/BA,EAAQmG,MAWZ,SAAS+8a,GAAoBn9a,GAC3B,OAAO,IAAIk9a,IAAY,SAAU/ra,EAAGjX,GAClCA,EAAO8F,OArCX,SAAW07a,GAGTA,EAAOA,EAAgB,QADT,GACwB,UAItCA,EAAOA,EAAiB,SADT,GACyB,WAIxCA,EAAOA,EAAiB,SADT,GACyB,WAX1C,CAYGA,KAAWA,GAAS,KAkCvB,IAAIwB,GAA2B,WAC7B,SAASA,EAAYt9a,IA9DvB,SAAyBlB,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCA+D5G,CAAgBJ,KAAMy9a,GAEtBA,EAAYv+a,UAAUy+a,OAAOh6a,KAAK3D,MAElCy9a,EAAYv+a,UAAU0+a,QAAQj6a,KAAK3D,MAEnCy9a,EAAYv+a,UAAU2+a,QAAQl6a,KAAK3D,MAEnCy9a,EAAYv+a,UAAU4+a,QAAQn6a,KAAK3D,MAEnCA,KAAKo8Z,OAAS6f,GAAOtgB,QACrB37Z,KAAK+9a,UAAY,GAEjB,IACE59a,EAASH,KAAKksL,SAAUlsL,KAAKg+a,SAC7B,MAAO/2a,GACPjH,KAAKg+a,QAAQ/2a,IA3EnB,IAAsBk+G,EAAaM,EA4OjC,OA5OoBN,EAiFPs4T,EAjFoBh4T,EAiFP,CAAC,CACzB5nH,IAAK,OACL8C,MAAO,SAAcs9a,EAAaC,GAChC,IAAItrT,EAAQ5yH,KAEZ,OAAO,IAAIy9a,GAAY,SAAUjjb,EAASC,GACxCm4H,EAAMmrT,UAAUh8a,KAAK,EAAC,EAAO,SAAUyK,GACrC,GAAKyxa,EAKH,IACEzjb,EAAQyjb,EAAYzxa,IACpB,MAAOvF,GACPxM,EAAOwM,QALTzM,EAAQgS,IAQT,SAAUjM,GACX,GAAK29a,EAGH,IACE1jb,EAAQ0jb,EAAW39a,IACnB,MAAO0G,GACPxM,EAAOwM,QALTxM,EAAO8F,MAUXqyH,EAAMurT,wBAKT,CACDtgb,IAAK,QACL8C,MAAO,SAAgBu9a,GACrB,OAAOl+a,KAAKzB,MAAK,SAAUX,GACzB,OAAOA,IACNsgb,KAIJ,CACDrgb,IAAK,UACL8C,MAAO,SAAkBy9a,GACvB,IAAIthN,EAAS98N,KAEb,OAAO,IAAIy9a,GAAY,SAAUjjb,EAASC,GACxC,IAAImD,EACAygb,EACJ,OAAOvhN,EAAOv+N,MAAK,SAAUoC,GAC3B09a,GAAa,EACbzgb,EAAM+C,EAEFy9a,GACFA,OAED,SAAU79a,GACX89a,GAAa,EACbzgb,EAAM2C,EAEF69a,GACFA,OAED7/a,MAAK,WACF8/a,EACF5jb,EAAOmD,GAITpD,EAAQoD,WAMb,CACDC,IAAK,SACL8C,MAAO,WACL,IAAIk9N,EAAS79N,KAEbA,KAAKksL,SAAW,SAAUvrL,GACxBk9N,EAAOygN,WAAWrC,GAAOsC,SAAU59a,MAKtC,CACD9C,IAAK,UACL8C,MAAO,WACL,IAAIu9N,EAASl+N,KAEbA,KAAKg+a,QAAU,SAAUz9a,GACvB29N,EAAOogN,WAAWrC,GAAOuC,SAAUj+a,MAKtC,CACD1C,IAAK,UACL8C,MAAO,WACL,IAAI69N,EAASx+N,KAEbA,KAAKs+a,WAAa,SAAU3ha,EAAOhc,GAC7B69N,EAAO49L,SAAW6f,GAAOtgB,UAIzB,GAAWh7Z,GACRA,EAAMpC,KAAKigO,EAAOtyC,SAAUsyC,EAAOw/M,UAI1Cx/M,EAAO49L,OAASz/Y,EAChB6hN,EAAO34B,OAASllM,EAEhB69N,EAAO2/M,wBAKV,CACDtgb,IAAK,UACL8C,MAAO,WACL,IAAIs+N,EAASj/N,KAEbA,KAAKm+a,iBAAmB,WACtB,GAAIl/M,EAAOm9L,SAAW6f,GAAOtgB,QAA7B,CAIA,IAAI8iB,EAAiBx/M,EAAO8+M,UAAU54a,QAEtC85N,EAAO8+M,UAAY,GACnBU,EAAe9gb,SAAQ,SAAUipC,GAC3BA,EAAQ,KAIRq4L,EAAOm9L,SAAW6f,GAAOsC,UAC3B33Y,EAAQ,GAAGq4L,EAAOp5B,QAGhBo5B,EAAOm9L,SAAW6f,GAAOuC,UAC3B53Y,EAAQ,GAAGq4L,EAAOp5B,QAGpBj/J,EAAQ,IAAK,WAtO2C6+E,GAAY,GAAkBN,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IA4OrPk4T,EAnLsB,GE7D/B,SAAS,GAAQ/xZ,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAQ3M,SAASs1a,GAAsBC,EAAY/5Z,EAAO8/H,GAChD,IAAIhpI,EAAQza,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EAChF,OAAO,IAAIw8a,IAAY,SAAUjjb,EAASC,GACxC,IAAIwrC,EAAY04Y,EAAWjja,GAE3B,GAAc,OAAVkJ,GAAuC,mBAAdqhB,EAC3BzrC,EAAQoqB,OACH,CACL,IAAIpY,EAASy5B,EAAU,GAAc,GAAIrhB,GAAQ8/H,GACjD,IAAez+G,EAAUjjC,IAAiB,OAAXwJ,GAAmB,GAAA+xH,IAAW,oBAAqBp8H,OAAO8jC,EAAUjjC,GAAI,oBAEnG,GAAWwJ,GACRA,EAAOjO,MAAK,SAAUqgb,GACzB,OAAOF,GAAsBC,EAAYC,EAAOl6R,EAAMhpI,EAAQ,GAAGnd,KAAK/D,MACrE+D,KAAK,KAAM9D,GAETikb,GAAsBC,EAAYnya,EAAQk4I,EAAMhpI,EAAQ,GAAGnd,KAAK/D,GAAS+D,KAAK,KAAM9D,OC5BjG,SAAS,GAAe2Q,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAMzI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAShL,IAAImwZ,GAAsB,UACtBC,GAA4B,UAC5BC,GAAkC,WAgBtC,SAASC,GACTC,GACE,IAAIC,EA+DN,SAA4BD,GAC1B,GAAKA,IAAkB,GAASA,IAAmBh9a,MAAMiD,QAAQ+5a,IAIjE,OAAIh9a,MAAMiD,QAAQ+5a,GAETA,EAAcjma,QAAO,SAAU4sM,EAAKv0K,GACzC,IAAI8tY,EAAoBC,GAAsB/tY,GAQ9C,OAPA7rC,OAAOg5C,QAAQ2gY,GAAmBxhb,SAAQ,SAAUwV,GAClD,IAAIsC,EAAQ,GAAetC,EAAO,GAC9BtV,EAAM4X,EAAM,GACZ9U,EAAQ8U,EAAM,GAElBmwM,EAAI/nN,GAAO8C,KAENilN,IACN,IAGEw5N,GAAsBH,GAnFTI,CAAmBJ,GAEvC,GAAKC,EAAL,CAKA,IAAII,EAAyB95a,OAAOg5C,QAAQ0gY,GAAelma,QAAO,SAAU4sM,EAAKvzM,GAC/E,IAAIsB,EAAQ,GAAetB,EAAM,GAC7BxU,EAAM8V,EAAM,GACZhT,EAAQgT,EAAM,GAOlB,OALI9V,EAAIgL,MAAMk2a,MAEZn5N,EADqB/nN,EAAIsH,MAAM25a,GAA0B18a,SACnCzB,GAGjBilN,IACN,IAGH,OAAIpgN,OAAOC,KAAK65a,GAAwBl9a,OAAS,EACxCk9a,OAEP,GAcJ,SAASC,GACTD,GACE,GAAKA,EAgBL,OA+DF,SAA+B5zZ,GAC7B,GAAmC,IAA/BlmB,OAAOC,KAAKimB,GAAQtpB,OAKxB,OAAOoD,OAAOg5C,QAAQ9yB,GAAQ1S,QAAO,SAAUima,EAAet3Y,EAAOxD,GACnE,IAAI2D,EAAS,GAAeH,EAAO,GAC/B63Y,EAAY13Y,EAAO,GACnB23Y,EAAc33Y,EAAO,GAErB43Y,EAAe,GAAGv9a,OAAO7G,mBAAmBkkb,GAAY,KAAKr9a,OAAO7G,mBAAmBmkb,IACvFE,EAAoC,IAAjBx7Y,EAAqBu7Y,EAAe,GAAGv9a,OAAO88a,EAAe,KAAK98a,OAAOu9a,GAEhG,OAAIC,EAAiBv9a,OAhJO,MAiJ1B,IAAe,QAAY,mBAAmBD,OAAOq9a,EAAW,eAAer9a,OAAOs9a,EAAa,6DAC5FR,GAEAU,IAER,IAnFIC,CAXiBp6a,OAAOg5C,QAAQ8gY,GAAwBtma,QAAO,SAAU4sM,EAAKpxM,GACnF,IAAI1B,EAAQ,GAAe0B,EAAO,GAC9Bqra,EAAS/sa,EAAM,GACfgta,EAAWhta,EAAM,GAMrB,OAJIgta,IACFl6N,EAAI,GAAGzjN,OAAO28a,IAA2B38a,OAAO09a,IAAWC,GAGtDl6N,IACN,KAsCL,SAASw5N,GAAsBH,GAC7B,OAAOA,EAAcj0a,MAAM,KAAKiQ,KAAI,SAAUyka,GAC5C,OAAOA,EAAa10a,MAAM,KAAKiQ,KAAI,SAAU8ka,GAC3C,OAAOh3a,mBAAmBg3a,EAAW/4a,cAEtCgS,QAAO,SAAU4sM,EAAKxyM,GACvB,IAAIo0B,EAAQ,GAAep0B,EAAO,GAC9BvV,EAAM2pC,EAAM,GACZ7mC,EAAQ6mC,EAAM,GAMlB,OAJI3pC,GAAO8C,IACTilN,EAAI/nN,GAAO8C,GAGNilN,IACN,ICvIL,SAASo6N,GAAkBC,GACzB,GAAkC,kBAAvBC,qBAAqCA,mBAC9C,OAAO,EAGT,IAAIrgY,EAAS,KACT/8C,EAAUm9a,GAAgBpgY,GAAUA,EAAO3tB,aAE/C,QAASpvB,IAAYA,EAAQq9a,eAAiB,qBAAsBr9a,GAAW,kBAAmBA,GCbpG,IAAIs9a,GAAqB,IAAIt3a,OAAO,6DA4CpC,SAASu3a,GAA8BC,EAAaC,GAClD,IAAIC,EAhCN,SAAgCC,GAC9B,GAAKA,EAAL,CAIA,IAMIC,EANArjZ,EAAUojZ,EAAY53a,MAAMu3a,IAEhC,GAAK/iZ,EAYL,MANmB,MAAfA,EAAQ,GACVqjZ,GAAgB,EACQ,MAAfrjZ,EAAQ,KACjBqjZ,GAAgB,GAGX,CACLjM,QAASp3Y,EAAQ,GACjBqjZ,cAAeA,EACfC,aAActjZ,EAAQ,KAUFujZ,CAAuBN,GACzChB,EAAyBN,GAAsCuB,GAE/Dlua,EAAOmua,GAAmB,GAC1B/L,EAAUpia,EAAKoia,QACfkM,EAAetua,EAAKsua,aACpBD,EAAgBrua,EAAKqua,cAEzB,OAAKF,EAMI,CACL/L,QAASA,GAAW,KACpBkM,aAAcA,GAAgB,KAAQxzZ,UAAU,IAChDunZ,OAAQ,KAAQvnZ,UAAU,IAC1B0zZ,QAASH,EACTI,IAAKxB,GAA0B,IAV1B,CACL7K,QAASA,GAAW,KACpBC,OAAQ,KAAQvnZ,UAAU,KAkBhC,SAAS4zZ,KACP,IAAItM,EAAUxza,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,KAC9Eyza,EAASzza,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,KAAQksB,UAAU,IAC/F0zZ,EAAU5/a,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAChDujb,EAAgB,GAMpB,YAJgBvjb,IAAZojb,IACFG,EAAgBH,EAAU,KAAO,MAG5B,GAAG1+a,OAAOsya,EAAS,KAAKtya,OAAOuya,GAAQvya,OAAO6+a,GCrFvD,SAAS,GAAe51a,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAIzI,SAAS,GAA4BmiB,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAiBhL,SAASuyZ,GAA4Bh/G,GACnC,IAAIi/G,EAAUj/G,EAAuB,eAErC,GAAKi/G,EAAL,CAIA,IAGInjZ,EAHAmK,EAAS,GAETlK,EAlCN,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,IAA4D,CAAMy+G,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAW8xN,GAAO,MAAMA,GAAQjnM,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAWiyN,GAAOD,GAAS,EAAMnrM,EAAMorM,GAAQpnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAkCz8B,CAA2BozZ,GAG3C,IACE,IAAKljZ,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAEIla,EAAQ,GAFAoqB,EAAMp9B,MAEgB,GAE9Bwgb,EAAS,GAAexta,EAAM,GAAI,GAElCyta,EAAYD,EAAO,GACnBE,EAAUF,EAAO,IACXj5Y,EAAOk5Y,KAAel5Y,EAAOk5Y,GAAa,KAChDr/a,KAAK+wa,GAAkBuO,KAE7B,MAAOvzZ,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,OAAOoW,GC7CT,SAASo5Y,GAA0BC,GACjC,GAAIA,EAAa,KAAOA,GAAc,IACpC,MAAO,CACLh+a,KAbe,GAiBnB,GAAIg+a,GAAc,KAAOA,EAAa,IACpC,OAAQA,GACN,KAAK,IACH,MAAO,CACLh+a,KApBc,EAqBdxD,QAAS,mBAGb,KAAK,IACH,MAAO,CACLwD,KA1Bc,EA2BdxD,QAAS,qBAGb,KAAK,IACH,MAAO,CACLwD,KAhCc,EAiCdxD,QAAS,aAGb,KAAK,IACH,MAAO,CACLwD,KAtCc,EAuCdxD,QAAS,kBAGb,KAAK,IACH,MAAO,CACLwD,KA5Cc,EA6CdxD,QAAS,uBAGb,KAAK,IACH,MAAO,CACLwD,KAlDc,EAmDdxD,QAAS,sBAGb,KAAK,IACH,MAAO,CACLwD,KAxDc,EAyDdxD,QAAS,aAGb,QACE,MAAO,CACLwD,KA9Dc,EA+DdxD,QAAS,oBAKjB,GAAIwhb,GAAc,KAAOA,EAAa,IACpC,OAAQA,GACN,KAAK,IACH,MAAO,CACLh+a,KAxEc,EAyEdxD,QAAS,iBAGb,KAAK,IACH,MAAO,CACLwD,KA9Ec,EA+EdxD,QAAS,eAGb,KAAK,IACH,MAAO,CACLwD,KApFc,EAqFdxD,QAAS,qBAGb,QACE,MAAO,CACLwD,KA1Fc,EA2FdxD,QAAS,kBAKjB,MAAO,CACLwD,KAjGoB,EAkGpBxD,QAAS,iBASb,SAASyhb,GAAcv/G,EAAMs/G,GAC3Bt/G,EAAKh4T,aAAa,4BAA6Bs3a,GAC/C,IAAIE,EAAaH,GAA0BC,GAEhB,kBAAvBE,EAAW1hb,SACbkiU,EAAKx8R,UAAUg8Y,GC9GnB,SAAS,GAAkBr2a,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EA8ChL,SAASgzZ,GAAmBz/G,GAC1B,IAAI0/G,EAAqB1/G,EAAK2/G,cAC1BC,EAAUF,EAAmBjN,OAC7BoN,EAAWH,EAAmBlN,QAKlC,OAAO3B,GAAkB,CACvBiP,eAJiBC,GAAW//G,GACI8/G,eAIhCF,QAASA,EACTC,SAAUA,IAQd,SAASG,GAAkBhgH,GACzB,IAAIigH,EAAqBjgH,EAAK2/G,cAK9B,OAAOb,GAJOmB,EAAmBzN,QACpByN,EAAmBxN,OAElByN,GAAclgH,IAQ9B,SAASmgH,GAAuBhoY,GAC9B,MAAqB,iBAAVA,EACFioY,GAAyBjoY,GAG9Bn4C,MAAMiD,QAAQk1C,GAETA,EAAM,GAAKA,EAAM,GAAK,IAG3BA,aAAiB1xC,KACZ25a,GAAyBjoY,EAAMqa,WAGjC,KAOT,SAAS4tX,GAAyBt6Z,GAEhC,OADWA,EAAY,WACTA,EAAY,IAAOA,EAUnC,SAASi6Z,GAAW//G,GAClB,GAuDF,SAA0BA,GACxB,MAAmC,mBAArBA,EAAKqgH,YAxDfC,CAAiBtgH,GACnB,OAAOA,EAAKqgH,cAGd,IACE,IAAIE,EAAqBvgH,EAAK2/G,cAC1BC,EAAUW,EAAmB9N,OAC7BoN,EAAWU,EAAmB/N,QAGlC,GAiCJ,SAA6CxyG,GAC3C,IAAIwgH,EAAWxgH,EACf,SAASwgH,EAASlka,YAAgBkka,EAASzlT,WAAeylT,EAASv+a,MAAUu+a,EAASjmT,SAAaimT,EAASxmb,QAnCtGymb,CAAoCzgH,GAAO,CAC7C,IAAI1jT,EAAa0jT,EAAK1jT,WAClBy+G,EAAYilM,EAAKjlM,UACjB94H,EAAO+9T,EAAK/9T,KACZs4H,EAAUylM,EAAKzlM,QACfmkT,EAAe1+G,EAAK0+G,aACpB1kb,EAASgmU,EAAKhmU,OAClB,OAAO62a,GAAkB,CACvB+O,QAASA,EACTC,SAAUA,EACVnnb,KAAM4jB,EACNpa,YAAaD,EACb69a,eAAgBpB,EAChBgC,gBAAiBP,GAAuBplT,GAExCj1G,UAAWq6Z,GAAuB5lT,SAAY/+H,EAC9CxB,OAAQ2mb,GAAiB3mb,GACzB4mb,GAAItka,EAAWiwZ,IACf1qY,OAAQvlB,EAAWkwZ,IACnBqU,iBAAkB7B,GAA4Bh/G,KAKlD,MAAO,CACL4/G,QAASA,EACTC,SAAUA,GAEZ,MAAO76a,GACP,MAAO,IA2BX,SAASk7a,GAAclgH,GAMrB,OA5KuB,IAyKEA,EAAK2/G,cACMmB,WAOtC,SAASH,GAAiB3mb,GACxB,GAAKA,GDlMiB,ICkMPA,EAAOsH,KAItB,ODrMmB,ICqMftH,EAAOsH,KACF,KAGFtH,EAAO8D,SAAW,gBAS3B,SAASijb,GAAmB/gH,EAAMghH,GAIhC5Q,GAAyB4Q,EATL,kBAQLhhH,EAAoB,iBAAKA,GAIpCA,EAAsB,kBACxBA,EAAsB,kBAAE39S,IAAI2+Z,GAE5B5Q,GAAyBpwG,EAhBL,oBAgB8B,IAAI92P,IAAI,CAAC83W,KAM/D,SAASC,GAAwBjhH,EAAMghH,GACjChhH,EAAsB,mBACxBA,EAAsB,kBAAE1mI,OAAO0nP,GAQnC,SAASE,GAAmBlhH,GAC1B,IAAImhH,EAAY,IAAIj4W,IA2BpB,OAzBA,SAASk4W,EAAgBphH,GAEvB,IAAImhH,EAAUr8W,IAAIk7P,IAEPkgH,GAAclgH,GAAO,CAC9BmhH,EAAU9+Z,IAAI29S,GACd,IAGIlkS,EADAC,EAxPV,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAE9K,SAAqCz+G,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAF1H,CAA4BnwM,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAwPn8B,CAFCm0S,EAAsB,kBAAIhgU,MAAM4sB,KAAKozS,EAAsB,mBAAK,IAKjF,IACE,IAAKjkS,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAE3Cw1Z,EADgBtlZ,EAAMp9B,OAGxB,MAAOmtB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,MAKhBuxZ,CAAgBphH,GACThgU,MAAM4sB,KAAKu0Z,GAOpB,SAASE,GAAYrhH,GACnB,OAAOA,EAAoB,iBAAKA,EAOlC,SAASshH,KACP,IACInJ,EAAMD,GADI,MAGd,OAAIC,EAAImJ,cACCnJ,EAAImJ,gBAGNtN,GAAiB,MAO1B,SAASuN,GAAgCC,EAAYC,EAAe/ib,EAAO0kG,EAAMgnI,EAAMs3M,GACrF,IAAI1hH,EAAOshH,KAEPthH,GF3ON,SAAmCA,EAAMwhH,EAAYC,EAAe/ib,EAAO0kG,EAAMgnI,EAAMs3M,GACrF,IACIzC,EADkBj/G,EAAuB,iBACXA,EAAuB,eAAI,IAAI/2P,KAC7Dk2W,EAAY,GAAGj/a,OAAOshb,EAAY,KAAKthb,OAAOuhb,EAAe,KAAKvhb,OAAOkjG,GACzEu+U,EAAa1C,EAAQz/Z,IAAIkia,GAE7B,GAAIC,EAAY,CACd,IACIvC,EADc,GAAeuC,EAAY,GACnB,GAE1B1C,EAAQ1/Z,IAAImia,EAAW,CAACvC,EAAW,CACjCvya,IAAKN,KAAKM,IAAIwya,EAAQxya,IAAKlO,GAC3By6B,IAAK7sB,KAAK6sB,IAAIimZ,EAAQjmZ,IAAKz6B,GAC3BokC,MAAOs8Y,EAAQt8Y,OAAS,EACxBgvD,IAAKstV,EAAQttV,KAAOpzF,EACpB0rO,KAAMg1M,EAAQh1M,aAGhB60M,EAAQ1/Z,IAAImia,EAAW,CAACvC,EAAW,CACjCvya,IAAKlO,EACLy6B,IAAKz6B,EACLokC,MAAO,EACPgvD,IAAKpzF,EACL0rO,KAAMA,KEqNRw3M,CAA0B5hH,EAAMwhH,EAAYC,EAAe/ib,EAAO0kG,EAAMgnI,EAAMs3M,GC3RlF,SAASG,GAAgB7hH,EAAM6+G,GAE7BzO,GADuBpwG,EANF,aAOwC6+G,GAS/D,SAASiD,GAAoCjC,EAAUjiY,GACrD,IAAI/8C,EAAU+8C,EAAO3tB,aAGjB8xZ,GADOnkY,EAAOokY,UAAY,IACRC,UAElBpD,EAAMhO,GAAkB,CAC1BiD,YAAajza,EAAQiza,aAAegF,GACpCj0Y,QAAShkC,EAAQgkC,QACjBk9Y,WAAYA,EACZlC,SAAUA,IAGZ,OADAjiY,EAAOi+F,KAAK,YAAagjS,GAClBA,EAWT,SAASqD,GAAkCliH,GACzC,IAAIpiR,EAAS,KAEb,IAAKA,EACH,MAAO,GAGT,IAAIihY,EAAMiD,GAAoC/B,GAAW//G,GAAM6/G,UAAY,GAAIjiY,GAC3EukY,EAAWd,GAAYrhH,GAEvBoiH,EAAYD,EAAyB,WAEzC,GAAIC,EACF,OAAOA,EAIT,IAAIC,EAAaF,EAASxC,cAAc0C,WACpCC,EAAgBD,GAAcA,EAAW7ia,IAAI,cAE7C+ia,EAAkBD,GAAiBvF,GAAsCuF,GAE7E,GAAIC,EACF,OAAOA,EAIT,IAAIC,EAAWzC,GAAWoC,GACtB7la,EAAakma,EAAS9pb,MAAQ,GAC9B+pb,EAAkBnma,EAAWgwZ,IAEV,MAAnBmW,IACF5D,EAAI6D,YAAc,GAAGxib,OAAOuib,IAI9B,IAAIjkb,EAAS8d,EAAW+vZ,IAEpBpqa,EAAOugb,EAAStgb,YAcpB,MAZe,QAAX1D,GAAoByD,IACtB48a,EAAI8D,YAAc1gb,GAMhB87a,OACFc,EAAID,QAAU9oX,OAAOoqX,GAAciC,KAGrCvkY,EAAOi+F,KAAK,YAAagjS,EAAKsD,GACvBtD,EAOT,SAAS+D,GAAoB5iH,GAE3B,OAAOs9G,GADG4E,GAAkCliH,IC/G9C,SAAS,GAAQv2S,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAmBgC,GAAO,OAQnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAItF,SAAqCmX,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ/M,CAA4BtnN,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAUlI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EA8BhL,SAASo2Z,GAAenqb,EAAM2nF,GAC5B,IAAI+hF,EAAQ/hF,EAAU+hF,MAClBgoE,EAAO/pJ,EAAU+pJ,KACjBr/C,EAAO1qG,EAAU0qG,KACjB18B,EAAWhuE,EAAUguE,SACrBnlI,EAAQm3D,EAAUn3D,MAClButZ,EAAwBp2V,EAAUo2V,sBAClCH,EAAcj2V,EAAUi2V,YACxBb,EAAcp1V,EAAUo1V,YACxBe,EAAkBn2V,EAAUm2V,gBAC5BD,EAAcl2V,EAAUk2V,YACxBN,EAAqB51V,EAAU41V,mBAC/BS,EAAkBr2V,EAAUq2V,gBAC5B12G,EAAO3/O,EAAU2/O,KACrB8iH,GAA2Bpqb,EAAM,QAAS0pK,GAC1C0gR,GAA2Bpqb,EAAM,OAAQ0xO,GACzC04M,GAA2Bpqb,EAAM,OAAQqyL,GACzC+3P,GAA2Bpqb,EAAM,WAAY21J,GAC7Cy0R,GAA2Bpqb,EAAM,wBAAyB+9a,GAEtDvtZ,IACFxwB,EAAKwwB,MAAQA,GAGXwtZ,IACFh+a,EAAKg+a,gBAAkBA,GAGrB12G,IACFtnU,EAAKsnU,KAAOA,GAGVs2G,EAAYn2a,SACdzH,EAAK49a,YAAc,GAAGp2a,OAAO,GAAmBxH,EAAK49a,aAAc,GAAmBA,KAGpFb,EAAYt1a,SACdzH,EAAK+8a,YAAc,GAAGv1a,OAAO,GAAmBxH,EAAK+8a,aAAc,GAAmBA,KAGpFe,EAAgBr2a,SAClBzH,EAAK89a,gBAAkB,GAAGt2a,OAAO,GAAmBxH,EAAK89a,iBAAkB,GAAmBA,KAG5FD,EAAYp2a,SACdzH,EAAK69a,YAAc,GAAGr2a,OAAO,GAAmBxH,EAAK69a,aAAc,GAAmBA,KAGxF79a,EAAKu9a,mBAAqB,GAAc,GAAc,GAAIv9a,EAAKu9a,oBAAqBA,GAQtF,SAAS6M,GAA2Bpqb,EAAM0K,EAAM2/a,GAC9C,GAAIA,GAAYx/a,OAAOC,KAAKu/a,GAAU5ib,OAIpC,IAAK,IAAIvE,KAFTlD,EAAK0K,GAAQ,GAAc,GAAI1K,EAAK0K,IAEpB2/a,EACVx/a,OAAOtG,UAAU0N,eAAejJ,KAAKqhb,EAAUnnb,KACjDlD,EAAK0K,GAAMxH,GAAOmnb,EAASnnb,IC7GnC,SAAS,GAAeuN,EAAK3D,GAAK,OAMlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EANtB,CAAgBA,IAIzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GAJzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAQzI,SAAS,GAAmBgL,GAAO,OAQnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAIlI,SAAS,GAA4BmiB,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAM7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,SAAS,GAAQhD,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EA8B3M,SAAS67a,GAAanib,EAAS8hB,EAAO8/H,EAAMxjG,EAAOrB,EAAQs5X,GACzD,IAAI+L,EAAwBpib,EAAQqib,eAChCA,OAA2C,IAA1BD,EAAmC,EAAIA,EACxDE,EAAwBtib,EAAQuib,oBAChCA,OAAgD,IAA1BD,EAAmC,IAAOA,EAEhEE,EAAW,GAAc,GAAc,GAAI1ga,GAAQ,GAAI,CACzDgvZ,SAAUhvZ,EAAMgvZ,UAAYlvR,EAAKkvR,UAAY,KAC7C7rZ,UAAWnD,EAAMmD,WAAa4sZ,OAG5B4Q,EAAe7gS,EAAK6gS,cAAgBzib,EAAQyib,aAAatqa,KAAI,SAAUxT,GACzE,OAAOA,EAAEvD,SAuEb,SAA4B0gB,EAAO9hB,GACjC,IAAIiza,EAAcjza,EAAQiza,YACtBjvY,EAAUhkC,EAAQgkC,QAClB8P,EAAO9zC,EAAQ8zC,KACf4uY,EAAwB1ib,EAAQ2ib,eAChCA,OAA2C,IAA1BD,EAAmC,IAAMA,EAExD,gBAAiB5ga,IACrBA,EAAMmxZ,YAAc,gBAAiBjza,EAAUiza,EAAcgF,SAGzCt9a,IAAlBmnB,EAAMkiB,cAAqCrpC,IAAZqpC,IACjCliB,EAAMkiB,QAAUA,QAGCrpC,IAAfmnB,EAAMgyB,WAA+Bn5C,IAATm5C,IAC9BhyB,EAAMgyB,KAAOA,GAGXhyB,EAAM7kB,UACR6kB,EAAM7kB,QAAUs1F,GAASzwE,EAAM7kB,QAAS0lb,IAG1C,IAAInuQ,EAAY1yJ,EAAM0yJ,WAAa1yJ,EAAM0yJ,UAAUlyG,QAAUxgD,EAAM0yJ,UAAUlyG,OAAO,GAEhFkyG,GAAaA,EAAU32K,QACzB22K,EAAU32K,MAAQ00F,GAASiiF,EAAU32K,MAAO8kb,IAG9C,IAAIzqb,EAAU4pB,EAAM5pB,QAEhBA,GAAWA,EAAQW,MACrBX,EAAQW,IAAM05F,GAASr6F,EAAQW,IAAK8pb,IArGtCC,CAAmBJ,EAAUxib,GA+N/B,SAAmC8hB,EAAO+ga,GACpCA,EAAiBvjb,OAAS,IAC5BwiB,EAAMgha,IAAMhha,EAAMgha,KAAO,GACzBhha,EAAMgha,IAAIL,aAAe,GAAGpjb,OAAO,GAAmByiB,EAAMgha,IAAIL,cAAgB,IAAK,GAAmBI,KAjO1GE,CAA0BP,EAAUC,GAEhC1lY,GACFA,EAAOi+F,KAAK,qBAAsBl5H,QAIjBnnB,IAAfmnB,EAAMtZ,MAsGZ,SAAuBsZ,EAAOk3Z,GAC5B,IAMIgK,EANAC,EAAaxW,GAAWyW,gBAE5B,GAAKD,EAAL,CAKA,IAAIE,EAA+BC,GAAwBzka,IAAIq6Z,GAE3DmK,EACFH,EAA0BG,GAE1BH,EAA0B,IAAI56W,IAC9Bg7W,GAAwB1ka,IAAIs6Z,EAAagK,IAI3C,IAAIK,EAAqB3gb,OAAOg5C,QAAQunY,GAAY/sa,QAAO,SAAU4sM,EAAKvzM,GACxE,IAII+za,EAJAzya,EAAQ,GAAetB,EAAM,GAC7Bg0a,EAAoB1ya,EAAM,GAC1B2ya,EAAe3ya,EAAM,GAGrB4ya,EAAoBT,EAAwBrka,IAAI4ka,GAEhDE,EACFH,EAAcG,GAEdH,EAActK,EAAYuK,GAC1BP,EAAwBtka,IAAI6ka,EAAmBD,IAGjD,IAAK,IAAI3+a,EAAI2+a,EAAYhkb,OAAS,EAAGqF,GAAK,EAAGA,IAAK,CAEhD,IAAI++a,EAAaJ,EAAY3+a,GAE7B,GAAI++a,EAAW5ra,SAAU,CACvBgrM,EAAI4gO,EAAW5ra,UAAY0ra,EAC3B,OAIJ,OAAO1gO,IACN,IAEH,IAEEhhM,EAAM0yJ,UAAUlyG,OAAOznE,SAAQ,SAAU25K,GAEvCA,EAAU+kQ,WAAWnlX,OAAOv5D,SAAQ,SAAUu1R,GACxCA,EAAMt4Q,WACRs4Q,EAAMuzJ,SAAWN,EAAmBjzJ,EAAMt4Q,iBAIhD,MAAO3T,MA7JPy/a,CAAcpB,EAAUxib,EAAQg5a,aAKlC,IAAI6K,EAiRN,SAAuBzlY,EAAOy2X,GAC5B,IAAKA,EACH,OAAOz2X,EAGT,IAAIylY,EAAazlY,EAAQA,EAAMujC,QAAU,IAAIozV,GAE7C,OADA8O,EAAWx2V,OAAOwnV,GACXgP,EAxRUC,CAAc1lY,EAAOwjG,EAAKizR,gBAEvCjzR,EAAKwvR,WACPH,GAAsBuR,EAAU5gS,EAAKwvR,WAGvC,IAAI2S,EAAwBhnY,EAASA,EAAOinY,qBAAuB,GAI/Dnsb,EAAO6/a,KAAiB1C,eAExBqB,GAEF2L,GAAenqb,EADKw+a,EAAerB,gBAIjC6O,GAEF7B,GAAenqb,EADMgsb,EAAW7O,gBAIlC,IAAIU,EAAc,GAAGr2a,OAAO,GAAmBuiJ,EAAK8zR,aAAe,IAAK,GAAmB79a,EAAK69a,cAShG,OAPIA,EAAYp2a,SACdsiJ,EAAK8zR,YAAcA,GDlFvB,SAA+B5zZ,EAAOjqB,GACpC,IAAI+8a,EAAc/8a,EAAK+8a,YACnBz1G,EAAOtnU,EAAKsnU,KACZs2G,EAAc59a,EAAK49a,YACnBG,EAAwB/9a,EAAK+9a,uBAsFnC,SAA0B9zZ,EAAOjqB,GAC/B,IAAI0pK,EAAQ1pK,EAAK0pK,MACbgoE,EAAO1xO,EAAK0xO,KACZr/C,EAAOryL,EAAKqyL,KACZ18B,EAAW31J,EAAK21J,SAChBnlI,EAAQxwB,EAAKwwB,MACbwtZ,EAAkBh+a,EAAKg+a,gBACvBoO,EAAejU,GAAkBzuQ,GAEjC0iR,GAAgBvhb,OAAOC,KAAKshb,GAAc3kb,SAC5CwiB,EAAMy/I,MAAQ,GAAc,GAAc,GAAI0iR,GAAenia,EAAMy/I,QAGrE,IAAI2iR,EAAclU,GAAkBzmM,GAEhC26M,GAAexhb,OAAOC,KAAKuhb,GAAa5kb,SAC1CwiB,EAAMynN,KAAO,GAAc,GAAc,GAAI26M,GAAcpia,EAAMynN,OAGnE,IAAI46M,EAAcnU,GAAkB9lP,GAEhCi6P,GAAezhb,OAAOC,KAAKwhb,GAAa7kb,SAC1CwiB,EAAMooK,KAAO,GAAc,GAAc,GAAIi6P,GAAcria,EAAMooK,OAGnE,IAAIk6P,EAAkBpU,GAAkBxiR,GAEpC42R,GAAmB1hb,OAAOC,KAAKyhb,GAAiB9kb,SAClDwiB,EAAM0rI,SAAW,GAAc,GAAc,GAAI42R,GAAkBtia,EAAM0rI,WAGvEnlI,IACFvG,EAAMuG,MAAQA,GAIZwtZ,GAAkC,gBAAf/zZ,EAAMtZ,OAC3BsZ,EAAMgga,YAAcjM,GAzHtBwO,CAAiBvia,EAAOjqB,GAIpBsnU,GAkIN,SAA0Br9S,EAAOq9S,GAC/Br9S,EAAM0rI,SAAW,GAAc,CAC7B82R,MAAO1F,GAAmBz/G,IACzBr9S,EAAM0rI,UACT1rI,EAAM8zZ,sBAAwB,GAAc,CAC1C4G,uBAAwB6E,GAAkCliH,IACzDr9S,EAAM8zZ,uBACT,IACIC,EAAkBqJ,GADPsB,GAAYrhH,IACgB99T,YAEvCw0a,IAAoB/zZ,EAAMgga,aAA8B,gBAAfhga,EAAMtZ,OACjDsZ,EAAMgga,YAAcjM,GA5IpB0O,CAAiBzia,EAAOq9S,GAqJ5B,SAAiCr9S,EAAO8yZ,GAEtC9yZ,EAAM8yZ,YAAc9yZ,EAAM8yZ,YAAcpD,GAAS1vZ,EAAM8yZ,aAAe,GAElEA,IACF9yZ,EAAM8yZ,YAAc9yZ,EAAM8yZ,YAAYv1a,OAAOu1a,IAI3C9yZ,EAAM8yZ,cAAgB9yZ,EAAM8yZ,YAAYt1a,eACnCwiB,EAAM8yZ,YA5Jf4P,CAAwB1ia,EAAO8yZ,GAqHjC,SAAiC9yZ,EAAO2zZ,GACtC,IAAIgP,EAAoB,GAAGplb,OAAO,GAAmByiB,EAAM2zZ,aAAe,IAAK,GAAmBA,IAClG3zZ,EAAM2zZ,YAAcgP,EAAkBnlb,OAASmlb,OAAoB9pb,EAtHnE+pb,CAAwB5ia,EAAO2zZ,GAyHjC,SAAiC3zZ,EAAO8zZ,GACtC9zZ,EAAM8zZ,sBAAwB,GAAc,GAAc,GAAI9zZ,EAAM8zZ,uBAAwBA,GAzH5F+O,CAAwB7ia,EAAO8zZ,GCqE/BgP,CAAsBpC,EAAU3qb,GAEnB+jb,GADS,GAAGv8a,OAAO,GAAmB0kb,GAAwB,GAAmBlsb,EAAK89a,kBAC/C6M,EAAU5gS,GAChDnmJ,MAAK,SAAU0yK,GAS3B,OARIA,GAgIR,SAAwBrsJ,GAEtB,IAAIuha,EAAqB,GAEzB,IAEEvha,EAAM0yJ,UAAUlyG,OAAOznE,SAAQ,SAAU25K,GAEvCA,EAAU+kQ,WAAWnlX,OAAOv5D,SAAQ,SAAUu1R,GACxCA,EAAMuzJ,WACJvzJ,EAAMy0J,SACRxB,EAAmBjzJ,EAAMy0J,UAAYz0J,EAAMuzJ,SAClCvzJ,EAAMt4Q,WACfura,EAAmBjzJ,EAAMt4Q,UAAYs4Q,EAAMuzJ,iBAGtCvzJ,EAAMuzJ,gBAInB,MAAOx/a,IAGT,GAA+C,IAA3CzB,OAAOC,KAAK0gb,GAAoB/jb,OAApC,CAKAwiB,EAAMgja,WAAahja,EAAMgja,YAAc,GACvChja,EAAMgja,WAAWlrY,OAAS93B,EAAMgja,WAAWlrY,QAAU,GACrD,IAAIA,EAAS93B,EAAMgja,WAAWlrY,OAC9Bl3C,OAAOg5C,QAAQ2nY,GAAoBxob,SAAQ,SAAU6W,GACnD,IAAI1B,EAAQ,GAAe0B,EAAO,GAC9BoG,EAAW9H,EAAM,GACjB2za,EAAW3za,EAAM,GAErB4pC,EAAO36C,KAAK,CACVuJ,KAAM,YACNu8a,UAAWjta,EACX6ra,SAAUA,QAlKVqB,CAAe72Q,GAGa,iBAAnBk0Q,GAA+BA,EAAiB,EA2L/D,SAAwBvga,EAAOkuD,EAAOi1W,GACpC,IAAKnja,EACH,OAAO,KAGT,IAAI21E,EAAa,GAAc,GAAc,GAAc,GAAc,GAAc,GAAI31E,GAAQA,EAAM2zZ,aAAe,CACtHA,YAAa3zZ,EAAM2zZ,YAAYt9Z,KAAI,SAAU5N,GAC3C,OAAO,GAAc,GAAc,GAAIA,GAAIA,EAAE1S,MAAQ,CACnDA,KAAM,GAAU0S,EAAE1S,KAAMm4E,EAAOi1W,UAGjCnja,EAAMooK,MAAQ,CAChBA,KAAM,GAAUpoK,EAAMooK,KAAMl6G,EAAOi1W,KACjCnja,EAAM0rI,UAAY,CACpBA,SAAU,GAAU1rI,EAAM0rI,SAAUx9E,EAAOi1W,KACzCnja,EAAMy/I,OAAS,CACjBA,MAAO,GAAUz/I,EAAMy/I,MAAOvxF,EAAOi1W,KA2BvC,OAjBInja,EAAM0rI,UAAY1rI,EAAM0rI,SAAS82R,OAAS7sV,EAAW+1D,WACvD/1D,EAAW+1D,SAAS82R,MAAQxia,EAAM0rI,SAAS82R,MAEvCxia,EAAM0rI,SAAS82R,MAAMzsb,OACvB4/F,EAAW+1D,SAAS82R,MAAMzsb,KAAO,GAAUiqB,EAAM0rI,SAAS82R,MAAMzsb,KAAMm4E,EAAOi1W,KAK7Enja,EAAMoja,QACRztV,EAAWytV,MAAQpja,EAAMoja,MAAM/sa,KAAI,SAAUgnT,GAC3C,OAAO,GAAc,GAAc,GAAIA,GAAOA,EAAKtnU,MAAQ,CACzDA,KAAM,GAAUsnU,EAAKtnU,KAAMm4E,EAAOi1W,SAKjCxtV,EArOI,CAAe02E,EAAKk0Q,EAAgBE,GAGtCp0Q,KA+CX,IAAIi1Q,GAA0B,IAAI96W,QA8NlC,IAAI68W,GAAqB,CAAC,OAAQ,QAAS,QAAS,WAAY,OAAQ,cAAe,iBAAkB,sBCzYzG,SAAS,GAAQv8Z,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAmBmkB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQp6N,EAAK8vB,GAAO,IAAM,IAAI+P,EAAOnQ,EAAI1vB,GAAK8vB,GAAUhtB,EAAQ+8B,EAAK/8B,MAAS,MAAO8B,GAAwB,YAAfhI,EAAOgI,GAAsBi7B,EAAK7P,KAAQrzB,EAAQmG,GAAiBpG,QAAQC,QAAQmG,GAAOpC,KAAKy5N,EAAOC,GAE7P,SAAS,GAAkBh1N,GAAM,OAAO,WAAc,IAAI8K,EAAO/N,KAAMwH,EAAOvG,UAAW,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAAU,IAAI8yB,EAAMtqB,EAAGf,MAAM6L,EAAMvG,GAAO,SAASwwN,EAAMr3N,GAAS,GAAmB4sB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,OAAQt3N,GAAU,SAASs3N,EAAOnqM,GAAO,GAAmBP,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,QAASnqM,GAAQkqM,OAAMv6N,OAgBjX,SAASo7a,GACTvhQ,EAAW5yB,GACT,OAAO,KAAkBm0R,iBAAiBvhQ,EDsV5C,SAAwC5yB,GACtC,GAAKA,EAKL,OAeF,SAA+BA,GAC7B,OAAOA,aAAgBmzR,IAAyB,mBAATnzR,EAhBnCwjS,CAAsBxjS,IAqB5B,SAA4BA,GAC1B,OAAOl/I,OAAOC,KAAKi/I,GAAMtqI,MAAK,SAAUvc,GACtC,OAAOoqb,GAAmB5pa,SAASxgB,MAjBjCsqb,CAAmBzjS,GALd,CACLizR,eAAgBjzR,GAUbA,ECxW8C0jS,CAA+B1jS,IAWtF,SAASq0R,GAAeh5a,EAAS43a,GAG/B,IAAIxsZ,EAAkC,iBAAnBwsZ,EAA8BA,OAAiBl6a,EAC9DuB,EAAoC,iBAAnB24a,EAA8B,CACjDA,eAAgBA,QACdl6a,EACJ,OAAO,KAAkBs7a,eAAeh5a,EAASorB,EAAOnsB,GAW1D,SAASg6a,GAAap0Z,EAAO8/H,GAC3B,OAAO,KAAkBs0R,aAAap0Z,EAAO8/H,GAU/C,SAAS,GAAWxgJ,EAAMlF,GACxBk7a,KAAoB1wP,WAAWtlL,EAAMlF,GAQvC,SAASqpb,GAAU5Q,GACjByC,KAAoBmO,UAAU5Q,GAShC,SAAS6Q,GAASzqb,EAAKwmK,GACrB61Q,KAAoBoO,SAASzqb,EAAKwmK,GAQpC,SAASkkR,GAAQl8M,GACf6tM,KAAoBqO,QAAQl8M,GAY9B,SAAS3uK,GAAO7/D,EAAK8C,GACnBu5a,KAAoBx8W,OAAO7/D,EAAK8C,GASlC,SAAS6nb,GAAQx7P,GACfktP,KAAoBsO,QAAQx7P,GAe9B,SAASsqP,KACP,OAAO4C,KAAoB5C,cAoF7B,SAAS,GAAMh5M,GACb,OAAOmqN,GAAOvmb,MAAMlC,KAAMiB,WAY5B,SAASwnb,KA2BP,OA1BAA,GAAS,GAAgC,SAAyB,SAASpsN,EAAQ7/N,GACjF,IAAIqjD,EACJ,OAAO,SAAyB,SAAkBwuG,GAChD,OACE,OAAQA,EAASj9G,KAAOi9G,EAAStgI,MAC/B,KAAK,EAGH,KAFA8xB,EAAS,MAEI,CACXwuG,EAAStgI,KAAO,EAChB,MAGF,OAAOsgI,EAAS6mB,OAAO,SAAUr1H,EAAOkoC,MAAMvrF,IAEhD,KAAK,EAEH,OADA,IAAe,QAAY,2CACpB6xJ,EAAS6mB,OAAO,SAAU36K,QAAQC,SAAQ,IAEnD,KAAK,EACL,IAAK,MACH,OAAO6zJ,EAAS79I,UAGrB6rN,OAEEosN,GAAOvmb,MAAMlC,KAAMiB,WAG5B,SAAS,GAAMq6O,GACb,OAAOotM,GAAOxmb,MAAMlC,KAAMiB,WAO5B,SAASynb,KA2BP,OA1BAA,GAAS,GAAgC,SAAyB,SAAS5qN,EAASthO,GAClF,IAAIqjD,EACJ,OAAO,SAAyB,SAAmBk+K,GACjD,OACE,OAAQA,EAAU3sL,KAAO2sL,EAAUhwM,MACjC,KAAK,EAGH,KAFA8xB,EAAS,MAEI,CACXk+K,EAAUhwM,KAAO,EACjB,MAGF,OAAOgwM,EAAU7oD,OAAO,SAAUr1H,EAAO4nE,MAAMjrH,IAEjD,KAAK,EAEH,OADA,IAAe,QAAY,2DACpBuhO,EAAU7oD,OAAO,SAAU36K,QAAQC,SAAQ,IAEpD,KAAK,EACL,IAAK,MACH,OAAOujO,EAAUvtN,UAGtBstN,OAEE4qN,GAAOxmb,MAAMlC,KAAMiB,WAG5B,SAAS0nb,KACP,QAAS,KAgBX,SAASC,GAAkBz9a,GACzB+ua,KAAoB0O,kBAAkBz9a,GAWxC,SAAS09a,GAAa7pb,GACpB,IAAI6gD,EAAS,KACTs5X,EAAiBe,KACjB4O,EAAe,KAEfz2a,EAAOwtC,GAAUA,EAAO3tB,cAAgB,GACxC4U,EAAUz0B,EAAKy0B,QACfiiZ,EAAmB12a,EAAK0ja,YACxBA,OAAmC,IAArBgT,EAA8BhO,GAAsBgO,EAIlEn/a,GADQ2la,GAAW5la,WAAa,IACdC,UAElB4ra,EzB9UN,SAAqBx2a,GAEnB,IAAIgqb,EAAe,KACfxT,EAAU,CACZM,IAAK,KACLhrT,MAAM,EACN/iG,UAAWiha,EACXp0T,QAASo0T,EACT70a,SAAU,EACVlY,OAAQ,KACRyoN,OAAQ,EACRmxN,gBAAgB,EAChB5xa,OAAQ,WACN,OAwIN,SAAuBuxa,GACrB,OAAO1C,GAAkB,CACvBgD,IAAK,GAAG3za,OAAOqza,EAAQM,KACvBhrT,KAAM0qT,EAAQ1qT,KAEd8J,QAAS,IAAIlsH,KAAuB,IAAlB8sa,EAAQ5gT,SAAgB7sH,cAC1CggB,UAAW,IAAIrf,KAAyB,IAApB8sa,EAAQztZ,WAAkBhgB,cAC9C9L,OAAQu5a,EAAQv5a,OAChByoN,OAAQ8wN,EAAQ9wN,OAChBixN,IAA4B,iBAAhBH,EAAQG,KAA2C,iBAAhBH,EAAQG,IAAmB,GAAGxza,OAAOqza,EAAQG,UAAOl4a,EACnG0W,SAAUqha,EAAQrha,SAClByha,mBAAoBJ,EAAQI,mBAC5Bx1S,MAAO,CACLt5F,QAAS0uY,EAAQ1uY,QACjBivY,YAAaP,EAAQO,YACrBL,WAAYF,EAAQC,UACpBwT,WAAYzT,EAAQ5ra,aAxJbs/a,CAAc1T,KAQzB,OAJIx2a,GACFu2a,GAAcC,EAASx2a,GAGlBw2a,EyByTO2T,CAAY,GAAc,GAAc,CACpDriZ,QAASA,EACTivY,YAAaA,EACb/oP,KAAM87P,EAAaM,WAAajQ,EAAeiQ,WAC9Cx/a,GAAa,CACdA,UAAWA,IACT5K,IAEAqqb,EAAiBlQ,EAAemQ,aAcpC,OAZID,GAA4C,OAA1BA,EAAeptb,QACnCs5a,GAAc8T,EAAgB,CAC5Bptb,OAAQ,WAIZstb,KAEApQ,EAAeqQ,WAAWhU,GAG1BsT,EAAaU,WAAWhU,GACjBA,EAOT,SAAS+T,KACP,IAAIpQ,EAAiBe,KACjB4O,EAAe,KACftT,EAAUsT,EAAaQ,cAAgBnQ,EAAemQ,aAEtD9T,GzBrPN,SAAsBA,EAASv5a,GAC7B,IAAI+C,EAAU,GAMgB,OAAnBw2a,EAAQv5a,SACjB+C,EAAU,CACR/C,OAAQ,WAIZs5a,GAAcC,EAASx2a,GyByOrByqb,CAAajU,GAGfkU,KAGAvQ,EAAeqQ,aAGfV,EAAaU,aAOf,SAASE,KACP,IAAIvQ,EAAiBe,KACjB4O,EAAe,KACfjpY,EAAS,KAGT21X,EAAUsT,EAAaQ,cAAgBnQ,EAAemQ,aAEtD9T,GAAW31X,GACbA,EAAO8pY,eAAenU,GAW1B,SAASmU,KACP,IAAIl9Y,EAAMxrC,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAGrEwrC,EACF88Y,KAKFG,KC/ZF,SAAS,GAAmBt+a,GAAO,OAQnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAIlI,SAAS,GAA4BmiB,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAM7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAKhL,IAAIk7Z,GAAwB,GA4B5B,SAASC,GAAuB/mb,GAC9B,IAAIgnb,EAAsBhnb,EAAQgnb,qBAAuB,GACrDC,EAAmBjnb,EAAQyib,aAE/BuE,EAAoBnsb,SAAQ,SAAUqsb,GACpCA,EAAYC,mBAAoB,KAYlC,IAnCwB1E,EACpB2E,EAkCAC,GAnCoB5E,EA2BpBtjb,MAAMiD,QAAQ6kb,GACD,GAAG5nb,OAAO,GAAmB2nb,GAAsB,GAAmBC,IAChD,mBAArBA,EACDzV,GAASyV,EAAiBD,IAE1BA,EA/BbI,EAAqB,GACzB3E,EAAa5nb,SAAQ,SAAUo3H,GAC7B,IAAI7wH,EAAO6wH,EAAgB7wH,KACvBkmb,EAAmBF,EAAmBhmb,GAGtCkmb,IAAqBA,EAAiBH,mBAAqBl1T,EAAgBk1T,oBAI/EC,EAAmBhmb,GAAQ6wH,MAEtBvvH,OAAO4/D,OAAO8kX,IA2BjBG,EAAaF,EAAkBxla,WAAU,SAAUqla,GACrD,MAA4B,UAArBA,EAAY9lb,QAGrB,GAAImmb,GAAc,EAAG,CACnB,IAEIC,EAhFR,SAAwBl/a,EAAK3D,GAAK,OAMlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EANtB,CAAgBA,IAIzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GAJzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GA+ExG,CADD+pb,EAAkBrra,OAAOura,EAAY,GACE,GACxB,GAE3CF,EAAkBpob,KAAKuob,GAGzB,OAAOH,EAyBT,SAASI,GAAuB1qY,EAAQ0lY,GACtC,IACIxnZ,EADAC,EAjHN,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,IAA4D,CAAMy+G,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAW8xN,GAAO,MAAMA,GAAQjnM,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAWiyN,GAAOD,GAAS,EAAMnrM,EAAMorM,GAAQpnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAiHz8B,CAA2By3Z,GAG3C,IACE,IAAKvnZ,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIm8Z,EAAcjsZ,EAAMp9B,MAGpBqpb,GAAeA,EAAYQ,eAC7BR,EAAYQ,cAAc3qY,IAG9B,MAAO/xB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,KAMd,SAAS24Z,GAAiB5qY,EAAQmqY,EAAaU,GAC7C,GAAIA,EAAiBV,EAAY9lb,MAC/B,IAAe,GAAAq6H,IAAW,yDAAyDp8H,OAAO6nb,EAAY9lb,WADxG,CAiBA,GAZAwmb,EAAiBV,EAAY9lb,MAAQ8lb,GAEoB,IAArDJ,GAAsBhtb,QAAQotb,EAAY9lb,OAAiD,mBAA1B8lb,EAAYW,YAC/EX,EAAYW,YACZf,GAAsB7nb,KAAKiob,EAAY9lb,OAIrC8lb,EAAY1tR,OAAsC,mBAAtB0tR,EAAY1tR,OAC1C0tR,EAAY1tR,MAAMz8G,GAGuB,mBAAhCmqY,EAAYY,gBAAgC,CACrD,IAAIz/a,EAAW6+a,EAAYY,gBAAgBjsb,KAAKqrb,GAChDnqY,EAAOp7B,GAAG,mBAAmB,SAAUG,EAAO8/H,GAC5C,OAAOv5I,EAASyZ,EAAO8/H,EAAM7kG,MAIjC,GAAwC,mBAA7BmqY,EAAYa,aAA6B,CAClD,IAAIC,EAAYd,EAAYa,aAAalsb,KAAKqrb,GAE1C/jZ,EAAYzgC,OAAO0V,QAAO,SAAU0J,EAAO8/H,GAC7C,OAAOomS,EAAUlma,EAAO8/H,EAAM7kG,KAC7B,CACD78C,GAAIgnb,EAAY9lb,OAElB27C,EAAO+oY,kBAAkB3iZ,GAG3B,IAAe,GAAAs4F,IAAW,0BAA0Bp8H,OAAO6nb,EAAY9lb,QAKzE,SAAS6mb,GAAef,GACtB,IAAInqY,EAAS,KAERA,EAKLA,EAAOkrY,eAAef,GAJpB,IAAe,QAAY,2BAA4B7nb,OAAO6nb,EAAY9lb,KAAM,0CC/KpF,SAAS,GAAkBkH,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAMhL,IAAI9rB,GAAW,GACXoob,GAAe,GAGnB,SAAS,GAAW1/a,EAAMs7B,GACxBhkC,GAAS0I,GAAQ1I,GAAS0I,IAAS,GACnC1I,GAAS0I,GAAMvJ,KAAK6kC,GAgBtB,SAASqkZ,GAAgB3/a,EAAM4/a,GAC7B,IAAKF,GAAa1/a,GAAO,CACvB0/a,GAAa1/a,IAAQ,EAErB,IACE4/a,IACA,MAAOjkb,GACP,IAAe,SAAa,6BAA6B9E,OAAOmJ,GAAOrE,KAO7E,SAASkkb,GAAgB7/a,EAAM3Q,GAC7B,IAAIywb,EAAe9/a,GAAQ1I,GAAS0I,GAEpC,GAAK8/a,EAAL,CAIA,IACIrtZ,EADAC,EArDN,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAE9K,SAAqCz+G,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAF1H,CAA4BnwM,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAqDv8B,CAA2Bs9Z,GAG3C,IACE,IAAKptZ,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAI+Y,EAAU7I,EAAMp9B,MAEpB,IACEimC,EAAQjsC,GACR,MAAOsM,GACP,IAAe,SAAa,0DAA0D9E,OAAOmJ,EAAM,YAAYnJ,OAAOg6a,GAAgBv1Y,GAAU,YAAa3/B,KAGjK,MAAO6mB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,MCnEd,IAAIu5Z,GAAqB,KAQzB,SAASC,GAAqC1kZ,GAC5C,IAAIt7B,EAAO,QACX,GAAWA,EAAMs7B,GACjBqkZ,GAAgB3/a,EAAMigb,IAGxB,SAASA,KACPF,GAAqB9b,GAAWxya,QAEhCwya,GAAWxya,QAAU,SAAUwmG,EAAK5nG,EAAKsP,EAAMugb,EAAQ/ob,GACrD,IAAIgpb,EAAc,CAChBD,OAAQA,EACR/ob,MAAOA,EACPwI,KAAMA,EACNs4F,IAAKA,EACL5nG,IAAKA,GAIP,OAFAwvb,GAAgB,QAASM,MAErBJ,IAAuBA,GAAmBK,oBAErCL,GAAmBnpb,MAAMlC,KAAMiB,YAM1Csua,GAAWxya,QAAQ4ub,yBAA0B,ECnC/C,IAAIC,GAAkC,KAQtC,SAASC,GAAkDjlZ,GACzD,IAAIt7B,EAAO,qBACX,GAAWA,EAAMs7B,GACjBqkZ,GAAgB3/a,EAAMwgb,IAGxB,SAASA,KACPF,GAAkCrc,GAAWwc,qBAE7Cxc,GAAWwc,qBAAuB,SAAU9kb,GAC1C,IAAIwkb,EAAcxkb,EAGlB,OAFAkkb,GAAgB,qBAAsBM,KAElCG,KAAoCA,GAAgCF,oBAE/DE,GAAgC1pb,MAAMlC,KAAMiB,YAMvDsua,GAAWwc,qBAAqBJ,yBAA0B,EC3B5D,IAAIK,IAAqB,EAKzB,SAASC,KACHD,KAIJA,IAAqB,EACrBV,GAAqC36Q,IACrCk7Q,GAAkDl7Q,KAOpD,SAASA,KACP,IAAIu7Q,EAAa3I,KACba,EAAW8H,GAAc5I,GAAY4I,GAEzC,GAAI9H,EAAU,CACZ,IAAIrkb,EAAU,iBACd,IAAe,GAAAw+H,IAAW,wBAAwBp8H,OAAOpC,EAAS,8BAClEqkb,EAAS3+Y,UAAU,CACjBliC,KV7BkB,EU8BlBxD,QAASA,KC3Bf,SAASosb,KACPF,KCKF,SAASG,GAAiCxlZ,GACxC,IAAIt7B,EAAO,UACX,GAAWA,EAAMs7B,GACjBqkZ,GAAgB3/a,EAAM+gb,IAGxB,SAASA,KACD,YAAa9c,IAInBwB,GAAepza,SAAQ,SAAUwtB,GACzBA,KAASokZ,GAAWnja,SAI1BqhF,GAAK8hV,GAAWnja,QAAS+e,GAAO,SAAUimZ,GAExC,OADAJ,GAAuB7lZ,GAASimZ,EACzB,WACL,IAAK,IAAI/zZ,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGzB,IAAImua,EAAc,CAChBjkb,KAAMA,EACN2jB,MAAOA,GAETgga,GAAgB,UAAWM,GAC3B,IAAIltT,EAAMyyS,GAAuB7lZ,GACjCozG,GAAOA,EAAIr8H,MAAMqta,GAAWnja,QAAS5E,UFD7CmpK,GAAcx+J,IAAM,8BG9BpB,IAAIm6a,GAAsB,CAAC,QAAS,QAAS,UAAW,MAAO,OAAQ,SAQvE,SAASC,GAAwBpha,GAC/B,MAAiB,SAAVA,EAAmB,UAAYmha,GAAoBjua,SAAS8M,GAASA,EAAQ,MCdtF,IAAIqha,GAAmB,iBA8BnBC,GA5B6B,WAC/B,IAAI3pb,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9EiqB,EAASpoB,EAAQooB,QAAU6lZ,GAC/B,MAAO,CACL7sa,KAAMsob,GACNlwR,MAAO,SAAez8G,GACd,YAAa0vX,IAInB6c,IAAiC,SAAU/5a,GACzC,IAAI7K,EAAO6K,EAAK7K,KACZ2jB,EAAQ9Y,EAAK8Y,MAEb,OAAgB00B,GAAW30B,EAAO7M,SAAS8M,IAI/Cuha,GAAellb,EAAM2jB,SAY7B,SAASuha,GAAellb,EAAM2jB,GAC5B,IAAIwsZ,EAAiB,CACnBxsZ,MAAOoha,GAAwBpha,GAC/Bk5I,MAAO,CACLpjK,UAAWuG,IAGf,IAAU,SAAU05C,GAUlB,GATAA,EAAM0nY,mBAAkB,SAAUhka,GAMhC,OALAA,EAAMysZ,OAAS,UACf0C,GAAsBnvZ,EAAO,CAC3Bm6H,SAAS,EACTzzI,KAAM,YAEDsZ,KAGK,WAAVuG,EAAJ,CAWA,IAAI1oB,EAAQ+E,EAAKmxB,MAAK,SAAUhL,GAC9B,OAAOA,aAAenqB,SAGpBf,EACFo2a,GAAiBp2a,EAAOk1a,GAK1BoB,GADcnH,GAASpqa,EAAM,KACLmwa,QApBtB,IAAKnwa,EAAK,GAAI,CACZ,IAAImlb,EAAW,qBAAqBxqb,OAAOyva,GAASpqa,EAAKrC,MAAM,GAAI,MAAQ,kBAE3E+7C,EAAMonY,SAAS,YAAa9gb,EAAKrC,MAAM,IACvC4za,GAAe4T,EAAUhV,OCpDjC,SAASiV,GAAgBtwb,GACvB,IAAIooJ,EAAOzjJ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC3EigD,EAAQjgD,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,KAC5ElB,EAAUzD,EAAOyD,QACjBmE,EAAO5H,EAAO4H,KACd4wH,EAAQx4H,EAAOw4H,MACfn5H,EAAMW,EAAOX,IACb8E,EAASnE,EAAOmE,OAChBosb,EAAoBvwb,EAAOuwb,kBAC3BxgN,EAAO/vO,EAAO+vO,KACdygN,EAAgB,CAClBx8R,SAAU,CACRy8R,SAAUja,GAAkB,CAC1Bka,cAAel4T,EACf5wH,KAAMA,EACNnE,QAASA,EACTpE,IAAKA,EACL8E,OAAQA,EACRwsb,oBAAqBJ,KAGzBvhb,KAAM,WACN6f,MAAO,OACPkhN,KAAMA,GAEJxsL,EAASqB,GAASA,EAAM24X,aAAe,KAEvCh6X,GACFA,EAAOi+F,KAAK,qBAAsBgvS,EAAepoS,GAGnD,IAAI2iF,EAAUnmL,EAAM83X,aAAa8T,EAAepoS,GAChD,OAAO2iF,ECzBT,SAAS6lN,GAAqBjqb,EAAIojQ,GAChC,IACImzK,EADAr+S,EAAYl6H,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,aAGpF,IACEu4a,EAAqBv2a,IACrB,MAAOgE,GAGP,MAFAo/P,EAAQp/P,GACRk0H,IACMl0H,EAGR,OAAOkmb,GAA4B3T,EAAoBnzK,EAASlrI,GAUlE,SAASgyT,GAA4Bxsb,EAAO0lQ,EAASlrI,GACnD,OAAI,GAAWx6H,GAENA,EAAMpC,MAAK,SAAU66B,GAE1B,OADA+hG,IACO/hG,KACN,SAAUnyB,GAGX,MAFAo/P,EAAQp/P,GACRk0H,IACMl0H,MAIVk0H,IACOx6H,GCjDT,SAAS,GAAQyI,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAYzU,SAASgkb,GAAgBC,GACvB,GAA0B,kBAAfA,EACT,OAAO/6X,OAAO+6X,GAGhB,IAAI17I,EAA6B,iBAAf07I,EAA0Bzja,WAAWyja,GAAcA,EAErE,KAAoB,iBAAT17I,GAAqBj9O,MAAMi9O,IAASA,EAAO,GAAKA,EAAO,GAKlE,OAAOA,EAJL,IAAe,QAAY,0GAA0GxvS,OAAO2E,KAAKI,UAAUmmb,GAAa,aAAalrb,OAAO2E,KAAKI,UAAU,GAAQmmb,IAAc,MCpBrO,SAAS,GAAgBpub,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAEhH,SAAS,GAAkB4E,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAU7S,IAAIioU,GAAsC,WACxC,SAASA,IACP,IAAI1L,EAAc3gb,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAEtF,GAAgBjB,KAAMstb,GAEtBttb,KAAKutb,SAAW3L,EAAYnN,SAAW,KACvCz0a,KAAKwtb,QAAU5L,EAAYlN,QAAU,KAAQvnZ,UAAU,IAf3D,IAAsBg4F,EAAaM,EAqHjC,OArHoBN,EAoBPmoU,GApBoB7nU,EAoBI,CAAC,CACpC5nH,IAAK,cACL8C,MAAO,WACL,MAAO,CACL+za,OAAQ10a,KAAKwtb,QACb/Y,QAASz0a,KAAKutb,SACdxK,WjBfc,KiBqBjB,CACDllb,IAAK,MACL8C,MAAO,SAAa8sb,MAGnB,CACD5vb,IAAK,eACL8C,MAAO,SAAsB2c,EAAMuoL,GACjC,OAAO7lM,OAIR,CACDnC,IAAK,gBACL8C,MAAO,SAAuB+sb,GAC5B,OAAO1tb,OAIR,CACDnC,IAAK,YACL8C,MAAO,SAAmBgtb,GACxB,OAAO3tb,OAIR,CACDnC,IAAK,aACL8C,MAAO,SAAoBqxJ,GACzB,OAAOhyJ,OAIR,CACDnC,IAAK,cACL8C,MAAO,WACL,OAAO,IAIR,CACD9C,IAAK,WACL8C,MAAO,SAAkBqxJ,EAAO47R,EAAwBC,GACtD,OAAO7tb,OAUR,CACDnC,IAAK,UACL8C,MAAO,SAAiBmtb,GACtB,OAAO9tb,OAUR,CACDnC,IAAK,WACL8C,MAAO,SAAkB07F,GACvB,OAAOr8F,OAUR,CACDnC,IAAK,kBACL8C,MAAO,SAAyBotb,EAAYC,SAjH8B,GAAkB7oU,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IAqHrP+nU,EA7GiC,GCN1C,SAAS,GAAkBlib,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAUhL,IAAIu/Z,GAAY,kEAgBhB,SAASC,GAAYC,GACnB,IAAIC,EAAentb,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAC9EkJ,EAAOgkb,EAAIhkb,KACX9B,EAAO8lb,EAAI9lb,KACXgmb,EAAOF,EAAIE,KACX9jb,EAAO4jb,EAAI5jb,KACX+jb,EAAYH,EAAIG,UAChBpkb,EAAWikb,EAAIjkb,SACfg6a,EAAYiK,EAAIjK,UACpB,MAAO,GAAG/hb,OAAO+H,EAAU,OAAO/H,OAAO+hb,GAAW/hb,OAAOisb,GAAgBC,EAAO,IAAIlsb,OAAOksb,GAAQ,IAAM,IAAIlsb,OAAOgI,GAAMhI,OAAOoI,EAAO,IAAIpI,OAAOoI,GAAQ,GAAI,KAAKpI,OAAOkG,EAAO,GAAGlG,OAAOkG,EAAM,KAAOA,GAAMlG,OAAOmsb,GAU1N,SAASC,GAAcjhb,GACrB,IAAIzE,EAAQolb,GAAU1za,KAAKjN,GAE3B,GAAKzE,EAAL,CASA,IACI2lb,EAhEN,SAAwBpjb,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAgEnH,CADDyI,EAAM1D,MAAM,GACkB,GAC7C+E,EAAWskb,EAAc,GACzBtK,EAAYsK,EAAc,GAC1BC,EAAiBD,EAAc,GAC/BH,OAA0B,IAAnBI,EAA4B,GAAKA,EACxCC,EAAkBF,EAAc,GAChCrkb,OAA2B,IAApBukb,EAA6B,GAAKA,EACzCC,EAAkBH,EAAc,GAChCjkb,OAA2B,IAApBokb,EAA6B,GAAKA,EACzCC,EAAkBJ,EAAc,GAGhCnmb,EAAO,GACPimb,OAH+B,IAApBM,EAA6B,GAAKA,EAI7C5jb,EAAQsjb,EAAUtjb,MAAM,KAO5B,GALIA,EAAM5I,OAAS,IACjBiG,EAAO2C,EAAM7F,MAAM,GAAI,GAAG6C,KAAK,KAC/Bsmb,EAAYtjb,EAAMwP,OAGhB8za,EAAW,CACb,IAAIO,EAAeP,EAAUzlb,MAAM,QAE/Bgmb,IACFP,EAAYO,EAAa,IAI7B,OAAOC,GAAkB,CACvB3kb,KAAMA,EACNkkb,KAAMA,EACNhmb,KAAMA,EACNimb,UAAWA,EACX/jb,KAAMA,EACNL,SAAUA,EACVg6a,UAAWA,IA5CXjT,IAAe,WAEb7ka,QAAQ3J,MAAM,uBAAuBN,OAAOmL,OA8ClD,SAASwhb,GAAkB59P,GACzB,MAAO,CACLhnL,SAAUgnL,EAAWhnL,SACrBg6a,UAAWhzP,EAAWgzP,WAAa,GACnCmK,KAAMn9P,EAAWm9P,MAAQ,GACzBlkb,KAAM+mL,EAAW/mL,KACjBI,KAAM2mL,EAAW3mL,MAAQ,GACzBlC,KAAM6oL,EAAW7oL,MAAQ,GACzBimb,UAAWp9P,EAAWo9P,WAiD1B,SAASS,GAAQlga,GACf,IAAIqiK,EAA6B,iBAATriK,EAAoB0/Z,GAAc1/Z,GAAQiga,GAAkBjga,GAEpF,GAAKqiK,GAhDP,SAAqBi9P,GACnB,IAAK,GACH,OAAO,EAGT,IAAI5jb,EAAO4jb,EAAI5jb,KACX+jb,EAAYH,EAAIG,UAChBpkb,EAAWikb,EAAIjkb,SAEf8kb,EADqB,CAAC,WAAY,YAAa,OAAQ,aACNr2Z,MAAK,SAAUsmG,GAClE,OAAKkvT,EAAIlvT,KACP,SAAa,uBAAuB98H,OAAO88H,EAAW,cAC/C,MAMX,QAAI+vT,IAICV,EAAUzlb,MAAM,SAxHvB,SAAyBqB,GACvB,MAAoB,SAAbA,GAAoC,UAAbA,EA4HzB+kb,CAAgB/kb,GAKjBK,GAAQmqD,MAAMxvC,SAAS3a,EAAM,OAC/B,SAAa,oCAAoCpI,OAAOoI,IACjD,IANP,SAAa,wCAAwCpI,OAAO+H,IACrD,IANP,SAAa,yCAAyC/H,OAAOmsb,IACtD,KAwBWY,CAAYh+P,GAIhC,OAAOA,ECxKT,SAAS,GAAQxlK,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAA2BmZ,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAW8xN,GAAO,MAAMA,GAAQjnM,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAWiyN,GAAOD,GAAS,EAAMnrM,EAAMorM,GAAQpnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAU39B,SAAS,GAAe1iB,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAIzI,SAAS,GAA4BmiB,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAgBhL,SAASyga,GAAet0b,GACtB,IAAI0xB,EAAQtrB,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAChF,MAAO,CAACpG,EAAS0xB,GASnB,SAAS6ia,GAAkBC,EAAU9oY,GACnC,IA1C0Bn7C,EA0CtBkkb,EAAY,GAAeD,EAAU,GACrCx0b,EAAUy0b,EAAU,GACpB/ia,EAAQ+ia,EAAU,GAEtB,MAAO,CAACz0b,EAAS,GAAGsH,QA9CMiJ,EA8CoBmhB,EAxChD,SAA4BnhB,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAN1C,CAAmBA,IAI7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GAJjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,IA8C1E,CAACmmD,KAUzD,SAASgpY,GAAoBF,EAAUlkb,GACrC,IAGI4yB,EADAC,EAAY,GAFIqxZ,EAAS,IAK7B,IACE,IAAKrxZ,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAI2ha,EAAezxZ,EAAMp9B,MAIzB,GAFawK,EAASqkb,EADCA,EAAa,GAAGlkb,MAIrC,OAAO,GAGX,MAAOwiB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,OAAO,EAOT,SAAS29Z,GAAyBJ,EAAU5rX,GAC1C,OAAO8rX,GAAoBF,GAAU,SAAU39a,EAAGpG,GAChD,OAAOm4D,EAAMplD,SAAS/S,MAQ1B,SAASokb,GAAWt1Y,GAClB,OAAOm1X,GAAWI,YAAcJ,GAAWI,WAAWggB,eAAiBpgB,GAAWI,WAAWggB,eAAev1Y,IAAS,IAAIw1Y,aAAclob,OAAO0yC,GAehJ,SAASy1Y,GAAkBR,GACzB,IAAIS,EAAa,GAAeT,EAAU,GACtCU,EAAaD,EAAW,GACxBvja,EAAQuja,EAAW,GAGnBlob,EAAQd,KAAKI,UAAU6ob,GAE3B,SAAShzZ,EAAOhP,GACO,iBAAVnmB,EACTA,EAAwB,iBAATmmB,EAAoBnmB,EAAQmmB,EAAO,CAAC2ha,GAAW9nb,GAAQmmB,GAEtEnmB,EAAM7F,KAAqB,iBAATgsB,EAAoB2ha,GAAW3ha,GAAQA,GAI7D,IACI+zM,EADAC,EAAa,GAA2Bx1M,GAG5C,IACE,IAAKw1M,EAAWtyK,MAAOqyK,EAASC,EAAW7yK,KAAKrhC,MAAO,CACrD,IAEIqX,EAAQ,GAFD48L,EAAOnhO,MAEe,GAC7Bqvb,EAAc9qZ,EAAM,GACpB17B,EAAU07B,EAAM,GAIpB,GAFAnI,EAAO,KAAK56B,OAAO2E,KAAKI,UAAU8ob,GAAc,OAEzB,iBAAZxmb,GAAwBA,aAAmBq1B,WACpD9B,EAAOvzB,OACF,CACL,IAAIymb,OAAqB,EAEzB,IACEA,EAAqBnpb,KAAKI,UAAUsC,GACpC,MAAOvC,GAIPgpb,EAAqBnpb,KAAKI,UAAU,GAAUsC,IAGhDuzB,EAAOkzZ,KAGX,MAAOnia,GACPi0M,EAAW96N,EAAE6mB,GACb,QACAi0M,EAAWjwM,IAGb,MAAwB,iBAAVlqB,EAAqBA,EAGrC,SAAuBsob,GACrB,IAOIrxL,EAPAkjC,EAAcmuJ,EAAQl3a,QAAO,SAAU4sM,EAAKuqO,GAC9C,OAAOvqO,EAAMuqO,EAAI/tb,SAChB,GACCo/K,EAAS,IAAI3iJ,WAAWkjQ,GACxB3xR,EAAS,EAETwuP,EAAa,GAA2BsxL,GAG5C,IACE,IAAKtxL,EAAWnvM,MAAOovM,EAASD,EAAW1vM,KAAKrhC,MAAO,CACrD,IAAItnB,EAASs4P,EAAOl+P,MACpB6gL,EAAOhgK,IAAIjb,EAAQ6J,GACnBA,GAAU7J,EAAOnE,QAEnB,MAAO0rB,GACP8wO,EAAW33P,EAAE6mB,GACb,QACA8wO,EAAW9sO,IAGb,OAAO0vJ,EAzBoC4uQ,CAAcxob,GAgC3D,SAASyob,GAAcj0Q,GACrB,IAAI71K,EAAwB,iBAAR61K,EAAmBszQ,GAAWtzQ,GAAOA,EAEzD,SAASk0Q,EAAWlub,GAClB,IAAImub,EAAMhqb,EAAOi1D,SAAS,EAAGp5D,GAG7B,OADAmE,EAASA,EAAOi1D,SAASp5D,EAAS,GAC3Bmub,EAGT,SAASC,IACP,IAvGgBp2Y,EAuGZ3yC,EAAIlB,EAAO3J,QAAQ,IAMvB,OAJI6K,EAAI,IACNA,EAAIlB,EAAOnE,QAGN0E,KAAKC,OA7GIqzC,EA6Gak2Y,EAAW7ob,GA5GnC8na,GAAWI,YAAcJ,GAAWI,WAAW8gB,eAAiBlhB,GAAWI,WAAW8gB,eAAer2Y,IAAS,IAAIs2Y,aAAcC,OAAOv2Y,KAmH9I,IAJA,IAAIw2Y,EAAiBJ,IAEjBjka,EAAQ,GAELhmB,EAAOnE,QAAQ,CACpB,IAAIyub,EAAaL,IACbM,EAA4C,iBAAtBD,EAAWzub,OAAsByub,EAAWzub,YAAS3E,EAC/E8uB,EAAMxqB,KAAK,CAAC8ub,EAAYC,EAAeR,EAAWQ,GAAgBN,MAGpE,MAAO,CAACI,EAAgBrka,GAO1B,SAASwka,GAAuBC,GAI9B,MAAO,CAHW,CAChB1lb,KAAM,QAEa0lb,GAOvB,SAASC,GAA6B7uB,GACpC,IAAI77Z,EAAoC,iBAApB67Z,EAAWzna,KAAoB+0b,GAAWttB,EAAWzna,MAAQyna,EAAWzna,KAC5F,MAAO,CAACm4a,GAAkB,CACxBxna,KAAM,aACNlJ,OAAQmE,EAAOnE,OACfwY,SAAUwnZ,EAAWxnZ,SACrBs2a,aAAc9uB,EAAW50P,YACzB2jR,gBAAiB/uB,EAAWgvB,iBAC1B7qb,GAGN,IAAI8qb,GAAiC,CACnC7b,QAAS,UACT8b,SAAU,UACVlvB,WAAY,aACZwiB,YAAa,cACbhga,MAAO,QACP2sa,cAAe,WACfC,YAAa,UACbrjN,QAAS,UACTsjN,cAAe,UACfC,aAAc,SACdC,iBAAkB,SAClB3jB,SAAU,UACV+e,SAAU,WACV9qH,KAAM,OACN2vH,OAAQ,iBAMV,SAASC,GAA+Bvmb,GACtC,OAAO+lb,GAA+B/lb,GAKxC,SAASwmb,GAAgCC,GACvC,GAAKA,GAAoBA,EAAgBnM,IAAzC,CAIA,IAAIoM,EAAuBD,EAAgBnM,IAG3C,MAAO,CACL1hb,KAHS8tb,EAAqB9tb,KAI9BwH,QAHYsmb,EAAqBtmb,UAYrC,SAASumb,GAA2Brta,EAAOsta,EAASC,EAAQhE,GAC1D,IAAI7O,EAAyB16Z,EAAM8zZ,uBAAyB9zZ,EAAM8zZ,sBAAsB4G,uBACxF,OAAO,GAAc,GAAc,GAAc,CAC/C1L,SAAUhvZ,EAAMgvZ,SAChBwe,SAAS,IAAI1pb,MAAOX,eACnBmqb,GAAW,CACZtM,IAAKsM,MACDC,GAAUhE,GAAO,CACrBA,IAAKD,GAAYC,KACf7O,GAA0B,CAC5B8H,MAAOtU,GAAkB,GAAc,GAAIwM,MC5T/C,SAAS,GAAQ5zZ,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAmBgC,GAAO,OAQnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAIlI,SAAS,GAA4BmiB,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAM7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAgDhL,SAAS2ja,GAAoBzta,EAAOupa,EAAKjuZ,EAAUiyZ,GACjD,IAAID,EAAUJ,GAAgC5xZ,GAS1C+gM,EAAYr8M,EAAMtZ,MAAuB,iBAAfsZ,EAAMtZ,KAA0BsZ,EAAMtZ,KAAO,SAhD7E,SAAiCsZ,EAAOsta,GACjCA,IAILtta,EAAMgha,IAAMhha,EAAMgha,KAAO,GACzBhha,EAAMgha,IAAI1hb,KAAO0gB,EAAMgha,IAAI1hb,MAAQgub,EAAQhub,KAC3C0gB,EAAMgha,IAAIl6a,QAAUkZ,EAAMgha,IAAIl6a,SAAWwmb,EAAQxmb,QACjDkZ,EAAMgha,IAAIL,aAAe,GAAGpjb,OAAO,GAAmByiB,EAAMgha,IAAIL,cAAgB,IAAK,GAAmB2M,EAAQ3M,cAAgB,KAChI3ga,EAAMgha,IAAI0M,SAAW,GAAGnwb,OAAO,GAAmByiB,EAAMgha,IAAI0M,UAAY,IAAK,GAAmBJ,EAAQI,UAAY,MAwCpHC,CAAwB3ta,EAAOsb,GAAYA,EAAS0lZ,KACpD,IAAI4M,EAAkBP,GAA2Brta,EAAOsta,EAASC,EAAQhE,GASzE,cAJOvpa,EAAM8zZ,sBAINyW,GAAeqD,EAAiB,CAHvB,CAAC,CACflnb,KAAM21N,GACLr8M,KCtFL,SAAS,GAAgBxb,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAS3M,SAASqpb,GAAevub,EAAMvD,EAAO0kG,GACnC,IAIMqtV,EAJFxG,EAAajrb,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKsib,KACjFa,EAAW8H,GAAc5I,GAAY4I,GAErC9H,GAGFA,EAASuO,SAASzub,GAAgC,GAAzBwub,EAAqB,GAAwC9jB,GAA6Cjua,GAAQ,GAAgB+xb,EAAoB/jB,GAA4CtpU,GAAOqtV,IAQtO,SAASE,GAA0Bvua,GACjC,GAAKA,GAA4B,IAAlBA,EAAOjiB,OAAtB,CAIA,IAAIywb,EAAe,GAanB,OAZAxua,EAAO1mB,SAAQ,SAAUinB,GACvB,IAAIrG,EAAaqG,EAAMrG,YAAc,GACjC8mF,EAAO9mF,EAAWowZ,2BAClBhua,EAAQ4d,EAAWqwZ,4BAEH,iBAATvpU,GAAsC,iBAAV1kG,IACrCkyb,EAAajua,EAAM1gB,MAAQ,CACzBvD,MAAOA,EACP0kG,KAAMA,OAILwtV,GCzBT,SAASC,GAAwB7wH,GAC/B,MAAO,CACL/gR,MAAO+gR,EAA8B,aACrCk3G,eAAgBl3G,EAAwC,uBCpB5D,SAAS,GAAQv2S,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAgBnK,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAEhH,SAAS,GAAkB4E,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAe7S,IAKI0tU,GAA0B,WAkB5B,SAASA,IACP,IAAI16N,EAEAupN,EAAc3gb,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAEtF,GAAgBjB,KAAM+yb,GAEtB/yb,KAAKutb,SAAW3L,EAAYnN,SAAW,KACvCz0a,KAAKwtb,QAAU5L,EAAYlN,QAAU,KAAQvnZ,UAAU,IACvDntB,KAAK6tb,WAAajM,EAAYoR,gBAAkB,KAChDhzb,KAAKizb,YAAc,GACnBjzb,KAAKkzb,cAAc,IAAoC,GAArB76N,EAAiB,GAAoCo2M,GAAkC,UAAW,GAAgBp2M,EAAgBm2M,GAA8BoT,EAAYiB,IAAKxqN,GAAiBupN,EAAYrja,aAChPve,KAAKgyJ,MAAQ4vR,EAAY19a,KAErB09a,EAAYjB,eACd3gb,KAAKmzb,cAAgBvR,EAAYjB,cAI/B,YAAaiB,IACf5hb,KAAKozb,SAAWxR,EAAYf,SAG1Be,EAAYyR,eACdrzb,KAAKszb,SAAW1R,EAAYyR,cAG9Brzb,KAAKw4L,QAAU,GACfx4L,KAAKuzb,kBAAoB3R,EAAY4R,aAEjCxzb,KAAKszb,UACPtzb,KAAKyzb,eAnEX,IAAsBtuU,EAAaM,EA4YjC,OA5YoBN,EA+EP4tU,EA/EoBttU,EA+ER,CAAC,CACxB5nH,IAAK,UACL8C,MAAO,SAAiBmtb,GACtB,OAAO9tb,OAUR,CACDnC,IAAK,WACL8C,MAAO,SAAkB07F,GACvB,OAAOr8F,OAUR,CACDnC,IAAK,kBACL8C,MAAO,SAAyBotb,EAAYC,MAI3C,CACDnwb,IAAK,cACL8C,MAAO,WAIL,MAAO,CACL+za,OAJW10a,KAAKwtb,QAKhB/Y,QAJYz0a,KAAKutb,SAKjBxK,WAJY/ib,KAAKozb,SvB9GA,EADH,KuBwHjB,CACDv1b,IAAK,eACL8C,MAAO,SAAsB9C,EAAK8C,GAQhC,YAPclD,IAAVkD,SAEKX,KAAKizb,YAAYp1b,GAExBmC,KAAKizb,YAAYp1b,GAAO8C,EAGnBX,OAIR,CACDnC,IAAK,gBACL8C,MAAO,SAAuB4d,GAC5B,IAAIq0G,EAAQ5yH,KAKZ,OAHAwF,OAAOC,KAAK8Y,GAAY5gB,SAAQ,SAAUE,GACxC,OAAO+0H,EAAM3oH,aAAapM,EAAK0gB,EAAW1gB,OAErCmC,OAWR,CACDnC,IAAK,kBACL8C,MAAO,SAAyB+yb,GAC9B1zb,KAAK6tb,WAAazL,GAAuBsR,KAM1C,CACD71b,IAAK,YACL8C,MAAO,SAAmBA,GAExB,OADAX,KAAK2tb,QAAUhtb,EACRX,OAMR,CACDnC,IAAK,aACL8C,MAAO,SAAoBuD,GAEzB,OADAlE,KAAKgyJ,MAAQ9tJ,EACNlE,OAIR,CACDnC,IAAK,MACL8C,MAAO,SAAa0yb,GAEdrzb,KAAKszb,WAITtzb,KAAKszb,SAAWlR,GAAuBiR,GCtJ7C,SAAoBpxH,GAClB,GAAK,GAAL,CAEA,IAAI0xH,EAAe3R,GAAW//G,GAC1B2xH,EAAwBD,EAAaxvb,YACrCA,OAAwC,IAA1Byvb,EAAmC,mBAAqBA,EACtEC,EAAkBF,EAAa9Q,GAC/BA,OAAyB,IAApBgR,EAA6B,iBAAmBA,EAGrDnf,EADqBzyG,EAAK2/G,cACElN,OAG5Bof,EADWxQ,GAAYrhH,KACGA,EAC1B1+N,EAAM,wBAAyBphG,OAAO0gb,EAAI,MAAO1gb,OAAO2xb,EAAa,QAAU,GAAI,UAAW3xb,OAAOgC,EAAa,cAAehC,OAAOuya,GAC5I,GAAAn2S,IAAWh7B,IDwIPwwV,CAAW/zb,MAEXA,KAAKyzb,kBAWN,CACD51b,IAAK,cACL8C,MAAO,WACL,OAAOmya,GAAkB,CACvBn4a,KAAMqF,KAAKizb,YACX9ub,YAAanE,KAAKgyJ,MAClB6wR,GAAI7ib,KAAKizb,YAAYzkB,IACrBuT,eAAgB/hb,KAAKmzb,cACrBtR,QAAS7hb,KAAKwtb,QACd7K,gBAAiB3ib,KAAK6tb,WACtB5xb,OAAQ2mb,GAAiB5ib,KAAK2tb,SAC9B5la,UAAW/nB,KAAKszb,SAChBxR,SAAU9hb,KAAKutb,SACfzpZ,OAAQ9jC,KAAKizb,YAAYxkB,IACzBqU,iBAAkB7B,GAA4Bjhb,MAC9Cgoa,WAAYhoa,KAAKizb,YvDtMW,qBuDuM5Be,eAAgBh0b,KAAKizb,YAAYpkB,yBACjCgkB,aAAcD,GAA0B5yb,KAAKw4L,SAC7Cy7P,WAAYj0b,KAAKuzb,mBAAqBjQ,GAAYtjb,QAAUA,WAAQvC,EACpEy2b,WAAYl0b,KAAKuzb,kBAAoBjQ,GAAYtjb,MAAM4hb,cAAclN,YAASj3a,MAKjF,CACDI,IAAK,cACL8C,MAAO,WACL,OAAQX,KAAKszb,YAActzb,KAAKozb,WAMjC,CACDv1b,IAAK,WACL8C,MAAO,SAAkBuD,EAAMiwb,EAAuBn3T,GACpD,IAAe,GAAAuB,IAAW,qCAAsCr6H,GAChE,IAAImjF,EAAO+sW,GAAgBD,GAAyBA,EAAwBn3T,GAAa,KACrFz+G,EAAa61a,GAAgBD,GAAyB,GAAKA,GAAyB,GACpFvva,EAAQ,CACV1gB,KAAMA,EACNmjF,KAAM+6V,GAAuB/6V,GAC7B9oE,WAAYA,GAKd,OAFAve,KAAKw4L,QAAQz2L,KAAK6iB,GAEX5kB,OAWR,CACDnC,IAAK,mBACL8C,MAAO,WACL,QAASX,KAAKuzb,oBAIf,CACD11b,IAAK,eACL8C,MAAO,WACL,IAAIk/C,EAAS,KAWb,GATIA,GACFA,EAAOi+F,KAAK,UAAW99I,MAMLA,KAAKuzb,mBAAqBvzb,OAASsjb,GAAYtjb,MAOnE,GAAIA,KAAKuzb,kBACHvzb,KAAKozb,SAiIjB,SAA0B/D,GACxB,IAAIxvY,EAAS,KAEb,GAAKA,EAAL,CAIA,IAAIw0Y,EAAYhF,EAAS,GAEpBgF,GAAkC,IAArBA,EAAUjyb,OAO5By9C,EAAOy0Y,aAAajF,GANlBxvY,EAAO00Y,mBAAmB,cAAe,SA1InCC,CH/MV,SAA4BxM,EAAOnoY,GAQjC,IAqBI9hB,EArBA+iZ,EAAMqD,GAAkC6D,EAAM,IAC9CmG,EAAMtuY,GAAUA,EAAOokY,SACvBkO,EAAStyY,GAAUA,EAAO3tB,aAAaiga,OAEvCt3b,EAAU,GAAc,GAAc,CACxCu3b,SAAS,IAAI1pb,MAAOX,eAZtB,SAA6B+4a,GAC3B,QAASA,EAAIgB,YAAchB,EAAIkD,WAY9ByQ,CAAoB3T,IAAQ,CAC7BsG,MAAOtG,MACHqR,GAAUhE,GAAO,CACrBA,IAAKD,GAAYC,KAGfuG,EAAiB70Y,GAAUA,EAAO3tB,aAAawia,eAC/CC,EAAoBD,EAAiB,SAAUzyH,GACjD,OAAOyyH,EAAe1S,GAAW//G,KAC/B,SAAUA,GACZ,OAAO+/G,GAAW//G,IAEhB11S,EAAQ,GAERyR,EA5HN,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,IAA4D,CAAMy+G,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KA4Hv8B,CAA2Bk6Z,GAG3C,IACE,IAAKhqZ,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IACImja,EAAW2D,EADJ52Z,EAAMp9B,OAGbqwb,GACFzka,EAAMxqB,KAAKgvb,GAAuBC,KAGtC,MAAOlja,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,OAAOq9Z,GAAet0b,EAAS0xB,GGiKNqoa,CAAmB,CAAC50b,MAAO6/C,KAE5C,IAAe,GAAA0+E,IAAW,wFAEtB1+E,GACFA,EAAO00Y,mBAAmB,cAAe,aAP/C,CAcA,IAAIM,EAAmB70b,KAAK80b,4BAExBD,IACU/B,GAAwB9yb,MAAMkhD,OAAS,MAC7C83X,aAAa6b,MAOtB,CACDh3b,IAAK,4BACL8C,MAAO,WACL,IAAIm8N,EAAS98N,KAGb,GAAK+0b,GAAmB/S,GAAWhib,OAAnC,CAIKA,KAAKgyJ,QACR,IAAe,QAAY,uEAC3BhyJ,KAAKgyJ,MAAQ,2BAGf,IAAIgjS,EAAwBlC,GAAwB9yb,MAChDi1b,EAAoBD,EAAsB9zY,MAC1Cg0Y,EAA6BF,EAAsB7b,eAGnDt5X,GADQo1Y,GAAqB,MACdpb,aAAe,KAElC,IAAsB,IAAlB75a,KAAKozb,SAQP,OANA,IAAe,GAAA70T,IAAW,yFAEtB1+E,GACFA,EAAO00Y,mBAAmB,cAAe,gBAO7C,IvBhVAY,EACAtT,EACAC,EAEAsT,EACAz6b,EACAkob,EuB0UIwS,EAAgBlS,GAAmBnjb,MAAM0F,QAAO,SAAUu8T,GAC5D,OAAOA,IAASnlG,IAAWw4N,GAAiBrzH,MAE1C+lH,EAAQqN,EAAcp6a,KAAI,SAAUgnT,GACtC,OAAO+/G,GAAW//G,MACjBv8T,OAAOqvb,IACNt0b,EAAST,KAAKizb,YAAY3kB,IAE1BsW,EAAc,GAAc,CAC9Bt0R,SAAU,CACR82R,OAAqCpnb,KvB1VzCm1b,EuB0VyCn1b,KvB1VhB4hb,cACzBC,EAAUsT,EAAkBzgB,OAC5BoN,EAAWqT,EAAkB1gB,QAE7B2gB,EAAcpT,GuBsV2Bhib,MvBrVzCrF,EAAOy6b,EAAYz6b,KACnBkob,EAAKuS,EAAYvS,GAKd/P,GAAkB,CACvBiP,eALmBqT,EAAYrT,eAM/BF,QAASA,EACTC,SAAUA,EACVnnb,KAAMA,EACNkob,GAAIA,EACJ5mb,OATWm5b,EAAYn5b,OAUvB6nC,OATWsxZ,EAAYtxZ,WuBmVnBkkZ,MAEAA,EAAM5lb,OA/VO,IA+VmB4lb,EAAMn/Z,MAAK,SAAUzb,EAAGC,GACtD,OAAOD,EAAEu1a,gBAAkBt1a,EAAEs1a,mBAC5Bx9a,MAAM,EAjWI,KAiWiB6ib,EAC9BrF,gBAAiB3ib,KAAK6tb,WACtB9la,UAAW/nB,KAAKszb,SAChB1O,YAAa5kb,KAAKgyJ,MAClB1mJ,KAAM,cACNota,sBAAuB,GAAc,CACnCuc,kBAAmBA,EACnBC,2BAA4BA,GAC3BpiB,GAAkB,CACnBwM,uBAAwB6E,GAAkCnkb,SAE5D8ib,iBAAkB7B,GAA4Bjhb,OAC7CS,GAAU,CACX80b,iBAAkB,CAChB90b,OAAQA,KAIRoyb,EAAeD,GAA0B5yb,KAAKw4L,SAQlD,OAPsBq6P,GAAgBrtb,OAAOC,KAAKotb,GAAczwb,SAG9D,IAAe,GAAAm8H,IAAW,0DAA2Dz3H,KAAKI,UAAU2rb,OAAcp1b,EAAW,IAC7Hmnb,EAAYiO,aAAeA,GAGtBjO,MAxYqDn/T,GAAY,GAAkBN,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IA4YrPwtU,EA1XqB,GA6X9B,SAASqB,GAAgBzzb,GACvB,OAAOA,GAA0B,iBAAVA,GAAsBA,aAAiB+H,MAAQzG,MAAMiD,QAAQvE,GAItF,SAASo0b,GAAmB36Y,GAC1B,SAASA,EAAMuoY,iBAAqBvoY,EAAMryB,WAAeqyB,EAAMynY,SAAaznY,EAAM0nY,UAKpF,SAASwT,GAAiBrzH,GACxB,OAAOA,aAAgB8wH,IAAc9wH,EAAKqzH,mBE/Z5C,SAAS,GAAkBlqb,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAMhL,SAAS,GAAQhD,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAmB3M,IAAIosb,GAAuB,8BAY3B,SAASC,GAAU3yb,EAASqI,GAC1B,IAAIiva,EAAMsb,KAEV,GAAItb,EAAIqb,UACN,OAAOrb,EAAIqb,UAAU3yb,EAASqI,GAGhC,IAAIwqb,EAAgBC,GAAyB9yb,GACzC+yb,EAAmB/yb,EAAQ+yb,iBAC3BC,EAAmBhzb,EAAQizb,WAC/B,OAAO,GAAUjzb,EAAQo+C,OAAO,WAG9B,OADc80Y,GAAqBF,EAC5B12W,EAAQ,WACb,IAAIl+B,EAAQ,KACR60Y,EAAaE,GAAc/0Y,GAE3BgrY,EADiBppb,EAAQozb,eAAiBH,EACZ,IAAIzI,GAA2B6I,GAAsB,CACrFJ,WAAYA,EACZJ,cAAeA,EACfE,iBAAkBA,EAClB30Y,MAAOA,IAKT,OAFA80X,GAAiB90X,EAAOgrY,GAEjBgB,IAAqB,WAC1B,OAAO/hb,EAAS+gb,MACf,WAED,IACIjwb,EADc+lb,GAAWkK,GACJjwb,QAErBiwb,EAAWkK,eAAmBn6b,GAAqB,OAAXA,GAC1Ciwb,EAAWzmZ,UAAU,CACnBliC,K1BhFY,E0BiFZxD,QAAS,sBAGZ,WACD,OAAOmsb,EAAWz/Y,eAiB1B,SAAS4pZ,GAAgBvzb,EAASqI,GAChC,IAAIiva,EAAMsb,KAEV,GAAItb,EAAIic,gBACN,OAAOjc,EAAIic,gBAAgBvzb,EAASqI,GAGtC,IAAIwqb,EAAgBC,GAAyB9yb,GACzC+yb,EAAmB/yb,EAAQ+yb,iBAC3BC,EAAmBhzb,EAAQizb,WAC/B,OAAO,GAAUjzb,EAAQo+C,OAAO,WAG9B,OADc80Y,GAAqBF,EAC5B12W,EAAQ,WACb,IAAIl+B,EAAQ,KACR60Y,EAAaE,GAAc/0Y,GAE3BgrY,EADiBppb,EAAQozb,eAAiBH,EACZ,IAAIzI,GAA2B6I,GAAsB,CACrFJ,WAAYA,EACZJ,cAAeA,EACfE,iBAAkBA,EAClB30Y,MAAOA,IAKT,SAASo1Y,IACPpK,EAAWz/Y,MAGb,OANAupY,GAAiB90X,EAAOgrY,GAMjBgB,IAAqB,WAC1B,OAAO/hb,EAAS+gb,EAAYoK,MAC3B,WAED,IACIr6b,EADe+lb,GAAWkK,GACJjwb,QAEtBiwb,EAAWkK,eAAmBn6b,GAAqB,OAAXA,GAC1Ciwb,EAAWzmZ,UAAU,CACnBliC,K1B7IY,E0B8IZxD,QAAS,4BAkBrB,SAASw2b,GAAkBzzb,GACzB,IAAIs3a,EAAMsb,KAEV,GAAItb,EAAImc,kBACN,OAAOnc,EAAImc,kBAAkBzzb,GAG/B,IAAI6yb,EAAgBC,GAAyB9yb,GACzC+yb,EAAmB/yb,EAAQ+yb,iBAC3BC,EAAmBhzb,EAAQizb,WAU/B,OAPcjzb,EAAQo+C,MAAQ,SAAU/1C,GACtC,OAAO,GAAUrI,EAAQo+C,MAAO/1C,SACT1N,IAArBq4b,EAAiC,SAAU3qb,GAC7C,OAAOqrb,GAAeV,EAAkB3qb,IACtC,SAAUA,GACZ,OAAOA,OAEM,WACb,IAAI+1C,EAAQ,KACR60Y,EAAaE,GAAc/0Y,GAG/B,OAFqBp+C,EAAQozb,eAAiBH,EAGrC,IAAIzI,GAGN6I,GAAsB,CAC3BJ,WAAYA,EACZJ,cAAeA,EACfE,iBAAkBA,EAClB30Y,MAAOA,OAcb,IAAIu1Y,GAAgB,SAAuBpkb,EAAMlH,GAC/C,IAAIm1a,EAAcjua,EAAKiua,YACnBC,EAAUlua,EAAKkua,QACnB,OAAO,IAAU,SAAUr/X,GACzB,IAAIg3X,EAAqBmI,GAA8BC,EAAaC,GAEpE,OADAr/X,EAAMw1Y,sBAAsBxe,GACrB/sa,QAcX,SAASqrb,GAAev0H,EAAM92T,GAC5B,IAAIiva,EAAMsb,KAEV,OAAItb,EAAIoc,eACCpc,EAAIoc,eAAev0H,EAAM92T,GAG3B,IAAU,SAAU+1C,GAGzB,OAFA80X,GAAiB90X,EAAO+gR,QAAQxkU,GAEzB0N,EAAS+1C,MAMpB,SAASy1Y,GAAgBxrb,GACvB,IAAIiva,EAAMsb,KAEV,OAAItb,EAAIuc,gBACCvc,EAAIuc,gBAAgBxrb,GAGtB,IAAU,SAAU+1C,GAEzB,OADAA,EAAM01Y,yBAAyB,GAAgB,GAAIpB,IAAsB,IAClErqb,OAqBX,SAAS0rb,GAAc1rb,GACrB,OAAO,IAAU,SAAU+1C,GAGzB,OAFAA,EAAMw1Y,sBAAsBliB,MAC5B,IAAe,QAAY,gCAAgCrya,OAAO++C,EAAM41Y,wBAAwBriB,UACzF+hB,GAAe,KAAMrrb,MAIhC,SAASgrb,GAAsBxib,GAC7B,IAAIoib,EAAapib,EAAMoib,WACnBJ,EAAgBhib,EAAMgib,cACtBE,EAAmBlib,EAAMkib,iBACzB30Y,EAAQvtC,EAAMutC,MAElB,IAAK8+X,KACH,OAAO,IAAIsN,GAGb,IACIrrH,EADAk3G,EAAiBe,KAGrB,GAAI6b,IAAeF,EACjB5zH,EA4GJ,SAAyB8zH,EAAY70Y,EAAOy0Y,GAC1C,IAAIoB,EAAyBhB,EAAWnU,cACpClN,EAASqiB,EAAuBriB,OAChCD,EAAUsiB,EAAuBtiB,QAEjCoM,GAAU3/X,EAAM42X,eAAeY,sBAAsB8c,KAAgCrT,GAAc4T,GACnG9S,EAAYpC,EAAU,IAAIkS,GAAW,GAAc,GAAc,GAAI4C,GAAgB,GAAI,CAC3FhV,aAAcjM,EACdD,QAASA,EACToM,QAASA,KACL,IAAIyM,GAAuB,CAC/B7Y,QAASA,IAEXuO,GAAmB+S,EAAY9S,GAC/B,IAAIpjY,EAAS,KAUb,OARIA,IACFA,EAAOi+F,KAAK,YAAamlS,GAErB0S,EAActC,cAChBxzY,EAAOi+F,KAAK,UAAWmlS,IAIpBA,EApIE+T,CAAgBjB,EAAY70Y,EAAOy0Y,GAC1C3S,GAAmB+S,EAAY9zH,QAC1B,GAAI8zH,EAAY,CAErB,IAAIjV,EAAMqD,GAAkC4R,GAExCkB,EAAwBlB,EAAWnU,cACnCnN,EAAUwiB,EAAsBxiB,QAChCkM,EAAesW,EAAsBviB,OAErCgM,EAAgByB,GAAc4T,GAKlCjS,GAJA7hH,EAAOi1H,GAAe,GAAc,CAClCziB,QAASA,EACTkM,aAAcA,GACbgV,GAAgBz0Y,EAAOw/X,GACJI,OACjB,CACL,IAAIqW,EAAwB,GAAc,GAAc,GAAIhe,EAAe2d,yBAA0B51Y,EAAM41Y,yBACvGvJ,EAAW4J,EAAsB1iB,QACjC2iB,EAAOD,EAAsBrW,IAC7BqS,EAAgBgE,EAAsBxW,aACtC0W,EAAiBF,EAAsBtW,QAE3C5+G,EAAOi1H,GAAe,GAAc,CAClCziB,QAAS8Y,EACT5M,aAAcwS,GACbwC,GAAgBz0Y,EAAOm2Y,GAEtBD,GACFtT,GAAgB7hH,EAAMm1H,GAM1B,ODpUF,SAAsBn1H,GACpB,GAAK,GAAL,CAEA,IAAImzH,EAAcpT,GAAW//G,GACzBq1H,EAAwBlC,EAAYjxb,YACpCA,OAAwC,IAA1Bmzb,EAAmC,mBAAqBA,EACtEC,EAAiBnC,EAAYvS,GAC7BA,OAAwB,IAAnB0U,EAA4B,iBAAmBA,EACpD5W,EAAeyU,EAAYrT,eAG3BrN,EADoBzyG,EAAK2/G,cACElN,OAE3BmM,EAAUsB,GAAclgH,GACxBmiH,EAAWd,GAAYrhH,GACvB6xH,EAAa1P,IAAaniH,EAC1Bz2S,EAAS,sBAAsBrpB,OAAO0+a,EAAU,UAAY,YAAa,KAAK1+a,OAAO2xb,EAAa,QAAU,GAAI,QAChH0D,EAAY,CAAC,OAAOr1b,OAAO0gb,GAAK,SAAS1gb,OAAOgC,GAAc,OAAOhC,OAAOuya,IAMhF,GAJIiM,GACF6W,EAAUz1b,KAAK,cAAcI,OAAOw+a,KAGjCmT,EAAY,CACf,IAAI2D,EAAezV,GAAWoC,GAC1BsT,EAAMD,EAAa5U,GACnB8U,EAAeF,EAAatzb,YAEhCqzb,EAAUz1b,KAAK,YAAYI,OAAOiib,EAASxC,cAAclN,SAErDgjB,GACFF,EAAUz1b,KAAK,YAAYI,OAAOu1b,IAGhCC,GACFH,EAAUz1b,KAAK,qBAAqBI,OAAOw1b,IAI/C,GAAAp5T,IAAW,GAAGp8H,OAAOqpB,EAAQ,QAAQrpB,OAAOq1b,EAAUxvb,KAAK,WC2R3D4vb,CAAa31H,GHnUf,SAAiCA,EAAM/gR,EAAOi4X,GACxCl3G,IACFowG,GAAyBpwG,EALa,wBAK8Bk3G,GACpE9G,GAAyBpwG,EAPG,eAO8B/gR,IGiU5D22Y,CAAwB51H,EAAM/gR,EAAOi4X,GAC9Bl3G,EAST,SAAS2zH,GAAyB9yb,GAChC,IAEIg1b,EAAa,GAAc,CAC7BtE,cAHQ1wb,EAAQi1b,cAAgB,IAGdC,YACjBl1b,GAEH,GAAIA,EAAQk6H,UAAW,CACrB,IAAI/tH,EAAM,GAAc,GAAI6ob,GAI5B,OAFA7ob,EAAI+jb,eAAiB5Q,GAAuBt/a,EAAQk6H,kBAC7C/tH,EAAI+tH,UACJ/tH,EAGT,OAAO6ob,EAGT,SAASpC,KAEP,OAAOvb,GADO,MAIhB,SAAS+c,GAAevB,EAAez0Y,EAAOw/X,GAC5C,IAAI7gY,EAAS,KACT/8C,EAAU+8C,GAAUA,EAAO3tB,cAAgB,GAC3C+la,EAAsBtC,EAAczxb,KACpCA,OAA+B,IAAxB+zb,EAAiC,GAAKA,EAC7C15a,EAAao3a,EAAcp3a,WAE3B/J,EAAQ0sC,EAAM42X,eAAeY,sBAAsB8c,IAAwB,EAAC,GCvWlF,SAAoB1yb,EAASo1b,GAE3B,IAAKlY,GAAkBl9a,GACrB,MAAO,EAAC,GAKV,IAAIuqb,EAeA8K,EAAmB/K,GAZrBC,EADmC,mBAA1Bvqb,EAAQs1b,cACJt1b,EAAQs1b,cAAcF,QACQz6b,IAAlCy6b,EAAgBxX,cACZwX,EAAgBxX,mBACgB,IAA7B59a,EAAQu1b,iBACXv1b,EAAQu1b,iBAGR,GAOf,YAAyB56b,IAArB06b,GACF,IAAe,QAAY,oEACpB,EAAC,IAILA,EAOc5pb,KAAK2e,SAAWira,EAO5B,EAAC,EAAMA,IAJZ,IAAe,GAAA55T,IAAW,oGAAoGp8H,OAAOmwD,OAAO+6X,GAAa,MAClJ,EAAC,EAAO8K,KAVf,IAAe,GAAA55T,IAAW,4CAA4Cp8H,OAAwC,mBAA1BW,EAAQs1b,cAA+B,oCAAsC,+EAC1J,EAAC,EAAOD,IDsUwEG,CAAWx1b,EAAS,CAC3GoB,KAAMA,EACNw8a,cAAeA,EACfnia,WAAYA,EACZg6a,mBAAoB,CAClBr0b,KAAMA,EACNw8a,cAAeA,KAGf5ta,EA3XN,SAAwB1H,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GA2X3H,CAAeoU,EAAO,GAC9Bqsa,EAAU/ta,EAAM,GAChBu6a,EAAav6a,EAAM,GAEnBsxa,EAAW,IAAI2O,GAAW,GAAc,GAAc,GAAI4C,GAAgB,GAAI,CAChFp3a,WAAY,GAAc,GAAgB,GAAI+vZ,GAAkC,UAAWqnB,EAAcp3a,YACzGsia,QAASA,KAWX,YARmBpjb,IAAf4vb,GACFjJ,EAASn6a,aAAaska,GAAuC8e,GAG3DxtY,GACFA,EAAOi+F,KAAK,YAAasmS,GAGpBA,EAmCT,SAAS6R,GAAc/0Y,GACrB,IAAI+gR,EAAOg0G,GAAiB/0X,GAE5B,GAAK+gR,EAAL,CAIA,IAAIpiR,EAAS,KAGb,OAFcA,EAASA,EAAO3tB,aAAe,IAEjCsma,2BACHlV,GAAYrhH,GAGdA,GAGT,SAAS+zH,GAAqBD,GAC5B,YAAsBt4b,IAAfs4b,EAA2B,SAAU5qb,GAC1C,OAAOqrb,GAAeT,EAAY5qb,IAChC,SAAUA,GACZ,OAAOA,KEpcX,SAAS,GAAQ/B,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAMzU,SAAS,GAAgBnK,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAMhH,SAAS,GAA2B2N,EAAMpK,GAAQ,GAAIA,IAA2B,WAAlB,GAAQA,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIvD,UAAU,4DAA+D,OAAO,GAAuB2N,GAExR,SAAS,GAAuBA,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI64G,eAAe,6DAAgE,OAAO74G,EAE/J,SAAS,GAAiB24G,GAAS,IAAI2yH,EAAwB,mBAARnuK,IAAqB,IAAIA,SAAQztE,EAA8nB,OAAnnB,GAAmB,SAA0BipH,GAAS,GAAc,OAAVA,IAM7J,SAA2BzjH,GAAM,OAAgE,IAAzD6K,SAAS7N,SAAS0D,KAAKV,GAAIrG,QAAQ,iBANqG,CAAkB8pH,GAAQ,OAAOA,EAAO,GAAqB,mBAAVA,EAAwB,MAAM,IAAItmH,UAAU,sDAAyD,QAAsB,IAAXi5O,EAAwB,CAAE,GAAIA,EAAOtyK,IAAI2/C,GAAQ,OAAO2yH,EAAO53N,IAAIilG,GAAQ2yH,EAAO73N,IAAIklG,EAAO8mB,GAAY,SAASA,IAAY,OAAO,GAAW9mB,EAAOzlH,UAAW,GAAgBjB,MAAMuJ,aAAgK,OAAhJikI,EAAQtuI,UAAYsG,OAAOnG,OAAOqnH,EAAMxnH,UAAW,CAAEqK,YAAa,CAAE5I,MAAO6sI,EAASnhH,YAAY,EAAOk5F,UAAU,EAAMD,cAAc,KAAkB,GAAgBkoB,EAAS9mB,IAAkB,GAAiBA,GAE9uB,SAAS,GAAWD,EAAQj/G,EAAMk/G,GAAqV,OAAzS,GAA/B,KAA4CN,QAAQC,UAAiC,SAAoBI,EAAQj/G,EAAMk/G,GAAS,IAAIt5G,EAAI,CAAC,MAAOA,EAAErL,KAAKG,MAAMkL,EAAG5F,GAAO,IAAsDvI,EAAW,IAA/C6O,SAASnP,KAAKuD,MAAMukH,EAAQr5G,IAA6F,OAAnDs5G,GAAO,GAAgBznH,EAAUynH,EAAMxnH,WAAmBD,GAAsB,GAAWiD,MAAM,KAAMjB,WAErZ,SAAS,KAA8B,GAAuB,oBAAZmlH,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhF8B,QAAQnpH,UAAU8sE,QAAQroE,KAAKyiH,QAAQC,UAAUgC,QAAS,IAAI,iBAAyB,EAAQ,MAAOphH,GAAK,OAAO,GAI/T,SAAS,GAAgBsb,EAAGhS,GAA+G,OAA1G,GAAkB/K,OAAOygH,gBAAkB,SAAyB1jG,EAAGhS,GAAsB,OAAjBgS,EAAE2jG,UAAY31G,EAAUgS,GAAa,GAAgBA,EAAGhS,GAErK,SAAS,GAAgBgS,GAAwJ,OAAnJ,GAAkB/c,OAAOygH,eAAiBzgH,OAAOiH,eAAiB,SAAyB8V,GAAK,OAAOA,EAAE2jG,WAAa1gH,OAAOiH,eAAe8V,IAAc,GAAgBA,GAGxM,IAAIk2a,GAA2B,SAAUjtM,IArBzC,SAAmB3lI,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI1lH,UAAU,sDAAyDylH,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CAAEqK,YAAa,CAAE5I,MAAOklH,EAAUN,UAAU,EAAMD,cAAc,KAAW9/G,OAAOqY,eAAegoG,EAAU,YAAa,CAAEN,UAAU,IAAcO,GAAY,GAAgBD,EAAUC,GAsBpb,CAAU2yU,EAAajtM,GAEvB,IAtBoBvS,EAAeC,EANf/zH,EA4BhBsmI,GAtBgBxS,EAsBMw/M,EAtBSv/M,EAA4B,KAAoC,WAAkC,IAAsC1sO,EAAlCsvL,EAAQ,GAAgBm9C,GAAkB,GAAIC,EAA2B,CAAE,IAAIzrG,EAAY,GAAgBztI,MAAMuJ,YAAaiD,EAAS45G,QAAQC,UAAUy1E,EAAO76L,UAAWwsI,QAAqBjhI,EAASsvL,EAAM55L,MAAMlC,KAAMiB,WAAc,OAAO,GAA2BjB,KAAMwM,KAyB1Z,SAASisb,EAAY14b,GACnB,IAAI6yH,EAEA8lU,EAAWz3b,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,OAYnF,OAVA,GAAgBjB,KAAMy4b,IAEtB7lU,EAAQ64H,EAAO9nP,KAAK3D,KAAMD,IACpBA,QAAUA,EAChB6yH,EAAM1uH,MAAQlE,gBAAgBy4b,EAAcz4b,KAAKuJ,iBAAc,GAAQrK,UAAUqK,YAAYrF,KAI7FsB,OAAOygH,eAAe,GAAuB2M,IAAS5yH,gBAAgBy4b,EAAcz4b,KAAKuJ,iBAAc,GAAQrK,WAC/G0zH,EAAM8lU,SAAWA,EACV9lU,EAGT,OAjDoBzN,EAiDAszU,EAjD4Kjzb,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IAAiBJ,EAyBhP,CAyBf,GAAiB3hH,QC/CjC,SAASm1b,GAAkBx9Z,GACzB,IAAI50B,EAAS,GAab,SAASyC,EAAOioI,GACd,OAAO1qI,EAAOuY,OAAOvY,EAAO3J,QAAQq0I,GAAO,GAAG,IAAM12I,QAAQC,aAAQiD,GA0EtE,MAAO,CACLwoI,EAAG1/H,EACH+d,IA9DF,SAAas0a,GACX,UA1BiBn7b,IAAV09B,GAAuB50B,EAAOnE,OAAS+4B,GA2B5C,OAAOuiZ,GAAoB,IAAI+a,GAAY,yDAI7C,IAAIxnT,EAAO2nT,IAeX,OAb8B,IAA1Bryb,EAAO3J,QAAQq0I,IACjB1qI,EAAOxE,KAAKkvI,GAGTA,EAAK1yI,MAAK,WACb,OAAOyK,EAAOioI,MAIf1yI,KAAK,MAAM,WACV,OAAOyK,EAAOioI,GAAM1yI,KAAK,MAAM,kBAG1B0yI,GA0CP4nT,MA7BF,SAAer8b,GACb,OAAO,IAAIihb,IAAY,SAAUjjb,EAASC,GACxC,IAAIo8I,EAAUtwI,EAAOnE,OAErB,IAAKy0I,EACH,OAAOr8I,GAAQ,GAIjB,IAAIs+b,EAAqBj8b,YAAW,WAC9BL,GAAWA,EAAU,GACvBhC,GAAQ,KAETgC,GAEH+J,EAAO5I,SAAQ,SAAUiW,GAClB4pa,GAAoB5pa,GAAMrV,MAAK,aAC1Bs4I,IACNx1G,aAAay3Z,GACbt+b,GAAQ,MAETC,WC3FX,SAAS,GAAe2Q,EAAK3D,GAAK,OAMlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EANtB,CAAgBA,IAIzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GAJzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAQzI,SAAS,GAA2BmiB,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAW8xN,GAAO,MAAMA,GAAQjnM,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAWiyN,GAAOD,GAAS,EAAMnrM,EAAMorM,GAAQpnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAE39B,SAAS,GAA4BvL,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,SAAS,GAAQhD,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAY3M,SAAS2vb,GAAsBvta,GAC7B,IAAIviB,EAAMhI,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyH,KAAKO,MAC/E+vb,EAAc9za,SAAS,GAAG/iB,OAAOqpB,GAAS,IAE9C,IAAKkpC,MAAMskY,GACT,OAAqB,IAAdA,EAGT,IAAIC,EAAavwb,KAAK3B,MAAM,GAAG5E,OAAOqpB,IAEtC,OAAKkpC,MAAMukY,GAnBa,IAoBfA,EAAahwb,EAcxB,SAASiwb,GAAcC,EAAQC,GAC7B,OAAOD,EAAOC,IAAiBD,EAAOx5b,KAAO,EAO/C,SAAS05b,GAAcF,EAAQC,GAC7B,IAAInwb,EAAMhI,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyH,KAAKO,MACnF,OAAOiwb,GAAcC,EAAQC,GAAgBnwb,EAS/C,SAASqwb,GAAiBH,EAAQ9mb,GAChC,IAAIs8J,EAAat8J,EAAKs8J,WAClB9zK,EAAUwX,EAAKxX,QACfoO,EAAMhI,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyH,KAAKO,MAE/Eswb,EAAoB,GAAc,GAAIJ,GAItCK,EAAkB3+b,GAAWA,EAAQ,wBACrC4+b,EAAmB5+b,GAAWA,EAAQ,eAE1C,GAAI2+b,EAAiB,CAenB,IACIz7Z,EADAC,EAAY,GAA2Bw7Z,EAAgBxyb,OAAOgE,MAAM,MAGxE,IACE,IAAKgzB,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIsN,EAAQ4C,EAAMp9B,MAEd+4b,EAAev+Z,EAAMnwB,MAAM,IAAK,GAChC2ub,EAAgB,GAAeD,EAAc,GAC7CE,EAAaD,EAAc,GAC3BE,EAAaF,EAAc,GAC3B59R,EAAa49R,EAAc,GAE3BX,EAAc9za,SAAS00a,EAAY,IACnC73a,EAAmD,KAAzC2yC,MAAMskY,GAA6B,GAAdA,GAEnC,GAAKa,EAEE,CACL,IACI/3N,EADAC,EAAa,GAA2B83N,EAAW7ub,MAAM,MAG7D,IACE,IAAK+2N,EAAWtyK,MAAOqyK,EAASC,EAAW7yK,KAAKrhC,MAAO,CACrD,IAAI1L,EAAW2/M,EAAOnhO,MAEL,kBAAbwhB,GAEG45I,IAAcA,EAAW/wJ,MAAM,KAAKqT,SAAS,YAIlDk7a,EAAkBp3a,GAAYlZ,EAAM8Y,IAGxC,MAAO+L,GACPi0M,EAAW96N,EAAE6mB,GACb,QACAi0M,EAAWjwM,UArBbyna,EAAkB55b,IAAMsJ,EAAM8Y,GAyBlC,MAAO+L,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,UAEH2na,EACTF,EAAkB55b,IAAMsJ,EAAM8vb,GAAsBU,EAAkBxwb,GAC9C,MAAf0lK,IACT4qR,EAAkB55b,IAAMsJ,EAAM,KAGhC,OAAOswb,EChJT,SAASO,GAAgBh3b,EAASi3b,GAChC,IAAIxzb,EAAStF,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK03b,GAAkB71b,EAAQk3b,YATzE,IAU9BC,EAAa,GAEblyW,EAAQ,SAAevrF,GACzB,OAAO+J,EAAOsyb,MAAMr8b,IAGtB,SAASkC,EAAK2wb,GACZ,IAAI6K,EAAwB,GAa5B,GAXA3K,GAAoBF,GAAU,SAAUz7a,EAAMtI,GAC5C,IAAI8tb,EAAevH,GAA+Bvmb,GAElD,GAAI+tb,GAAcY,EAAYb,GAAe,CAC3C,IAAIx0a,EAAQu1a,GAAwBvmb,EAAMtI,GAC1CxI,EAAQyxb,mBAAmB,oBAAqB6E,EAAcx0a,QAE9Ds1a,EAAsBn4b,KAAK6R,MAIM,IAAjCsmb,EAAsB93b,OACxB,OAAOo7a,GAAoB,IAI7B,IAAI4c,EAAmBjL,GAAeE,EAAS,GAAI6K,GAE/CG,EAAqB,SAA4B95b,GACnDgvb,GAAoB6K,GAAkB,SAAUxmb,EAAMtI,GACpD,IAAIsZ,EAAQu1a,GAAwBvmb,EAAMtI,GAC1CxI,EAAQyxb,mBAAmBh0b,EAAQsxb,GAA+Bvmb,GAAOsZ,OAqB7E,OAAOre,EAAO+d,KAjBI,WAChB,OAAOy1a,EAAY,CACjBh7Z,KAAM8wZ,GAAkBuK,KACvB77b,MAAK,SAAUxC,GAOhB,YAL4B0B,IAAxB1B,EAAS4yK,aAA6B5yK,EAAS4yK,WAAa,KAAO5yK,EAAS4yK,YAAc,MAC5F,IAAe,QAAY,qCAAqCxsK,OAAOpG,EAAS4yK,WAAY,oBAG9FsrR,EAAaX,GAAiBW,EAAYl+b,GACnCA,KACN,SAAU0G,GAEX,MADA43b,EAAmB,iBACb53b,QAIqBlE,MAAK,SAAUiO,GAC5C,OAAOA,KACN,SAAU/J,GACX,GAAIA,aAAiBg2b,GAGnB,OAFA,IAAe,SAAa,iDAC5B4B,EAAmB,kBACZ7c,GAAoB,IAE3B,MAAM/6a,KAKZ,MAAO,CACL/D,KAAMA,EACNqpF,MAAOA,GAIX,SAASoyW,GAAwBvmb,EAAMtI,GACrC,GAAa,UAATA,GAA6B,gBAATA,EAIxB,OAAOrJ,MAAMiD,QAAQ0O,GAAQA,EAAK,QAAKnW,ECvFzC,SAAS,GAAQiuB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAI3M,IAAI,GAAmB,QA8CnBkxb,GAxCoB,WACtB,IAAIx3b,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9EspN,EAAW,GAAc,CAC3BgwO,UAAU,EACVrzb,WAAW,GACVpE,GAEH,MAAO,CACLoB,KAAM,GACNo4J,MAAO,SAAez8G,GACpBA,EAAOp7B,GAAG,mBAAmB,SAAUG,EAAO8/H,GACxC6lE,EAASgwO,SAObtpB,IAAe,WACT1mN,EAASrjN,WACXkF,QAAQmyH,IAAIz3H,KAAKI,UAAU0d,EAAO,KAAM,IAEpC8/H,GAAQl/I,OAAOC,KAAKi/I,GAAMtiJ,QAC5BgK,QAAQmyH,IAAIz3H,KAAKI,UAAUw9I,EAAM,KAAM,MAGzCt4I,QAAQmyH,IAAI35G,GAER8/H,GAAQl/I,OAAOC,KAAKi/I,GAAMtiJ,QAC5BgK,QAAQmyH,IAAImmB,aCVtB81S,GA7BqB,WACvB,IAAIC,EACJ,MAAO,CACLv2b,KALmB,SAMnB2mb,aAAc,SAAsB6P,GAGlC,GAAIA,EAAapvb,KACf,OAAOovb,EAIT,IACE,GAmBR,SAA0BA,EAAcD,GACtC,QAAKA,MAeP,SAA6BC,EAAcD,GACzC,IAAIE,EAAiBD,EAAa36b,QAC9B66b,EAAkBH,EAAc16b,QAEpC,SAAK46b,IAAmBC,OAKpBD,IAAmBC,IAAoBD,GAAkBC,KAIzDD,IAAmBC,MAIlBC,GAAmBH,EAAcD,MAIjCK,GAAkBJ,EAAcD,MAhCjCM,CAAoBL,EAAcD,MAuCxC,SAA+BC,EAAcD,GAC3C,IAAIO,EAAoBC,GAAuBR,GAE3CS,EAAmBD,GAAuBP,GAE9C,SAAKM,IAAsBE,KAIvBF,EAAkB1vb,OAAS4vb,EAAiB5vb,MAAQ0vb,EAAkBr6b,QAAUu6b,EAAiBv6b,UAIhGk6b,GAAmBH,EAAcD,MAIjCK,GAAkBJ,EAAcD,KApDjCU,CAAsBT,EAAcD,IA5B9BW,CAAiBV,EAAcD,GAEjC,OADA,IAAe,QAAY,wEACpB,KAET,MAAOnqB,IAGT,OAAOmqB,EAAgBC,KAgF7B,SAASI,GAAkBJ,EAAcD,GACvC,IAAIY,EAAgBjf,GAAmBse,GACnCY,EAAiBlf,GAAmBqe,GAExC,IAAKY,IAAkBC,EACrB,OAAO,EAIT,GAAID,IAAkBC,IAAmBD,GAAiBC,EACxD,OAAO,EAMT,GAHAD,EAAgBA,GAChBC,EAAiBA,GAEEl5b,SAAWi5b,EAAcj5b,OAC1C,OAAO,EAIT,IAAK,IAAIqF,EAAI,EAAGA,EAAI6zb,EAAel5b,OAAQqF,IAAK,CAE9C,IAAI8zb,EAASD,EAAe7zb,GAExB+zb,EAASH,EAAc5zb,GAE3B,GAAI8zb,EAAO3gb,WAAa4gb,EAAO5gb,UAAY2gb,EAAOE,SAAWD,EAAOC,QAAUF,EAAO9pB,QAAU+pB,EAAO/pB,OAAS8pB,EAAOtwa,WAAauwa,EAAOvwa,SACxI,OAAO,EAIX,OAAO,EAGT,SAAS4va,GAAmBH,EAAcD,GACxC,IAAIiB,EAAqBhB,EAAahjB,YAClCikB,EAAsBlB,EAAc/iB,YAExC,IAAKgkB,IAAuBC,EAC1B,OAAO,EAIT,GAAID,IAAuBC,IAAwBD,GAAsBC,EACvE,OAAO,EAGTD,EAAqBA,EACrBC,EAAsBA,EAEtB,IACE,QAAUD,EAAmB1zb,KAAK,MAAQ2zb,EAAoB3zb,KAAK,KACnE,MAAOsoa,GACP,OAAO,GAIX,SAAS2qB,GAAuBr2a,GAC9B,OAAOA,EAAM0yJ,WAAa1yJ,EAAM0yJ,UAAUlyG,QAAUxgD,EAAM0yJ,UAAUlyG,OAAO,GCpK7E,SAAS,GAAQ15C,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAK3M,ICNIwyb,GDMA,GAAmB,iBAuBnBC,GAlB6B,WAC/B,IAAI/4b,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9E66b,EAAiBh5b,EAAQgwE,MACzBA,OAA2B,IAAnBgpX,EAA4B,EAAIA,EACxCC,EAAwBj5b,EAAQk5b,kBAChCA,OAA8C,IAA1BD,GAA0CA,EAClE,MAAO,CACL73b,KAAM,GACN2mb,aAAc,SAAsBjma,EAAO8/H,EAAM7kG,GAC/C,IACIg7X,EADqBh7X,EAAO3tB,aACeuzZ,eAG/C,OAAOwW,GAA2Br3a,EAAO8/H,EAAM5xE,EAAOkpX,OAFP,IAA1BnhB,EAAmC,IAAMA,MASpE,SAASohB,GAA2Br3a,GAClC,IAAI8/H,EAAOzjJ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC3E6xE,EAAQ7xE,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAC9Cu+b,EAAoB/6b,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAC1Dgob,EAAiBxkb,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAE3D,IAAKinJ,EAAKo0R,oBAAsBlwV,GAAQ87D,EAAKo0R,mBAC3C,OAAOl0Z,EAGT,IAAIs3a,EAAgBx3S,EAAKo0R,kBAAkB50a,MAAQwgJ,EAAKo0R,kBAAkBvva,YAAYrF,KAElFi4b,EAAYC,GAAkB13S,EAAKo0R,kBAAmBkjB,EAAmBvW,GAE7E,GAAI0W,EAAW,CACb,IAAI7rS,EAAW,GAAc,GAAI1rI,EAAM0rI,UAEnC+rS,EAAsB,GAAUF,EAAWrpX,GAS/C,OAPI,GAAcupX,KAGhBhqB,GAAyBgqB,EAAqB,iCAAiC,GAC/E/rS,EAAS4rS,GAAiBG,GAGrB,GAAc,GAAc,GAAIz3a,GAAQ,GAAI,CACjD0rI,SAAUA,IAId,OAAO1rI,EAOT,SAASw3a,GAAkB35b,EAAOu5b,EAAmBvW,GAEnD,IAIE,IAHA,IAAI/6W,EAAa,CAAC,OAAQ,UAAW,QAAS,OAAQ,SAAU,WAAY,aAAc,eAAgB,UACtG4xX,EAAiB,GAEZp5V,EAAK,EAAGq5V,EAAe/2b,OAAOC,KAAKhD,GAAQygG,EAAKq5V,EAAan6b,OAAQ8gG,IAAM,CAClF,IAAIrlG,EAAM0+b,EAAar5V,GAEvB,IAAiC,IAA7Bx4B,EAAW9tE,QAAQiB,GAAvB,CAIA,IAAI8C,EAAQ8B,EAAM5E,GAClBy+b,EAAez+b,GAAO+qF,GAAQjoF,IAA2B,iBAAVA,EAAqB00F,GAAS,GAAGlzF,OAAOxB,GAAQ8kb,GAAkB9kb,GAUnH,GALIq7b,QAAqCv+b,IAAhBgF,EAAM+5b,QAC7BF,EAAeE,MAAQ5zW,GAAQnmF,EAAM+5b,OAAS/5b,EAAM+5b,MAAMv8b,WAAawC,EAAM+5b,OAInD,mBAAjB/5b,EAAMwB,OAGf,IAFA,IAAIw4b,EAAkBh6b,EAAMwB,SAEnBw1H,EAAM,EAAGijU,EAAgBl3b,OAAOC,KAAKg3b,GAAkBhjU,EAAMijU,EAAct6b,OAAQq3H,IAAO,CACjG,IAAIn8G,EAAOo/a,EAAcjjU,GACrBosE,EAAS42P,EAAgBn/a,GAC7Bg/a,EAAeh/a,GAAQsrE,GAAQi9G,GAAUA,EAAO5lM,WAAa4lM,EAIjE,OAAOy2P,EACP,MAAO1rB,GACP,IAAe,SAAa,sDAAuDA,GAGrF,OAAO,KC3GT,IACI+rB,GAAgB,IAAIvxX,QA2CpBwxX,GAzC+B,WACjC,MAAO,CACL14b,KALmB,mBAMnBymb,UAAW,WAETiR,GAA2B9tb,SAAS5O,UAAUe,SAG9C,IAEE6N,SAAS5O,UAAUe,SAAW,WAI5B,IAHA,IAAI48b,EAAmBtqB,GAAoBvya,MACvChB,EAAU29b,GAAc51X,IAAI,YAAqCtpE,IAArBo/b,EAAiCA,EAAmB78b,KAE3Fqd,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGzB,OAAOs+a,GAAyB15b,MAAMlD,EAASwI,IAEjD,MAAOP,MAGXq1J,MAAO,SAAez8G,GACpB88Y,GAAcn7a,IAAIq+B,GAAQ,MCsC5Bi9Y,GAxDJ,WACE,MAAO,CACLC,WAAY,SAAoBl9Y,GAClB,KACNm9Y,UAAUn9Y,IAElBm6X,UAAW,GACXH,UAAW,WACT,OAAO,MAETD,SAAU,GACVM,kBAAmBA,GACnBrB,iBAAkB,SAA0BvhQ,EAAW5yB,GACrD,OAAO,KAAkBm0R,iBAAiBvhQ,EAAW5yB,IAEvDq0R,eAAgB,SAAwBh5a,EAASorB,EAAOu5H,GACtD,OAAO,KAAkBq0R,eAAeh5a,EAASorB,EAAOu5H,IAE1Ds0R,aAAcA,GACdyB,cAAeA,GACf+N,QAASA,GACTD,QAASA,GACT7qX,OAAQA,GACR4qX,SAAUA,GACVD,UAAWA,GACX7+P,WAAY,GACZyzQ,eAAgB,SAAwBjT,GACtC,IAAInqY,EAAS,KAEb,OAAOA,GAAUA,EAAOq9Y,qBAAqBlT,EAAYhnb,KAAO,MAElE6lb,aAAcA,GACdU,WAAYA,GACZI,eAAgB,SAAwBl9Y,GAEtC,GAAIA,EACF,OAAO88Y,KAyBf,IACMroY,EAEArB,EAEA21X,EAJAt0X,EAAQ,KAERrB,EAAS,KAET21X,EAAUt0X,EAAMooY,aAEhBzpY,GAAU21X,GACZ31X,EAAO8pY,eAAenU,MClF1B,SAAS,GAAmBpqa,GAAO,OAQnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAItF,SAAqCmX,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ/M,CAA4BtnN,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAUlI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAOhL,IAAIyua,GAAwB,CAAC,oBAAqB,gDAAiD,kEACnG,wCACA,gDACA,qDACA,gHACA,iDAII,GAAmB,iBAgBnBC,GAd6B,WAC/B,IAAIt6b,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAClF,MAAO,CACLiD,KAAM,GACN2mb,aAAc,SAAsBjma,EAAOy4a,EAAOx9Y,GAChD,IAAIy9Y,EAAgBz9Y,EAAO3tB,aAI3B,OAAO,GAAiBtN,EAFJ24a,GAAcz6b,EAASw6b,IAEK,KAAO14a,KAO7D,SAAS24a,KACP,IAAIC,EAAkBv8b,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GACtFq8b,EAAgBr8b,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GACxF,MAAO,CACLw8b,UAAW,GAAGt7b,OAAO,GAAmBq7b,EAAgBC,WAAa,IAAK,GAAmBH,EAAcG,WAAa,KACxHC,SAAU,GAAGv7b,OAAO,GAAmBq7b,EAAgBE,UAAY,IAAK,GAAmBJ,EAAcI,UAAY,KACrHC,aAAc,GAAGx7b,OAAO,GAAmBq7b,EAAgBG,cAAgB,IAAK,GAAmBL,EAAcK,cAAgB,IAAK,GAAmBH,EAAgBI,qBAAuB,GAAKT,KACrMU,mBAAoB,GAAG17b,OAAO,GAAmBq7b,EAAgBK,oBAAsB,IAAK,GAAmBP,EAAcO,oBAAsB,KACnJC,oBAAmDrgc,IAAnC+/b,EAAgBM,gBAA+BN,EAAgBM,gBAInF,SAAS,GAAiBl5a,EAAO9hB,GAC/B,OAAIA,EAAQg7b,gBAuGd,SAAwBl5a,GACtB,IAEE,MAA0C,gBAAnCA,EAAM0yJ,UAAUlyG,OAAO,GAAG95D,KACjC,MAAOrE,IAGT,OAAO,EA9GuB82b,CAAen5a,IAC3C,IAAe,QAAY,6DAA6DziB,OAAOwxa,GAAoB/uZ,MAC5G,GA+BX,SAAyBA,EAAO+4a,GAE9B,QAAI/4a,EAAMtZ,OAASqyb,IAAiBA,EAAav7b,SAwCnD,SAAmCwiB,GACjC,IAMIo5a,EANAC,EAAmB,GAEnBr5a,EAAM7kB,SACRk+b,EAAiBl8b,KAAK6iB,EAAM7kB,SAK9B,IAEEi+b,EAAgBp5a,EAAM0yJ,UAAUlyG,OAAOxgD,EAAM0yJ,UAAUlyG,OAAOhjE,OAAS,GACvE,MAAO6E,IAaT,OAVI+2b,GACEA,EAAcr9b,QAChBs9b,EAAiBl8b,KAAKi8b,EAAcr9b,OAEhCq9b,EAAc1yb,MAChB2yb,EAAiBl8b,KAAK,GAAGI,OAAO67b,EAAc1yb,KAAM,MAAMnJ,OAAO67b,EAAcr9b,SAK9Es9b,EA7DAC,CAA0Bt5a,GAAOxK,MAAK,SAAUra,GACrD,OAAOiya,GAAyBjya,EAAS49b,MAnCvCQ,CAAgBv5a,EAAO9hB,EAAQ66b,eACjC,IAAe,QAAY,wEAAwEx7b,OAAOwxa,GAAoB/uZ,MACvH,GAyIX,SAAyBA,GACvB,OAAIA,EAAMtZ,UAMLsZ,EAAM0yJ,YAAc1yJ,EAAM0yJ,UAAUlyG,QAA4C,IAAlCxgD,EAAM0yJ,UAAUlyG,OAAOhjE,WAKvEwiB,EAAM7kB,UACN6kB,EAAM0yJ,UAAUlyG,OAAOhrD,MAAK,SAAUzZ,GACrC,OAAOA,EAAM07a,YAAc17a,EAAM2K,MAAuB,UAAf3K,EAAM2K,MAAoB3K,EAAMA,WApJzEy9b,CAAgBx5a,IAClB,IAAe,QAAY,uFAAuFziB,OAAOwxa,GAAoB/uZ,MACtI,GAgCX,SAA+BA,EAAOi5a,GACpC,GAAmB,gBAAfj5a,EAAMtZ,OAA2Buyb,IAAuBA,EAAmBz7b,OAC7E,OAAO,EAGT,IAAI8B,EAAO0gB,EAAMgga,YACjB,QAAO1gb,GAAO8ta,GAAyB9ta,EAAM25b,GAnCzCQ,CAAsBz5a,EAAO9hB,EAAQ+6b,qBACvC,IAAe,QAAY,8EAA8E17b,OAAOwxa,GAAoB/uZ,MAC7H,GAoCX,SAAsBA,EAAO84a,GAE3B,IAAKA,IAAaA,EAASt7b,OACzB,OAAO,EAGT,IAAIzG,EAAM2ic,GAAmB15a,GAE7B,QAAQjpB,GAAcq2a,GAAyBr2a,EAAK+hc,GAzChDa,CAAa35a,EAAO9hB,EAAQ46b,WAC9B,IAAe,QAAY,oEAAoEv7b,OAAOwxa,GAAoB/uZ,GAAQ,YAAYziB,OAAOm8b,GAAmB15a,MACjK,IA0CX,SAAuBA,EAAO64a,GAE5B,IAAKA,IAAcA,EAAUr7b,OAC3B,OAAO,EAGT,IAAIzG,EAAM2ic,GAAmB15a,GAE7B,OAAQjpB,GAAaq2a,GAAyBr2a,EAAK8hc,GA/C9Ce,CAAc55a,EAAO9hB,EAAQ26b,aAChC,IAAe,QAAY,yEAAyEt7b,OAAOwxa,GAAoB/uZ,GAAQ,YAAYziB,OAAOm8b,GAAmB15a,MACtK,GAoGX,SAAS05a,GAAmB15a,GAC1B,IACE,IAAIsyC,EAEJ,IAEEA,EAAStyC,EAAM0yJ,UAAUlyG,OAAO,GAAGi3W,WAAWnlX,OAC9C,MAAOjwD,IAGT,OAAOiwD,EAxBX,WAGE,IAFA,IAAIA,EAASj2D,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAExEwG,EAAIyvD,EAAO90D,OAAS,EAAGqF,GAAK,EAAGA,IAAK,CAC3C,IAAIyrR,EAAQh8N,EAAOzvD,GAEnB,GAAIyrR,GAA4B,gBAAnBA,EAAMt4Q,UAAiD,kBAAnBs4Q,EAAMt4Q,SACrD,OAAOs4Q,EAAMt4Q,UAAY,KAI7B,OAAO,KAaW6jb,CAAiBvnY,GAAU,KAC3C,MAAO05W,GAEP,OADA,IAAe,SAAa,gCAAgCzua,OAAOwxa,GAAoB/uZ,KAChF,MCrMX,SAAS,GAAQ8G,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAI9U,SAAS,GAAgB2D,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAM3M,SAASs1b,GAAmBvQ,GAC1B,IAAIjkb,EAAWikb,EAAIjkb,SAAW,GAAG/H,OAAOgsb,EAAIjkb,SAAU,KAAO,GACzDK,EAAO4jb,EAAI5jb,KAAO,IAAIpI,OAAOgsb,EAAI5jb,MAAQ,GAC7C,MAAO,GAAGpI,OAAO+H,EAAU,MAAM/H,OAAOgsb,EAAIhkb,MAAMhI,OAAOoI,GAAMpI,OAAOgsb,EAAI9lb,KAAO,IAAIlG,OAAOgsb,EAAI9lb,MAAQ,GAAI,SA4B9G,SAASs2b,GAAsCxQ,EAAKgE,EAAQD,GAC1D,OAAOC,GAAkB,GAAGhwb,OAxB9B,SAA4Bgsb,GAC1B,MAAO,GAAGhsb,OAAOu8b,GAAmBvQ,IAAMhsb,OAAOgsb,EAAIG,UAAW,cAuB7BsQ,CAAmBzQ,GAAM,KAAKhsb,OAlBnE,SAAsBgsb,EAAK+D,GACzB,O9D+EiBxma,E8DtGnB,SAAuB1mB,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAuB9d,CAAc,CAG7B65b,WAAY1Q,EAAIjK,UAChB4a,eAtBqB,KAuBpB5M,GAAW,CACZ6M,cAAe,GAAG58b,OAAO+vb,EAAQhub,KAAM,KAAK/B,OAAO+vb,EAAQxmb,W9D0EtDlG,OAAOC,KAAKimB,GAAQzQ,KAAI,SAAUpd,GACvC,MAAO,GAAGsE,OAAO7G,mBAAmBuC,GAAM,KAAKsE,OAAO7G,mBAAmBowB,EAAO7tB,QAC/EmK,KAAK,KAHV,IAAmB0jB,E8D9DuDsza,CAAa7Q,EAAK+D,IAK5F,SAAS+M,GAAwBC,EAASC,GACxC,IAAIhR,EAAMY,GAAQmQ,GAElB,IAAK/Q,EACH,MAAO,GAGT,IAAIvsB,EAAW,GAAGz/Z,OAAOu8b,GAAmBvQ,GAAM,qBAC9CiR,EAAiB,OAAOj9b,OAAO+rb,GAAYC,IAE/C,IAAK,IAAItwb,KAAOshc,EACd,GAAY,QAARthc,GAIQ,YAARA,EAIJ,GAAY,SAARA,EAAgB,CAClB,IAAImvL,EAAOmyQ,EAAcnyQ,KAEzB,IAAKA,EACH,SAGEA,EAAK9oL,OACPk7b,GAAkB,SAASj9b,OAAO7G,mBAAmB0xL,EAAK9oL,QAGxD8oL,EAAKl4D,QACPsqU,GAAkB,UAAUj9b,OAAO7G,mBAAmB0xL,EAAKl4D,cAG7DsqU,GAAkB,IAAIj9b,OAAO7G,mBAAmBuC,GAAM,KAAKsE,OAAO7G,mBAAmB6jc,EAActhc,KAIvG,MAAO,GAAGsE,OAAOy/Z,EAAU,KAAKz/Z,OAAOi9b,GCrFzC,SAAS,GAAmBh0b,GAAO,OAMnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAN1C,CAAmBA,IAI7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GAJjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAQlI,SAAS,GAAegL,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAIzI,SAAS,GAA4BmiB,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAQhL,SAAS,GAAmBnB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQp6N,EAAK8vB,GAAO,IAAM,IAAI+P,EAAOnQ,EAAI1vB,GAAK8vB,GAAUhtB,EAAQ+8B,EAAK/8B,MAAS,MAAO8B,GAAwB,YAAfhI,EAAOgI,GAAsBi7B,EAAK7P,KAAQrzB,EAAQmG,GAAiBpG,QAAQC,QAAQmG,GAAOpC,KAAKy5N,EAAOC,GAE7P,SAAS,GAAkBh1N,GAAM,OAAO,WAAc,IAAI8K,EAAO/N,KAAMwH,EAAOvG,UAAW,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAAU,IAAI8yB,EAAMtqB,EAAGf,MAAM6L,EAAMvG,GAAO,SAASwwN,EAAMr3N,GAAS,GAAmB4sB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,OAAQt3N,GAAU,SAASs3N,EAAOnqM,GAAO,GAAmBP,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,QAASnqM,GAAQkqM,OAAMv6N,OAEjX,SAAS,GAAQiuB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAU3M,SAASi2b,GAAkBjjR,EAAK34G,GAC9B,IAAI7+C,EASJ,OARA2qa,GAAoBnzQ,GAAK,SAAUxoK,EAAMtI,GAMvC,OALIm4D,EAAMplD,SAAS/S,KACjBsZ,EAAQ3iB,MAAMiD,QAAQ0O,GAAQA,EAAK,QAAKnW,KAIjCmnB,KAEJA,EA8CT,SAAS06a,GAAYjQ,EAAUlB,GAC7B,OAAOgB,GAAehB,EAAM,GAAc,GAAc,GAAIkB,EAAS,IAAK,GAAI,CAC5ElB,IAAKA,IACFkB,EAAS,GAAIA,EAAS,IAO7B,SAASkQ,GAAyBzF,EAAiB7iV,GACjD,OAAO,SAAUn0G,GACf,IAAI08b,EAAoB1F,EAAgBh3b,GACpC28b,EAAkB,IAAIv0X,IAE1B,SAASw0X,EAAavR,EAAKrnZ,GAGzB,IAAIjpC,EAAMipC,EAAU,GAAG3kC,OAAOgsb,EAAK,KAAKhsb,OAAO2kC,GAAWqnZ,EACtDlgR,EAAYwxR,EAAgBh+a,IAAI5jB,GAEpC,IAAKowK,EAAW,CACd,IAAI0xR,EAAepR,GAAcJ,GAEjC,IAAKwR,EACH,OAGF,IAAIhkc,EAAMgjc,GAAsCgB,EAAc78b,EAAQqvb,QACtElkR,EAAYnnI,EApEpB,SAAsCgzZ,EAAiBhzZ,GACrD,OAAO,SAAUhkC,GACf,IAGQ88b,EAHJ3xR,EAAY6rR,EAAgBh3b,GAChC,OAAO,GAAc,GAAc,GAAImrK,GAAY,GAAI,CACrDvvK,MACMkhc,EAAQ,GAAgC,SAAyB,SAASvjO,EAAQgzN,GACpF,IAAIzqa,EACJ,OAAO,SAAyB,SAAkBypI,GAChD,OACE,OAAQA,EAASj9G,KAAOi9G,EAAStgI,MAC/B,KAAK,EAOH,OANAnJ,EAAQy6a,GAAkBhQ,EAAU,CAAC,QAAS,cAAe,UAAW,oBAGtEzqa,EAAMkiB,QAAUA,GAGXunH,EAAS6mB,OAAO,SAAUjH,EAAUvvK,KAAK2wb,IAElD,KAAK,EACL,IAAK,MACH,OAAOhhS,EAAS79I,UAGrB6rN,OAGL,SAAciC,GACZ,OAAOshO,EAAM19b,MAAMlC,KAAMiB,gBAwCL4+b,CAA6B/F,EAAiBhzZ,EAA9C+4Z,CAAuD,GAAc,GAAc,GAAI/8b,GAAU,GAAI,CACzHnH,IAAKA,KACDm+b,EAAgB,GAAc,GAAc,GAAIh3b,GAAU,GAAI,CAClEnH,IAAKA,KAEP8jc,EAAgBj+a,IAAI3jB,EAAKowK,GAG3B,MAAO,CAACkgR,EAAKlgR,GAOf,SAAS6xR,IA+CP,OA9CAA,EAAS,GAAgC,SAAyB,SAAShiO,EAASuxN,GAClF,IAAcljR,EAAY4zR,EAAwBv+S,EAClD,OAAO,SAAyB,SAAmBu8E,GACjD,OACE,OAAQA,EAAU3sL,KAAO2sL,EAAUhwM,MACjC,KAAK,EAsBH,OAhBAo+I,EAAal1D,EAAQ,CACnBo4U,SAAUA,EACV2Q,SAPS,SAAmBv8X,GAC5B,IAAIw8X,EAAax8X,GAASA,EAAMrhE,OAASqhE,EAAQ,CAAC,SAClD,OAAO47X,GAAkBhQ,EAAU4Q,MAMlChlb,KAAI,SAAUzO,GACf,MAAsB,iBAAXA,EACFkzb,EAAalzb,OAAQ/O,GAErBiic,EAAalzb,EAAO2hb,IAAK3hb,EAAOs6B,YAExCphC,QAAO,SAAU4I,GAClB,QAASA,KAIXyxb,EAAyB5zR,EAAW/pK,OAAS+pK,EAAa,CAAC,CAAC,GAAIqzR,IAChEzhO,EAAUhwM,KAAO,EACVxzB,QAAQoF,IAAIogc,EAAuB9kb,KAAI,SAAU5I,GACtD,IAAIsB,EAAQ,GAAetB,EAAM,GAC7B87a,EAAMx6a,EAAM,GAGhB,OAFgBA,EAAM,GAELjV,KAAK4gc,GAAYjQ,EAAUlB,QAGhD,KAAK,EAEH,OADA3sS,EAAUu8E,EAAUhpD,KACbgpD,EAAU7oD,OAAO,SAAU1zB,EAAQ,IAE5C,KAAK,EACL,IAAK,MACH,OAAOu8E,EAAUvtN,UAGtBstN,OAEEgiO,EAAO59b,MAAMlC,KAAMiB,WAO5B,SAASwnb,IA0BP,OAzBAA,EAAS,GAAgC,SAAyB,SAAStqN,EAAS3hO,GAClF,IAAI0jc,EAAe1+S,EACnB,OAAO,SAAyB,SAAmB48E,GACjD,OACE,OAAQA,EAAUhtL,KAAOgtL,EAAUrwM,MACjC,KAAK,EAGH,OAFAmya,EAAgB,GAAG/9b,OAAO,GAAmBs9b,EAAgBr6X,UAAW,CAACo6X,IACzEphO,EAAUrwM,KAAO,EACVxzB,QAAQoF,IAAIugc,EAAcjlb,KAAI,SAAUgzJ,GAC7C,OAAOA,EAAUlmF,MAAMvrF,OAG3B,KAAK,EAEH,OADAglJ,EAAU48E,EAAUrpD,KACbqpD,EAAUlpD,OAAO,SAAU1zB,EAAQpgH,OAAM,SAAU9xB,GACxD,OAAOA,MAGX,KAAK,EACL,IAAK,MACH,OAAO8uN,EAAU5tN,UAGtB2tN,OAEEsqN,EAAOvmb,MAAMlC,KAAMiB,WAG5B,MAAO,CACLvC,KAxFF,SAAc48O,GACZ,OAAOwkN,EAAO59b,MAAMlC,KAAMiB,YAwF1B8mF,MAnCF,SAAewzJ,GACb,OAAOktM,EAAOvmb,MAAMlC,KAAMiB,cC/LhC,SAAS,GAA2BshB,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAE9K,SAAqCz+G,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAF1H,CAA4BnwM,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAIz9B,SAAS,GAAkB1iB,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAMhL,IAAIyxa,GAAsB,IAAIj1X,IAG1Bk1X,GAAe,IAAIj1X,IA+CvB,SAASk1X,GAAkB15b,EAAQiU,GAEjC,OA/CF,SAAuCjU,GACrC,GAAK4oa,GAAW+wB,sBAIhB,IAAK,IAAIp9V,EAAK,EAAGq5V,EAAe/2b,OAAOC,KAAK8pa,GAAW+wB,uBAAwBp9V,EAAKq5V,EAAan6b,OAAQ8gG,IAAM,CAC7G,IAAI1+F,EAAQ+3b,EAAar5V,GACrBhjE,EAAWqvY,GAAW+wB,sBAAsB97b,GAEhD,IAAI47b,GAAar5X,IAAIviE,GAArB,CAKA47b,GAAa97a,IAAI9f,GACjB,IAGIu5B,EADAC,EAAY,GAFHr3B,EAAOnC,GAE8Byd,WAGlD,IACE,IAAK+b,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIqlQ,EAAQn1P,EAAMp9B,MAElB,GAAIuyR,EAAMt4Q,SAAU,CAElBulb,GAAoB3+a,IAAI0xQ,EAAMt4Q,SAAUslB,GACxC,QAGJ,MAAOpS,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,OAadyua,CAA8B55b,GACvBw5b,GAAoB1+a,IAAI7G,GASjC,SAAS4lb,GAAyB75b,EAAQie,GACxC,IAEEA,EAAM0yJ,UAAUlyG,OAAOznE,SAAQ,SAAU25K,GACvC,GAAKA,EAAU+kQ,WAAf,CAIA,IACIv6M,EADAC,EAAa,GAA2BzqD,EAAU+kQ,WAAWnlX,QAAU,IAG3E,IACE,IAAK6qK,EAAWtyK,MAAOqyK,EAASC,EAAW7yK,KAAKrhC,MAAO,CACrD,IAAIqlQ,EAAQpxD,EAAOnhO,MAEnB,GAAKuyR,EAAMt4Q,WAAYs4Q,EAAMutK,gBAA7B,CAIA,IAAIvga,EAAWmga,GAAkB15b,EAAQusR,EAAMt4Q,UAE3CslB,IACFgzP,EAAMutK,gBAAkBvga,KAG5B,MAAOpS,GACPi0M,EAAW96N,EAAE6mB,GACb,QACAi0M,EAAWjwM,SAGf,MAAOpgB,KAQX,SAASgvb,GAA6B97a,GACpC,IAEEA,EAAM0yJ,UAAUlyG,OAAOznE,SAAQ,SAAU25K,GACvC,GAAKA,EAAU+kQ,WAAf,CAIA,IACIx9K,EADAD,EAAa,GAA2BtnF,EAAU+kQ,WAAWnlX,QAAU,IAG3E,IACE,IAAK0nM,EAAWnvM,MAAOovM,EAASD,EAAW1vM,KAAKrhC,aAClCgxO,EAAOl+P,MACN8/b,gBAEf,MAAO3ya,GACP8wO,EAAW33P,EAAE6mB,GACb,QACA8wO,EAAW9sO,SAGf,MAAOpgB,KCvHX,IAAIivb,GAA8C,WAChD,MAAO,CACLz8b,KAAM,iBACNo4J,MAAO,SAAez8G,GAEpBA,EAAOp7B,GAAG,kBAAkB,SAAU4qa,GACpCE,GAAoBF,GAAU,SAAUz7a,EAAMtI,GAC5C,GAAa,UAATA,EAAkB,CACpB,IAAIsZ,EAAQ3iB,MAAMiD,QAAQ0O,GAAQA,EAAK,QAAKnW,EAExCmnB,IACF87a,GAA6B97a,GAC7BhR,EAAK,GAAKgR,UAKlBi7B,EAAOp7B,GAAG,sBAAsB,SAAUG,GAEpCA,EAAMtZ,MAKVk1b,GADkB3gZ,EAAO3tB,aAAa4pZ,YACAl3Z,SC5B9C,SAASg8a,GAAaC,GACpB,IAAK,IAAIxjb,EAAOpc,UAAUmB,OAAQgjE,EAAS,IAAInjE,MAAMob,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IACpG8nD,EAAO9nD,EAAO,GAAKrc,UAAUqc,GAG/B,IAAIwjb,EAAY,IAAI/oY,OAAOA,OAAO+8E,IAAI5yI,MAAM61D,OAAQ,CAAC8oY,GAAS1+b,OAAOijE,KAGrE,OAFA07X,EAAUC,2BAA6BF,EAAQ74b,KAAK,MAAQrF,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAC/Fm+b,EAAUE,2BAA6B57X,EAChC07X,ECQT,SAASG,GAAer5b,EAAOs5b,GAI7B,IAFA,IAAI9hP,EAAK,EAEA33M,EAAIG,EAAMxF,OAAS,EAAGqF,GAAK,EAAGA,IAAK,CAC1C,IAAI8+B,EAAO3+B,EAAMH,GAEJ,MAAT8+B,EACF3+B,EAAMkX,OAAOrX,EAAG,GACE,OAAT8+B,GACT3+B,EAAMkX,OAAOrX,EAAG,GAChB23M,KACSA,IACTx3M,EAAMkX,OAAOrX,EAAG,GAChB23M,KAKJ,GAAI8hP,EACF,KAAO9hP,IAAMA,EACXx3M,EAAMjG,QAAQ,MAIlB,OAAOiG,EAKT,IAAIu5b,GAAc,yEAelB,SAAS3mc,KAIP,IAHA,IAAI4mc,EAAe,GACfC,GAAmB,EAEd55b,EAAIxG,UAAUmB,OAAS,EAAGqF,IAAM,IAAM45b,EAAkB55b,IAAK,CACpE,IAAIY,EAAOZ,GAAK,EAAIA,EAAI,GAAKxG,UAAUmB,QAAUqF,OAAIhK,EAAYwD,UAAUwG,GAAK,IAE3EY,IAIL+4b,EAAe,GAAGj/b,OAAOkG,EAAM,KAAKlG,OAAOi/b,GAC3CC,EAAsC,MAAnBh5b,EAAKoC,OAAO,IASjC,OAHA22b,EAAeH,GAAeG,EAAap2b,MAAM,KAAKtF,QAAO,SAAU6K,GACrE,QAASA,MACN8wb,GAAkBr5b,KAAK,MACpBq5b,EAAmB,IAAM,IAAMD,GAAgB,IAKzD,SAASp6b,GAAKoE,GAGZ,IAFA,IAAI4W,EAAQ,EAELA,EAAQ5W,EAAIhJ,QACE,KAAfgJ,EAAI4W,GADiBA,KAQ3B,IAFA,IAAIyqB,EAAMrhC,EAAIhJ,OAAS,EAEhBqqC,GAAO,GACK,KAAbrhC,EAAIqhC,GADOA,KAMjB,OAAIzqB,EAAQyqB,EACH,GAGFrhC,EAAIjG,MAAM6c,EAAOyqB,EAAMzqB,EAAQ,GCrHxC,SAAS,GAAQ0J,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAI3M,IAAI,GAAmB,gBAKnBk4b,GAA6C,WAC/C,IAAIx+b,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9EqR,EAAOxP,EAAQwP,KACfojF,EAAS5yF,EAAQ4yF,QAAU,UAC3Bx2E,EAAY,WAAYqwZ,SAAoC9xa,IAAtB8xa,GAAW7ka,OACjD45D,EAAWxhE,EAAQwhE,UAAYi9X,GAAiB,CAClDrib,UAAWA,EACX5M,KAAMA,EACNojF,OAAQA,IAIV,SAAS8rW,EAAwB58a,GAC/B,IACE,OAAO,GAAc,GAAc,GAAIA,GAAQ,GAAI,CACjD0yJ,UAAW,GAAc,GAAc,GAAI1yJ,EAAM0yJ,WAAY,GAAI,CAG/DlyG,OAAQxgD,EAAM0yJ,UAAUlyG,OAAOnqD,KAAI,SAAUta,GAC3C,OAAO,GAAc,GAAc,GAAIA,GAAQA,EAAM07a,YAAc,CACjEA,WAAYolB,EAAmB9gc,EAAM07a,qBAK7C,MAAO/L,GACP,OAAO1rZ,GAMX,SAAS68a,EAAmBplB,GAC1B,OAAO,GAAc,GAAc,GAAIA,GAAa,GAAI,CACtDnlX,OAAQmlX,GAAcA,EAAWnlX,QAAUmlX,EAAWnlX,OAAOj8C,KAAI,SAAU6W,GACzE,OAAOwyC,EAASxyC,QAKtB,MAAO,CACL5tB,KAAM,GACN2mb,aAAc,SAAsBttR,GAClC,IAAImkS,EAAiBnkS,EAMrB,OAJIA,EAAc+Z,WAAar1K,MAAMiD,QAAQq4J,EAAc+Z,UAAUlyG,UACnEs8X,EAAiBF,EAAwBE,IAGpCA,KAQb,SAASH,GAAiBlvb,GACxB,IAAI6M,EAAY7M,EAAK6M,UACjB5M,EAAOD,EAAKC,KACZojF,EAASrjF,EAAKqjF,OAClB,OAAO,SAAUw9L,GACf,IAAKA,EAAMt4Q,SACT,OAAOs4Q,EAIT,IAAIyuK,EAAiB,eAAez4b,KAAKgqR,EAAMt4Q,WAC/Cs4Q,EAAMt4Q,SAASyD,SAAS,QAAU60Q,EAAMt4Q,SAASyD,SAAS,KAEtDujb,EAAkB,MAAM14b,KAAKgqR,EAAMt4Q,UAEvC,GAAIsE,GACF,GAAI5M,EAAM,CACR,IAAIuvb,EAAc3uK,EAAMt4Q,SAEU,IAA9Binb,EAAYjlc,QAAQ0V,KACtB4gR,EAAMt4Q,SAAWinb,EAAYl/b,QAAQ2P,EAAMojF,UAI/C,GAAIisW,GAAkBC,EAAiB,CACrC,IAAIhnb,EAAW+mb,EAAiBzuK,EAAMt4Q,SAASjY,QAAQ,aAAc,IACpEA,QAAQ,MAAO,KACduwR,EAAMt4Q,SACJoP,EAAO1X,ED0BnB,SAAkBuc,EAAMkd,GAEtBld,EAAOr0B,GAAQq0B,GAAM1pB,MAAM,GAC3B4mC,EAAKvxC,GAAQuxC,GAAI5mC,MAAM,GAQvB,IALA,IAAI28b,EAAY96b,GAAK6nB,EAAK7jB,MAAM,MAC5ButP,EAAUvxP,GAAK+kC,EAAG/gC,MAAM,MACxB5I,EAASmM,KAAKM,IAAIizb,EAAU1/b,OAAQm2P,EAAQn2P,QAC5C2/b,EAAkB3/b,EAEbqF,EAAI,EAAGA,EAAIrF,EAAQqF,IAC1B,GAAIq6b,EAAUr6b,KAAO8wP,EAAQ9wP,GAAI,CAC/Bs6b,EAAkBt6b,EAClB,MAMJ,IAFA,IAAIu6b,EAAc,GAET9+V,EAAK6+V,EAAiB7+V,EAAK4+V,EAAU1/b,OAAQ8gG,IACpD8+V,EAAYjgc,KAAK,MAInB,OADAigc,EAAcA,EAAY7/b,OAAOo2P,EAAQpzP,MAAM48b,KAC5B/5b,KAAK,KCnDA4lJ,CAASt7I,EAAMsI,GDqHzC,SAAkBvS,EAAM43O,GACtB,IAAInuN,EA9JN,SAAmBlX,GAGjB,IAAIqnb,EAAYrnb,EAASxY,OAAS,KAAO,cAAcD,OAAOyY,EAASzV,OAAO,OAASyV,EACnFhT,EAAQu5b,GAAY5mb,KAAK0nb,GAC7B,OAAOr6b,EAAQA,EAAMzC,MAAM,GAAK,GAyJxB+8b,CAAU75b,GAAM,IAAM,GAM9B,OAAOypB,EC5H4Cqwa,CAASvnb,GACtDs4Q,EAAMt4Q,SAAW,GAAGzY,OAAOuzF,GAAQvzF,OAAO6nB,GAI9C,OAAOkpQ,GCvGX,SAAS,GAAQxnQ,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAI3M,IAsBIg5b,GApB4B,WAC9B,IAAIplU,EAAmC,IAAvB,KAChB,MAAO,CACL94H,KALmB,gBAMnB2mb,aAAc,SAAsBjma,GAClC,IAAIyzM,EAEApvN,EAA6B,IAAvB,KACV,OAAO,GAAc,GAAc,GAAI2b,GAAQ,GAAI,CACjDy/I,MAAO,GAAc,GAAc,GAAIz/I,EAAMy/I,OAAQ,IAAKg0D,EAAiB,GAAI,GAAgBA,EAAgB,gBAAiBr7F,GAAY,GAAgBq7F,EAAgB,mBAAoBpvN,EAAM+zH,GAAY,GAAgBq7F,EAAgB,cAAepvN,GAAMovN,SCN/Q,SAASgqO,GAAYC,EAAax/b,IACV,IAAlBA,EAAQw7H,QACN,GACF,YAGA2yS,IAAe,WAEb7ka,QAAQC,KAAK,oFAKP,KACN8jF,OAAOrtF,EAAQy/b,cACrB,IAAI1iZ,EAAS,IAAIyiZ,EAAYx/b,GAG7B,OAFA0/b,GAAiB3iZ,GACjBA,EAAOirE,OACAjrE,EAOT,SAAS2iZ,GAAiB3iZ,GACxB,KAAkBm9Y,UAAUn9Y,GCvC9B,SAAS,GAAQn0B,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAS3M,IAAIq5b,GAAqD,SAAU3/b,GACjE,MAAO,CACLoB,KAAM,yBACNo4J,MAAO,SAAez8G,GAGpBA,EAAOp7B,GAAG,kBAAkB,SAAU4qa,GACpCE,GAAoBF,GAAU,SAAUz7a,EAAMtI,GAC5C,GAAa,UAATA,EAAkB,CACpB,IAAIsZ,EAAQ3iB,MAAMiD,QAAQ0O,GAAQA,EAAK,QAAKnW,EAExCmnB,IACF87a,GAA6B97a,GAC7BhR,EAAK,GAAKgR,UAKlBi7B,EAAOp7B,GAAG,sBAAsB,SAAUG,GAEpCA,EAAMtZ,MAKVk1b,GADkB3gZ,EAAO3tB,aAAa4pZ,YACAl3Z,OAG1Cima,aAAc,SAAsBjma,GAClC,IAAI89a,EA4BV,SAAgD99a,GAC9C,IAAIsyC,EAASklX,GAAmBx3Z,GAEhC,GAAKsyC,EAIL,OAAOA,EACNxxD,QAAO,SAAUwtR,GAChB,QAASA,EAAMt4Q,YACdK,KAAI,SAAUi4Q,GACf,OAAIA,EAAMutK,gBACDj7b,OAAOC,KAAKytR,EAAMutK,iBAAiB/6b,QAAO,SAAU7H,GACzD,OAAOA,EAAIi2F,WAAW6uW,OACrB1nb,KAAI,SAAUpd,GACf,OAAOA,EAAIsH,MAAMw9b,GAA8Bvgc,WAI5C,MA/CWwgc,CAAuCh+a,GAEvD,GAAI89a,EAAW,CACb,IACIG,EAAmBH,EADiB,8CAAtB5/b,EAAQggc,WAAmF,6CAAtBhgc,EAAQggc,UAA2D,OAAS,UACrH,SAAUr9b,GACtD,OAAQA,EAAK2U,MAAK,SAAUvc,GAC1B,OAAOiF,EAAQigc,WAAW1kb,SAASxgB,SAIvC,GAAIglc,EAAkB,CAGpB,GAFuC,8CAAtB//b,EAAQggc,WAAmF,0DAAtBhgc,EAAQggc,UAG5F,OAAO,KAEPl+a,EAAMynN,KAAO,GAAc,GAAc,GAAIznN,EAAMynN,MAAO,GAAI,CAC5D22N,kBAAkB,KAM1B,OAAOp+a,KA4BT+9a,GAAgC,8BCnFpC,SAAS,GAA4Bpgb,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,SAAS,GAAQhD,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAI3M,IACI,GAAmB,YAWvB,SAAS65b,GAAiBC,GACxB,OAAO,GAAc,GAAc,GAAIA,GAAQ,GAAI,CACjD76b,KAAM,SAAU66b,GAASjhc,MAAMiD,QAAQg+b,EAAM76b,MAAQ66b,EAAM76b,KAAKL,KAAK,UAAOvK,EAC5EgI,KAAM,SAAUy9b,EAAQp8b,KAAKI,UAAUg8b,EAAMz9b,WAAQhI,EACrD0lc,YAAa,gBAAiBD,EAAQp8b,KAAKI,UAAUg8b,EAAMC,kBAAe1lc,IAS9E,SAAS2lc,GAAmBC,GAC1B,IAGItla,EAHAula,EAAc,IAAIn4X,IAElBntC,EA1CN,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,IAA4D,CAAMy+G,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KA0Cv8B,CAA2Bu1a,EAASE,QAGpD,IACE,IAAKvla,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAI21a,EAAMzla,EAAMp9B,MAEZ6ic,EAAIn7b,MAAQm7b,EAAIn7b,KAAK,IACvBi7b,EAAYh/a,IAAIk/a,EAAIn7b,KAAK,KAG7B,MAAOylB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,IAAI2xa,EAAYxhc,MAAM4sB,KAAKy0a,GAC3B,MAAO,4BAA4Bnhc,OAAOkzF,GAASouW,EAAUz7b,KAAK,MAAO,MAO3E,SAAS07b,GAAsBvoa,EAAOvW,EAAO8/H,GAC3C,OAAK9/H,EAAM0yJ,WAAc1yJ,EAAM0yJ,UAAUlyG,QAAWs/E,GAASA,EAAKo0R,mBAlD3DlwV,GAD4BkwV,EAmDiFp0R,EAAKo0R,oBAlDzD,aAA3BA,EAAkB50a,MAAuBjC,MAAMiD,QAAQ4za,EAAkBp0N,SAkD0E,IAAzChgE,EAAKo0R,kBAAkByqB,OAAOnhc,OAItK,GAAc,GAAc,GAAIwiB,GAAQ,GAAI,CACjD0yJ,UAAW,GAAc,GAAc,GAAI1yJ,EAAM0yJ,WAAY,GAAI,CAC/DlyG,OAAQ,CAAC,GAAc,GAAc,GAAIxgD,EAAM0yJ,UAAUlyG,OAAO,IAAK,GAAI,CACvEzkE,MAAOyic,GAAmB1+S,EAAKo0R,sBAC7B32a,QApFkBiJ,EAoFQwZ,EAAM0yJ,UAAUlyG,OAAOjgE,MAAM,GA9EjE,SAA4BiG,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAN1C,CAAmBA,IAI7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GAJjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,OAsF9HikK,MAAO,GAAc,GAAc,GAAIz/I,EAAMy/I,OAAQ,GAAI,CACvD,kBAAmB3f,EAAKo0R,kBAAkBp0N,OAAOv/M,MAAM,EAAGg2B,GAAOlgB,IAAIgob,QAVhEr+a,EA7EX,IAA4BxZ,EAyBS0ta,EAmErC,IAYI6qB,GAZwB,WAC1B,IAAI7gc,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9Ek6B,EAAQr4B,EAAQq4B,OAxEF,GAyElB,MAAO,CACLj3B,KAAM,GACN2mb,aAAc,SAAsBttR,EAAe7Y,GAEjD,OADqBg/S,GAAsBvoa,EAAOoiI,EAAe7Y,MClGvE,SAAS,GAAQh5H,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAI3M,IAAI,GAASmma,GACTq0B,GAAgB,EAKpB,SAASC,KACP,OAAOD,GAAgB,EAOzB,SAASE,KAEPF,KACA/mc,YAAW,WACT+mc,QAcJ,SAAStzW,GAAKrtF,GACZ,IAAIH,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAUlF,GAAkB,mBAAPgC,EACT,OAAOA,EAGT,IAGE,IAAIm8E,EAAUn8E,EAAG8gc,mBAEjB,GAAI3kX,EACF,MAAuB,mBAAZA,EACFA,EAIAn8E,EAKX,GAAIsva,GAAoBtva,GACtB,OAAOA,EAET,MAAOgE,GAIP,OAAOhE,EAMT,IAAI+gc,EAAgB,WAClB,IAAIx8b,EAAOvF,MAAM/C,UAAUiG,MAAMxB,KAAK1C,WAEtC,IAGE,IAAIgjc,EAAmBz8b,EAAKyT,KAAI,SAAU0S,GACxC,OAAO2iE,GAAK3iE,EAAK7qB,MAMnB,OAAOG,EAAGf,MAAMlC,KAAMikc,GACtB,MAAOlwS,GAgBP,MAfA+vS,KACA,IAAU,SAAU5iZ,GAClBA,EAAM0nY,mBAAkB,SAAUhka,GAShC,OARI9hB,EAAQoxa,YACVJ,GAAsBlvZ,OAAOnnB,OAAWA,GACxCs2a,GAAsBnvZ,EAAO9hB,EAAQoxa,YAGvCtvZ,EAAMy/I,MAAQ,GAAc,GAAc,GAAIz/I,EAAMy/I,OAAQ,GAAI,CAC9DpjK,UAAWuG,IAENod,KAETi0Z,GAAiB9kR,MAEbA,IAQV,IACE,IAAK,IAAIn2I,KAAY3a,EACfuC,OAAOtG,UAAU0N,eAAejJ,KAAKV,EAAI2a,KAC3Comb,EAAcpmb,GAAY3a,EAAG2a,IAGjC,MAAO0yZ,IAKT8B,GAAoB4xB,EAAe/gc,GACnCova,GAAyBpva,EAAI,qBAAsB+gc,GAEnD,IACE,IAAI3+U,EAAa7/G,OAAOyqB,yBAAyB+za,EAAe,QAE5D3+U,EAAWC,cACb9/G,OAAOqY,eAAemmb,EAAe,OAAQ,CAC3Cvib,IAAK,WACH,OAAOxe,EAAGiB,QAKhB,MAAOosa,IAET,OAAO0zB,ECrJT,SAAS,GAAe54b,EAAK3D,GAAK,OAMlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EANtB,CAAgBA,IAIzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GAJzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAQzI,SAAS,GAA2BmiB,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAW8xN,GAAO,MAAMA,GAAQjnM,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAWiyN,GAAOD,GAAS,EAAMnrM,EAAMorM,GAAQpnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAE39B,SAAS,GAA4BvL,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,SAAS,GAAQhD,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAI3M,SAAS,GAAkBpE,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAc7S,IAAI6+U,GAAqB,8DAiCrBC,GAA0B,WAiB5B,SAASA,EAAWrhc,GAgBlB,GAlFJ,SAAyB7D,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAmE5G,CAAgBJ,KAAMmkc,GAEtBnkc,KAAKuqN,SAAWznN,EAChB9C,KAAKokc,cAAgB,GACrBpkc,KAAKqkc,eAAiB,EACtBrkc,KAAKskc,UAAY,GACjBtkc,KAAKukc,OAAS,GACdvkc,KAAKq2a,iBAAmB,GAEpBvza,EAAQqrb,IACVnub,KAAKwkc,KAAOzV,GAAQjsb,EAAQqrb,KAE5B,IAAe,QAAY,iDAGzBnub,KAAKwkc,KAAM,CACb,IAAI7oc,EAAMgjc,GAAsC3+b,KAAKwkc,KAAM1hc,EAAQqvb,OAAQrvb,EAAQ2hc,UAAY3hc,EAAQ2hc,UAAU7e,SAAMnob,GACvHuC,KAAK0kc,WAAa5hc,EAAQmrK,UAAU,GAAc,GAAc,CAC9DkkR,OAAQnyb,KAAKuqN,SAAS4nO,OACtBoC,mBAAoBv0b,KAAKu0b,mBAAmB51b,KAAKqB,OAChD8C,EAAQ6hc,kBAAmB,GAAI,CAChChpc,IAAKA,MApFb,IAAsBwpH,EAAaM,EA+zBjC,OA/zBoBN,EA8FPg/U,EA9FoB1+U,EA8FR,CAAC,CACxB5nH,IAAK,mBACL8C,MAAO,SAA0B22K,EAAW5yB,EAAMxjG,GAChD,IAAI0xE,EAAQ5yH,KAERqnO,EAAU,KAEd,GAAI+sM,GAAwB98P,GAE1B,OADA,IAAe,GAAA/4C,IAAW2lU,IACnB78N,EAGT,IAAIu9N,EAAkB,GAAc,CAClChxB,SAAUvsM,GACT3iF,GAMH,OAJA1kJ,KAAK6kc,SAAS7kc,KAAK8kc,mBAAmBxtR,EAAWstR,GAAiBrmc,MAAK,SAAUqmB,GAC/E,OAAOguG,EAAMmyU,cAAcngb,EAAOggb,EAAiB1jZ,OAG9C0jZ,EAAgBhxB,WAMxB,CACD/1a,IAAK,iBACL8C,MAAO,SAAwBZ,EAASorB,EAAOu5H,EAAMokS,GACnD,IAAIhsN,EAAS98N,KAET4kc,EAAkB,GAAc,CAClChxB,SAAU,MACTlvR,GAECsgT,EAAe71B,GAAsBpva,GAAWA,EAAUg4D,OAAOh4D,GACjEklc,EAAgB,GAAYllc,GAAWC,KAAKklc,iBAAiBF,EAAc75a,EAAOy5a,GAAmB5kc,KAAK8kc,mBAAmB/kc,EAAS6kc,GAM1I,OAJA5kc,KAAK6kc,SAASI,EAAc1mc,MAAK,SAAUqmB,GACzC,OAAOk4M,EAAOioO,cAAcngb,EAAOggb,EAAiB9b,OAG/C8b,EAAgBhxB,WAMxB,CACD/1a,IAAK,eACL8C,MAAO,SAAsBikB,EAAO8/H,EAAMokS,GACxC,IAAIzhN,EAAU,KAEd,GAAI3iF,GAAQA,EAAKo0R,mBAAqB1E,GAAwB1vR,EAAKo0R,mBAEjE,OADA,IAAe,GAAAv6S,IAAW2lU,IACnB78N,EAGT,IAAIu9N,EAAkB,GAAc,CAClChxB,SAAUvsM,GACT3iF,GAGCuwS,GADwBrwa,EAAM8zZ,uBAAyB,IACbuc,kBAI9C,OAFAj1b,KAAK6kc,SAAS7kc,KAAK+kc,cAAcngb,EAAOggb,EAAiB3P,GAAqBnM,IAEvE8b,EAAgBhxB,WAMxB,CACD/1a,IAAK,iBACL8C,MAAO,SAAwB60a,GACI,iBAApBA,EAAQ1uY,QACnB,IAAe,QAAY,+DAE3B9mC,KAAKmlc,YAAY3vB,GAEjBD,GAAcC,EAAS,CACrB1qT,MAAM,OAQX,CACDjtH,IAAK,SACL8C,MAAO,WACL,OAAOX,KAAKwkc,OAMb,CACD3mc,IAAK,aACL8C,MAAO,WACL,OAAOX,KAAKuqN,WAQb,CACD1sN,IAAK,iBACL8C,MAAO,WACL,OAAOX,KAAKuqN,SAASk6O,YAMtB,CACD5mc,IAAK,eACL8C,MAAO,WACL,OAAOX,KAAK0kc,aAMb,CACD7mc,IAAK,QACL8C,MAAO,SAAenE,GACpB,IAAIyxK,EAAYjuK,KAAK0kc,WAErB,OAAIz2R,GACFjuK,KAAK89I,KAAK,SACH99I,KAAKolc,wBAAwB5oc,GAAS+B,MAAK,SAAU8mc,GAC1D,OAAOp3R,EAAUlmF,MAAMvrF,GAAS+B,MAAK,SAAU+mc,GAC7C,OAAOD,GAAkBC,SAItB9nB,IAAoB,KAO9B,CACD3/a,IAAK,QACL8C,MAAO,SAAenE,GACpB,IAAIqhO,EAAS79N,KAEb,OAAOA,KAAK+nF,MAAMvrF,GAAS+B,MAAK,SAAUiO,GAKxC,OAJAqxN,EAAO3rM,aAAaiyB,SAAU,EAE9B05K,EAAO//E,KAAK,SAELtxI,OAKV,CACD3O,IAAK,qBACL8C,MAAO,WACL,OAAOX,KAAKq2a,mBAIb,CACDx4a,IAAK,oBACL8C,MAAO,SAA2B4kc,GAChCvlc,KAAKq2a,iBAAiBt0a,KAAKwjc,KAI5B,CACD1nc,IAAK,OACL8C,MAAO,YACDX,KAAKwlc,cAKTxlc,KAAKuqN,SAASg7N,aAAanra,MAAK,SAAU/H,GAExC,OADWA,EAAKnO,KACJ4vF,WAAW,kBAEvB9zF,KAAKylc,uBASR,CACD5nc,IAAK,uBACL8C,MAAO,SAA8B+kc,GACnC,OAAO1lc,KAAKokc,cAAcsB,KAM3B,CACD7nc,IAAK,iBACL8C,MAAO,SAAwBqpb,GAC7B,IAAI2b,EAAqB3lc,KAAKokc,cAAcpa,EAAY9lb,MAExDumb,GAAiBzqb,KAAMgqb,EAAahqb,KAAKokc,eAEpCuB,GACHpb,GAAuBvqb,KAAM,CAACgqb,MAOjC,CACDnsb,IAAK,YACL8C,MAAO,SAAmBikB,GACxB,IAAIs5M,EAASl+N,KAET0kJ,EAAOzjJ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC/EjB,KAAK89I,KAAK,kBAAmBl5H,EAAO8/H,GACpC,IAGI3mH,EAHAq+I,EAAMi2Q,GAAoBzta,EAAO5kB,KAAKwkc,KAAMxkc,KAAKuqN,SAASk6O,UAAWzkc,KAAKuqN,SAAS4nO,QAEnFn0Z,EAAY,GAA2B0mH,EAAK8zR,aAAe,IAG/D,IACE,IAAKx6Y,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIu0Y,EAAarkY,EAAMp9B,MACvBy7K,EAAMgzQ,GAAkBhzQ,EAAK60Q,GAA6B7uB,KAE5D,MAAOt0Y,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,IAAIxzB,EAAU0B,KAAKs0b,aAAal4Q,GAE5B99K,GACFA,EAAQC,MAAK,SAAUqnc,GACrB,OAAO1nO,EAAOpgF,KAAK,iBAAkBl5H,EAAOghb,KAC3C,QAON,CACD/nc,IAAK,cACL8C,MAAO,SAAqB60a,GAC1B,IAAIp5P,E7B/UV,SAA+Bo5P,EAAS2Y,EAAKjuZ,EAAUiyZ,GACrD,IAAID,EAAUJ,GAAgC5xZ,GAe9C,OAAOivZ,GAbe,GAAc,GAAc,CAChDiD,SAAS,IAAI1pb,MAAOX,eACnBmqb,GAAW,CACZtM,IAAKsM,MACDC,GAAUhE,GAAO,CACrBA,IAAKD,GAAYC,KAQoB,CALpB,eAAgB3Y,EAAU,CAAC,CAC5Clqa,KAAM,YACLkqa,GAAW,CAAC,CACblqa,KAAM,WACLkqa,EAAQvxa,Y6BgUG4hc,CAAsBrwB,EAASx1a,KAAKwkc,KAAMxkc,KAAKuqN,SAASk6O,UAAWzkc,KAAKuqN,SAAS4nO,QAG3Fnyb,KAAKs0b,aAAal4Q,KAMnB,CACDv+K,IAAK,qBACL8C,MAAO,SAA4BJ,EAAQ4hB,EAAU2jb,GACnD,GAAI9lc,KAAKuqN,SAASw7O,kBAAmB,CAGnC,IAAIhha,EAAgC,iBAAjB+ga,EAA4BA,EAAe,EAO1Djoc,EAAM,GAAGsE,OAAO5B,EAAQ,KAAK4B,OAAOggB,GACxC,IAAe,GAAAo8G,IAAW,uBAAwBp8H,OAAOtE,EAAK,KAAMsE,OAAO4iC,EAAQ,EAAI,KAAK5iC,OAAO4iC,EAAO,WAAa,KACvH/kC,KAAKskc,UAAUzmc,IAAQmC,KAAKskc,UAAUzmc,IAAQ,GAAKknC,KAUtD,CACDlnC,IAAK,KACL8C,MAAO,SAAYguD,EAAMxjD,GACvB,IAAIu1F,EAAQ1gG,KAAKukc,OAAO51Y,GAAQ3uD,KAAKukc,OAAO51Y,IAAS,GAOrD,OALA+xC,EAAM3+F,KAAKoJ,GAKJ,WAEL,IAAI66b,EAAUtlW,EAAM9jG,QAAQuO,GAExB66b,GAAW,GACbtlW,EAAM5hF,OAAOknb,EAAS,MAQ3B,CACDnoc,IAAK,OACL8C,MAAO,SAAcguD,GACnB,IAAK,IAAItxC,EAAOpc,UAAUmB,OAAQ2sF,EAAO,IAAI9sF,MAAMob,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGyxE,EAAKzxE,EAAO,GAAKrc,UAAUqc,GAG7B,IAAIquK,EAAY3rL,KAAKukc,OAAO51Y,GAExBg9H,GACFA,EAAUhuL,SAAQ,SAAUwN,GAC1B,OAAOA,EAASjJ,WAAM,EAAQ6sF,QAQnC,CACDlxF,IAAK,eACL8C,MAAO,SAAsB0ub,GAG3B,OAFArvb,KAAK89I,KAAK,iBAAkBuxS,GAExBrvb,KAAKwlc,cAAgBxlc,KAAK0kc,WACrB1kc,KAAK0kc,WAAWhmc,KAAK2wb,GAAU9wb,KAAK,MAAM,SAAUgC,GAEzD,OADA,IAAe,SAAa,gCAAiCA,GACtDA,MAIX,IAAe,SAAa,sBACrBi9a,GAAoB,OAM5B,CACD3/a,IAAK,qBACL8C,MAAO,WACL,IAAI4kb,EAAevlb,KAAKuqN,SAASg7N,aACjCvlb,KAAKokc,c5C5XX,SAA2BvkZ,EAAQ0lY,GACjC,IAAImF,EAAmB,GAOvB,OANAnF,EAAa5nb,SAAQ,SAAUqsb,GAEzBA,GACFS,GAAiB5qY,EAAQmqY,EAAaU,MAGnCA,E4CoXkBub,CAAkBjmc,KAAMulb,GAC7CgF,GAAuBvqb,KAAMulb,KAI9B,CACD1nb,IAAK,0BACL8C,MAAO,SAAiC60a,EAAS5wZ,GAC/C,IAAIshb,GAAU,EACVC,GAAU,EACVphU,EAAangH,EAAM0yJ,WAAa1yJ,EAAM0yJ,UAAUlyG,OAEpD,GAAI2/D,EAAY,CACdohU,GAAU,EAEV,IACIrkO,EADAC,EAAa,GAA2Bh9F,GAG5C,IACE,IAAKg9F,EAAWtyK,MAAOqyK,EAASC,EAAW7yK,KAAKrhC,MAAO,CACrD,IACIqmZ,EADKpyM,EAAOnhO,MACGuza,UAEnB,GAAIA,IAAmC,IAAtBA,EAAUn1R,QAAmB,CAC5CmnT,GAAU,EACV,QAGJ,MAAOp4a,GACPi0M,EAAW96N,EAAE6mB,GACb,QACAi0M,EAAWjwM,KAOf,IAAIs0a,EAAwC,OAAnB5wB,EAAQv5a,QACPmqc,GAAyC,IAAnB5wB,EAAQ9wN,QAAgB0hP,GAAsBF,KAG5F3wB,GAAcC,EAAS,GAAc,GAAc,GAAI0wB,GAAW,CAChEjqc,OAAQ,YACN,GAAI,CACNyoN,OAAQ8wN,EAAQ9wN,QAAUpyJ,OAAO6zY,GAAWD,MAE9Clmc,KAAK2pb,eAAenU,MAcvB,CACD33a,IAAK,0BACL8C,MAAO,SAAiCnE,GACtC,IAAIgiO,EAASx+N,KAEb,OAAO,IAAIy9a,IAAY,SAAUjjb,GAC/B,IAAI6rc,EAAS,EAET5iZ,EAAWs6E,aAAY,WACI,GAAzBygG,EAAO6lO,gBACThwN,cAAc5wL,GACdjpD,GAAQ,KAER6rc,GANO,EAQH7pc,GAAW6pc,GAAU7pc,IACvB63O,cAAc5wL,GACdjpD,GAAQ,OAVH,QAkBd,CACDqD,IAAK,aACL8C,MAAO,WACL,OAAqC,IAA9BX,KAAKkyB,aAAaiyB,cAAyC1mD,IAApBuC,KAAK0kc,aAiBpD,CACD7mc,IAAK,gBACL8C,MAAO,SAAuBikB,EAAO8/H,EAAMokS,GACzC,IAAI7pN,EAASj/N,KAETm5a,EAAiBl4a,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKi5a,KACrFp3a,EAAU9C,KAAKkyB,aACfqzZ,EAAe//a,OAAOC,KAAKzF,KAAKokc,eAYpC,OAVK1/S,EAAK6gS,cAAgBA,EAAanjb,OAAS,IAC9CsiJ,EAAK6gS,aAAeA,GAGtBvlb,KAAK89I,KAAK,kBAAmBl5H,EAAO8/H,GAE/B9/H,EAAMtZ,MACT6ta,EAAemtB,eAAe1hb,EAAMgvZ,UAAYlvR,EAAKkvR,UAGhDqR,GAAanib,EAAS8hB,EAAO8/H,EAAMokS,EAAc9ob,KAAMm5a,GAAgB56a,MAAK,SAAU0yK,GAC3F,GAAY,OAARA,EACF,OAAOA,EAGT,IAAIinQ,EAAqB,GAAc,GAAc,GAAIiB,EAAe2d,yBAA0BhO,EAAeA,EAAagO,6BAA0Br5b,GAIxJ,KAFYwzK,EAAI3gB,WAAY2gB,EAAI3gB,SAAS82R,QAE3BlP,EAAoB,CAChC,IAAI4J,EAAW5J,EAAmBzD,QAC9BC,EAASwD,EAAmBxD,OAC5BiM,EAAezI,EAAmByI,aAClCG,EAAM5I,EAAmB4I,IAC7B7vQ,EAAI3gB,SAAW,GAAc,CAC3B82R,MAAOtU,GAAkB,CACvBgP,SAAUA,EACVD,QAASnN,EACTqN,eAAgBpB,KAEjB1vQ,EAAI3gB,UACP,IAAIgvR,EAAyBwB,GAAYiD,GAAoCjC,EAAU7iN,GACvFhuD,EAAIynQ,sBAAwB,GAAc,CACxC4G,uBAAwBA,GACvBruQ,EAAIynQ,uBAGT,OAAOznQ,OAUV,CACDpzK,IAAK,gBACL8C,MAAO,SAAuBikB,GAC5B,IAAI8/H,EAAOzjJ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC3EigD,EAAQjgD,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAClD,OAAOuC,KAAKumc,cAAc3hb,EAAO8/H,EAAMxjG,GAAO3iD,MAAK,SAAUioc,GAC3D,OAAOA,EAAW5yB,YACjB,SAAUrza,GACX,GAAI,GAAa,CAGf,IAAIkmc,EAAclmc,EAEW,QAAzBkmc,EAAY/N,SACd,GAAAn6T,IAAWkoU,EAAY1mc,SAEvB,QAAY0mc,SAqBnB,CACD5oc,IAAK,gBACL8C,MAAO,SAAuBikB,EAAO8/H,EAAMokS,GACzC,IAAIzpN,EAASr/N,KAET8C,EAAU9C,KAAKkyB,aACfm7Z,EAAavqb,EAAQuqb,WACrBqZ,EAAgBC,GAAmB/hb,GACnCgkE,EAAU,GAAahkE,GACvBq8M,EAAYr8M,EAAMtZ,MAAQ,QAC1Bs7b,EAAkB,yBAAyBzkc,OAAO8+N,EAAW,KAI7Dk3N,OAAyC,IAAf9K,OAA6B5vb,EAAY2vb,GAAgBC,GAEvF,GAAIzkW,GAAuC,iBAArBuvW,GAAiC5pb,KAAK2e,SAAWira,EAErE,OADAn4b,KAAKu0b,mBAAmB,cAAe,QAAS3va,GACzC84Z,GAAoB,IAAI+a,GAAY,oFAAoFt2b,OAAOkrb,EAAY,KAAM,QAG1J,IAAI+L,EAA6B,iBAAdn4N,EAA+B,SAAWA,EAEzDi0N,GADwBtwa,EAAM8zZ,uBAAyB,IACJwc,2BACvD,OAAOl1b,KAAK6mc,cAAcjib,EAAO8/H,EAAMokS,EAAcoM,GAA4B32b,MAAK,SAAU+mb,GAC9F,GAAiB,OAAbA,EAGF,MAFAjmN,EAAOk1N,mBAAmB,kBAAmB6E,EAAcx0a,GAErD,IAAI6za,GAAY,2DAA4D,OAKpF,GAF0B/zS,EAAK/pJ,OAAiC,IAAzB+pJ,EAAK/pJ,KAAKmsc,WAG/C,OAAOxhB,EAGT,IAAI94a,EA6KZ,SAA2BqzC,EAAQ/8C,EAAS8hB,EAAO8/H,GACjD,IAAIyqB,EAAarsK,EAAQqsK,WACrB43R,EAAwBjkc,EAAQikc,sBAChCrS,EAAiB5xb,EAAQ4xb,eAE7B,GAAI,GAAa9va,IAAUuqJ,EACzB,OAAOA,EAAWvqJ,EAAO8/H,GAG3B,GAAIiiT,GAAmB/hb,GAAQ,CAC7B,GAAIA,EAAMoja,OAAS0M,EAAgB,CACjC,IAGI71L,EAHAmoM,EAAiB,GAEjBpoM,EAAa,GAA2Bh6O,EAAMoja,OAGlD,IACE,IAAKppL,EAAWnvM,MAAOovM,EAASD,EAAW1vM,KAAKrhC,MAAO,CACrD,IACIo5a,EAAgBvS,EADT71L,EAAOl+P,OAGdsmc,EACFD,EAAejlc,KAAKklc,GAEpBpnZ,EAAO00Y,mBAAmB,cAAe,SAG7C,MAAOzma,GACP8wO,EAAW33P,EAAE6mB,GACb,QACA8wO,EAAW9sO,IAGblN,EAAMoja,MAAQgf,EAGhB,GAAID,EAAuB,CACzB,GAAInib,EAAMoja,MAAO,CAGf,IAAIkf,EAAkBtib,EAAMoja,MAAM5lb,OAClCwiB,EAAM8zZ,sBAAwB,GAAc,GAAc,GAAI9zZ,EAAM8zZ,uBAAwB,GAAI,CAC9FyuB,0BAA2BD,IAI/B,OAAOH,EAAsBnib,EAAO8/H,IAIxC,OAAO9/H,EA/NYwib,CAAkB/nO,EAAQv8N,EAASwib,EAAU5gS,GAC1D,OAoJR,SAAmC2iT,EAAkBT,GACnD,IAAIU,EAAoB,GAAGnlc,OAAOykc,EAAiB,yCAEnD,GAAI,GAAWS,GACb,OAAOA,EAAiB9oc,MAAK,SAAUqmB,GACrC,IAAK,GAAcA,IAAoB,OAAVA,EAC3B,MAAM,IAAI6za,GAAY6O,GAGxB,OAAO1ib,KACN,SAAU3d,GACX,MAAM,IAAIwxb,GAAY,GAAGt2b,OAAOykc,EAAiB,mBAAmBzkc,OAAO8E,OAExE,IAAK,GAAcogc,IAA0C,OAArBA,EAC7C,MAAM,IAAI5O,GAAY6O,GAGxB,OAAOD,EArKME,CAA0B/6b,EAAQo6b,MACxCroc,MAAK,SAAUmjc,GAChB,GAAuB,OAAnBA,EAAyB,CAG3B,GAFAriO,EAAOk1N,mBAAmB,cAAe6E,EAAcx0a,GAEnD8hb,EAAe,CACjB,IAEIc,EAAY,GAFJ5ib,EAAMoja,OAAS,IAED5lb,OAE1Bi9N,EAAOk1N,mBAAmB,cAAe,OAAQiT,GAGnD,MAAM,IAAI/O,GAAY,GAAGt2b,OAAOykc,EAAiB,0CAA2C,OAG9F,IAAIpxB,EAAUsT,GAAgBA,EAAaQ,aAM3C,IAJKod,GAAiBlxB,GACpBn2M,EAAOooO,wBAAwBjyB,EAASksB,GAGtCgF,EAAe,CACjB,IAEIgB,GAFkBhG,EAAehpB,uBAAyBgpB,EAAehpB,sBAAsByuB,2BAA6B,IAC3GzF,EAAe1Z,MAAQ0Z,EAAe1Z,MAAM5lb,OAAS,GAGtEslc,EAAmB,GACrBroO,EAAOk1N,mBAAmB,cAAe,OAAQmT,GAOrD,IAAIC,EAAkBjG,EAAenM,iBAWrC,OATImR,GAAiBiB,GAAmBjG,EAAe9c,cAAgBhga,EAAMgga,cAE3E8c,EAAenM,iBAAmB,GAAc,GAAc,GAAIoS,GAAkB,GAAI,CACtFlnc,OAFW,YAMf4+N,EAAOuoO,UAAUlG,EAAgBh9S,GAE1Bg9S,KACNnjc,KAAK,MAAM,SAAUgC,GACtB,GAAIA,aAAkBk4b,GACpB,MAAMl4b,EAUR,MAPA8+N,EAAOw5M,iBAAiBt4a,EAAQ,CAC9B5F,KAAM,CACJmsc,YAAY,GAEdhuB,kBAAmBv4a,IAGf,IAAIk4b,GAAY,8HAA8Ht2b,OAAO5B,SAO9J,CACD1C,IAAK,WACL8C,MAAO,SAAkBrC,GACvB,IAAIkiO,EAASxgO,KAEbA,KAAKqkc,iBACA/lc,EAAQC,MAAK,SAAUoC,GAE1B,OADA6/N,EAAO6jO,iBACA1jc,KACN,SAAUJ,GAEX,OADAigO,EAAO6jO,iBACA9jc,OAOV,CACD1C,IAAK,iBACL8C,MAAO,WACL,IAAIknc,EAAW7nc,KAAKskc,UAEpB,OADAtkc,KAAKskc,UAAY,GACV9+b,OAAOg5C,QAAQqpZ,GAAU5sb,KAAI,SAAUtH,GAC5C,IAAIa,EAAQ,GAAeb,EAAO,GAC9B9V,EAAM2W,EAAM,GACZszb,EAAWtzb,EAAM,GAGjBuzb,EAAc,GADDlqc,EAAImN,MAAM,KACkB,GAI7C,MAAO,CACLzK,OAJWwnc,EAAY,GAKvB5lb,SAJa4lb,EAAY,GAKzBD,SAAUA,QAQf,CACDjqc,IAAK,iBACL8C,MAAO,WACL,IAAe,GAAA49H,IAAW,wBAE1B,IAAIspU,EAAW7nc,KAAKgoc,iBAEpB,GAAwB,IAApBH,EAASzlc,OAMb,GAAKpC,KAAKwkc,KAAV,CAKA,IAAe,GAAAjmU,IAAW,oBAAqBspU,GAC/C,ICn0B8BI,EAAkB9Z,EDm0B5CkB,GCn0B0B4Y,EDm0BYJ,EC5zBvC1Y,IAP6ChB,EDm0BInub,KAAKuqN,SAAS4nO,QAAUjE,GAAYlub,KAAKwkc,OC5zBrE,CAC1BrW,IAAKA,GACH,GAAI,CARe,CAAC,CACtB7ib,KAAM,iBACL,CACDyc,UAAwB4sZ,KACxBszB,iBAAkBA,ODi0BhBjoc,KAAKs0b,aAAajF,QARhB,IAAe,GAAA9wT,IAAW,gDAN1B,IAAe,GAAAA,IAAW,0BAxyBgC9Y,GAAY,GAAkBN,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IA+zBrP4+U,EAlxBqB,GAs2B9B,SAAS,GAAav/a,GACpB,YAAsBnnB,IAAfmnB,EAAMtZ,KAGf,SAASq7b,GAAmB/hb,GAC1B,MAAsB,gBAAfA,EAAMtZ,KE36Bf,IAAI,GAA0C,oBAArBula,kBAAoCA,iBCL7D,SAAS,GAAQnlZ,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAQ3M,SAAS8+b,GAAmBpsB,EAAa/nR,GAEvC,IAAI78F,EAASixY,GAAiBrsB,EAAa/nR,GACvCujB,EAAY,CACdhsK,KAAM88b,GAAYr0S,GAClBpzJ,MAAO0nc,GAAet0S,IAaxB,OAVI78F,EAAO90D,SACTk1K,EAAU+kQ,WAAa,CACrBnlX,OAAQA,SAIWz5D,IAAnB65K,EAAUhsK,MAA0C,KAApBgsK,EAAU32K,QAC5C22K,EAAU32K,MAAQ,8BAGb22K,EAgDT,SAASgxR,GAAexsB,EAAa/nR,GACnC,MAAO,CACLujB,UAAW,CACTlyG,OAAQ,CAAC8iY,GAAmBpsB,EAAa/nR,MAO/C,SAASo0S,GAAiBrsB,EAAa/nR,GAIrC,IAAIsoR,EAAatoR,EAAGsoR,YAActoR,EAAGvvJ,OAAS,GAC1C+jc,EAmBN,SAAsCx0S,GACpC,OAAIA,GAAMy0S,GAAoBt/b,KAAK6qJ,EAAGh0J,SAC7B,EAGF,EAxBS0oc,CAA6B10S,GACzC2nR,EAmCN,SAA8B3nR,GAC5B,MAA8B,iBAAnBA,EAAG2nR,YACL3nR,EAAG2nR,YAGL,EAxCWgtB,CAAqB30S,GAEvC,IACE,OAAO+nR,EAAYO,EAAYksB,EAAW7sB,GAC1C,MAAOz0a,IAGT,MAAO,GAIT,IAAIuhc,GAAsB,8BAkC1B,SAASG,GAAuBrxR,GAG9B,MAA2B,oBAAhBsxR,kBAAgE,IAA1BA,YAAYC,WAEpDvxR,aAAqBsxR,YAAYC,UAY5C,SAAST,GAAYr0S,GACnB,IAAI7vJ,EAAO6vJ,GAAMA,EAAG7vJ,KAGpB,OAAKA,GAAQykc,GAAuB50S,GAEXA,EAAGh0J,SAAWkC,MAAMiD,QAAQ6uJ,EAAGh0J,UAAiC,GAArBg0J,EAAGh0J,QAAQqC,OACnD2xJ,EAAGh0J,QAAQ,GAAK,wBAGrCmE,EAST,SAASmkc,GAAet0S,GACtB,IAAIh0J,EAAUg0J,GAAMA,EAAGh0J,QAEvB,OAAKA,EAIDA,EAAQ0C,OAA0C,iBAA1B1C,EAAQ0C,MAAM1C,QACjCA,EAAQ0C,MAAM1C,QAInB4oc,GAAuB50S,IAAO9xJ,MAAMiD,QAAQ6uJ,EAAGh0J,UAAiC,GAArBg0J,EAAGh0J,QAAQqC,OACjE2xJ,EAAGh0J,QAAQ,GAGbA,EAZE,mBAoBX,SAAS,GAAmB+7a,EAAaxkQ,EAAW5yB,EAAMokT,GACxD,IACIlkb,EAAQmkb,GAAsBjtB,EAAaxkQ,EADtB5yB,GAAQA,EAAKk0R,yBAAsBn7a,EACkBqrc,GAS9E,OARA/0B,GAAsBnvZ,GAEtBA,EAAMuG,MAAQ,QAEVu5H,GAAQA,EAAKkvR,WACfhvZ,EAAMgvZ,SAAWlvR,EAAKkvR,UAGjB4J,GAAoB54Z,GAQ7B,SAAS,GAAiBk3Z,EAAa/7a,GACrC,IAAIorB,EAAQlqB,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,OAC5EyjJ,EAAOzjJ,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAC7Cqrc,EAAmB7nc,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EACzDm7a,EAAqBl0R,GAAQA,EAAKk0R,yBAAsBn7a,EACxDmnB,EAAQokb,GAAgBltB,EAAa/7a,EAAS64a,EAAoBkwB,GAOtE,OANAlkb,EAAMuG,MAAQA,EAEVu5H,GAAQA,EAAKkvR,WACfhvZ,EAAMgvZ,SAAWlvR,EAAKkvR,UAGjB4J,GAAoB54Z,GAO7B,SAASmkb,GAAsBjtB,EAAaxkQ,EAAWshQ,EAAoBkwB,EAAkBG,GAC3F,IAAIrkb,EAEJ,GAAIqqZ,GAAa33P,IAAcA,EAAU70K,MAGvC,OAAO6lc,GAAexsB,EADLxkQ,EAC6B70K,OAUhD,GAAIysa,GAAW53P,InFvLR03P,GmFuLqC13P,EnFvLtB,gBmFuLkC,CACtD,IAAI4xR,EAAe5xR,EAEnB,GAAI,UAAWA,EACb1yJ,EAAQ0jb,GAAexsB,EAAaxkQ,OAC/B,CACL,IAAIpzK,EAAOglc,EAAahlc,OAASgra,GAAWg6B,GAAgB,WAAa,gBACrEnpc,EAAUmpc,EAAanpc,QAAU,GAAGoC,OAAO+B,EAAM,MAAM/B,OAAO+mc,EAAanpc,SAAWmE,EAE1F4va,GADAlvZ,EAAQokb,GAAgBltB,EAAa/7a,EAAS64a,EAAoBkwB,GACrC/oc,GAU/B,MAPI,SAAUmpc,IAEZtkb,EAAMynN,KAAO,GAAc,GAAc,GAAIznN,EAAMynN,MAAO,GAAI,CAC5D,oBAAqB,GAAGlqO,OAAO+mc,EAAa3lc,SAIzCqhB,EAGT,OAAIgkE,GAAQ0uF,GAEHgxR,GAAexsB,EAAaxkQ,GAGjC,GAAcA,IAAc83P,GAAQ93P,IAMtCy8P,GADAnvZ,EA5PJ,SAA8Bk3Z,EAAaxkQ,EAAWshQ,EAAoBqwB,GACxE,IAAIppZ,EAAS,KACTslY,EAAiBtlY,GAAUA,EAAO3tB,aAAaizZ,eAE/CgkB,EA4UN,SAAoC//b,GAClC,IAAK,IAAI/D,KAAQ+D,EACf,GAAI5D,OAAOtG,UAAU0N,eAAejJ,KAAKyF,EAAK/D,GAAO,CACnD,IAAI1E,EAAQyI,EAAI/D,GAEhB,GAAI1E,aAAiB6C,MACnB,OAAO7C,GAlVOyoc,CAA2B9xR,GAC3CjT,EAAQ,CACVglS,eAAgB7sB,GAAgBllQ,EAAW6tQ,IAG7C,GAAIgkB,EACF,MAAO,CACL7xR,UAAW,CACTlyG,OAAQ,CAAC8iY,GAAmBpsB,EAAaqtB,KAE3C9kS,MAAOA,GAIX,IAAIz/I,EAAQ,CACV0yJ,UAAW,CACTlyG,OAAQ,CAAC,CACP95D,KAAM8ja,GAAQ93P,GAAaA,EAAU/tK,YAAYrF,KAAO+kc,EAAuB,qBAAuB,QACtGtoc,MAAO2oc,GAAgChyR,EAAW,CAChD2xR,qBAAsBA,OAI5B5kS,MAAOA,GAGT,GAAIu0Q,EAAoB,CACtB,IAAI1hX,EAASixY,GAAiBrsB,EAAalD,GAEvC1hX,EAAO90D,SAGTwiB,EAAM0yJ,UAAUlyG,OAAO,GAAGi3W,WAAa,CACrCnlX,OAAQA,IAKd,OAAOtyC,EAkNG2kb,CAAqBztB,EADPxkQ,EACqCshQ,EAAoBqwB,GAClD,CAC3BO,WAAW,IAEN5kb,IAaTkvZ,GADAlvZ,EAAQokb,GAAgBltB,EAAaxkQ,EAAWshQ,EAAoBkwB,GACvC,GAAG3mc,OAAOm1K,QAAY75K,GACnDs2a,GAAsBnvZ,EAAO,CAC3B4kb,WAAW,IAEN5kb,GAGT,SAASokb,GAAgBltB,EAAa/7a,EAAS64a,EAAoBkwB,GACjE,IAAIlkb,EAAQ,GAEZ,GAAIkkb,GAAoBlwB,EAAoB,CAC1C,IAAI1hX,EAASixY,GAAiBrsB,EAAalD,GAEvC1hX,EAAO90D,SACTwiB,EAAM0yJ,UAAY,CAChBlyG,OAAQ,CAAC,CACPzkE,MAAOZ,EACPs8a,WAAY,CACVnlX,OAAQA,OAOlB,GAAIi4W,GAAsBpva,GAAU,CAClC,IAAIghc,EAA6Bhhc,EAAQghc,2BACrCC,EAA6Bjhc,EAAQihc,2BAKzC,OAJAp8a,EAAM6kb,SAAW,CACf1pc,QAASghc,EACTzkc,OAAQ0kc,GAEHp8a,EAIT,OADAA,EAAM7kB,QAAUA,EACT6kB,EAGT,SAAS0kb,GAAgChyR,EAAWjlK,GAClD,IAAI42b,EAAuB52b,EAAK42b,qBAC5Bxjc,E7EtKN,SAAwC6xK,GACtC,IAAI7iG,EAAYxzE,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAChFwE,EAAOD,OAAOC,KAAKgta,GAAqBn7P,IAC5C7xK,EAAKojB,OACL,IAAI6gb,EAAWjkc,EAAK,GAEpB,IAAKikc,EACH,MAAO,uBAGT,GAAIA,EAAStnc,QAAUqyE,EACrB,OAAO4gB,GAASq0W,EAAUj1X,GAG5B,IAAK,IAAIk1X,EAAelkc,EAAKrD,OAAQunc,EAAe,EAAGA,IAAgB,CACrE,IAAIC,EAAankc,EAAKN,MAAM,EAAGwkc,GAAc3hc,KAAK,MAElD,KAAI4hc,EAAWxnc,OAASqyE,GAIxB,OAAIk1X,IAAiBlkc,EAAKrD,OACjBwnc,EAGFv0W,GAASu0W,EAAYn1X,GAG9B,MAAO,G6E0IIo1X,CAA+BvyR,GACtCwyR,EAAcb,EAAuB,oBAAsB,YAG/D,GAAIh6B,GAAa33P,GACf,MAAO,kCAAkCn1K,OAAO2nc,EAAa,mBAAmB3nc,OAAOm1K,EAAUv3K,QAAS,KAG5G,GAAIqva,GAAQ93P,GAAY,CACtB,IAAIh5J,EAOR,SAA4BlV,GAC1B,IACE,IAAIlK,EAAYsG,OAAOiH,eAAerD,GACtC,OAAOlK,EAAYA,EAAUqK,YAAYrF,UAAOzG,EAChD,MAAOwJ,KAXS8ic,CAAmBzyR,GACnC,MAAO,UAAUn1K,OAAOmc,EAAW,YAAYnc,OAAOm1K,EAAUhsK,KAAM,kBAAkBnJ,OAAO2nc,GAGjG,MAAO,sBAAsB3nc,OAAO2nc,EAAa,gBAAgB3nc,OAAOsD,GCpW1E,SAAS,GAAQimB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAO3M,SAAS4gc,GAA2Bjd,EAAU16a,GAC5C,IAAI6tB,EAAW7tB,EAAK6tB,SAChBiyZ,EAAS9/a,EAAK8/a,OACdhE,EAAM97a,EAAK87a,IAEXtzb,EAAU,GAAc,GAAc,CACxC+4a,SAAUmZ,EAASnZ,SACnBwe,SAAS,IAAI1pb,MAAOX,eACnBm4B,GAAYA,EAAS0lZ,KAAO,CAC7BA,IAAK,CACH1hb,KAAMg8B,EAAS0lZ,IAAI1hb,KACnBwH,QAASw0B,EAAS0lZ,IAAIl6a,aAEpBymb,KAAYhE,GAAO,CACvBA,IAAKD,GAAYC,KAGfv6a,EAIN,SAAwCm5a,GAItC,MAAO,CAHe,CACpBzhb,KAAM,eAEiByhb,GARdkd,CAA+Bld,GAC1C,OAAOoC,GAAet0b,EAAS,CAAC+Y,IC7BlC,SAAS,GAAQxK,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAEzU,SAAS,GAAQsiB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAI9U,SAAS,GAAgB2D,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAI3M,SAAS,GAAkBpE,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAI7S,SAASyB,KAAoX,OAAtTA,GAA9B,oBAAZV,SAA2BA,QAAQ3kG,IAAc2kG,QAAQ3kG,IAAqB,SAAczc,EAAQ4Y,EAAUmpG,GAAY,IAAI/8F,EAAOg9F,GAAehiH,EAAQ4Y,GAAW,GAAKoM,EAAL,CAAmB,IAAI9d,EAAO1G,OAAOyqB,yBAAyBjG,EAAMpM,GAAW,OAAI1R,EAAKuV,IAAcvV,EAAKuV,IAAI9d,KAAK1C,UAAUmB,OAAS,EAAI4C,EAAS+hH,GAAoB76G,EAAKvL,QAAmBmmH,GAAK5kH,MAAMlC,KAAMiB,WAErZ,SAAS+lH,GAAet7F,EAAQ9N,GAAY,MAAQpY,OAAOtG,UAAU0N,eAAejJ,KAAK+nB,EAAQ9N,IAA8D,QAAjD8N,EAAS,GAAgBA,MAAuC,OAAOA,EAIrL,SAAS,GAAgBnJ,EAAGhS,GAA+G,OAA1G,GAAkB/K,OAAOygH,gBAAkB,SAAyB1jG,EAAGhS,GAAsB,OAAjBgS,EAAE2jG,UAAY31G,EAAUgS,GAAa,GAAgBA,EAAGhS,GAIrK,SAAS,GAA2BxC,EAAMpK,GAAQ,GAAIA,IAA2B,WAAlB,GAAQA,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIvD,UAAU,4DAA+D,OAE1P,SAAgC2N,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI64G,eAAe,6DAAgE,OAAO74G,EAFkG,CAAuBA,GAMxR,SAAS,GAAgBwU,GAAwJ,OAAnJ,GAAkB/c,OAAOygH,eAAiBzgH,OAAOiH,eAAiB,SAAyB8V,GAAK,OAAOA,EAAE2jG,WAAa1gH,OAAOiH,eAAe8V,IAAc,GAAgBA,GAoBxM,IAAI2nb,GAA6B,SAAUC,IAhC3C,SAAmBtkV,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI1lH,UAAU,sDAAyDylH,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CAAEqK,YAAa,CAAE5I,MAAOklH,EAAUN,UAAU,EAAMD,cAAc,KAAW9/G,OAAOqY,eAAegoG,EAAU,YAAa,CAAEN,UAAU,IAAcO,GAAY,GAAgBD,EAAUC,GAiCpb,CAAUokV,EAAeC,GAEzB,IAzCoBhlV,EAAaM,EAUbwzH,EAAeC,EA+B/BuS,GA/BgBxS,EA+BMixN,EA/BShxN,EAMrC,WAAuC,GAAuB,oBAAZ9yH,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhF8B,QAAQnpH,UAAU8sE,QAAQroE,KAAKyiH,QAAQC,UAAUgC,QAAS,IAAI,iBAAyB,EAAQ,MAAOphH,GAAK,OAAO,GAN9P,GAAoC,WAAkC,IAAsCuF,EAAlCsvL,EAAQ,GAAgBm9C,GAAkB,GAAIC,EAA2B,CAAE,IAAIzrG,EAAY,GAAgBztI,MAAMuJ,YAAaiD,EAAS45G,QAAQC,UAAUy1E,EAAO76L,UAAWwsI,QAAqBjhI,EAASsvL,EAAM55L,MAAMlC,KAAMiB,WAAc,OAAO,GAA2BjB,KAAMwM,KAsC1Z,SAAS09b,EAAcpnc,GACrB,IAAI8vH,GArDR,SAAyB3zH,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAuD5G,CAAgBJ,KAAMkqc,GAEtB,IAAI/9b,EA7DR,SAAuBnH,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EA6Dle,CAAc,CAEvBwzb,4BAA4B,GAC3B11b,GAcH,OCnEJ,SAA0BA,EAASoB,GACjC,IAAIqzF,EAAQt2F,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,CAACiD,GAC7EzD,EAASQ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,MAC7Ei/B,EAAWp9B,EAAQ2hc,WAAa,GAE/Bvka,EAAS0lZ,MACZ1lZ,EAAS0lZ,IAAM,CACb1hb,KAAM,qBAAqB/B,OAAO+B,GAClCoub,SAAU/6V,EAAMt8E,KAAI,SAAU/W,GAC5B,MAAO,CACLA,KAAM,GAAG/B,OAAO1B,EAAQ,aAAa0B,OAAO+B,GAC5CwH,QAAS2ia,OAGb3ia,QAAS2ia,KAIbvra,EAAQ2hc,UAAYvka,EDsClBkqa,CAAiBj+b,EAAM,UAAW,CAAC,WADnB,sBEtCX,OFwCLymH,EAAQ64H,EAAO9nP,KAAK3D,KAAMmM,GAEtBA,EAAK45b,mBAAqB,aAC5B,6BAAiC,oBAAoB,WACX,WAApC,6BACFnzU,EAAMy3U,oBAKLz3U,EA0DT,OAhIoBzN,EA6EP+kV,EA7EoBzkV,EA6EL,CAAC,CAC3B5nH,IAAK,qBACL8C,MAAO,SAA4B22K,EAAW5yB,GAC5C,OAAO,GAAoB1kJ,KAAKuqN,SAASuxN,YAAaxkQ,EAAW5yB,EAAM1kJ,KAAKuqN,SAASu+O,oBAMtF,CACDjrc,IAAK,mBACL8C,MAAO,SAA0BZ,GAC/B,IAAIorB,EAAQlqB,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,OAC5EyjJ,EAAOzjJ,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EACjD,OAAO,GAAkBuC,KAAKuqN,SAASuxN,YAAa/7a,EAASorB,EAAOu5H,EAAM1kJ,KAAKuqN,SAASu+O,oBAQzF,CACDjrc,IAAK,sBACL8C,MAAO,SAA6Bosb,GAClC,GAAK/sb,KAAKwlc,aAAV,CAKA,IAAInW,EAAW2a,GAA2Bjd,EAAU,CAClD7sZ,SAAUlgC,KAAKsqc,iBACfnc,IAAKnub,KAAKikb,SACVkO,OAAQnyb,KAAKkyB,aAAaiga,SAI5Bnyb,KAAKs0b,aAAajF,QAXhB,IAAe,QAAY,sDAiB9B,CACDxxb,IAAK,gBACL8C,MAAO,SAAuBikB,EAAO8/H,EAAMxjG,GAEzC,OADAt8B,EAAMooO,SAAWpoO,EAAMooO,UAAY,aAC5BlmI,GAAK,GAAgBojV,EAAchrc,WAAY,gBAAiBc,MAAM2D,KAAK3D,KAAM4kB,EAAO8/H,EAAMxjG,MA5HzCukE,GAAY,GAAkBN,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IAgIrP2kV,EA1FwB,CA2F/B/F,IG1IE,GAAS50B,GA2Db,SAASg7B,KACP,KAAM,UAAW,IACf,OAAO,EAGT,IAIE,OAHA,IAAIC,QACJ,IAAIC,QAAQ,0BACZ,IAAIC,UACG,EACP,MAAOzjc,GACP,OAAO,GASX,SAAS0jc,GAAiBnnZ,GACxB,OAAOA,GAAQ,mDAAmDt6C,KAAKs6C,EAAKvjD,YAU9E,SAAS2qc,KACP,GAA2B,iBAAhBC,YACT,OAAO,EAGT,IAAKN,KACH,OAAO,EAKT,GAAII,GAAiB,GAAOtgb,OAC1B,OAAO,EAKT,IAAI7d,GAAS,EACTq5I,EAAM,GAAOj9I,SAEjB,GAAIi9I,GAAoC,mBAAtBA,EAAI/7I,cACpB,IACE,IAAIghc,EAAUjlT,EAAI/7I,cAAc,UAChCghc,EAAQ5zb,QAAS,EACjB2uI,EAAI/gE,KAAKrxE,YAAYq3b,GAEjBA,EAAQ94T,eAAiB84T,EAAQ94T,cAAc3nH,QAEjD7d,EAASm+b,GAAiBG,EAAQ94T,cAAc3nH,QAGlDw7H,EAAI/gE,KAAK9lE,YAAY8rb,GACrB,MAAOh9a,GACP,IAAe,QAAY,kFAAmFA,GAIlH,OAAOthB,EAUT,SAASu+b,KACP,MAAO,sBAAuB,GCxIhC,IAAI,GAA0C,oBAArBl6B,kBAAoCA,iBCJzD,GAAStB,GCQTy7B,GAAwB,GAW5B,SAASC,GAAwB/mc,GAC/B,IAAIitJ,EAAS65S,GAAsB9mc,GAEnC,GAAIitJ,EACF,OAAOA,EAGT,IAAI+5S,EAAO,GAAOhnc,GAElB,GAAIymc,GAAiBO,GACnB,OAAOF,GAAsB9mc,GAAQgnc,EAAKvsc,KAAK,IAGjD,IAAIiK,EAAW,YAEf,GAAIA,GAA8C,mBAA3BA,EAASkB,cAC9B,IACE,IAAIghc,EAAUlic,EAASkB,cAAc,UACrCghc,EAAQ5zb,QAAS,EACjBtO,EAASk8E,KAAKrxE,YAAYq3b,GAC1B,IAAI94T,EAAgB84T,EAAQ94T,cAExBA,GAAiBA,EAAc9tI,KACjCgnc,EAAOl5T,EAAc9tI,IAGvB0E,EAASk8E,KAAK9lE,YAAY8rb,GAC1B,MAAO7jc,GAEP,IAAe,QAAY,uCAAuC9E,OAAO+B,EAAM,8BAA8B/B,OAAO+B,EAAM,MAAO+C,GAMrI,OAAKikc,EAIEF,GAAsB9mc,GAAQgnc,EAAKvsc,KAAK,IAHtCusc,EAQX,SAASC,GAA0Bjnc,GACjC8mc,GAAsB9mc,QAAQzG,EAoDhC,SAAS,KACP,OAAOwtc,GAAwB,cAAc/oc,WAAM,EAAQjB,WCtH7D,SAAS,GAAQyqB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAS3M,SAASgic,GAAmBtoc,GAC1B,IAAIuoc,EAAcpqc,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKgqc,GAAwB,SAC1GK,EAAkB,EAClBC,EAAe,EAEnB,SAASxR,EAAY/+b,GACnB,IAAIwwc,EAAcxwc,EAAQ+jC,KAAK38B,OAC/Bkpc,GAAmBE,EACnBD,IAEA,IAAIE,EAAiB,GAAc,CACjC1sa,KAAM/jC,EAAQ+jC,KACd3iC,OAAQ,OACRsvc,eAAgB,SAChB7wc,QAASiI,EAAQjI,QAYjB8wc,UAAWL,GAAmB,KAASC,EAAe,IACrDzoc,EAAQ8oc,cAEX,IAAKP,EAEH,OADAF,GAA0B,SACnBztB,GAAoB,qCAG7B,IAEE,OAAO2tB,EAAYvoc,EAAQnH,IAAK8vc,GAAgBltc,MAAK,SAAUxC,GAG7D,OAFAuvc,GAAmBE,EACnBD,IACO,CACL58R,WAAY5yK,EAASE,OACrBpB,QAAS,CACP,uBAAwBkB,EAASlB,QAAQ4mB,IAAI,wBAC7C,cAAe1lB,EAASlB,QAAQ4mB,IAAI,oBAI1C,MAAOxa,GAIP,OAHAkkc,GAA0B,SAC1BG,GAAmBE,EACnBD,IACO7tB,GAAoBz2a,IAI/B,OAAO6yb,GAAgBh3b,EAASi3b,GCpElC,SAAS,GAAe3ub,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAMzI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAahL,SAASm9a,GAAYjxb,EAAU4oC,EAAMi4Y,EAAQhqB,GAC3C,IAAIv+I,EAAQ,CACVt4Q,SAAUA,EACVqQ,SAAmB,gBAATu4B,EAAyB23X,GAAmB33X,EACtDsoZ,QAAQ,GAYV,YAReruc,IAAXg+b,IACFvoK,EAAMuoK,OAASA,QAGHh+b,IAAVg0a,IACFv+I,EAAMu+I,MAAQA,GAGTv+I,EAMT,ICvCI64K,GCCAC,GACAC,GACAC,GFoCAC,GAAsB,yCAEtBC,GAAc,6IACdC,GAAkB,gCAgDlBC,GAAwB,CA7EN,GAiCI,SAA6Brhc,GAErD,IAAIshc,EAAYJ,GAAoB5xb,KAAKtP,GAEzC,GAAIshc,EAAW,CACb,IAAIC,EAAa,GAAeD,EAAW,GACvC3xb,EAAW4xb,EAAW,GACtBC,EAAQD,EAAW,GACnB9yS,EAAM8yS,EAAW,GAErB,OAAOX,GAAYjxb,EAAUuga,IAAmBsxB,GAAQ/yS,GAG1D,IAAI9xJ,EAAQwkc,GAAY7xb,KAAKtP,GAE7B,GAAIrD,EAAO,CAGT,GAFaA,EAAM,IAAmC,IAA7BA,EAAM,GAAGhL,QAAQ,QAE9B,CACV,IAAI8vc,EAAWL,GAAgB9xb,KAAK3S,EAAM,IAEtC8kc,IAEF9kc,EAAM,GAAK8kc,EAAS,GAEpB9kc,EAAM,GAAK8kc,EAAS,GAEpB9kc,EAAM,GAAK8kc,EAAS,IAMxB,IACIC,EAAyB,GADDC,GAA8Bhlc,EAAM,IAAMuza,GAAkBvza,EAAM,IAC3B,GAC/D47C,EAAOmpZ,EAAuB,GAGlC,OAAOd,GAFSc,EAAuB,GAETnpZ,EAAM57C,EAAM,IAAMA,EAAM,QAAKnK,EAAWmK,EAAM,IAAMA,EAAM,QAAKnK,MAU7Fovc,GAAa,uIACbC,GAAiB,gDAmCjBC,GAAuB,CAnHN,GAkFT,SAAe9hc,GACzB,IAAIrD,EAAQilc,GAAWtyb,KAAKtP,GAE5B,GAAIrD,EAAO,CAGT,GAFaA,EAAM,IAAMA,EAAM,GAAGhL,QAAQ,YAAc,EAE5C,CACV,IAAI8vc,EAAWI,GAAevyb,KAAK3S,EAAM,IAErC8kc,IAEF9kc,EAAM,GAAKA,EAAM,IAAM,OACvBA,EAAM,GAAK8kc,EAAS,GACpB9kc,EAAM,GAAK8kc,EAAS,GACpB9kc,EAAM,GAAK,IAIf,IAAIgT,EAAWhT,EAAM,GACjB47C,EAAO57C,EAAM,IAAMuza,GAInB6xB,EAAyB,GAFAJ,GAA8BppZ,EAAM5oC,GAEG,GAIpE,OAFA4oC,EAAOwpZ,EAAuB,GAEvBnB,GADPjxb,EAAWoyb,EAAuB,GACLxpZ,EAAM57C,EAAM,IAAMA,EAAM,QAAKnK,EAAWmK,EAAM,IAAMA,EAAM,QAAKnK,MAO5Fwvc,GAAa,uFAObC,GAAuB,CA5HN,GAuHT,SAAejic,GACzB,IAAIrD,EAAQqlc,GAAW1yb,KAAKtP,GAC5B,OAAOrD,EAAQikc,GAAYjkc,EAAM,GAAIA,EAAM,IAAMuza,IAAmBvza,EAAM,GAAIA,EAAM,IAAMA,EAAM,QAAKnK,QAAaA,IAIhH0vc,GAAe,8DAOfC,GAAyB,CAvIN,GAkIT,SAAiBnic,GAC7B,IAAIrD,EAAQulc,GAAa5yb,KAAKtP,GAC9B,OAAOrD,EAAQikc,GAAYjkc,EAAM,GAAIA,EAAM,IAAMuza,IAAmBvza,EAAM,SAAMnK,IAI9E4vc,GAAe,oGAOfC,GAAyB,CA9IN,GAyIT,SAAiBric,GAC7B,IAAIrD,EAAQylc,GAAa9yb,KAAKtP,GAC9B,OAAOrD,EAAQikc,GAAYjkc,EAAM,GAAIA,EAAM,IAAMA,EAAM,IAAMuza,IAAmBvza,EAAM,IAAKA,EAAM,SAAMnK,IAIrG8vc,GAA0B,CAACjB,GAAuBS,IAClDS,GAAqBlyB,GAAkBp5a,WAAM,EAAQqrc,IAsBrDX,GAAgC,SAAuCppZ,EAAM5oC,GAC/E,IAAI6yb,GAA0D,IAAtCjqZ,EAAK5mD,QAAQ,oBACjC8wc,GAAiE,IAA1ClqZ,EAAK5mD,QAAQ,wBACxC,OAAO6wc,GAAqBC,EAAuB,EAAwB,IAAvBlqZ,EAAK5mD,QAAQ,KAAc4mD,EAAKx4C,MAAM,KAAK,GAAKmwa,GAAkBsyB,EAAoB,oBAAoBtrc,OAAOyY,GAAY,wBAAwBzY,OAAOyY,IAAa,CAAC4oC,EAAM5oC,IGpLlO,GAAS20Z,GFSb,SAASo+B,GAAiC/ma,GACxC,IAAIt7B,EAAO,UACX,GAAWA,EAAMs7B,GACjBqkZ,GAAgB3/a,EAAMsic,IAGxB,SAASA,KACP,GEAIC,GADAC,EAAY,GAAOC,SACgBD,EAAU7iZ,KAAO6iZ,EAAU7iZ,IAAI5hB,QAGlE2ka,EAAgB,YAAa,MAAY,GAAOhnZ,QAAQinZ,aAAe,GAAOjnZ,QAAQyoL,cAClFo+N,GAAuBG,EFJ/B,CERF,IAOMF,EACAD,EAGAG,EFCAE,EAAgB,cAEpB,cAAoB,WAClB,IAAInia,EAAK,iBAELld,EAAOk9a,GACXA,GAAWhga,EACX,IAAI0/Y,EAAc,CAChB58Z,KAAMA,EACNkd,GAAIA,GAIN,GAFAo/Y,GAAgB,UAAWM,GAEvByiB,EAIF,IACE,IAAK,IAAI7wb,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGzB,OAAO4wb,EAAchsc,MAAMlC,KAAMwH,GACjC,MAAO8oa,MA8Bb7iV,GAAK,WAAgB,YAAa0gX,GAClC1gX,GAAK,WAAgB,eAAgB0gX,GA1BrC,SAASA,EAA2BC,GAClC,OAAO,WACL,IAAK,IAAIz+a,EAAQ1uB,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM0tB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFpoB,EAAKooB,GAAS3uB,UAAU2uB,GAG1B,IAAIj0B,EAAM6L,EAAKpF,OAAS,EAAIoF,EAAK,QAAK/J,EAEtC,GAAI9B,EAAK,CAEP,IAAIkzB,EAAOk9a,GACPhga,EAAKgsB,OAAOp8D,GAEhBowc,GAAWhga,EACX,IAAI0/Y,EAAc,CAChB58Z,KAAMA,EACNkd,GAAIA,GAENo/Y,GAAgB,UAAWM,GAG7B,OAAO2iB,EAAwBlsc,MAAMlC,KAAMwH,KC3DjD,SAAS6mc,GAAuCzna,GAE9C,GADW,MACMA,GACjBqkZ,GAFW,MAEWqjB,IAKxB,SAASA,KACP,GAAK,YAAL,CAOA,IAAIC,EAAoBpjB,GAAgBxsb,KAAK,KAAM,OAC/C6vc,EAAwBC,GAAoBF,GAAmB,GACnE,6BAAiC,QAASC,GAAuB,GACjE,6BAAiC,WAAYA,GAAuB,GAMpE,CAAC,cAAe,QAAQ7wc,SAAQ,SAAUqH,GAExC,IAAIwnE,EAAQ,GAAOxnE,IAAW,GAAOA,GAAQ9F,UAExCstE,GAAUA,EAAM5/D,gBAAmB4/D,EAAM5/D,eAAe,sBAI7D6gF,GAAKjhB,EAAO,oBAAoB,SAAUkiY,GACxC,OAAO,SAAUpjc,EAAM+jB,EAAUvsB,GAC/B,GAAa,UAATwI,GAA4B,YAARA,EACtB,IACE,IACI1I,EADK5C,KACS2uc,oCADT3uc,KACkD2uc,qCAAuC,GAC9FC,EAAiBhsc,EAAS0I,GAAQ1I,EAAS0I,IAAS,CACtDujc,SAAU,GAGZ,IAAKD,EAAehoa,QAAS,CAC3B,IAAIA,EAAU6na,GAAoBF,GAClCK,EAAehoa,QAAUA,EACzB8na,EAAyB/qc,KAAK3D,KAAMsL,EAAMs7B,EAAS9jC,GAGrD8rc,EAAeC,WACf,MAAO5nc,IAKX,OAAOync,EAAyB/qc,KAAK3D,KAAMsL,EAAM+jB,EAAUvsB,OAG/D2qF,GAAKjhB,EAAO,uBAAuB,SAAUsiY,GAC3C,OAAO,SAAUxjc,EAAM+jB,EAAUvsB,GAC/B,GAAa,UAATwI,GAA4B,YAARA,EACtB,IACE,IACI1I,EADK5C,KACS2uc,qCAAuC,GACrDC,EAAiBhsc,EAAS0I,GAE1Bsjc,IACFA,EAAeC,WAEXD,EAAeC,UAAY,IAC7BC,EAA4Bnrc,KAAK3D,KAAMsL,EAAMsjc,EAAehoa,QAAS9jC,GACrE8rc,EAAehoa,aAAUnpC,SAClBmF,EAAS0I,IAImB,IAAjC9F,OAAOC,KAAK7C,GAAUR,eAdnBpC,KAeK2uc,qCAGd,MAAO1nc,IAKX,OAAO6nc,EAA4Bnrc,KAAK3D,KAAMsL,EAAM+jB,EAAUvsB,YAUtE,SAASisc,GAA6Bnqb,GAEpC,GAAIA,EAAMtZ,OAAS2gc,GACjB,OAAO,EAGT,IAGE,IAAKrnb,EAAM5f,QAAU4f,EAAM5f,OAAOgqc,YAAc9C,GAC9C,OAAO,EAET,MAAOjlc,IAOT,OAAO,EAQT,SAASgoc,GAAmBhuO,EAAWj8N,GAErC,MAAkB,aAAdi8N,KAICj8N,IAAWA,EAAO8lC,SAMA,UAAnB9lC,EAAO8lC,SAA0C,aAAnB9lC,EAAO8lC,UAA0B9lC,EAAOk8T,mBAW5E,SAASutI,GAAoB7na,GAC3B,IAAIsoa,EAAiBjuc,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GACpF,OAAO,SAAU2jB,GAIf,GAAKA,IAASA,EAAuB,gBAArC,CAIA,IAAI5f,EAASmqc,GAAevqb,GAE5B,IAAIqqb,GAAmBrqb,EAAMtZ,KAAMtG,GAAnC,CAKAqta,GAAyBztZ,EAAO,mBAAmB,GAE/C5f,IAAWA,EAAOgqc,WAEpB38B,GAAyBrta,EAAQ,YAAa,MAGhD,IAAId,EAAsB,aAAf0gB,EAAMtZ,KAAsB,QAAUsZ,EAAMtZ,KAIlDyjc,GAA6Bnqb,KAMhCgiB,EALkB,CAChBhiB,MAAOA,EACP1gB,KAAMA,EACNqxF,OAAQ25W,IAGVjD,GAAwBrnb,EAAMtZ,KAC9B4gc,GAA4Blnc,EAASA,EAAOgqc,eAAYvxc,GAI1D4jC,aAAa2qa,IACbA,GAAkB,eAAkB,WAClCE,QAA4Bzuc,EAC5Bwuc,QAAwBxuc,IAvMN,QA4MxB,SAAS0xc,GAAevqb,GACtB,IACE,OAAOA,EAAM5f,OACb,MAAOiC,GAGP,OAAO,ME9MX,SAAS,GAAkBmE,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAkBhL,SAAS0gb,GAA6Bxoa,GAEpC,GADW,MACMA,GACjBqkZ,GAFW,MAEWokB,IAKxB,SAASA,KACP,GAAK,kBAAL,CAIA,IAAIC,EAAWr0c,eAAeiE,UAE9Bowc,EAASnzc,KAAO,IAAIoqH,MAAM+oV,EAASnzc,KAAM,CACvC+F,MAAO,SAAeqtc,EAAcC,EAAgBC,GAClD,IAAIzc,EAAwC,IAAvB,KAGjB52b,EAAS,GAASqzc,EAAgB,IAAMA,EAAgB,GAAGpzc,mBAAgBoB,EAC3E9B,EAiGV,SAAkBA,GAChB,GAAI,GAASA,GACX,OAAOA,EAGT,IAKE,OAAOA,EAAIsE,WACX,MAAOyvc,KA5GKC,CAASF,EAAgB,IAEnC,IAAKrzc,IAAWT,EACd,OAAO4zc,EAAartc,MAAMstc,EAAgBC,GAG5CD,EAAkC,kBAAI,CACpCpzc,OAAQA,EACRT,IAAKA,EACLi0c,gBAAiB,IAGJ,SAAXxzc,GAAqBT,EAAIkN,MAAM,gBACjC2mc,EAAeK,wBAAyB,GAG1C,IAAIC,EAA4B,WAE9B,IAAIC,EAAUP,EAAkC,kBAEhD,GAAKO,GAI6B,IAA9BP,EAAe9yc,WAAkB,CACnC,IAGEqzc,EAAQC,YAAcR,EAAevzc,OACrC,MAAOgL,IASTkkb,GAAgB,MALE,CAChBkI,aAAqC,IAAvB,KACdL,eAAgBA,EAChBzzZ,IAAKiwa,MAmCX,MA7BI,uBAAwBA,GAA+D,mBAAtCA,EAAe/yc,mBAClE+yc,EAAe/yc,mBAAqB,IAAI8pH,MAAMipV,EAAe/yc,mBAAoB,CAC/EyF,MAAO,SAAe+tc,EAA4BC,EAA2BC,GAE3E,OADAL,IACOG,EAA2B/tc,MAAMguc,EAA2BC,MAIvEX,EAAetxc,iBAAiB,mBAAoB4xc,GAMtDN,EAAezxc,iBAAmB,IAAIwoH,MAAMipV,EAAezxc,iBAAkB,CAC3EmE,MAAO,SAAekuc,EAA0BC,EAAyBC,GACvE,IAAIC,EAvGd,SAAwBnlc,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAuGnG,CAAekwc,EAA0B,GACjE9kb,EAAS+kb,EAAsB,GAC/B5vc,EAAQ4vc,EAAsB,GAE9BR,EAAUM,EAA2C,kBAMzD,OAJIN,GAAW,GAASvkb,IAAW,GAAS7qB,KAC1Covc,EAAQH,gBAAgBpkb,EAAO1tB,eAAiB6C,GAG3Cyvc,EAAyBluc,MAAMmuc,EAAyBC,MAG5Df,EAAartc,MAAMstc,EAAgBC,MAI9CH,EAAS5wc,KAAO,IAAI6nH,MAAM+oV,EAAS5wc,KAAM,CACvCwD,MAAO,SAAesuc,EAAcC,EAAaC,GAC/C,IAAIC,EAAgBF,EAA+B,kBAEnD,OAAKE,QAImBlzc,IAApBizc,EAAa,KACfC,EAAc5xa,KAAO2xa,EAAa,IAOpCvlB,GAAgB,MAJE,CAChB6H,eAAuC,IAAvB,KAChBzzZ,IAAKkxa,IAGAD,EAAatuc,MAAMuuc,EAAaC,IAZ9BF,EAAatuc,MAAMuuc,EAAaC,OCvH/C,SAAS,GAAkBtlc,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAMhL,SAAS,GAAQtlB,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAIzU,SAAS,GAAmBmkB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQp6N,EAAK8vB,GAAO,IAAM,IAAI+P,EAAOnQ,EAAI1vB,GAAK8vB,GAAUhtB,EAAQ+8B,EAAK/8B,MAAS,MAAO8B,GAAwB,YAAfhI,EAAOgI,GAAsBi7B,EAAK7P,KAAQrzB,EAAQmG,GAAiBpG,QAAQC,QAAQmG,GAAOpC,KAAKy5N,EAAOC,GAE7P,SAAS,GAAkBh1N,GAAM,OAAO,WAAc,IAAI8K,EAAO/N,KAAMwH,EAAOvG,UAAW,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAAU,IAAI8yB,EAAMtqB,EAAGf,MAAM6L,EAAMvG,GAAO,SAASwwN,EAAMr3N,GAAS,GAAmB4sB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,OAAQt3N,GAAU,SAASs3N,EAAOnqM,GAAO,GAAmBP,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,QAASnqM,GAAQkqM,OAAMv6N,OAEjX,SAAS,GAAQiuB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAiB3M,SAASwnc,GAA+Bhqa,EAASiqa,GAC/C,IAAIvlc,EAAO,QACX,GAAWA,EAAMs7B,GACjBqkZ,GAAgB3/a,GAAM,WACpB,OAAOwlc,QAAgBrzc,EAAWozc,MAqBtC,SAASC,GAAgBC,GACvB,IAAIF,EAAuB5vc,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAEtF4vc,IAAyBjG,MAI7Bn9W,GAAK8hV,GAAY,SAAS,SAAUyhC,GAClC,OAAO,WACL,IAAK,IAAI3zb,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGzB,IAAI2zb,EAAkBC,GAAe1pc,GACjCpL,EAAS60c,EAAgB70c,OACzBT,EAAMs1c,EAAgBt1c,IAEtB8vb,EAAc,CAChBjkb,KAAMA,EACN2pc,UAAW,CACT/0c,OAAQA,EACRT,IAAKA,GAEPq3b,eAAuC,IAAvB,MAGb+d,GACH5lB,GAAgB,QAAS,GAAc,GAAIM,IAS7C,IAAI2lB,GAAoB,IAAI5tc,OAAQgB,MAEpC,OAAOwsc,EAAc9uc,MAAMqta,GAAY/na,GAAMjJ,KAAmB,WAC9D,IAAI8T,EAAO,GAAgC,SAAyB,SAASgqN,EAAQtgO,GACnF,OAAO,SAAyB,SAAkBsyJ,GAChD,OACE,OAAQA,EAASj9G,KAAOi9G,EAAStgI,MAC/B,KAAK,EAUH,OATIgjb,EACFA,EAAgBh1c,GAEhBovb,GAAgB,QAAS,GAAc,GAAc,GAAIM,GAAc,GAAI,CACzE4H,aAAqC,IAAvB,KACdt3b,SAAUA,KAIPsyJ,EAAS6mB,OAAO,SAAUn5K,GAEnC,KAAK,EACL,IAAK,MACH,OAAOsyJ,EAAS79I,UAGrB6rN,OAGL,OAAO,SAAUiC,GACf,OAAOjsN,EAAKnQ,MAAMlC,KAAMiB,YA1BoC,IA4B3D,SAAUwB,GAkBb,MAjBA0ob,GAAgB,QAAS,GAAc,GAAc,GAAIM,GAAc,GAAI,CACzE4H,aAAqC,IAAvB,KACd5wb,MAAOA,KAGLmmF,GAAQnmF,SAA0BhF,IAAhBgF,EAAM+B,QAK1B/B,EAAM+B,MAAQ4sc,EACd/+B,GAAyB5va,EAAO,cAAe,IAM3CA,SAUd,SAAS4uc,KA6FP,OA5FAA,GAAmB,GAAgC,SAAyB,SAASlzO,EAAS/kM,EAAKk4a,GACjG,OAAO,SAAyB,SAAmBlzO,GACjD,OACE,OAAQA,EAAUhtL,KAAOgtL,EAAUrwM,MACjC,KAAK,EACH,IAAMqL,IAAOA,EAAI2F,KAAO,CACtBq/L,EAAUrwM,KAAO,EACjB,MAGF,OAAOqwM,EAAUvmD,cAA4B,SAAyB,SAASimD,IAC7E,IAAI/+L,EAAMwya,EAAgBC,EAAyBC,EAAeC,EAAcC,EAAuB9jb,EAEvG,OAAO,SAAyB,SAAmBkwM,GACjD,OACE,OAAQA,EAAU3sL,KAAO2sL,EAAUhwM,MACjC,KAAK,EACHgR,EAAO3F,EAAI2F,KACXwya,EAAiBxya,EAAK6ya,YAEtBJ,EAA0B30c,YAAW,WACnCkiC,EAAKvgC,SAASD,KAAK,MAAM,iBAExB,KAEHkzc,GAAgB,EAElB,KAAK,EACH,IAAKA,EAAe,CAClB1zO,EAAUhwM,KAAO,GACjB,MAYF,OATA2jb,OAAe,EACf3zO,EAAU3sL,KAAO,EAEjBsga,EAAe70c,YAAW,WACxBkiC,EAAKvgC,SAASD,KAAK,MAAM,iBAExB,KAEHw/N,EAAUhwM,KAAO,GACVwjb,EAAe/zc,OAExB,KAAK,GACHm0c,EAAwB5zO,EAAUhpD,KAClClnJ,EAAO8jb,EAAsB9jb,KAC7BwT,aAAaqwa,GAET7jb,IACFyjb,IACAG,GAAgB,GAGlB1zO,EAAUhwM,KAAO,GACjB,MAEF,KAAK,GACHgwM,EAAU3sL,KAAO,GACjB2sL,EAAU6W,GAAK7W,EAAiB,MAAE,GAClC0zO,GAAgB,EAElB,KAAK,GAGH,OAFA1zO,EAAU3sL,KAAO,GACjB/P,aAAaqwa,GACN3zO,EAAUl2D,OAAO,IAE1B,KAAK,GACHk2D,EAAUhwM,KAAO,EACjB,MAEF,KAAK,GACHsT,aAAamwa,GACbD,EAAeM,cACf9ya,EAAKvgC,SAASD,KAAK,MAAM,eAG3B,KAAK,GACL,IAAK,MACH,OAAOw/N,EAAUvtN,UAGtBstN,EAAU,KAAM,CAAC,CAAC,EAAG,GAAI,GAAI,QAxEW,GAyEvC,KAAM,GAEd,KAAK,EACL,IAAK,MACH,OAAOM,EAAU5tN,UAGtB2tN,QAEmBj8N,MAAMlC,KAAMiB,WAGtC,SAAS6wc,GAAc/1c,GAErB,IAAIg2c,EAEJ,IACEA,EAA6Bh2c,EAAS0oF,QACtC,MAAOx9E,GACP,QA3GJ,SAAyBq0O,EAAKC,GACrB81N,GAAiBnvc,MAAMlC,KAAMiB,WA8GpC+wc,CAAgBD,GAA4B,WAC1C5mB,GAAgB,sBAAuB,CACrCkI,aAAqC,IAAvB,KACdt3b,SAAUA,OAKhB,SAAS,GAAQqN,EAAK/D,GACpB,QAAS+D,GAAwB,WAAjB,GAAQA,MAAuBA,EAAI/D,GAGrD,SAAS4sc,GAAmBp4J,GAC1B,MAAwB,iBAAbA,EACFA,EAGJA,EAID,GAAQA,EAAU,OACbA,EAASl+S,IAGdk+S,EAAS55S,SACJ45S,EAAS55S,WAGX,GAXE,GAmBX,SAASixc,GAAegB,GACtB,GAAyB,IAArBA,EAAU9vc,OACZ,MAAO,CACLhG,OAAQ,MACRT,IAAK,IAIT,GAAyB,IAArBu2c,EAAU9vc,OAAc,CAC1B,IAAI+vc,EAzTR,SAAwB/mc,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAyTpH,CAAe8xc,EAAW,GACvCv2c,EAAMw2c,EAAW,GACjBrvc,EAAUqvc,EAAW,GAEzB,MAAO,CACLx2c,IAAKs2c,GAAmBt2c,GACxBS,OAAQ,GAAQ0G,EAAS,UAAYi1D,OAAOj1D,EAAQ1G,QAAQC,cAAgB,OAIhF,IAAIsxB,EAAMukb,EAAU,GACpB,MAAO,CACLv2c,IAAKs2c,GAAmBtkb,GACxBvxB,OAAQ,GAAQuxB,EAAK,UAAYoqC,OAAOpqC,EAAIvxB,QAAQC,cAAgB,OCnUxE,SAAS+1c,GAAwCzjS,GAE/C,YAAmBlxK,IAAfkxK,OACF,EACSA,GAAc,KAAOA,EAAa,IACpC,UACEA,GAAc,IAChB,aAEP,ECLJ,SAAS,GAAShzK,GAChB,IAAKA,EACH,MAAO,GAGT,IAAIkN,EAAQlN,EAAIkN,MAAM,gEAEtB,IAAKA,EACH,MAAO,GAIT,IAAIyK,EAAQzK,EAAM,IAAM,GACpB6xJ,EAAW7xJ,EAAM,IAAM,GAC3B,MAAO,CACLsB,KAAMtB,EAAM,GACZR,KAAMQ,EAAM,GACZqB,SAAUrB,EAAM,GAChBuB,OAAQkJ,EACRjJ,KAAMqwJ,EACN9M,SAAU/kJ,EAAM,GAAKyK,EAAQonJ,GC3BjC,SAAS,GAAQtxJ,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAEzU,SAAS,GAAQsiB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAS3M,IAAIipc,GAA4B,KAC5B,GAAmB,cA4CnBC,GA1C0B,WAC5B,IAAIxvc,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9EspN,EAAW,GAAc,CAC3Bn+M,SAAS,EACTmmc,KAAK,EACLlob,OAAO,EACP28B,SAAS,EACT+yX,QAAQ,EACRx6Y,KAAK,GACJz8B,GAEH,MAAO,CACLoB,KAAM,GACNo4J,MAAO,SAAez8G,GAChB0qK,EAASn+M,SACXggb,GAAiComB,GAA6B3yZ,IAG5D0qK,EAASgoP,KACXlE,GAAuCoE,GAAyB5yZ,EAAQ0qK,EAASgoP,MAG/EhoP,EAAShrL,KACX6va,GAA6BsD,GAAyB7yZ,IAGpD0qK,EAASlgM,OACXumb,GAA+B+B,GAA2B9yZ,IAGxD0qK,EAASvjK,SACX2mZ,GAAiCiF,GAA6B/yZ,IAG5D0qK,EAASwvN,QACXl6X,EAAOp7B,GAAG,kBAAmBoub,GAA4BhzZ,OAWjE,SAASgzZ,GAA4BhzZ,GACnC,OAAO,SAA6Bj7B,GAC9B,OAAgBi7B,GAIpB46X,GAAc,CACZt4Z,SAAU,UAAUhgB,OAAsB,gBAAfyiB,EAAMtZ,KAAyB,cAAgB,SAC1Esoa,SAAUhvZ,EAAMgvZ,SAChBzoZ,MAAOvG,EAAMuG,MACbprB,QAAS4za,GAAoB/uZ,IAC5B,CACDA,MAAOA,KAUb,SAAS6tb,GAAyB5yZ,EAAQ0yZ,GACxC,OAAO,SAA6B9mB,GAClC,GAAI,OAAgB5rY,EAApB,CAIA,IAAI76C,EACAg9M,EACAmuN,EAA4B,WAAjB,GAAQoiC,GAAoBA,EAAIO,wBAAqBr1c,EAChE2ya,EAAmC,WAAjB,GAAQmiC,IAAoD,iBAAxBA,EAAIniC,gBAA+BmiC,EAAIniC,qBAAkB3ya,EAE/G2ya,GAAmBA,EAAkBiiC,KACvC,IAAe,QAAY,uCAAuClwc,OAAOkwc,GAA2B,qBAAqBlwc,OAAOiua,EAAiB,qCAAqCjua,OAAOkwc,GAA2B,cACxNjiC,EAAkBiiC,IAGI,iBAAbliC,IACTA,EAAW,CAACA,IAId,IACE,IAAIvrZ,EAAQ6ma,EAAY7ma,MACpBnS,EAqNV,SAAkBmS,GAChB,QAASA,KAAWA,EAAM5f,OAtNR+tc,CAASnub,GAASA,EAAM5f,OAAS4f,EAC/C5f,EAAS8qa,GAAiBr9Z,EAAS,CACjC09Z,SAAUA,EACVC,gBAAiBA,IAEnBpuN,EAAgB,GAAiBvvM,GACjC,MAAOxL,GACPjC,EAAS,YAGX,GAAsB,IAAlBA,EAAO5C,OAAX,CAIA,IAAI+1a,EAAa,CACfh2Z,SAAU,MAAMhgB,OAAOspb,EAAYvnb,MACnCnE,QAASiF,GAGPg9M,IACFm2N,EAAWx9a,KAAO,CAChB,oBAAqBqnN,IAIzBy4N,GAActC,EAAY,CACxBvzZ,MAAO6ma,EAAY7ma,MACnB1gB,KAAMunb,EAAYvnb,KAClBqxF,OAAQk2V,EAAYl2V,YAS1B,SAASi9W,GAA6B3yZ,GACpC,OAAO,SAA4B4rY,GACjC,GAAI,OAAgB5rY,EAApB,CAIA,IAAIs4X,EAAa,CACfh2Z,SAAU,UACVxnB,KAAM,CACJsG,UAAWwqb,EAAYjkb,KACvB6pa,OAAQ,WAEVlmZ,MAAOoha,GAAwBd,EAAYtga,OAC3CprB,QAAS6xa,GAAS6Z,EAAYjkb,KAAM,MAGtC,GAA0B,WAAtBikb,EAAYtga,MAAoB,CAClC,IAA4B,IAAxBsga,EAAYjkb,KAAK,GAKnB,OAJA2wa,EAAWp4a,QAAU,qBAAqBoC,OAAOyva,GAAS6Z,EAAYjkb,KAAKrC,MAAM,GAAI,MAAQ,kBAC7Fgza,EAAWx9a,KAAKsG,UAAYwqb,EAAYjkb,KAAKrC,MAAM,GAOvDs1a,GAActC,EAAY,CACxB/9X,MAAOqxY,EAAYjkb,KACnB2jB,MAAOsga,EAAYtga,UASzB,SAASunb,GAAyB7yZ,GAChC,OAAO,SAAwB4rY,GAC7B,GAAI,OAAgB5rY,EAApB,CAIA,IAAImzY,EAAiBvH,EAAYuH,eAC7BK,EAAe5H,EAAY4H,aAC3Bsd,EAAgBllB,EAAYlsZ,IAAuB,kBAEvD,GAAKyzZ,GAAmBK,GAAiBsd,EAAzC,CAIA,IAAIv0c,EAASu0c,EAAcv0c,OACvBT,EAAMg1c,EAAch1c,IACpBq0c,EAAcW,EAAcX,YAC5Bjxa,EAAO4xa,EAAc5xa,KACrBpkC,EAAO,CACTyB,OAAQA,EACRT,IAAKA,EACLq0c,YAAaA,GAEXtrT,EAAO,CACTnlH,IAAKksZ,EAAYlsZ,IACjB6a,MAAOrb,EACPi0Z,eAAgBA,EAChBK,aAAcA,GAGhB5Y,GAAc,CACZt4Z,SAAU,MACVxnB,KAAMA,EACN2Q,KAAM,OACN6f,MALUinb,GAAwCpC,IAMjDtrT,MAQP,SAASiuT,GAA2B9yZ,GAClC,OAAO,SAA0B4rY,GAC/B,GAAI,OAAgB5rY,EAApB,CAIA,IAAImzY,EAAiBvH,EAAYuH,eAC7BK,EAAe5H,EAAY4H,aAE/B,GAAKA,KAID5H,EAAY0lB,UAAUx1c,IAAIkN,MAAM,eAAkD,SAAjC4ib,EAAY0lB,UAAU/0c,QAK3E,GAAIqvb,EAAYhpb,MAQdg4a,GAAc,CACZt4Z,SAAU,QACVxnB,KATS8wb,EAAY0lB,UAUrBhmb,MAAO,QACP7f,KAAM,QAVG,CACT3Q,KAAM8wb,EAAYhpb,MAClB23C,MAAOqxY,EAAYjkb,KACnBwrb,eAAgBA,EAChBK,aAAcA,QAQX,CACL,IAAIt3b,EAAW0vb,EAAY1vb,SAEvB46G,EAAQ,GAAc,GAAc,GAAI80U,EAAY0lB,WAAY,GAAI,CACtEnB,YAAaj0c,GAAYA,EAASE,SAGhCohc,EAAQ,CACVjjZ,MAAOqxY,EAAYjkb,KACnBzL,SAAUA,EACVi3b,eAAgBA,EAChBK,aAAcA,GAGhB5Y,GAAc,CACZt4Z,SAAU,QACVxnB,KAAMg8G,EACNrrG,KAAM,OACN6f,MALUinb,GAAwCz7V,EAAMq5V,cAMvD3S,MAST,SAASuV,GAA6B/yZ,GACpC,OAAO,SAA4B4rY,GACjC,GAAI,OAAgB5rY,EAApB,CAIA,IAAIhxB,EAAO48Z,EAAY58Z,KACnBkd,EAAK0/Y,EAAY1/Y,GACjBina,EAAY,GAAS,kBACrBC,EAAapkb,EAAO,GAASA,QAAQpxB,EACrCy1c,EAAW,GAASnna,GAEnBkna,GAAeA,EAAW5qc,OAC7B4qc,EAAaD,GAKXA,EAAU9oc,WAAagpc,EAAShpc,UAAY8oc,EAAU7oc,OAAS+oc,EAAS/oc,OAC1E4hC,EAAKmna,EAAStlT,UAGZolT,EAAU9oc,WAAa+oc,EAAW/oc,UAAY8oc,EAAU7oc,OAAS8oc,EAAW9oc,OAC9E0kB,EAAOokb,EAAWrlT,UAGpB6sR,GAAc,CACZt4Z,SAAU,aACVxnB,KAAM,CACJk0B,KAAMA,EACNkd,GAAIA,OC7TZ,SAAS,GAAQrgB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAK3M,IAAI+pc,GAAuB,CAAC,cAAe,SAAU,OAAQ,mBAAoB,iBAAkB,mBAAoB,oBAAqB,kBAAmB,cAAe,aAAc,qBAAsB,cAAe,aAAc,iBAAkB,eAAgB,kBAAmB,cAAe,cAAe,eAAgB,qBAAsB,SAAU,eAAgB,YAAa,eAAgB,gBAAiB,YAAa,kBAAmB,SAAU,iBAAkB,4BAA6B,wBACrgB,GAAmB,mBAgDnBC,GA9C+B,WACjC,IAAItwc,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9EspN,EAAW,GAAc,CAC3BtvN,gBAAgB,EAChBo4c,aAAa,EACb/kZ,uBAAuB,EACvByvE,aAAa,EACblhI,YAAY,GACXiG,GAEH,MAAO,CACLoB,KAAM,GAGNymb,UAAW,WACLpgO,EAAS1tN,YACX4wF,GAAK,GAAQ,aAAc6lX,IAGzB/oP,EAASxsF,aACXtwC,GAAK,GAAQ,cAAe6lX,IAG1B/oP,EAASj8J,uBACXm/B,GAAK,GAAQ,wBAAyB8lX,IAGpChpP,EAAStvN,gBAAkB,mBAAoB,IACjDwyF,GAAKxyF,eAAeiE,UAAW,OAAQs0c,IAGzC,IAAIC,EAAoBlpP,EAAS8oP,YAE7BI,IACgBxxc,MAAMiD,QAAQuuc,GAAqBA,EAAoBN,IAC7Dx1c,QAAQ+1c,OAY5B,SAASJ,GAAkBvnU,GAEzB,OAAO,WACL,IAAK,IAAI1uH,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGzB,IAAIq2b,EAAmBnsc,EAAK,GAU5B,OATAA,EAAK,GAAK8oF,GAAKqjX,EAAkB,CAC/Bz/B,UAAW,CACTv5a,KAAM,CACJswB,SAAUkxZ,GAAgBpwS,IAE5BgT,SAAS,EACTzzI,KAAM,gBAGHygI,EAAS7pI,MAAMlC,KAAMwH,IAKhC,SAAS+rc,GAASxnU,GAEhB,OAAO,SAAU5gI,GAEf,OAAO4gI,EAAS7pI,MAAMlC,KAAM,CAACswF,GAAKnlF,EAAU,CAC1C+oa,UAAW,CACTv5a,KAAM,CACJswB,SAAU,wBACV2b,QAASu1Y,GAAgBpwS,IAE3BgT,SAAS,EACTzzI,KAAM,mBAMd,SAASkoc,GAAShD,GAEhB,OAAO,WAEL,IAAIjxa,EAAMv/B,KACN4zc,EAAsB,CAAC,SAAU,UAAW,aAAc,sBAC9DA,EAAoBj2c,SAAQ,SAAU0H,GAChCA,KAAQk6B,GAA4B,mBAAdA,EAAIl6B,IAE5BooF,GAAKluD,EAAKl6B,GAAM,SAAU0mI,GACxB,IAAI8nU,EAAc,CAChB3/B,UAAW,CACTv5a,KAAM,CACJswB,SAAU5lB,EACVuhC,QAASu1Y,GAAgBpwS,IAE3BgT,SAAS,EACTzzI,KAAM,eAINuxb,EAAmBtqB,GAAoBxmS,GAO3C,OALI8wT,IACFgX,EAAY3/B,UAAUv5a,KAAKisC,QAAUu1Y,GAAgB0gB,IAIhDvsW,GAAKy7C,EAAU8nU,SAK5B,IAAK,IAAIlkb,EAAQ1uB,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM0tB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFpoB,EAAKooB,GAAS3uB,UAAU2uB,GAG1B,OAAO4gb,EAAatuc,MAAMlC,KAAMwH,IAIpC,SAASksc,GAAiB1uc,GAExB,IAAI8uc,EAAe,GAEftnY,EAAQsnY,EAAa9uc,IAAW8uc,EAAa9uc,GAAQ9F,UAEpDstE,GAAUA,EAAM5/D,gBAAmB4/D,EAAM5/D,eAAe,sBAI7D6gF,GAAKjhB,EAAO,oBAAoB,SAAUu/D,GACxC,OAAO,SACPgvR,EAAW93Z,EAAIH,GACb,IACgC,mBAAnBG,EAAG8xZ,cAOZ9xZ,EAAG8xZ,YAAczkU,GAAKrtF,EAAG8xZ,YAAa,CACpCmf,UAAW,CACTv5a,KAAM,CACJswB,SAAU,cACV2b,QAASu1Y,GAAgBl5a,GACzB+B,OAAQA,GAEV+5I,SAAS,EACTzzI,KAAM,iBAIZ,MAAOwiB,IAGT,OAAOi+G,EAAS7pI,MAAMlC,KAAM,CAAC+6Z,EAC7BzqU,GAAKrtF,EAAI,CACPixa,UAAW,CACTv5a,KAAM,CACJswB,SAAU,mBACV2b,QAASu1Y,GAAgBl5a,GACzB+B,OAAQA,GAEV+5I,SAAS,EACTzzI,KAAM,gBAENxI,QAGR2qF,GAAKjhB,EAAO,uBAAuB,SAAUsiY,GAE3C,OAAO,SACP/zC,EAAW93Z,EAAIH,GAkBb,IAAIixc,EAAsB9wc,EAE1B,IACE,IAAI+wc,EAAuBD,GAAuBA,EAAoBhQ,mBAElEiQ,GACFlF,EAA4Bnrc,KAAK3D,KAAM+6Z,EAAWi5C,EAAsBlxc,GAE1E,MAAOmE,IAGT,OAAO6nc,EAA4Bnrc,KAAK3D,KAAM+6Z,EAAWg5C,EAAqBjxc,QC9NpF,SAAS,GAAQ4oB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAO3M,IAAI,GAAmB,iBA+BnB6qc,GA7B6B,WAC/B,IAAInxc,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9EspN,EAAW,GAAc,CAC3BxtN,SAAS,EACTgvb,sBAAsB,GACrBjpb,GAEH,MAAO,CACLoB,KAAM,GACNymb,UAAW,WACTnnb,MAAM0wc,gBAAkB,IAE1B53S,MAAO,SAAez8G,GAChB0qK,EAASxtN,UACXo3c,GAA6Bt0Z,GAE7Bu0Z,GAAiB,YAGf7pP,EAASwhO,uBACXsoB,GAA0Cx0Z,GAE1Cu0Z,GAAiB,4BAQzB,SAASD,GAA6Bt0Z,GACpCyrY,IAAqC,SAAU3wb,GAC7C,IAAI25c,EAAc,KACdx4B,EAAcw4B,EAAYx4B,YAC1BgtB,EAAmBwL,EAAYxL,iBAEnC,GAAI,OAAgBjpZ,IAAUgkZ,KAA9B,CAIA,IAAItgW,EAAM5oG,EAAK4oG,IACX5nG,EAAMhB,EAAKgB,IACXsP,EAAOtQ,EAAKsQ,KACZugb,EAAS7wb,EAAK6wb,OACd/ob,EAAQ9H,EAAK8H,MAEbmiB,EAoFR,SAAuCA,EAAOjpB,EAAKsP,EAAMugb,GAEvD,IAAIvkb,EAAI2d,EAAM0yJ,UAAY1yJ,EAAM0yJ,WAAa,GAEzCi9R,EAAKttc,EAAEm+D,OAASn+D,EAAEm+D,QAAU,GAE5BovY,EAAMD,EAAG,GAAKA,EAAG,IAAM,GAEvBE,EAAOD,EAAIn4B,WAAam4B,EAAIn4B,YAAc,GAE1Cq4B,EAAQD,EAAKv9Y,OAASu9Y,EAAKv9Y,QAAU,GACrCu6W,EAAQ/8W,MAAMxvC,SAASsma,EAAQ,UAAO/tb,EAAY+tb,EAClDiQ,EAAS/mY,MAAMxvC,SAASja,EAAM,UAAOxN,EAAYwN,EACjD2P,EAAW,GAASjf,IAAQA,EAAIyG,OAAS,EAAIzG,EAAMg1a,KAYvD,OAVqB,IAAjB+jC,EAAMtyc,QACRsyc,EAAM3yc,KAAK,CACT0va,MAAOA,EACP72Z,SAAUA,EACVqQ,SAAUkwZ,GACV2wB,QAAQ,EACRrQ,OAAQA,IAIL72a,EA7GO+vb,CAA8B5L,GAAsBjtB,EAAar5a,GAAS8gG,OAAK9lG,EAAWqrc,GAAkB,GAAQntc,EAAKsP,EAAMugb,GAE3I5ma,EAAMuG,MAAQ,QACd6tZ,GAAap0Z,EAAO,CAClBk0Z,kBAAmBr2a,EACnByxa,UAAW,CACTn1R,SAAS,EACTzzI,KAAM,iBAMd,SAAS+oc,GAA0Cx0Z,GACjDgsY,IAAkD,SAAU5kb,GAC1D,IAAI2tc,EAAe,KACf94B,EAAc84B,EAAa94B,YAC3BgtB,EAAmB8L,EAAa9L,iBAEpC,GAAI,OAAgBjpZ,IAAUgkZ,KAA9B,CAIA,IAAIphc,EAcR,SAAqCA,GACnC,GAAI,GAAYA,GACd,OAAOA,EAIT,IAGE,GAAI,WAAYA,EACd,OAAOA,EAAMlC,OAQf,GAAI,WAAYkC,GAAS,WAAYA,EAAM2V,OACzC,OAAO3V,EAAM2V,OAAO7X,OAEtB,MAAOmvc,IAGT,OAAOjtc,EAtCOoyc,CAA4B5tc,GAEpC2d,EAAQ,GAAYniB,GA+CnB,CACL60K,UAAW,CACTlyG,OAAQ,CAAC,CACP95D,KAAM,qBAEN3K,MAAO,oDAAoDwB,OAAO41D,OApDJt1D,QAASsmc,GAAsBjtB,EAAar5a,OAAOhF,EAAWqrc,GAAkB,GAClJlkb,EAAMuG,MAAQ,QACd6tZ,GAAap0Z,EAAO,CAClBk0Z,kBAAmBr2a,EACnByxa,UAAW,CACTn1R,SAAS,EACTzzI,KAAM,8BAiFd,SAAS8oc,GAAiB9oc,GACxB,IAAe,GAAAizH,IAAW,4BAA4Bp8H,OAAOmJ,IAG/D,SAAS,KACP,IAAIu0C,EAAS,KAOb,OANcA,GAAUA,EAAO3tB,cAAgB,CAC7C4pZ,YAAa,WACX,MAAO,IAETgtB,kBAAkB,GCtLtB,SAAS,GAAQp9a,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAS3M,IAAI0rc,GAA2C,WAC7C,MAAO,CACL5wc,KAAM,cACN0mb,gBAAiB,SAAyBhma,GAExC,GAAK,cAAqB,aAAoB,YAA9C,CAKA,IAAIjpB,EAAMipB,EAAM5pB,SAAW4pB,EAAM5pB,QAAQW,KAAO,aAAmB,iBAG/Do5c,GADO,aAAmB,IACVA,SAGhBnrc,GADQ,cAAoB,IACVA,UAElB/O,EAAU,GAAc,GAAc,GAAc,GAAI+pB,EAAM5pB,SAAW4pB,EAAM5pB,QAAQH,SAAUk6c,GAAY,CAC/GC,QAASD,IACPnrc,GAAa,CACf,aAAcA,IAGZ5O,EAAU,GAAc,GAAc,GAAc,GAAI4pB,EAAM5pB,SAAUW,GAAO,CACjFA,IAAKA,IACH,GAAI,CACNd,QAASA,IAGX+pB,EAAM5pB,QAAUA,MC3CtB,SAAS,GAAQ0wB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAmBgC,GAAO,OAQnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAmBA,IAM7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAItF,SAAqCmX,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ/M,CAA4BtnN,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAUlI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAQhL,SAASumb,GAA4BC,EAAkCvuc,GACrE,IAAIwuc,EAAgBl0c,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,IACpFpD,EAAMoD,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAC5C09B,EAAQl6B,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAC9CmnB,EAAQ3jB,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAC9CinJ,EAAOzjJ,UAAUmB,OAAS,EAAInB,UAAU,QAAKxD,EAEjD,GAAKmnB,EAAM0yJ,WAAc1yJ,EAAM0yJ,UAAUlyG,QAAWs/E,GAASqqR,GAAarqR,EAAKo0R,kBAAmBt1a,OAAlG,CAKA,IAAIs1a,EAAoBl0Z,EAAM0yJ,UAAUlyG,OAAOhjE,OAAS,EAAIwiB,EAAM0yJ,UAAUlyG,OAAOxgD,EAAM0yJ,UAAUlyG,OAAOhjE,OAAS,QAAK3E,EAEpHq7a,IACFl0Z,EAAM0yJ,UAAUlyG,OAASgwY,GAA4BC,GAA6BH,EAAkCvuc,EAAQw0B,EAAOupH,EAAKo0R,kBAAmBj7a,EAAK+mB,EAAM0yJ,UAAUlyG,OAAQ0zW,EAAmB,GAAIq8B,KAInN,SAASE,GAA6BH,EAAkCvuc,EAAQw0B,EAAO14B,EAAO5E,EAAKy3c,EAAgBh+R,EAAWi+R,GAC5H,GAAID,EAAelzc,QAAU+4B,EAAQ,EACnC,OAAOm6a,EAGT,IAAIE,EAAgB,GAAmBF,GAGvC,GAAIvmC,GAAatsa,EAAM5E,GAAM2F,OAAQ,CACnCiyc,GAA4Cn+R,EAAWi+R,GACvD,IAAIG,EAAeR,EAAiCvuc,EAAQlE,EAAM5E,IAC9D83c,EAAiBH,EAAcpzc,OACnCwzc,GAA2CF,EAAc73c,EAAK83c,EAAgBJ,GAC9EC,EAAgBH,GAA6BH,EAAkCvuc,EAAQw0B,EAAO14B,EAAM5E,GAAMA,EAAK,CAAC63c,GAAcvzc,OAAO,GAAmBqzc,IAAiBE,EAAcC,GAmBzL,OAdI1zc,MAAMiD,QAAQzC,EAAMiiN,SACtBjiN,EAAMiiN,OAAO/mN,SAAQ,SAAUk4c,EAAYpuc,GACzC,GAAIsna,GAAa8mC,EAAYryc,OAAQ,CACnCiyc,GAA4Cn+R,EAAWi+R,GAEvD,IAAIO,EAAgBZ,EAAiCvuc,EAAQkvc,GAEzDE,EAAkBP,EAAcpzc,OACpCwzc,GAA2CE,EAAe,UAAU3zc,OAAOsF,EAAG,KAAMsuc,EAAiBR,GACrGC,EAAgBH,GAA6BH,EAAkCvuc,EAAQw0B,EAAO06a,EAAYh4c,EAAK,CAACi4c,GAAe3zc,OAAO,GAAmBqzc,IAAiBM,EAAeC,OAKxLP,EAGT,SAASC,GAA4Cn+R,EAAWi+R,GAE9Dj+R,EAAU48P,UAAY58P,EAAU48P,WAAa,CAC3C5oa,KAAM,UACNyzI,SAAS,GAEXu4B,EAAU48P,UAAY,GAAc,GAAc,GAAc,GAAI58P,EAAU48P,WAA+B,mBAAnB58P,EAAUhsK,MAA6B,CAC/H0qc,oBAAoB,IAClB,GAAI,CACNC,aAAcV,IAIlB,SAASK,GAA2Ct+R,EAAW72K,EAAQ80c,EAAaW,GAElF5+R,EAAU48P,UAAY58P,EAAU48P,WAAa,CAC3C5oa,KAAM,UACNyzI,SAAS,GAEXu4B,EAAU48P,UAAY,GAAc,GAAc,GAAI58P,EAAU48P,WAAY,GAAI,CAC9E5oa,KAAM,UACN7K,OAAQA,EACRw1c,aAAcV,EACdY,UAAWD,IAUf,SAASd,GAA4BrwU,EAAY0gT,GAC/C,OAAO1gT,EAAW9pH,KAAI,SAAUq8J,GAK9B,OAJIA,EAAU32K,QACZ22K,EAAU32K,MAAQ00F,GAASiiF,EAAU32K,MAAO8kb,IAGvCnuQ,KClHX,IAAI8+R,GAAc,QAEd,GAAmB,eAoBnBC,GAlB2B,WAC7B,IAAIvzc,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9Ek6B,EAAQr4B,EAAQq4B,OALF,EAMdt9B,EAAMiF,EAAQjF,KAAOu4c,GACzB,MAAO,CACLlyc,KAAM,GACN0mb,gBAAiB,SAAyBhma,EAAO8/H,EAAM7kG,GACrD,IAAI/8C,EAAU+8C,EAAO3tB,aACrB+ib,GACA/M,GAAoBplc,EAAQg5a,YAAah5a,EAAQ2ib,eAAgB5nb,EAAKs9B,EAAOvW,EAAO8/H,MChB1F,SAAS,GAAQh5H,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAiB3M,SAASktc,GAAuB/rP,GAK9B,MAAO,CAAC6yO,KAA6BR,KAA+BwW,KAA+Bd,KAA0B2B,KAA6BoC,KAA2B7b,KAAqBsa,MAG5M,SAASyB,KACP,IAAIC,EAAav1c,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GACjFkxB,EAAiB,CACnB23Z,oBAAqBwsB,KACrBxva,QAAuC,iBAAvB2va,mBACdA,mBAAqB,mBAAyB,qBAC9C,0BAA2Bh5c,EAC7Bi5c,qBAAqB,EACrB3Q,mBAAmB,GAUrB,OAJsC,MAAlCyQ,EAAW1sB,4BACN0sB,EAAW1sB,oBAGb,GAAc,GAAc,GAAI33Z,GAAiBqkb,GAG1D,SAASG,KACP,IAAIC,OAAoD,IAAlB,WAAiC,GAEvE,IAAKA,EAEH,OAAO,EAGT,IACIC,EAAkBD,EADHA,EAAyB7I,OAAS,SAAW,WAE5D+I,EAAYD,GAAmBA,EAAgBxta,SAAWwta,EAAgBxta,QAAQrmC,GAClFgH,EAAO,aAAmB,kBAAwB,GAGlD+sc,IAA6BD,GAAa,KAAW,QAFhC,CAAC,oBAAqB,iBAAkB,wBAAyB,yBAEA18b,MAAK,SAAUlQ,GACvG,OAAOF,EAAK8pF,WAAW,GAAG3xF,OAAO+H,EAAU,UAIzC8sc,OAAgD,IAAhCJ,EAAyBK,GAC7C,QAASH,IAAcC,IAA6BC,EAsDtD,SAAS,KACP,IAAIE,EAAiBj2c,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GACrF6B,EAAUyzc,GAAoBW,GAElC,GAAKp0c,EAAQq0c,4BAA6BR,KAA1C,CAQI,KACGpM,MACH,QAAY,uIAIhB,IAAIjN,EAAgB,GAAc,GAAc,GAAIx6b,GAAU,GAAI,CAChEg5a,YAAaD,GAAkC/4a,EAAQg5a,aAAe0xB,IACtEjoB,aAAcsE,GAAuB/mb,GACrCmrK,UAAWnrK,EAAQmrK,WAAam9R,KAG9BvrZ,EAASwiZ,GAAY6H,GAAe5M,GAMxC,OAJIx6b,EAAQ4zc,qBACVU,KAGKv3Z,EAzBLoxX,IAAe,WAEb7ka,QAAQ3J,MAAM,4JAoCpB,SAAS40c,KACP,IAAIv0c,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAGlF,GAAK,YAAL,CAKA,IAAIigD,EAAQ,KACRrB,EAASqB,EAAM24X,YACfsU,EAAMtuY,GAAUA,EAAOokY,SAE3B,GAAKkK,EAAL,CASA,GAJIjtY,IACFp+C,EAAQkqL,KAAO,GAAc,GAAc,GAAI9rI,EAAMkoY,WAAYtmb,EAAQkqL,QAGtElqL,EAAQukO,QAAS,CACpB,IAAIA,EAAUiwM,KAEVjwM,IACFvkO,EAAQukO,QAAUA,GAItB,IAAIvhF,EAAS,0BAA8B,UAC3CA,EAAOynB,OAAQ,EACfznB,EAAO7wI,YAAc,YACrB6wI,EAAO/xI,IAAMkrb,GAAwB9Q,EAAKrrb,GAEtCA,EAAQqjQ,SACVrgH,EAAO5wI,OAASpS,EAAQqjQ,QAG1B,IAAIp5I,EAAUjqH,EAAQiqH,QAEtB,GAAIA,EAAS,CACX,IAAIuqV,EAAmC,SAASA,EAAiC1yb,GAC/E,GAAmB,mCAAfA,EAAMjqB,KACR,IACEoyH,IACA,QACA,uBAA2B,UAAWuqV,KAK5C,oBAAwB,UAAWA,GAGrC,IAAIC,EAAiB,kBAAwB,iBAEzCA,EACFA,EAAe9jc,YAAYqyI,GAE3B,IAAe,SAAa,sEA9C5B,IAAe,SAAa,qDAT5B,IAAe,SAAa,wDAgEhC,SAAS0xT,MAQT,SAASrxM,GAAOh7P,GACdA,IAOF,SAASisc,UACwB,IAApB,aASXvuB,GAAa,CACXhT,gBAAgB,IAElB8T,KAEAgkB,IAAiC,SAAUt7b,GACzC,IAAIwc,EAAOxc,EAAKwc,KACZkd,EAAK15B,EAAK05B,QAGDtuC,IAAToxB,GAAsBA,IAASkd,IACjC88Y,GAAa,CACXhT,gBAAgB,IAElB8T,UAtBF,IAAe,QAAY,sFAiC/B,SAAS8tB,GAAoB1qB,GAC3B,IAAIltY,EAAS,KAETA,GAEFA,EAAO43Z,oBAAoB1qB,GClS/B,SAAS,GAAmBx/Z,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQp6N,EAAK8vB,GAAO,IAAM,IAAI+P,EAAOnQ,EAAI1vB,GAAK8vB,GAAUhtB,EAAQ+8B,EAAK/8B,MAAS,MAAO8B,GAAwB,YAAfhI,EAAOgI,GAAsBi7B,EAAK7P,KAAQrzB,EAAQmG,GAAiBpG,QAAQC,QAAQmG,GAAOpC,KAAKy5N,EAAOC,GAE7P,SAAS,GAAkBh1N,GAAM,OAAO,WAAc,IAAI8K,EAAO/N,KAAMwH,EAAOvG,UAAW,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAAU,IAAI8yB,EAAMtqB,EAAGf,MAAM6L,EAAMvG,GAAO,SAASwwN,EAAMr3N,GAAS,GAAmB4sB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,OAAQt3N,GAAU,SAASs3N,EAAOnqM,GAAO,GAAmBP,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,QAASnqM,GAAQkqM,OAAMv6N,OAKjX,IAAIi6c,GAA2B,CAC7BC,kBAAmB,SACnBC,wBAAyB,gBACzBC,oBAAqB,WACrBC,yBAA0B,iBAC1BC,8BAA+B,sBAC/BtrB,0BAA2B,iBAC3BurB,wBAAyB,eACzB3B,wBAAyB,eACzB/b,iBAAkB,QAClBE,kBAAmB,SACnBqB,0BAA2B,iBAC3Boc,sBAAuB,aACvBC,6BAA8B,oBAC9B5W,yBAA0B,gBAC1Bc,yBAA0B,gBAC1B+V,4BAA6B,oBAE3BC,GAA6B,GAMjC,SAASC,GAAoB/5O,EAAIgd,GAC/B,OAAOg9N,GAAqBp2c,MAAMlC,KAAMiB,WAG1C,SAASq3c,KAiGP,OAhGAA,GAAuB,GAAgC,SAAyB,SAASj8O,EAAQn4N,EAAMq0c,GACrG,IAAIC,EAAQC,EAAgBxzR,EAAUtpL,EAAKmqJ,EAAQ4yT,EAAaC,EAAel6b,EAAQm6b,EACvF,OAAO,SAAyB,SAAkBvqT,GAChD,OACE,OAAQA,EAASj9G,KAAOi9G,EAAStgI,MAC/B,KAAK,EAKH,GAJAyqb,EAASd,GAAyBxzc,GAElCu0c,EAAiBL,GAA2BS,OAAST,GAA2BS,QAAU,GAEtFL,EAAQ,CACVnqT,EAAStgI,KAAO,EAChB,MAGF,MAAM,IAAIvqB,MAAM,iCAAiCrB,OAAO+B,IAE1D,KAAK,EAMH,GAA0B,mBAJ1B+gL,EAAWwzR,EAAev0c,KAIgB,YAAa+gL,EAAY,CACjE52B,EAAStgI,KAAO,EAChB,MAGF,OAAOsgI,EAAS6mB,OAAO,SAAU+P,GAEnC,KAAK,EAoBH,GAnBAtpL,EAAMm9c,GAAaN,IACnB1yT,EAAS,0BAA8B,WAChC/xI,IAAMpY,EACbmqJ,EAAO7wI,YAAc,YACrB6wI,EAAO4lT,eAAiB,SAEpB6M,GACFzyT,EAAO77I,aAAa,QAASsuc,GAG/BG,EAAc,IAAIn+c,SAAQ,SAAUC,EAASC,GAC3CqrJ,EAAO5nJ,iBAAiB,QAAQ,WAC9B,OAAO1D,OAETsrJ,EAAO5nJ,iBAAiB,QAASzD,MAEnCk+c,EAAgB,4BAChBl6b,EAAS,kBAAwB,kBAAwBk6b,GAAiBA,EAAcI,eAE3E,CACX1qT,EAAStgI,KAAO,GAChB,MAGFtP,EAAOhL,YAAYqyI,GACnBuI,EAAStgI,KAAO,GAChB,MAEF,KAAK,GACH,MAAM,IAAIvqB,MAAM,uDAAuDrB,OAAO+B,EAAM,YAEtF,KAAK,GAGH,OAFAmqJ,EAASj9G,KAAO,GAChBi9G,EAAStgI,KAAO,GACT2qb,EAET,KAAK,GACHrqT,EAAStgI,KAAO,GAChB,MAEF,KAAK,GAGH,MAFAsgI,EAASj9G,KAAO,GAChBi9G,EAASumF,GAAKvmF,EAAgB,MAAE,IAC1B,IAAI7qJ,MAAM,mCAAmCrB,OAAO+B,IAE5D,KAAK,GAGH,GAA+B,mBAF/B00c,EAAgBH,EAAev0c,IAEa,CAC1CmqJ,EAAStgI,KAAO,GAChB,MAGF,MAAM,IAAIvqB,MAAM,+BAA+BrB,OAAO+B,IAExD,KAAK,GACH,OAAOmqJ,EAAS6mB,OAAO,SAAU0jS,GAEnC,KAAK,GACL,IAAK,MACH,OAAOvqT,EAAS79I,UAGrB6rN,EAAS,KAAM,CAAC,CAAC,GAAI,UAEnBi8O,GAAqBp2c,MAAMlC,KAAMiB,WAG1C,SAAS63c,GAAaN,GACpB,IAAI34Z,EAAS,KACT/8C,EAAU+8C,GAAUA,EAAO3tB,aAC3Bx2B,EAAUoH,GAAWA,EAAQk2c,YAAc,iCAC/C,OAAO,IAAIzsZ,IAAI,IAAIpqD,OAAOksa,GAAa,KAAKlsa,OAAOq2c,EAAQ,WAAY98c,GAASuE,WC7IlF,SAAS,GAA2BsiB,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAE9K,SAAqCz+G,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAF1H,CAA4BnwM,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAIz9B,SAAS,GAAkB1iB,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAIhL,IAAI,GAAS6gZ,GACT,GAAmB,oBACnB,GAAgB,IAAInkW,QAkFpB8sY,GAhFgC,WAClC,IAAIp1c,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9EwiE,EAAQ3gE,EAAQ2gE,OAAS,CAAC,QAAS,cAAe,gBAGtD,SAAS78B,EAAQqya,GACf,GAAK,GAAclyY,IAAI,MAAvB,CAIA,IACIhpC,EADAC,EAAY,GAA2Bi7a,GAG3C,IACE,IAAItnP,EAAQ,WACV,IAAIunP,EAASn7a,EAAMp9B,MACnB,IAAU,SAAUugD,GAClBA,EAAMonY,SAAS,MAAO4wB,EAAOv9c,KAC7B,IAAI6f,EAAQ,sBAAsBrZ,OAAO+2c,EAAO5tc,KAAM,KAClDw4E,EAAU,uBAEd,GAAIo1X,EAAOn6a,KAAM,CAEf,IAAIo6a,EAAY,GAEhB,IAAK,IAAI9zc,KAAQ6zc,EAAOn6a,KACtBo6a,EAAU9zc,GAAQ6zc,EAAOn6a,KAAK15B,GAKhC,GAFA67C,EAAMonY,SAAS,OAAQ6wB,GAEH,UAAhBD,EAAO5tc,KAAkB,CAC3B,IAAIyzB,EAAOm6a,EAAOn6a,KAElB+kD,EAAU,CAAC/kD,EAAKq6a,SAAW,GAAIr6a,EAAKx+B,QAAU,IAAIyH,KAAK,KAAKhB,QAAU88E,OAGtEA,EADYo1X,EAAOn6a,KACHh/B,SAAW+jF,EAI/Bi1V,GAAe,GAAG52a,OAAOqZ,EAAO,MAAMrZ,OAAO2hF,QAIjD,IAAK9lD,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAC3C8jM,IAEF,MAAO7jM,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,MAId,MAAO,CACL5tB,KAAM,GACNymb,UAAW,WACJogB,MAKU,IAAI,GAAOsO,kBAAkBzya,EAAS,CACnD0ya,UAAU,EACV71Y,MAAOA,IAGAstE,WAEXurB,MAAO,SAAez8G,GACpB,GAAcr+B,IAAIq+B,GAAQ,MC9EhC,SAAS05Z,GAAmB59c,EAAKkkD,GAC/B,IAAIsuY,EAAMtuY,GAAUA,EAAOokY,SACvBkO,EAAStyY,GAAUA,EAAO3tB,aAAaiga,OAC3C,OAWF,SAAkBx2b,EAAKwyb,GACrB,QAAOA,GAAMxyb,EAAI0iB,SAAS8va,EAAIhkb,MAZvBqvc,CAAS79c,EAAKwyb,IAGvB,SAAqBxyb,EAAKw2b,GACxB,QAAKA,GAIEsnB,GAAoB99c,KAAS89c,GAAoBtnB,GAR3BunB,CAAY/9c,EAAKw2b,GAehD,SAASsnB,GAAoBnsc,GAC3B,MAA+B,MAAxBA,EAAIA,EAAIlL,OAAS,GAAakL,EAAInI,MAAM,GAAI,GAAKmI,ECxB1D,SAAS,GAAelC,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAMzI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAMhL,SAAS,GAAQhD,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAM3M,IAAI,GAAmB,aAwBnB6uc,GAtByB,WAC3B,IAAIn1c,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9EspN,EAAW,GAAc,CAC3BovP,yBAA0B,CAAC,CAAC,IAAK,MACjCC,qBAAsB,CAAC,OACtB92c,GAEH,MAAO,CACLoB,KAAM,GACNo4J,MAAO,SAAez8G,GACpBg6Z,GAAWh6Z,EAAQ0qK,GAEnB,GAAS1qK,EAAQ0qK,MAsDvB,SAASuvP,GAAoBC,EAAc3wc,GACzC,IAEIpP,EAFAa,EA+GN,SAA8BA,GAC5B,IAAI2R,EAAS,GAIb,OAHA3R,EAAQ8C,SAAQ,SAAUgD,EAAO9C,GAC/B2O,EAAO3O,GAAO8C,KAET6L,EApHOwtc,CAAqB5wc,EAAIvO,SAIvC,IACE,IAAIo/c,EAAep/c,EAAQk/c,IAAiBl/c,EAAQk/c,EAAaj8c,qBAAkBL,EAE/Ew8c,IACFjgd,EAAUkgd,GAAmBD,IAE/B,MAAOhzc,GACP,IAAe,GAAAs3H,IAAW,yCAAyCp8H,OAAO43c,IAG5E,MAAO,CAACl/c,EAASb,GAwDnB,SAASmgd,GAA4Bt/c,GACnC,GAAIA,EAAS,CACX,IAAIu/c,EAAgBv/c,EAAQ,mBAAqBA,EAAQ,kBAEzD,GAAIu/c,EACF,OAAOl1b,SAASk1b,EAAe,KAcrC,SAASF,GAAmBD,GAC1B,OAAOA,EAAajvc,MAAM,MAAMgO,QAAO,SAAU4sM,EAAKp9M,GACpD,IACI6xc,EAAiB,GADD7xc,EAAOwC,MAAM,KACkB,GAC/CnN,EAAMw8c,EAAe,GACrB15c,EAAQ05c,EAAe,GAM3B,OAJIx8c,GAAO8C,IACTilN,EAAI/nN,GAAO8C,GAGNilN,IACN,IAoFL,SAASi0P,GAAWh6Z,EAAQ/8C,GACrB8nc,MAILgG,IAA+B,SAAUnlB,GACvC,GAAI,OAAgB5rY,EAApB,CAIA,IAAI9jD,EAAW0vb,EAAY1vb,SAGvBq/O,EAAQ,GAFDqwM,EAAYjkb,KAEU,GAC7B8yc,EAAcl/N,EAAM,GACpBgR,EAAchR,EAAM,GAEnBr/O,GA/OT,SAA+B+G,EAASw3c,EAAav+c,EAAUqwP,GAC7D,GAAImuN,GAAuBz3c,EAAS/G,EAASE,OAAQF,EAASJ,KAAM,CAClE,IAEIf,EAAgBiB,EAAiB2+c,EAAgBC,EAFjDz/c,EAuUR,SAAqBs/c,EAAaluN,GAChC,OAAKA,GAAekuN,aAAuB7P,SAOvC6P,aAAuB7P,SAAW6P,EAAYI,SANzCJ,EAUF,IAAI7P,QAAQ6P,EAAaluN,GAnVhBuuN,CAAYL,EAAaluN,GAIvC,GAAIwuN,KAAyB,CAC3B,IAEIC,EAAuB,GAFAf,GAAoB,SAAU9+c,GAEO,GAEhEJ,EAAiBigd,EAAqB,GACtCL,EAAiBK,EAAqB,GAEtC,IAEIC,EAAuB,GAFAhB,GAAoB,aAAc/9c,GAEG,GAEhEF,EAAkBi/c,EAAqB,GACvCL,EAAkBK,EAAqB,GAazC9hC,GAVY+hC,GAAa,CACvBp/c,IAAKX,EAAQW,IACbS,OAAQpB,EAAQoB,OAChBH,OAAQF,EAASE,OACjBrB,eAAgBA,EAChBiB,gBAAiBA,EACjB2+c,eAAgBA,EAChBC,gBAAiBA,MAsNnBO,CAAsBl4c,EAASw3c,EAAav+c,EAAUqwP,OAQ1D,SAAS,GAASvsM,EAAQ/8C,GAClB,mBAAoBysa,IAI1B6/B,IAA6B,SAAU3jB,GACrC,GAAI,OAAgB5rY,EAApB,CAIA,IAAItgB,EAAMksZ,EAAYlsZ,IAClBoxa,EAAgBpxa,EAAuB,kBAE3C,GAAKoxa,EAAL,CAIA,IAAIv0c,EAASu0c,EAAcv0c,OACvBvB,EAAU81c,EAAcf,gBAE5B,KAjNJ,SAA6B9sc,EAASy8B,EAAKnjC,EAAQvB,GACjD,GAAI0/c,GAAuBz3c,EAASy8B,EAAItjC,OAAQsjC,EAAI5iC,aAAc,CAChE,IAAI/B,EAAgB6/c,EAAiB5+c,EAErC,GAAI++c,KAAyB,CAC3B,IACE,IAAIX,EAAe16a,EAAIkB,kBAAkB,eAAiBlB,EAAIkB,kBAAkB,oBAAiBhjC,EAE7Fw8c,IACFQ,EAAkBP,GAAmBD,IAEvC,MAAOhzc,GACP,IAAe,GAAAs3H,IAAW,mDAG5B,IACE1iI,EAqFR,SAAgC0jC,GAC9B,IAAI1kC,EAAU0kC,EAAIzjC,wBAElB,OAAKjB,EAIEA,EAAQmQ,MAAM,QAAQgO,QAAO,SAAU4sM,EAAK36M,GACjD,IACIgwc,EAAe,GADDhwc,EAAKD,MAAM,MACkB,GAC3CnN,EAAMo9c,EAAa,GACnBt6c,EAAQs6c,EAAa,GAMzB,OAJIp9c,GAAO8C,IACTilN,EAAI/nN,GAAO8C,GAGNilN,IACN,IAdM,GAzFes1P,CAAuB37a,GACzC,MAAOt4B,GACP,IAAe,GAAAs3H,IAAW,2CAG5B3jI,EAAiBC,EAanBm+a,GAVY+hC,GAAa,CACvBp/c,IAAK4jC,EAAI5iC,YACTP,OAAQA,EACRH,OAAQsjC,EAAItjC,OACZrB,eAAgBA,EAEhBiB,gBAAiBA,EACjB4+c,gBAAiBA,MAmLjBU,CAAoBr4c,EAASy8B,EAAKnjC,EAAQvB,GAC1C,MAAOoM,GACP,IAAe,QAAY,0DAA2DA,SAY5F,SAASszc,GAAuBz3c,EAAS7G,EAAQN,GAC/C,OA/EF,SAAgCg+c,EAA0B19c,GACxD,OAAO09c,EAAyBv/b,MAAK,SAAU/J,GAC7C,MAAqB,iBAAVA,EACFA,IAAUpU,EAGZA,GAAUoU,EAAM,IAAMpU,GAAUoU,EAAM,MAyExC+qc,CAAuBt4c,EAAQ62c,yBAA0B19c,IAhGlE,SAAkC29c,EAAsB50c,GACtD,OAAO40c,EAAqBx/b,MAAK,SAAUihc,GACzC,MAAkC,iBAAvBA,EACFr2c,EAAOqZ,SAASg9b,GAGlBA,EAAmBnyc,KAAKlE,MA0F0Cs2c,CAAyBx4c,EAAQ82c,qBAAsBj+c,KAAS49c,GAAmB59c,EAAK,MAUrK,SAASo/c,GAAapgd,GACpB,IAAIoF,EAAU,uCAAuCoC,OAAOxH,EAAKsB,QAC7D2oB,EAAQ,CACV7kB,QAASA,EACTu3K,UAAW,CACTlyG,OAAQ,CAAC,CACP95D,KAAM,QACN3K,MAAOZ,KAGX/E,QAAS,CACPW,IAAKhB,EAAKgB,IACVS,OAAQzB,EAAKyB,OACbvB,QAASF,EAAKC,eACdZ,QAASW,EAAK6/c,gBAEhBlqT,SAAU,CACRv0J,SAAU,CACRi0c,YAAar1c,EAAKsB,OAClBpB,QAASF,EAAKkB,gBACd7B,QAASW,EAAK8/c,gBACdc,UAAWpB,GAA4Bx/c,EAAKkB,oBAQlD,OAJAk4a,GAAsBnvZ,EAAO,CAC3BtZ,KAAM,cACNyzI,SAAS,IAEJn6H,EAkBT,SAASg2b,KACP,IAAI/6Z,EAAS,KACb,QAAOA,GAASwoE,QAAQxoE,EAAO3tB,aAAaspb,gBCvY9C,SAAS,GAAkBpwc,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAIhL,IAAI,GAAS6gZ,GAET,GAAmB,eAyBnByoC,GAvB2B,WAC7B,IAAIl1c,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9Ew6c,EAA4C,MAA7B34c,EAAQ44c,kBAA4B54c,EAAQ44c,kBALlC,EAM7B,MAAO,CACLx3c,KAAM,GACN2mb,aAAc,SAAsBjma,GAClC,OAAO+2b,GAAiB/2b,EAAO62b,MAsBrC,SAASE,GAAiB/2b,EAAO62b,GAC/B,IAAI51T,EAAM,GAAOj9I,SACbgzc,EAAe,GAAOjxc,UAAqC,GAAOA,SAASX,KZRhEgB,MAAM,OAAQ,GAAG,GYUhC,IAAK66I,IAAQ+1T,EACX,OAAOh3b,EAGT,IAAImgH,EAAangH,EAAM0yJ,WAAa1yJ,EAAM0yJ,UAAUlyG,OAEpD,IAAK2/D,IAAeA,EAAW3iI,OAC7B,OAAOwiB,EAGT,IAAI4pG,EAAOq3B,EAAIjkG,gBAAgBhV,UAE/B,IAAK4hF,EACH,OAAO5pG,EAGT,IAlE0BxZ,EAkEtBywc,EAAY,CAAC,kBAAmB,UAAU15c,OA1DhD,SAA4BiJ,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAR1C,CAAdA,EAkE8CojH,EAAKxjH,MAAM,QA5DrF,SAA0B4jB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GANjF,CAAiBxjB,IAItF,SAAqCmX,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ/M,CAA4BtnN,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAkErC,CAAC,YAU5F,OATA2kI,EAAWpnI,SAAQ,SAAU25K,GAC3B,IAAI+kQ,EAAa/kQ,EAAU+kQ,WAEvBA,GAAcA,EAAWnlX,SAC3BmlX,EAAWnlX,OAASmlX,EAAWnlX,OAAOj8C,KAAI,SAAUi4Q,GAClD,OAWR,SAAmCA,EAAO2oL,EAAWD,EAAcE,GACjE,OAAI5oL,EAAMt4Q,WAAaghc,GAAiB1oL,EAAMuoK,QAAWogB,EAAUz5c,QzG2FrE,SAA2BumO,EAAOuqD,GAChC,IAAI4oL,EAAiB76c,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EAGzF,QAAqBxD,IAAjBy1R,EAAMuoK,OAAV,CAIA,IAAIsgB,EAAWpzO,EAAMvmO,OACjB45c,EAAaztc,KAAK6sB,IAAI7sB,KAAKM,IAAIktc,EAAW,EAAG7oL,EAAMuoK,OAAS,GAAI,GACpEvoK,EAAM+oL,YAActzO,EAAMxjO,MAAMoJ,KAAK6sB,IAAI,EAAG4gb,EAAaF,GAAiBE,GAAY/gc,KAAI,SAAUhQ,GAClG,OAAOuma,GAASvma,EAAM,MAGxB,IAAIwuP,EAAYlrP,KAAKM,IAAIktc,EAAW,EAAGC,GAEvC9oL,EAAMgpL,aAAe1qC,GAAS7oM,EAAM8wB,GAAYy5B,EAAMu+I,OAAS,GAC/Dv+I,EAAMipL,aAAexzO,EAAMxjO,MAAMoJ,KAAKM,IAAImtc,EAAa,EAAGD,GAAWC,EAAa,EAAIF,GAAgB7gc,KAAI,SAAUhQ,GAClH,OAAOuma,GAASvma,EAAM,OyGzGxBmxc,CAAkBP,EAAW3oL,EAAO4oL,GAC7B5oL,GAJEA,EAbImpL,CAA0BnpL,EAAO2oL,EAAWD,EAAcH,UAIhE72b,EClET,SAAS03b,GAAeC,GAKtB,IAJA,IAAIC,OAAgB/+c,EAChBkD,EAAQ47c,EAAI,GACZ90c,EAAI,EAEDA,EAAI80c,EAAIn6c,QAAQ,CACrB,IAAIygb,EAAK05B,EAAI90c,GACTxE,EAAKs5c,EAAI90c,EAAI,GAGjB,GAFAA,GAAK,GAEO,mBAAPo7a,GAAkC,iBAAPA,IAAmC,MAATlib,EAExD,OAGS,WAAPkib,GAA0B,mBAAPA,GACrB25B,EAAgB77c,EAChBA,EAAQsC,EAAGtC,IACK,SAAPkib,GAAwB,iBAAPA,IAC1Blib,EAAQsC,GAAG,WAGT,IAFA,IAAI4iM,EAEKxoL,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGzB,OAAQuoL,EAASllM,GAAOgD,KAAKzB,MAAM2jM,EAAQ,CAAC22Q,GAAer6c,OAAOqF,OAEpEg1c,OAAgB/+c,GAIpB,OAAOkD,ECpCT,SAAS,KAEP,MAAyB,oBAAX+J,Y3Ba8B,oBAA9B+xc,4BAA+CA,4B4BNiD,qBAAjFj3c,OAAOtG,UAAUe,SAAS0D,KAAwB,oBAAZqC,QAA0BA,QAAU,UDD9EvI,IAAvB8xa,GAAWvpa,SAAqD,aAA5Bupa,GAAWvpa,QAAQsF,MEd3D,ICeIoxc,GDHAC,GAAe,SAAsBxxc,EAAUyxc,EAAQ55V,EAAY65V,GACrE,IAAIx2L,EACA73N,EACJ,OAAO,SAAUsuZ,GACXF,EAAOj8c,OAAS,IACdm8c,GAAeD,MACjBruZ,EAAQouZ,EAAOj8c,OAAS0lR,GAAa,UAKV5oR,IAAd4oR,KACXA,EAAYu2L,EAAOj8c,MACnBi8c,EAAOpuZ,MAAQA,EACfouZ,EAAOG,OA1BD,SAAmBp8c,EAAOqiH,GACxC,OAAIriH,EAAQqiH,EAAW,GACd,OAGLriH,EAAQqiH,EAAW,GACd,oBAGF,OAiBiBg6V,CAAUJ,EAAOj8c,MAAOqiH,GACxC73G,EAASyxc,MEVfK,GAAqB,WACvB,OAAO,gBAAsB5uZ,YAAY6uZ,kBAAoB7uZ,YAAY6uZ,iBAAiB,cAAc,ICDtGC,GAAqB,WACvB,IAAIC,EAAWH,KACf,OAAOG,GAAYA,EAASC,iBAAmB,GCC7CC,GAAa,SAAoBp5c,EAAMvD,GACzC,IAAIy8c,EAAWH,KACXM,EAAiB,WAcrB,OAZIH,IACE,aAAmB,0BAAgCD,KAAuB,EAC5EI,EAAiB,YACR,aAAmB,yBAC5BA,EAAiB,UACRH,EAAS9xc,OAClBiyc,EAAiBH,EAAS9xc,KAAK3I,QAAQ,KAAM,OAM1C,CACLuB,KAAMA,EACNvD,WAAwB,IAAVA,GAAyB,EAAIA,EAC3Co8c,OAAQ,OAERvuZ,MAAO,EACPhQ,QAPY,GAQZx7C,GCrBK,MAAMb,OAAOuG,KAAKO,MAAO,KAAK9G,OAAOoM,KAAKiB,MAAsB,cAAhBjB,KAAK2e,UAAyB,MDsBnFqwb,eAAgBA,IEpChB,GAAU,SAAiBjyc,EAAMH,EAAUgB,GAC7C,IACE,GAAIqxc,oBAAoBC,oBAAoBp/b,SAAS/S,GAAO,CAC1D,IAAIoxc,EAAK,IAAIc,qBAAoB,SAAU5la,GAKzCr9C,QAAQC,UAAU+D,MAAK,WACrB4M,EAASysC,EAAK8la,oBAOlB,OAJAhB,EAAG3rU,QAAQvrI,OAAO0V,OAAO,CACvB5P,KAAMA,EACNguc,UAAU,GACTntc,GAAQ,KACJuwc,GAET,MAAOz1c,MCTPs1H,GAAW,SAAkB7nH,GAC/B,IAAIipc,EAAqB,SAA4B/4b,IAChC,aAAfA,EAAMtZ,MAAuB,aAAuD,WAApC,8BAClDoJ,EAAGkQ,IAIH,cACF1mB,iBAAiB,mBAAoBy/c,GAAoB,GAGzDz/c,iBAAiB,WAAYy/c,GAAoB,KCbjDC,GAAU,SAAiBlpc,GAC7B,IAAIuvH,GAAS,EACb,OAAO,SAAUt2G,GACVs2G,IACHvvH,EAAGiZ,GACHs2G,GAAS,KCHX45U,IAAmB,EAWnBC,GAAqB,SAASA,EAAmBl5b,GAGX,WAApC,6BAAgDi5b,IAAmB,IAQrEA,GAAiC,qBAAfj5b,EAAMtZ,KAA8BsZ,EAAMk5I,UAAY,EAExEv5I,oBAAoB,mBAAoBu5b,GAAoB,GAC5Dv5b,oBAAoB,qBAAsBu5b,GAAoB,KAa9DC,GAAuB,WAUzB,OATI,aAAmBF,GAAkB,IA/BzCA,GAAsD,WAApC,6BAAiD,yBAAmCnpY,EAAAA,EAAJ,EAsBlGx2E,iBAAiB,mBAAoB4/c,IAAoB,GAKzD5/c,iBAAiB,qBAAsB4/c,IAAoB,IAapD,CACDD,sBACF,OAAOA,MClDTG,GAAgB,SAAuB7yc,GACrC,aAAmB,yBACrBjN,iBAAiB,sBAAsB,WACrC,OAAOiN,OACN,GAEHA,KCCA8yc,GAAgB,CAAC,KAAM,KAQvBC,GAAQ,SAAeC,GACzB,IAAIhyc,EAAOlL,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC/E+8c,IAAc,WACZ,IAEI9E,EAFAkF,EAAoBL,KACpBnB,EAASU,GAAW,OAqBpBZ,EAAK,GAAQ,SAlBG,SAAuBl+Z,GACzCA,EAAQ7gD,SAAQ,SAAU8/C,GACL,2BAAfA,EAAMv5C,OACRw4c,EAAGppK,aAEC71P,EAAMu/E,UAAYohV,EAAkBP,kBAKtCjB,EAAOj8c,MAAQ4N,KAAK6sB,IAAIqiB,EAAMu/E,UAAYmgV,KAAsB,GAChEP,EAAOp+Z,QAAQz8C,KAAK07C,GACpBy7Z,GAAO,WAQXwD,IACFxD,EAASyD,GAAawB,EAAUvB,EAAQqB,GAAe9xc,EAAK0wc,uBCpC9DwB,GAAgB,CAAC,GAAK,KCCtBC,GAAgB,CAAC,IAAK,KZxBtBC,GAA2B,EAC3BC,GAAwB9pY,EAAAA,EACxB+pY,GAAwB,EAExBC,GAAiB,SAAwBlga,GAC3CA,EAAQ7gD,SAAQ,SAAUsJ,GACpBA,EAAE03c,gBACJH,GAAwBjwc,KAAKM,IAAI2vc,GAAuBv3c,EAAE03c,eAC1DF,GAAwBlwc,KAAK6sB,IAAIqjb,GAAuBx3c,EAAE03c,eAC1DJ,GAA2BE,IAAyBA,GAAwBD,IAAyB,EAAI,EAAI,OAmB/GI,GAA+B,WAC7B,qBAAsBvwZ,aAAequZ,KACzCA,GAAK,GAAQ,QAASgC,GAAgB,CACpCpzc,KAAM,QACNguc,UAAU,EACVuF,kBAAmB,MaTnBC,GAAgB,CAAC,IAAK,KAStBC,GAAmC,WACrC,ObbOrC,GAAK6B,GAA2BlwZ,YAAY2wZ,kBAAoB,GaM9C,GAevBC,GAAyB,GAGzBC,GAAwB,GAQxBC,GAAe,SAAsB1ha,GAEvC,IAAI2ha,EAAwBH,GAAuBA,GAAuB78c,OAAS,GAE/Ei9c,EAAsBH,GAAsBzha,EAAMkha,eAGtD,GAAIU,GAAuBJ,GAAuB78c,OArBjB,IAqB0Dg9c,GAAyB3ha,EAAMtpC,SAAWirc,EAAsBE,QAAS,CAElK,GAAID,EACFA,EAAoB7ga,QAAQz8C,KAAK07C,GACjC4ha,EAAoBC,QAAU/wc,KAAK6sB,IAAIikb,EAAoBC,QAAS7ha,EAAMtpC,cACrE,CACL,IAAIyyV,EAAc,CAEhB5jW,GAAIy6C,EAAMkha,cACVW,QAAS7ha,EAAMtpC,SACfqqC,QAAS,CAACf,IAEZyha,GAAsBt4G,EAAY5jW,IAAM4jW,EACxCq4G,GAAuBl9c,KAAK6kW,GAI9Bq4G,GAAuBp2b,MAAK,SAAUzb,EAAGC,GACvC,OAAOA,EAAEiyc,QAAUlyc,EAAEkyc,WAEvBL,GAAuBngc,OAzCQ,IAyC6BnhB,SAAQ,SAAU8J,UAErEy3c,GAAsBz3c,EAAEzE,SAUjCu8c,GAAgC,WAClC,IAAIC,EAA4Bjxc,KAAKM,IAAIowc,GAAuB78c,OAAS,EAAGmM,KAAKiB,MAAMuvc,KAAqC,KAC5H,OAAOE,GAAuBO,ICpE5BC,GAAgB,CAAC,KAAM,KACvBC,GAAoB,GCJpBC,GAAiB,CAAC,IAAK,MAMvBC,GAAY,SAASA,EAAUz0c,GAC7B,aAAmB,yBACrB6yc,IAAc,WACZ,OAAO4B,EAAUz0c,MAEV,aAAkD,aAA/B,uBAC5BjN,iBAAiB,QAAQ,WACvB,OAAO0hd,EAAUz0c,MAChB,GAGHtO,WAAWsO,EAAU,ICrCzB,SAAS,GAAkBC,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAUhL,IAGImxb,GAEAC,GAEAC,GAEAC,GAEAC,GAXA,GAAW,GACX,GAAe,GAoBnB,SAASC,GAA6B/0c,GACpC,IAAIg1c,EAAiBl/c,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GACpF,OAAOm/c,GAAkB,MAAOj1c,EAAUk1c,GAAeR,GAAcM,GAWzE,SAASG,GAA6Bn1c,GACpC,IAAIg1c,EAAiBl/c,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GACpF,OAAOm/c,GAAkB,MAAOj1c,EAAUo1c,GAAeR,GAAcI,GAQzE,SAASK,GAA6Br1c,GACpC,OAAOi1c,GAAkB,MAAOj1c,EAAUs1c,GAAeX,IAgB3D,SAASY,GAA6Bv1c,GACpC,OAAOi1c,GAAkB,MAAOj1c,EAAUw1c,GAAeV,IAS3D,SAASW,GAAqCt1c,EAAMH,GAQlD,OAPA,GAAWG,EAAMH,GAEZ,GAAaG,KA6GpB,SAAuCA,GACrC,IAAIxI,EAAU,GAED,UAATwI,IACFxI,EAAQ+7c,kBAAoB,GAG9B,GAAQvzc,GAAM,SAAUkzC,GACtB,GAAgBlzC,EAAM,CACpBkzC,QAASA,MAEV17C,GAvHD+9c,CAA8Bv1c,GAC9B,GAAaA,IAAQ,GAGhBw1c,GAAmBx1c,EAAMH,GAKlC,SAAS,GAAgBG,EAAM3Q,GAC7B,IAAIywb,EAAe,GAAS9/a,GAE5B,GAAK8/a,GAAiBA,EAAahpb,OAAnC,CAIA,IACI27B,EADAC,EAzGN,SAAoCzb,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAE9K,SAAqCz+G,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAF1H,CAA4BnwM,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAWo/K,GAAM,MAAMA,GAAOv0J,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAW8xN,GAAOE,GAAS,EAAMnrM,EAAMirM,GAAQjnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAyGv8B,CAA2Bs9Z,GAG3C,IACE,IAAKptZ,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAI+Y,EAAU7I,EAAMp9B,MAEpB,IACEimC,EAAQjsC,GACR,MAAOsM,GACP,IAAe,SAAa,0DAA0D9E,OAAOmJ,EAAM,YAAYnJ,OAAOg6a,GAAgBv1Y,GAAU,YAAa3/B,KAGjK,MAAO6mB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,MAId,SAASuub,KACP,OL/EU,SAAelC,GACzB,IAAIhyc,EAAOlL,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAG/Ei9c,GAAMN,IAAQ,WACZ,IACI1E,EADA0D,EAASU,GAAW,MAAO,GAE3ByD,EAAe,EACfC,EAAiB,GAEjBC,EAAgB,SAAuBzia,GACzCA,EAAQ7gD,SAAQ,SAAU8/C,GAExB,IAAKA,EAAMyja,eAAgB,CACzB,IAAIC,EAAoBH,EAAe,GACnCI,EAAmBJ,EAAeA,EAAe5+c,OAAS,GAK1D2+c,GAAgBI,GAAqBC,GAAoB3ja,EAAMu/E,UAAYokV,EAAiBpkV,UAAY,KAAQv/E,EAAMu/E,UAAYmkV,EAAkBnkV,UAAY,KAClK+jV,GAAgBtja,EAAM98C,MACtBqgd,EAAej/c,KAAK07C,KAEpBsja,EAAetja,EAAM98C,MACrBqgd,EAAiB,CAACvja,QAMpBsja,EAAenE,EAAOj8c,QACxBi8c,EAAOj8c,MAAQogd,EACfnE,EAAOp+Z,QAAUwia,EACjB9H,MAIAwD,EAAK,GAAQ,eAAgBuE,GAE7BvE,IACFxD,EAASyD,GAAawB,EAAUvB,EAAQyB,GAAelyc,EAAK0wc,kBAC5DtgV,IAAS,WACP0kV,EAAcvE,EAAG2E,eACjBnI,GAAO,MAKTr8c,WAAWq8c,EAAQ,QK8BhBoI,EAAM,SAAU1E,GACrB,GAAgB,MAAO,CACrBA,OAAQA,IAEViD,GAAejD,IAGjB,CACEC,kBAAkB,IAItB,SAAS4D,KACP,OJvGU,SAAetC,GACzB,IAAIhyc,EAAOlL,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC/E+8c,IAAc,WACZ,IAGI9E,EAHAkF,EAAoBL,KACpBnB,EAASU,GAAW,OAIpBiE,EAAc,SAAqB9ja,GAEjCA,EAAMu/E,UAAYohV,EAAkBP,kBACtCjB,EAAOj8c,MAAQ88C,EAAM+ja,gBAAkB/ja,EAAMu/E,UAC7C4/U,EAAOp+Z,QAAQz8C,KAAK07C,GACpBy7Z,GAAO,KAIP+H,EAAgB,SAAuBzia,GACzCA,EAAQ7gD,QAAQ4jd,IAGd7E,EAAK,GAAQ,cAAeuE,GAChC/H,EAASyD,GAAawB,EAAUvB,EAAQ0B,GAAenyc,EAAK0wc,kBAExDH,GACFngV,GAASqhV,IAAQ,WACfqD,EAAcvE,EAAG2E,eACjB3E,EAAGppK,oBI4EFmuK,EAAM,SAAU7E,GACrB,GAAgB,MAAO,CACrBA,OAAQA,IAEVkD,GAAelD,KAInB,SAAS2D,KACP,OF3GU,SAAepC,GACzB,IAAIhyc,EAAOlL,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC/E+8c,IAAc,WACZ,IAEI9E,EAFAkF,EAAoBL,KACpBnB,EAASU,GAAW,OAGpB2D,EAAgB,SAAuBzia,GACzC,IAAIkja,EAAYlja,EAAQA,EAAQp8C,OAAS,GAErCs/c,GAEEA,EAAU1kV,UAAYohV,EAAkBP,kBAO1CjB,EAAOj8c,MAAQ4N,KAAK6sB,IAAIsmb,EAAU1kV,UAAYmgV,KAAsB,GACpEP,EAAOp+Z,QAAU,CAACkja,GAClBxI,MAKFwD,EAAK,GAAQ,2BAA4BuE,GAE7C,GAAIvE,EAAI,CACNxD,EAASyD,GAAawB,EAAUvB,EAAQ6C,GAAetzc,EAAK0wc,kBAC5D,IAAI8E,EAAgB/D,IAAQ,WACrB8B,GAAkB9C,EAAO55c,MAC5Bi+c,EAAcvE,EAAG2E,eACjB3E,EAAGppK,aACHosK,GAAkB9C,EAAO55c,KAAM,EAC/Bk2c,GAAO,OAMX,CAAC,UAAW,SAASv7c,SAAQ,SAAU2N,GACjC,aAIFpN,iBAAiBoN,GAAM,WACrB,OAAOzO,WAAW8kd,EAAe,MAChC,MAGPplV,GAASolV,OEwDNC,EAAM,SAAUhF,GACrB,GAAgB,MAAO,CACrBA,OAAQA,IAEVmD,GAAenD,IAGjB,CACEC,kBAAkB,IAItB,SAASgF,KACP,ODpGW,SAAgB1D,GAC3B,IAAIhyc,EAAOlL,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC3E27c,EAASU,GAAW,QACpBpE,EAASyD,GAAawB,EAAUvB,EAAQ+C,GAAgBxzc,EAAK0wc,kBACjE+C,IAAU,WACR,IAAIxC,EAAWH,KAEf,GAAIG,EAAU,CACZ,IAAI0E,EAAgB1E,EAAS0E,cAO7B,GAAIA,GAAiB,GAAKA,EAAgBzzZ,YAAYplD,MAAO,OAK7D2zc,EAAOj8c,MAAQ4N,KAAK6sB,IAAI0mb,EAAgB3E,KAAsB,GAC9DP,EAAOp+Z,QAAU,CAAC4+Z,GAClBlE,GAAO,OC8EJ6I,EAAO,SAAUnF,GACtB,GAAgB,OAAQ,CACtBA,OAAQA,IAEVoD,GAAgBpD,KAIpB,SAAS+D,KACP,OH5CU,SAAexC,GACzB,IAAIhyc,EAAOlL,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC/E+8c,IAAc,WAEZY,KACA,IAEI1F,EAFA0D,EAASU,GAAW,OAIpB2D,EAAgB,SAAuBzia,GACzCA,EAAQ7gD,SAAQ,SAAU8/C,GACpBA,EAAMkha,eACRQ,GAAa1ha,GAUS,gBAApBA,EAAMuka,YACe/C,GAAuB7kc,MAAK,SAAUwsV,GAC3D,OAAOA,EAAYpoT,QAAQpkC,MAAK,SAAU6nc,GACxC,OAAOxka,EAAMtpC,WAAa8tc,EAAU9tc,UAAYspC,EAAMu/E,YAAcilV,EAAUjlV,iBAKhFmiV,GAAa1ha,MAInB,IAAIs6D,EAAMwnW,KAENxnW,GAAOA,EAAIunW,UAAY1C,EAAOj8c,QAChCi8c,EAAOj8c,MAAQo3G,EAAIunW,QACnB1C,EAAOp+Z,QAAUu5D,EAAIv5D,QACrB06Z,MAIAwD,EAAK,GAAQ,QAASuE,EAAe,CAOvCpC,kBAA6C,MAA1B1yc,EAAK0yc,kBAA4B1yc,EAAK0yc,kBAAoB,KAE/E3F,EAASyD,GAAawB,EAAUvB,EAAQkC,GAAe3yc,EAAK0wc,kBAExDH,IAIE,2BAA4B,IAAU,kBAAmBwF,uBAAuBhjd,WAClFw9c,EAAG3rU,QAAQ,CACTzlI,KAAM,cACNguc,UAAU,IAId/8U,IAAS,WACP0kV,EAAcvE,EAAG2E,eAGbzE,EAAOj8c,MAAQ,GAAKo+c,KAAqC,IAC3DnC,EAAOj8c,MAAQ,EACfi8c,EAAOp+Z,QAAU,IAGnB06Z,GAAO,UG9BNiJ,EAAM,SAAUvF,GACrB,GAAgB,MAAO,CACrBA,OAAQA,IAEVqD,GAAerD,KAInB,SAASwD,GAAkB90c,EAAMH,EAAU+/a,EAAc5sK,GACvD,IAEIqjM,EAFAxB,EAAiBl/c,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAepF,OAdA,GAAWqK,EAAMH,GAGZ,GAAaG,KAChBq2c,EAAgBz2B,IAChB,GAAa5/a,IAAQ,GAGnBgzQ,GACFnzQ,EAAS,CACPyxc,OAAQt+L,IAILwiM,GAAmBx1c,EAAMH,EAAUg1c,EAAiBwB,OAAgBlkd,GAiB7E,SAAS,GAAW6N,EAAMs7B,GACxB,GAASt7B,GAAQ,GAASA,IAAS,GACnC,GAASA,GAAMvJ,KAAK6kC,GAItB,SAASk6a,GAAmBx1c,EAAMH,EAAUw2c,GAC1C,OAAO,WACDA,GACFA,IAGF,IAAIv2B,EAAe,GAAS9/a,GAE5B,GAAK8/a,EAAL,CAIA,IAAI1va,EAAQ0va,EAAaxub,QAAQuO,IAElB,IAAXuQ,GACF0va,EAAatsa,OAAOpD,EAAO,KCtOjC,SAAS,GAAmB6R,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQp6N,EAAK8vB,GAAO,IAAM,IAAI+P,EAAOnQ,EAAI1vB,GAAK8vB,GAAUhtB,EAAQ+8B,EAAK/8B,MAAS,MAAO8B,GAAwB,YAAfhI,EAAOgI,GAAsBi7B,EAAK7P,KAAQrzB,EAAQmG,GAAiBpG,QAAQC,QAAQmG,GAAOpC,KAAKy5N,EAAOC,GAE7P,SAAS,GAAkBh1N,GAAM,OAAO,WAAc,IAAI8K,EAAO/N,KAAMwH,EAAOvG,UAAW,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAAU,IAAI8yB,EAAMtqB,EAAGf,MAAM6L,EAAMvG,GAAO,SAASwwN,EAAMr3N,GAAS,GAAmB4sB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,OAAQt3N,GAAU,SAASs3N,EAAOnqM,GAAO,GAAmBP,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,QAASnqM,GAAQkqM,OAAMv6N,OAEjX,SAAS,GAAUooH,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI1lH,UAAU,sDAAyDylH,EAAS3mH,UAAYsG,OAAOnG,OAAOymH,GAAcA,EAAW5mH,UAAW,CAAEqK,YAAa,CAAE5I,MAAOklH,EAAUN,UAAU,EAAMD,cAAc,KAAW9/G,OAAOqY,eAAegoG,EAAU,YAAa,CAAEN,UAAU,IAAcO,GAAY,GAAgBD,EAAUC,GAEtb,SAAS,GAAamzH,GAAW,IAAIC,EAA4B,KAA6B,OAAO,WAAkC,IAAsC1sO,EAAlCsvL,EAAQ,GAAgBm9C,GAAkB,GAAIC,EAA2B,CAAE,IAAIzrG,EAAY,GAAgBztI,MAAMuJ,YAAaiD,EAAS45G,QAAQC,UAAUy1E,EAAO76L,UAAWwsI,QAAqBjhI,EAASsvL,EAAM55L,MAAMlC,KAAMiB,WAAc,OAAO,GAA2BjB,KAAMwM,IAE5Z,SAAS,GAA2BuB,EAAMpK,GAAQ,GAAIA,IAA2B,WAAlB,GAAQA,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIvD,UAAU,4DAA+D,OAE1P,SAAgC2N,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI64G,eAAe,6DAAgE,OAAO74G,EAFkG,CAAuBA,GAIxR,SAAS,GAAiB24G,GAAS,IAAI2yH,EAAwB,mBAARnuK,IAAqB,IAAIA,SAAQztE,EAA8nB,OAAnnB,GAAmB,SAA0BipH,GAAS,GAAc,OAAVA,IAM7J,SAA2BzjH,GAAM,OAAgE,IAAzD6K,SAAS7N,SAAS0D,KAAKV,GAAIrG,QAAQ,iBANqG,CAAkB8pH,GAAQ,OAAOA,EAAO,GAAqB,mBAAVA,EAAwB,MAAM,IAAItmH,UAAU,sDAAyD,QAAsB,IAAXi5O,EAAwB,CAAE,GAAIA,EAAOtyK,IAAI2/C,GAAQ,OAAO2yH,EAAO53N,IAAIilG,GAAQ2yH,EAAO73N,IAAIklG,EAAO8mB,GAAY,SAASA,IAAY,OAAO,GAAW9mB,EAAOzlH,UAAW,GAAgBjB,MAAMuJ,aAAgK,OAAhJikI,EAAQtuI,UAAYsG,OAAOnG,OAAOqnH,EAAMxnH,UAAW,CAAEqK,YAAa,CAAE5I,MAAO6sI,EAASnhH,YAAY,EAAOk5F,UAAU,EAAMD,cAAc,KAAkB,GAAgBkoB,EAAS9mB,IAAkB,GAAiBA,GAE9uB,SAAS,GAAWD,EAAQj/G,EAAMk/G,GAAqV,OAAzS,GAA/B,KAA4CN,QAAQC,UAAiC,SAAoBI,EAAQj/G,EAAMk/G,GAAS,IAAIt5G,EAAI,CAAC,MAAOA,EAAErL,KAAKG,MAAMkL,EAAG5F,GAAO,IAAsDvI,EAAW,IAA/C6O,SAASnP,KAAKuD,MAAMukH,EAAQr5G,IAA6F,OAAnDs5G,GAAO,GAAgBznH,EAAUynH,EAAMxnH,WAAmBD,GAAsB,GAAWiD,MAAM,KAAMjB,WAErZ,SAAS,KAA8B,GAAuB,oBAAZmlH,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhF8B,QAAQnpH,UAAU8sE,QAAQroE,KAAKyiH,QAAQC,UAAUgC,QAAS,IAAI,iBAAyB,EAAQ,MAAOphH,GAAK,OAAO,GAI/T,SAAS,GAAgBsb,EAAGhS,GAA+G,OAA1G,GAAkB/K,OAAOygH,gBAAkB,SAAyB1jG,EAAGhS,GAAsB,OAAjBgS,EAAE2jG,UAAY31G,EAAUgS,GAAa,GAAgBA,EAAGhS,GAErK,SAAS,GAAgBgS,GAAwJ,OAAnJ,GAAkB/c,OAAOygH,eAAiBzgH,OAAOiH,eAAiB,SAAyB8V,GAAK,OAAOA,EAAE2jG,WAAa1gH,OAAOiH,eAAe8V,IAAc,GAAgBA,GAExM,SAAS,GAAenX,EAAK3D,GAAK,OAMlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EANtB,CAAgBA,IAIzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GAJzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAQzI,SAAS,GAAmBgL,GAAO,OAMnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAN1C,CAAmBA,IAI7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GAJjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAQlI,SAAS,GAAQsrB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAQA,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GAEzU,SAAS,GAA2BmZ,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAW8xN,GAAO,MAAMA,GAAQjnM,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAWiyN,GAAOD,GAAS,EAAMnrM,EAAMorM,GAAQpnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAE39B,SAAS,GAA4BvL,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,SAAS,GAAgBzvB,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCAEhH,SAAS,GAAkB4E,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAE7S,SAAS,GAAaF,EAAaM,EAAYC,GAAyN,OAAtMD,GAAY,GAAkBN,EAAYjmH,UAAWumH,GAAiBC,GAAa,GAAkBP,EAAaO,GAAclgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IAAiBJ,EAU/Q,IAyFIi9V,GAzFA,GAAS7yC,GACT8yC,GAAqB,sBACrBC,GAAoB,eACpBC,GAAwB,wBAgBxBC,GAAsB,IAItBC,GAAwB,KAGxBC,GAAuB,IASvBC,GAA+B,IAU/BC,GAAsB,KAE1B,SAASC,GAAmBC,EAAKC,GAC/B,OAAW,MAAPD,EACKA,EAEAC,IAIX,SAASC,GAAiBzG,GAKxB,IAJA,IAAIC,OAAgB/+c,EAChBkD,EAAQ47c,EAAI,GACZ90c,EAAI,EAEDA,EAAI80c,EAAIn6c,QAAQ,CACrB,IAAIygb,EAAK05B,EAAI90c,GACTxE,EAAKs5c,EAAI90c,EAAI,GAGjB,GAFAA,GAAK,GAEO,mBAAPo7a,GAAkC,iBAAPA,IAAmC,MAATlib,EACxD,OAGS,WAAPkib,GAA0B,mBAAPA,GACrB25B,EAAgB77c,EAChBA,EAAQsC,EAAGtC,IACK,SAAPkib,GAAwB,iBAAPA,IAC1Blib,EAAQsC,GAAG,WAGT,IAFA,IAAIqrZ,EAEKjxY,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAGzB,OAAQgxY,EAAU3tZ,GAAOgD,KAAKzB,MAAMosZ,EAAS,CAACkuD,GAAer6c,OAAOqF,OAEtEg1c,OAAgB/+c,GAIpB,OAAOkD,EAkBT,SAAS,GAAauuD,GACpB,IAAI/kD,EAAO64c,GAAiB,CAAC9zZ,EAAG,iBAAkB,SAAUx9C,GAC1D,OAAOA,EAAEvH,QAGX,OAAOk+G,QAAQ26V,GAAiB,CAAC74c,EAAM,iBAAkB,SAAU84c,GACjE,OAAOA,EAAGpsP,gBACJ3nK,GAGV,SAASg0Z,GAAkBrsP,GACzB,MAAsD,wBAA/CrxN,OAAOtG,UAAUe,SAAS0D,KAAKkzN,GAiCxC,SAASssP,GAAoB1zZ,GAC3B,IACE,IAAIksM,EAAQlsM,EAAEksM,OAASlsM,EAAE4rM,SACzB,OAAOM,IAjCiC33O,EAiCU/hB,MAAM4sB,KAAK8sO,EAAOynN,IAAep7c,KAAK,KAhC9EqW,SAAS,6BAA+B2F,EAAQ3F,SAAS,qCACnE2F,EAAUA,EAAQrhB,QAAQ,8BAA+B,2DAGpDqhB,GA4B0F,KAC/F,MAAOvhB,GACP,OAAO,KAnCX,IAA4CuhB,EAuC5C,SAASo/b,GAAcxnN,GACrB,IAAIynN,EAcA17W,EAZJ,GAgBF,SAAyBi0J,GACvB,MAAO,eAAgBA,EAjBnB0nN,CAAgB1nN,GAClB,IACEynN,EAAoBF,GAAoBvnN,EAAKhgI,aApCnD,SAA+BggI,GAC7B,IAAI53O,EAAU43O,EAAK53O,QACnB,GAAIA,EAAQhZ,MAAM,KAAK5I,OAAS,EAAG,OAAO4hB,EAC1C,IAAIu/b,EAAY,CAAC,UAAW,OAAOphd,OAAO2E,KAAKI,UAAU00P,EAAK5xP,MAAO,MAgBrE,MAduB,KAAnB4xP,EAAK4nN,UACPD,EAAUxhd,KAAK,SACN65P,EAAK4nN,WACdD,EAAUxhd,KAAK,SAASI,OAAOy5P,EAAK4nN,UAAW,MAG7C5nN,EAAK6nN,cACPF,EAAUxhd,KAAK,YAAYI,OAAOy5P,EAAK6nN,aAAc,MAGnD7nN,EAAK8nN,MAAMthd,QACbmhd,EAAUxhd,KAAK65P,EAAK8nN,MAAMC,WAGrBJ,EAAUv7c,KAAK,KAAO,IAiBmC47c,CAAsBhoN,GAClF,MAAOn5P,SACJ,GAgBT,SAAwBm5P,GACtB,MAAO,iBAAkBA,EAjBdioN,CAAejoN,IAASA,EAAKkoN,aAAazlc,SAAS,KAC5D,OAOEspF,EAAQ,uCAPai0J,EAAK53O,QAQRrhB,QAAQglG,EAAO,UALrC,OAAO07W,GAAqBznN,EAAK53O,SA7EnC,SAAW+/b,GACTA,EAASA,EAAmB,SAAI,GAAK,WACrCA,EAASA,EAAuB,aAAI,GAAK,eACzCA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAkB,QAAI,GAAK,UANtC,CAOG3B,KAAeA,GAAa,KAsF/B,IAAI4B,GAAsB,WACxB,SAASA,IACP,GAAgBhkd,KAAMgkd,GAEtBhkd,KAAKikd,UAAY,IAAI/4Y,IACrBlrE,KAAKkkd,YAAc,IAAI94Y,QAsFzB,OAnFA,GAAa44Y,EAAQ,CAAC,CACpBnmd,IAAK,QACL8C,MAAO,SAAeuuD,GACpB,OAAKA,EAUE2zZ,GAREG,GAAiB,CAAChjd,KAAM,SAAU,SAAUmkd,GACnD,OAAOA,EAAGC,SACT,OAAQ,SAAUC,GACnB,OAAOA,EAAGn1Z,IACT,iBAAkB,SAAUo1Z,GAC7B,OAAOA,EAAGthd,OAGkB,WAC5B,OAAQ,MAXM,IAcjB,CACDnF,IAAK,UACL8C,MAAO,SAAiBqC,GACtB,OAAOhD,KAAKikd,UAAUxic,IAAIze,IAAO,OAElC,CACDnF,IAAK,SACL8C,MAAO,WACL,OAAOsB,MAAM4sB,KAAK7uB,KAAKikd,UAAUx+c,UAElC,CACD5H,IAAK,UACL8C,MAAO,SAAiBuuD,GACtB,OAAOlvD,KAAKkkd,YAAYzic,IAAIytC,IAAM,OAEnC,CACDrxD,IAAK,oBACL8C,MAAO,SAA2BuuD,GAChC,IAAI0jE,EAAQ5yH,KAERgD,EAAKhD,KAAKukd,MAAMr1Z,GACpBlvD,KAAKikd,UAAU1oR,OAAOv4L,GAElBksD,EAAE7vC,YACJ6vC,EAAE7vC,WAAW1hB,SAAQ,SAAU2jM,GAC7B,OAAO1uE,EAAM4xV,kBAAkBljR,QAIpC,CACDzjM,IAAK,MACL8C,MAAO,SAAaqC,GAClB,OAAOhD,KAAKikd,UAAUl9Y,IAAI/jE,KAE3B,CACDnF,IAAK,UACL8C,MAAO,SAAiBod,GACtB,OAAO/d,KAAKkkd,YAAYn9Y,IAAIhpD,KAE7B,CACDlgB,IAAK,MACL8C,MAAO,SAAauuD,EAAGnpB,GACrB,IAAI/iC,EAAK+iC,EAAK/iC,GACdhD,KAAKikd,UAAUzic,IAAIxe,EAAIksD,GACvBlvD,KAAKkkd,YAAY1ic,IAAI0tC,EAAGnpB,KAEzB,CACDloC,IAAK,UACL8C,MAAO,SAAiBqC,EAAIksD,GAC1B,IAAIu1Z,EAAUzkd,KAAK0kd,QAAQ1hd,GAE3B,GAAIyhd,EAAS,CACX,IAAI1+a,EAAO/lC,KAAKkkd,YAAYzic,IAAIgjc,GAC5B1+a,GAAM/lC,KAAKkkd,YAAY1ic,IAAI0tC,EAAGnpB,GAGpC/lC,KAAKikd,UAAUzic,IAAIxe,EAAIksD,KAExB,CACDrxD,IAAK,QACL8C,MAAO,WACLX,KAAKikd,UAAY,IAAI/4Y,IACrBlrE,KAAKkkd,YAAc,IAAI94Y,YAIpB44Y,EA3FiB,GAkG1B,SAASW,GAAgBtyc,GACvB,IAAIuyc,EAAmBvyc,EAAKuyc,iBACxB95a,EAAUz4B,EAAKy4B,QACfx/B,EAAO+G,EAAK/G,KAMhB,MAJgB,WAAZw/B,IACFA,EAAU,UAGLu9E,QAAQu8V,EAAiB95a,EAAQhtC,gBAAkBwN,GAAQs5c,EAAiBt5c,IAAkB,aAATA,GAAmC,UAAZw/B,IAAwBx/B,GAAQs5c,EAAuB,MAG5K,SAASC,GAAelxc,GACtB,IAAImxc,EAAWnxc,EAAMmxc,SACjBryc,EAAUkB,EAAMlB,QAChB9R,EAAQgT,EAAMhT,MACdokd,EAAcpxc,EAAMoxc,YACpBh6a,EAAOpqC,GAAS,GAEpB,OAAKmkd,GAIDC,IACFh6a,EAAOg6a,EAAYh6a,EAAMt4B,IAGpB,IAAIwkD,OAAOlsB,EAAK3oC,SAPd2oC,EAUX,SAASjtC,GAAYwP,GACnB,OAAOA,EAAIxP,cAGb,SAASzB,GAAYiR,GACnB,OAAOA,EAAIjR,cAwBb,SAAS2od,GAAavyc,GACpB,IAAInH,EAAOmH,EAAQnH,KACnB,OAAOmH,EAAQwL,aAAa,uBAAyB,WAAa3S,EAAOxN,GAAYwN,GAAQ,KAG/F,SAASqtH,GAAcv5G,EAAI0rB,EAASx/B,GAClC,MAAgB,UAAZw/B,GAAiC,UAATx/B,GAA6B,aAATA,EAIzC8T,EAAGze,MAHDye,EAAGpB,aAAa,UAAY,GAMvC,SAASinc,GAAqB58c,EAAM3M,GAClC,IAAIC,EAEJ,IACEA,EAAM,IAAI4wD,IAAIlkD,EAAMw6c,GAAmBnnd,GAAS,WAC9C,OAAOgP,OAAOC,SAASX,SAEzB,MAAO8jB,GACP,OAAO,KAKT,OAAO+0b,GAAmBG,GAAiB,CAD/Brnd,EAAI6O,SAAS3B,MADb,uBAEuC,iBAAkB,SAAUq8c,GAC7E,OAAOA,EAAG,OACP,WACH,OAAO,QAIX,IAAIC,GAA0B,GAE9B,SAASC,GAAoBlhd,GAC3B,IAAIitJ,EAASg0T,GAAwBjhd,GAErC,GAAIitJ,EACF,OAAOA,EAGT,IAAIvoJ,EAAW8B,OAAO9B,SAClBsic,EAAOxgc,OAAOxG,GAElB,GAAI0E,GAA8C,mBAA3BA,EAASkB,cAC9B,IACE,IAAIghc,EAAUlic,EAASkB,cAAc,UACrCghc,EAAQ5zb,QAAS,EACjBtO,EAASk8E,KAAKrxE,YAAYq3b,GAC1B,IAAI94T,EAAgB84T,EAAQ94T,cAExBA,GAAiBA,EAAc9tI,KACjCgnc,EAAOl5T,EAAc9tI,IAGvB0E,EAASk8E,KAAK9lE,YAAY8rb,GAC1B,MAAO7jc,IAGX,OAAOk+c,GAAwBjhd,GAAQgnc,EAAKvsc,KAAK+L,QAGnD,SAAS26c,KACP,OAAOD,GAAoB,cAAcljd,WAAM,EAAQjB,WAGzD,SAASqkd,KACP,OAAOF,GAAoB,gBAAgBljd,WAAM,EAAQjB,WAG3D,IAmCIskd,GACAC,GApCApqD,GAAM,EACNqqD,GAAe,IAAI38c,OAAO,gBAG9B,SAAS48c,KACP,OAAOtqD,KAgCT,IAAIuqD,GAAiB,6CACjBC,GAAqB,sBACrBC,GAAgB,YAChBC,GAAW,wBAEf,SAASC,GAAqB/hc,EAASha,GACrC,OAAQga,GAAW,IAAIrhB,QAAQgjd,IAAgB,SAAU7hb,EAAQkib,EAAQC,EAAOC,EAAQC,EAAOC,GAC7F,IAtBmBzqd,EAsBf0qd,EAAWJ,GAASE,GAASC,EAC7BE,EAAaN,GAAUE,GAAU,GAErC,IAAKG,EACH,OAAOvib,EAGT,GAAI8hb,GAAmB18c,KAAKm9c,IAAaR,GAAc38c,KAAKm9c,GAC1D,MAAO,OAAOlkd,OAAOmkd,GAAYnkd,OAAOkkd,GAAUlkd,OAAOmkd,EAAY,KAGvE,GAAIR,GAAS58c,KAAKm9c,GAChB,MAAO,OAAOlkd,OAAOmkd,GAAYnkd,OAAOkkd,GAAUlkd,OAAOmkd,EAAY,KAGvE,GAAoB,MAAhBD,EAAS,GACX,MAAO,OAAOlkd,OAAOmkd,GAAYnkd,QAtChBxG,EAsCqCqO,GAnCtDrO,EAAIiB,QAAQ,OAAS,EACdjB,EAAIqP,MAAM,KAAK7F,MAAM,EAAG,GAAG6C,KAAK,KAEhCrM,EAAIqP,MAAM,KAAK,IAGVA,MAAM,KAAK,GA6BuCq7c,IAAUlkd,OAAOmkd,EAAY,KAG7F,IAAI9hd,EAAQwF,EAAKgB,MAAM,KACnBpD,EAAQy+c,EAASr7c,MAAM,KAC3BxG,EAAMgW,MAEN,IACIujB,EADAC,EAAY,GAA2Bp2B,GAG3C,IACE,IAAKo2B,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAAO,CAClD,IAAIhB,EAAOkR,EAAMp9B,MAEJ,MAATksB,IAEgB,OAATA,EACTroB,EAAMgW,MAENhW,EAAMzC,KAAK8qB,KAGf,MAAOiB,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,MAAO,OAAO3vB,OAAOmkd,GAAYnkd,OAAOqC,EAAMwD,KAAK,MAAM7F,OAAOmkd,EAAY,QAIhF,IAAIC,GAAoB,qBACpBC,GAA0B,qBAsE1BC,GAAiB,IAAIr7Y,QAEzB,SAASs7Y,GAAc7gU,EAAK8gU,GAC1B,OAAKA,GAA4C,KAA1BA,EAAe3/c,OAI/B4/c,GAAQ/gU,EAAK8gU,GAHXA,EAMX,SAASvoc,GAAagB,GACpB,OAAOipG,QAAuB,QAAfjpG,EAAG0rB,SAAqB1rB,EAAGync,iBAG5C,SAASD,GAAQ/gU,EAAKihU,GACpB,IAAI15c,EAAIq5c,GAAehlc,IAAIokI,GAO3B,GALKz4I,IACHA,EAAIy4I,EAAI/7I,cAAc,KACtB28c,GAAejlc,IAAIqkI,EAAKz4I,IAGrB05c,GAEE,GAAIA,EAAWhzX,WAAW,UAAYgzX,EAAWhzX,WAAW,SACjE,OAAOgzX,OAFPA,EAAa,GAMf,OADA15c,EAAEnD,aAAa,OAAQ68c,GAChB15c,EAAEpD,KAGX,SAAS+8c,GAAmBlhU,EAAK/6G,EAAS5mC,EAAMvD,EAAO8R,EAASu0c,GAC9D,OAAKrmd,EAIQ,QAATuD,GAA2B,SAATA,IAAiC,QAAZ4mC,GAAkC,MAAbnqC,EAAM,KAElD,eAATuD,GAAsC,MAAbvD,EAAM,GADjC+ld,GAAc7gU,EAAKllJ,GAGR,eAATuD,GAAsC,UAAZ4mC,GAAmC,OAAZA,GAAgC,OAAZA,EAE5D,WAAT5mC,EA/Gb,SAAiC2hJ,EAAK8gU,GACpC,GAA8B,KAA1BA,EAAe3/c,OACjB,OAAO2/c,EAGT,IAAIt4W,EAAM,EAEV,SAAS44W,EAAkBC,GACzB,IAAIlmY,EACAn4E,EAAQq+c,EAAM3sc,KAAKosc,EAAex5b,UAAUkhF,IAEhD,OAAIxlG,GACFm4E,EAAQn4E,EAAM,GACdwlG,GAAOrtB,EAAM5+E,OACN4+E,GAGF,GAKT,IAFA,IAAI94C,EAAS,GAGX++a,EAAkBT,MAEdn4W,GAAOs4W,EAAevkd,SAHf,CAOX,IAAIzG,EAAMsrd,EAAkBV,IAE5B,GAAsB,MAAlB5qd,EAAIwJ,OAAO,GACbxJ,EAAM+qd,GAAc7gU,EAAKlqJ,EAAIwxB,UAAU,EAAGxxB,EAAIyG,OAAS,IACvD8lC,EAAOnmC,KAAKpG,OACP,CACL,IAAIwrd,EAAiB,GACrBxrd,EAAM+qd,GAAc7gU,EAAKlqJ,GAGzB,IAFA,IAAIyrd,GAAW,IAEF,CACX,IAAI1md,EAAIimd,EAAel8c,OAAO4jG,GAE9B,GAAU,KAAN3tG,EAAU,CACZwnC,EAAOnmC,MAAMpG,EAAMwrd,GAAgBngd,QACnC,MACK,GAAKogd,EASA,MAAN1md,IACF0md,GAAW,OAVO,CACpB,GAAU,MAAN1md,EAAW,CACb2tG,GAAO,EACPnmE,EAAOnmC,MAAMpG,EAAMwrd,GAAgBngd,QACnC,MACe,MAANtG,IACT0md,GAAW,GAQfD,GAAkBzmd,EAClB2tG,GAAO,IAKb,OAAOnmE,EAAOlgC,KAAK,MA+CVq/c,CAAwBxhU,EAAKllJ,GAClB,UAATuD,EACF6hd,GAAqBpld,EAAOimd,GAAQ/gU,IACtB,WAAZ/6G,GAAiC,SAAT5mC,EAC1Bwid,GAAc7gU,EAAKllJ,GAGG,mBAApBqmd,EACFA,EAAgB9id,EAAMvD,EAAO8R,GAG/B9R,EAbE+ld,GAAc7gU,EAAKllJ,GARnBA,EAwBX,SAAS2md,GAAgBx8a,EAAS5mC,EAAM2hM,GACtC,OAAoB,UAAZ/6J,GAAmC,UAAZA,IAAiC,aAAT5mC,EA2CzD,SAASqjd,GAAgBxpc,EAAMypc,GAC7B,IAAIrsb,EAAQl6B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyzE,EAAAA,EAC5Eo4I,EAAW7rN,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EACnF,OAAK8c,EACDA,EAAK62C,WAAa72C,EAAK0/M,cACvB3Q,EAAW3xL,GADkC,EAE7Cqsb,EAAezpc,GAAc+uM,EAC1By6P,GAAgBxpc,EAAKgB,WAAYyoc,EAAgBrsb,EAAO2xL,EAAW,IAJvD,EAOrB,SAAS26P,GAAqBnpc,EAAWgtC,GACvC,OAAO,SAAUvtC,GACf,IAAIqB,EAAKrB,EACT,GAAW,OAAPqB,EAAa,OAAO,EAExB,IACE,GAAId,EACF,GAAyB,iBAAdA,GACT,GAAIc,EAAGie,QAAQ,IAAIl7B,OAAOmc,IAAa,OAAO,OACzC,GA/Bf,SAAkCc,EAAIuoF,GACpC,IAAK,IAAI+/W,EAAStoc,EAAGsyB,UAAUtvC,OAAQsld,KAAW,CAChD,IAAIppc,EAAYc,EAAGsyB,UAAUg2a,GAE7B,GAAI//W,EAAMz+F,KAAKoV,GACb,OAAO,EAIX,OAAO,EAsBUqpc,CAAyBvoc,EAAId,GACtC,OAAO,EAIX,SAAIgtC,IAAYlsC,EAAGie,QAAQiuB,IAE3B,MAAOokZ,GACP,OAAO,IAKb,SAASkY,GAAgB7pc,EAAM8pc,EAAeC,EAAkBC,EAAiBC,EAAoBC,GACnG,IACE,IAAI7oc,EAAKrB,EAAK62C,WAAa72C,EAAK0/M,aAAe1/M,EAAOA,EAAKg7b,cAC3D,GAAW,OAAP35b,EAAa,OAAO,EAExB,GAAmB,UAAfA,EAAG0rB,QAAqB,CAC1B,IAAIk5X,EAAe5kZ,EAAGpB,aAAa,gBAGnC,GAFmC,CAAC,mBAAoB,eAAgB,YAAa,SAAU,eAAgB,cAAe,UAE7FK,SAAS2lZ,GACxC,OAAO,EAIX,IAAIkkD,GAAgB,EAChBC,GAAkB,EAEtB,GAAIF,EAAa,CAGf,IAFAE,EAAiBZ,GAAgBnoc,EAAIqoc,GAAqBM,EAAiBC,KAEtD,EACnB,OAAO,EAGTE,EAAeX,GAAgBnoc,EAAIqoc,GAAqBI,EAAeC,GAAmBK,GAAkB,EAAIA,EAAiBzzY,EAAAA,OAC5H,CAGL,IAFAwzY,EAAeX,GAAgBnoc,EAAIqoc,GAAqBI,EAAeC,KAEpD,EACjB,OAAO,EAGTK,EAAiBZ,GAAgBnoc,EAAIqoc,GAAqBM,EAAiBC,GAAqBE,GAAgB,EAAIA,EAAexzY,EAAAA,GAGrI,OAAOwzY,GAAgB,IAAIC,GAAkB,IAAID,GAAgBC,IAAwBA,GAAkB,IAAcF,GACzH,MAAOhhd,IAET,QAASghd,EAqcX,SAASG,GAAcC,GACrB,OAAIA,MAAAA,EACK,GAEAA,EAAUvqd,cAgCrB,SAASwqd,GAAoBp5Z,EAAGpsD,GAC9B,IAsEIE,EAtEA6iJ,EAAM/iJ,EAAQ+iJ,IACd0iU,EAASzld,EAAQyld,OACjBC,EAAa1ld,EAAQ0ld,WACrBC,EAAgB3ld,EAAQ2ld,cACxBC,EAAkB5ld,EAAQ4ld,gBAC1BT,EAAcnld,EAAQmld,YACtBJ,EAAgB/kd,EAAQ+kd,cACxBE,EAAkBjld,EAAQild,gBAC1BD,EAAmBhld,EAAQgld,iBAC3BE,EAAqBlld,EAAQkld,mBAC7BW,EAAqB7ld,EAAQ8ld,UAC7BA,OAAmC,IAAvBD,GAAwCA,EACpDE,EAAwB/ld,EAAQgmd,iBAChCA,OAA6C,IAA1BD,GAA0CA,EAC7DE,EAAyBjmd,EAAQ8hd,iBACjCA,OAA8C,IAA3BmE,EAAoC,GAAKA,EAC5D/B,EAAkBlkd,EAAQkkd,gBAC1BgC,EAAalmd,EAAQkmd,WACrBjE,EAAcjid,EAAQiid,YACtBkE,EAAiBnmd,EAAQmmd,eACzBC,EAAyBpmd,EAAQqmd,eACjCA,OAA4C,IAA3BD,EAAoC,GAAKA,EAC1DE,EAAwBtmd,EAAQumd,aAChCA,OAAyC,IAA1BD,GAA2CA,EAC1DE,EAAwBxmd,EAAQymd,aAChCA,OAAyC,IAA1BD,GAA2CA,EAC1DE,EAAc1md,EAAQ0md,YACtBC,EAAe3md,EAAQ2md,aACvBC,EAAwB5md,EAAQ6md,kBAChCA,OAA8C,IAA1BD,EAAmC,IAAOA,EAC9DE,EAAmB9md,EAAQ8md,iBAC3BC,EAAwB/md,EAAQgnd,sBAChCA,OAAkD,IAA1BD,EAAmC,IAAOA,EAClEE,EAAwBjnd,EAAQknd,gBAChCA,OAA4C,IAA1BD,EAAmC,WACvD,OAAO,GACLA,EACAE,EAAyBnnd,EAAQond,kBACjCA,OAA+C,IAA3BD,GAA4CA,EAChEE,EAAwBrnd,EAAQsnd,mBAChCA,OAA+C,IAA1BD,GAA0CA,EAE/DE,EAhdN,SAAuBn7Z,EAAGpsD,GACxB,IAAI+iJ,EAAM/iJ,EAAQ+iJ,IACd0iU,EAASzld,EAAQyld,OACjBC,EAAa1ld,EAAQ0ld,WACrBC,EAAgB3ld,EAAQ2ld,cACxBC,EAAkB5ld,EAAQ4ld,gBAC1BT,EAAcnld,EAAQmld,YACtBjB,EAAkBlkd,EAAQkkd,gBAC1Ba,EAAgB/kd,EAAQ+kd,cACxBE,EAAkBjld,EAAQild,gBAC1BD,EAAmBhld,EAAQgld,iBAC3BE,EAAqBlld,EAAQkld,mBAC7Bc,EAAmBhmd,EAAQgmd,iBAC3BwB,EAAwBxnd,EAAQ8hd,iBAChCA,OAA6C,IAA1B0F,EAAmC,GAAKA,EAC3DtB,EAAalmd,EAAQkmd,WACrBjE,EAAcjid,EAAQiid,YACtBwF,EAAwBznd,EAAQqmd,eAChCA,OAA2C,IAA1BoB,EAAmC,GAAKA,EACzDlB,EAAevmd,EAAQumd,aACvBE,EAAezmd,EAAQymd,aACvBS,EAAkBlnd,EAAQknd,gBAC1BQ,EAAwB1nd,EAAQond,kBAChCA,OAA8C,IAA1BM,GAA2CA,EAC/DC,EAkFN,SAAmB5kU,EAAK0iU,GACtB,GAAKA,EAAOmC,QAAQ7kU,GAApB,CACA,IAAI8kU,EAAQpC,EAAOhE,MAAM1+T,GACzB,OAAiB,IAAV8kU,OAAcltd,EAAYktd,GArFpBC,CAAU/kU,EAAK0iU,GAE5B,OAAQr5Z,EAAE0F,UACR,KAAK1F,EAAE27Z,cACL,MAAqB,eAAjB37Z,EAAE47Z,WACG,CACLx/c,KAAM82c,GAAW2I,SACjB1rc,WAAY,GACZyrc,WAAY57Z,EAAE47Z,YAGT,CACLx/c,KAAM82c,GAAW2I,SACjB1rc,WAAY,IAIlB,KAAK6vC,EAAE87Z,mBACL,MAAO,CACL1/c,KAAM82c,GAAW6I,aACjB/md,KAAMgrD,EAAEhrD,KACRgnd,SAAUh8Z,EAAEg8Z,SACZC,SAAUj8Z,EAAEi8Z,SACZV,OAAQA,GAGZ,KAAKv7Z,EAAEuuK,aACL,OAmIN,SAA8BvuK,EAAGpsD,GA8B/B,IA7BA,IAwLIsod,EAxLAvlU,EAAM/iJ,EAAQ+iJ,IAIdijU,EAAmBhmd,EAAQgmd,iBAC3BuC,EAAyBvod,EAAQ8hd,iBACjCA,OAA8C,IAA3ByG,EAAoC,GAAKA,EAC5DrE,EAAkBlkd,EAAQkkd,gBAC1BjC,EAAcjid,EAAQiid,YACtBuG,EAAyBxod,EAAQqmd,eACjCA,OAA4C,IAA3BmC,EAAoC,GAAKA,EAC1DjC,EAAevmd,EAAQumd,aACvBE,EAAezmd,EAAQymd,aACvBS,EAAkBlnd,EAAQknd,gBAC1BuB,EAAyBzod,EAAQond,kBACjCA,OAA+C,IAA3BqB,GAA4CA,EAChEd,EAAS3nd,EAAQ2nd,OAEjB5C,EAAgB/kd,EAAQ+kd,cACxBE,EAAkBjld,EAAQild,gBAC1BD,EAAmBhld,EAAQgld,iBAC3BE,EAAqBlld,EAAQkld,mBAE7BwD,EAhYN,SAA2B/4c,EAAS+1c,EAAYC,EAAeC,GAC7D,IACE,GAAIA,GAAmBj2c,EAAQ4qB,QAAQqrb,GACrC,OAAO,EAGT,GAA0B,iBAAfF,GACT,GAAI/1c,EAAQi/B,UAAU2J,SAASmta,GAC7B,OAAO,OAGT,IAAK,IAAId,EAASj1c,EAAQi/B,UAAUtvC,OAAQsld,KAAW,CACrD,IAAIppc,EAAY7L,EAAQi/B,UAAUg2a,GAElC,GAAIc,EAAWt/c,KAAKoV,GAClB,OAAO,EAKb,GAAImqc,EACF,OAAOh2c,EAAQ4qB,QAAQorb,GAEzB,MAAOxhd,IAET,OAAO,EAuWSwkd,CAAkBv8Z,EAtBjBpsD,EAAQ0ld,WACL1ld,EAAQ2ld,cACN3ld,EAAQ4ld,iBAsB1B59a,EA3lBN,SAAyBr4B,GACvB,GAAIA,aAAmBi2H,gBACrB,MAAO,OAGT,IAAIgjV,EAAmB5td,GAAY2U,EAAQq4B,SAE3C,OAAI26a,GAAav8c,KAAKwid,GACb,MAGFA,EAglBOC,CAAgBz8Z,GAC1B3wC,EAAa,GACbukF,EAAM5zC,EAAE3wC,WAAWnc,OAEdqF,EAAI,EAAGA,EAAIq7F,EAAKr7F,IAAK,CAC5B,IAAIqW,EAAOoxC,EAAE3wC,WAAW9W,GAEpBqW,EAAK5Z,OAASojd,GAAgBx8a,EAAShtB,EAAK5Z,KAAM4Z,EAAKnd,SACzD4d,EAAWT,EAAK5Z,MAAQ6id,GAAmBlhU,EAAK/6G,EAAShtC,GAAYggB,EAAK5Z,MAAO4Z,EAAKnd,MAAOuuD,EAAG83Z,IAIpG,GAAgB,SAAZl8a,GAAsBg+a,EAAkB,CAC1C,IAAIn0M,EAAa1yQ,MAAM4sB,KAAKg3H,EAAIs1G,aAAaxiO,MAAK,SAAU82B,GAC1D,OAAOA,EAAEzlD,OAASklD,EAAEllD,QAElBga,EAAU,KAEV2wP,IACF3wP,EAAUm/b,GAAoBxuM,IAG5B3wP,WACKzF,EAAWknC,WACXlnC,EAAWvU,KAClBuU,EAAWqtc,SAAW7F,GAAqB/hc,EAAS2wP,EAAW3qQ,OAInE,GAAgB,UAAZ8gC,GAAuBokB,EAAEmkN,SAAWnkN,EAAEkoE,WAAaloE,EAAEnM,aAAe,IAAI/7C,OAAO5E,OAAQ,CACzF,IAAIwpd,EAAWzI,GAAoBj0Z,EAAEmkN,OAEjCu4M,IACFrtc,EAAWqtc,SAAW7F,GAAqB6F,EAAUhF,GAAQ/gU,KAIjE,GAAgB,UAAZ/6G,GAAmC,aAAZA,GAAsC,WAAZA,GAAoC,WAAZA,EAAsB,CACjG,IAAI1rB,EAAK8vC,EACL5jD,EAAO05c,GAAa5lc,GACpBze,EAAQg4H,GAAcv5G,EAAI/iB,GAAYyuC,GAAUx/B,GAChDotH,EAAUt5G,EAAGs5G,QAEjB,GAAa,WAATptH,GAA8B,WAATA,GAAqB3K,EAAO,CACnD,IAAIkrd,EAAYjE,GAAgBxoc,EAAIyoc,EAAeC,EAAkBC,EAAiBC,EAAoBrD,GAAgB,CACxHr5c,KAAMA,EACNw/B,QAASzuC,GAAYyuC,GACrB85a,iBAAkBA,KAEpBrmc,EAAW5d,MAAQkkd,GAAe,CAChCC,SAAU+G,EACVp5c,QAAS2M,EACTze,MAAOA,EACPokd,YAAaA,IAIbrsV,IACFn6G,EAAWm6G,QAAUA,GAYzB,GARgB,WAAZ5tF,IACEokB,EAAEirE,WAAayqV,EAAyB,OAC1Crmc,EAAW47G,UAAW,SAEf57G,EAAW47G,UAIN,WAAZrvF,GAAwBy+a,EAC1B,GAAoB,OAAhBr6Z,EAAE48Z,WApwBV,SAAyB98c,GACvB,IAAIC,EAAMD,EAAOE,WAAW,MAC5B,IAAKD,EAAK,OAAO,EAGjB,IAFA,IAESw8B,EAAI,EAAGA,EAAIz8B,EAAOF,MAAO28B,GAFlB,GAGd,IAAK,IAAIC,EAAI,EAAGA,EAAI18B,EAAOD,OAAQ28B,GAHrB,GAGqC,CACjD,IAAIr8B,EAAeJ,EAAII,aACnB08c,EAVoB,uBAU8B18c,EAAeA,EAAoC,mBAAIA,EAE7G,GADkB,IAAI6hD,YAAY66Z,EAAqBpod,KAAKsL,EAAKw8B,EAAGC,EAAGn9B,KAAKM,IANhE,GAM+EG,EAAOF,MAAQ28B,GAAIl9B,KAAKM,IANvG,GAMsHG,EAAOD,OAAS28B,IAAI/wC,KAAK4L,QAC3I6T,MAAK,SAAU65O,GAC7B,OAAiB,IAAVA,KACL,OAAO,EAIf,OAAO,GAqvBE+3N,CAAgB98Z,KACnB3wC,EAAW0tc,WAAa/8Z,EAAEg9Z,UAAU/C,EAAe79c,KAAM69c,EAAehuZ,eAErE,KAAM,cAAejM,GAAI,CAC9B,IAAIi9Z,EAAgBj9Z,EAAEg9Z,UAAU/C,EAAe79c,KAAM69c,EAAehuZ,SAChEixZ,EAAcvmU,EAAI/7I,cAAc,UACpCsid,EAAYt9c,MAAQogD,EAAEpgD,MACtBs9c,EAAYr9c,OAASmgD,EAAEngD,OAGnBo9c,IAFqBC,EAAYF,UAAU/C,EAAe79c,KAAM69c,EAAehuZ,WAGjF58C,EAAW0tc,WAAaE,GAK9B,GAAgB,QAAZrhb,GAAqBu+a,EAAc,CAChC9D,KACHA,GAAgB1/T,EAAI/7I,cAAc,UAClC07c,GAAYD,GAAcr2c,WAAW,OAGvC,IAAIP,EAAQugD,EACRm9Z,EAAW19c,EAAM29c,YAAc39c,EAAMqP,aAAa,QAAU,gBAC5Duuc,EAAmB59c,EAAMsG,YAEzBu3c,EAAoB,SAASA,IAC/B79c,EAAM4V,oBAAoB,OAAQioc,GAElC,IACEjH,GAAcz2c,MAAQH,EAAMwG,aAC5Bowc,GAAcx2c,OAASJ,EAAMyG,cAC7Bowc,GAAUp2c,UAAUT,EAAO,EAAG,GAC9B4P,EAAW0tc,WAAa1G,GAAc2G,UAAU/C,EAAe79c,KAAM69c,EAAehuZ,SACpF,MAAOrtC,GACP,GAA0B,cAAtBnf,EAAMsG,YAGR,OAFAtG,EAAMsG,YAAc,iBAChBtG,EAAMwvB,UAAmC,IAAvBxvB,EAAMwG,aAAoBq3c,IAAyB79c,EAAMzQ,iBAAiB,OAAQsud,IAGxGpgd,QAAQC,KAAK,yBAAyBlK,OAAOkqd,EAAU,aAAalqd,OAAO2rB,IAIrD,cAAtBnf,EAAMsG,cACRs3c,EAAmBhuc,EAAWtJ,YAAcs3c,EAAmB59c,EAAMq+B,gBAAgB,iBAIrFr+B,EAAMwvB,UAAmC,IAAvBxvB,EAAMwG,aAAoBq3c,IAAyB79c,EAAMzQ,iBAAiB,OAAQsud,GAkB1G,GAfgB,UAAZ1hb,GAAmC,UAAZA,IACzBvsB,EAAWkuc,cAAgBv9Z,EAAE8qP,OAAS,SAAW,SACjDz7R,EAAWmuc,oBAAsBx9Z,EAAEuK,aAGhCywZ,IACCh7Z,EAAEs2G,aACJjnJ,EAAWouc,cAAgBz9Z,EAAEs2G,YAG3Bt2G,EAAEzpC,YACJlH,EAAWquc,aAAe19Z,EAAEzpC,YAI5B+lc,EAAW,CACb,IAAIqB,EAAwB39Z,EAAE41G,wBAC1Bh2J,EAAQ+9c,EAAsB/9c,MAC9BC,EAAS89c,EAAsB99c,OAEnCwP,EAAa,CACXqkK,MAAOrkK,EAAWqkK,MAClBkqS,SAAU,GAAG3qd,OAAO2M,EAAO,MAC3Bi+c,UAAW,GAAG5qd,OAAO4M,EAAQ,OAIjB,WAAZ+7B,GAAyBk/a,EAAgBzrc,EAAWxK,OACjDy3c,GAAct8Z,EAAEykG,kBACnBp1I,EAAWyuc,OAASzuc,EAAWxK,YAG1BwK,EAAWxK,KAKpB,IACMk5c,eAAexrc,IAAIqpB,KAAUsgb,GAAkB,GACnD,MAAOnkd,IAET,MAAO,CACLqE,KAAM82c,GAAWp8P,QACjBl7K,QAASA,EACTvsB,WAAYA,EACZc,WAAY,GACZs+K,MAAOv/K,GAAa8wC,SAAMzxD,EAC1B+td,UAAWA,EACXf,OAAQA,EACRyC,SAAU9B,GA1UD+B,CAAqBj+Z,EAAG,CAC7B22F,IAAKA,EACL2iU,WAAYA,EACZC,cAAeA,EACfC,gBAAiBA,EACjBI,iBAAkBA,EAClB9B,gBAAiBA,EACjBpC,iBAAkBA,EAClBG,YAAaA,EACboE,eAAgBA,EAChBE,aAAcA,EACdE,aAAcA,EACdS,gBAAiBA,EACjBE,kBAAmBA,EACnBO,OAAQA,EACRxC,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,IAGxB,KAAK94Z,EAAEupM,UACL,OAsCN,SAA2BvpM,EAAGpsD,GAC5B,IAAImld,EAAcnld,EAAQmld,YACtBJ,EAAgB/kd,EAAQ+kd,cACxBE,EAAkBjld,EAAQild,gBAC1BD,EAAmBhld,EAAQgld,iBAC3BE,EAAqBlld,EAAQkld,mBAC7BgB,EAAalmd,EAAQkmd,WACrBpE,EAAmB9hd,EAAQ8hd,iBAC3BG,EAAcjid,EAAQiid,YACtB0F,EAAS3nd,EAAQ2nd,OACjB2C,EAAgBl+Z,EAAEnwC,YAAcmwC,EAAEnwC,WAAW+rB,QAC7CiY,EAAcmM,EAAEnM,YAChBsqa,EAA4B,UAAlBD,QAAmC3vd,EAC7C6vd,EAA6B,WAAlBF,QAAoC3vd,EAC/C8vd,EAA+B,aAAlBH,QAAsC3vd,EAEvD,GAAI4vd,GAAWtqa,EAAa,CAC1B,IACMmM,EAAE7lC,aAAe6lC,EAAEs+Z,iBAA6BxK,GAAiB,CAAC9zZ,EAAG,SAAU,SAAUu+Z,GAC3F,OAAOA,EAAG1uc,YACT,SAAU,SAAU2uc,GACrB,OAAOA,EAAGr6M,OACT,iBAAkB,SAAUs6M,GAC7B,OAAOA,EAAGtyN,cAEVt4M,EAAcoga,GAAoBj0Z,EAAEnwC,WAAWs0P,QAEjD,MAAOvlP,GACP1hB,QAAQC,KAAK,wDAAwDlK,OAAO2rB,GAAMohC,GAGpFnM,EAAcgja,GAAqBhja,EAAa6ja,GAAQ9jd,EAAQ+iJ,MAG9DynU,IACFvqa,EAAc,sBAGhB,IAAI8oa,EAAYjE,GAAgB14Z,EAAG24Z,EAAeC,EAAkBC,EAAiBC,EAAoBC,GAwBzG,OAtBKoF,GAAYC,GAAaC,IAAcxqa,IAAe8oa,IACzD9oa,EAAcima,EAAaA,EAAWjma,EAAamM,EAAE6pZ,eAAiBh2Z,EAAYpgD,QAAQ,QAAS,MAGjG4qd,GAAcxqa,IAAgB6ha,EAAiB/5V,UAAYghW,KAC7D9oa,EAAcgia,EAAcA,EAAYhia,EAAamM,EAAEnwC,YAAcgkC,EAAYpgD,QAAQ,QAAS,MAG9E,WAAlByqd,GAA8Brqa,IAMhCA,EAAc8ha,GAAe,CAC3BC,SAAU8C,GAAgB14Z,EAAG24Z,EAAeC,EAAkBC,EAAiBC,EAN7DrD,GAAgB,CAClCr5c,KAAM,KACNw/B,QAASsib,EACTxI,iBAAkBA,KAIlBnyc,QAASy8C,EACTvuD,MAAOoiD,EACPgia,YAAaA,KAIV,CACLz5c,KAAM82c,GAAWwL,KACjB7qa,YAAaA,GAAe,GAC5Bsqa,QAASA,EACT5C,OAAQA,GAxGCoD,CAAkB3+Z,EAAG,CAC1B22F,IAAKA,EACLoiU,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBgB,WAAYA,EACZpE,iBAAkBA,EAClBG,YAAaA,EACb0F,OAAQA,IAGZ,KAAKv7Z,EAAE4+Z,mBACL,MAAO,CACLxid,KAAM82c,GAAW2L,MACjBhra,YAAa,GACb0na,OAAQA,GAGZ,KAAKv7Z,EAAE8+Z,aACL,MAAO,CACL1id,KAAM82c,GAAW6L,QACjBlra,YAAamM,EAAEnM,aAAe,GAC9B0na,OAAQA,GAGZ,QACE,OAAO,GA0WWyD,CAAch/Z,EAAG,CACrC22F,IAAKA,EACL0iU,OAAQA,EACRC,WAAYA,EACZC,cAAeA,EACfR,YAAaA,EACbS,gBAAiBA,EACjBb,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBc,iBAAkBA,EAClBlE,iBAAkBA,EAClBoC,gBAAiBA,EACjBgC,WAAYA,EACZjE,YAAaA,EACboE,eAAgBA,EAChBE,aAAcA,EACdE,aAAcA,EACdS,gBAAiBA,EACjBE,kBAAmBA,IAGrB,IAAKG,EAEH,OADAj+c,QAAQC,KAAK6iD,EAAG,kBACT,KAMPlsD,EADEuld,EAAOmC,QAAQx7Z,GACZq5Z,EAAOhE,MAAMr1Z,IAtGtB,SAAyBi/Z,EAAIlF,GAC3B,GAAIA,EAAepzQ,SAAWs4Q,EAAG7id,OAAS82c,GAAW6L,QACnD,OAAO,EACF,GAAIE,EAAG7id,OAAS82c,GAAWp8P,QAAS,CACzC,GAAIijQ,EAAenjU,SAA0B,WAAfqoU,EAAGrjb,SAAuC,SAAfqjb,EAAGrjb,UAA6C,YAAtBqjb,EAAG5vc,WAAWknC,KAA2C,kBAAtB0oa,EAAG5vc,WAAWknC,MAAiD,WAArB0oa,EAAG5vc,WAAW8jG,IAAkC,SAAf8rW,EAAGrjb,SAA4C,aAAtBqjb,EAAG5vc,WAAWknC,KAAoD,iBAAvB0oa,EAAG5vc,WAAWvU,MAAkE,OAA7Ci7c,GAAqBkJ,EAAG5vc,WAAWvU,OACzU,OAAO,EACF,GAAIi/c,EAAemF,cAA+B,SAAfD,EAAGrjb,SAA4C,kBAAtBqjb,EAAG5vc,WAAWknC,KAA0C,SAAf0oa,EAAGrjb,UAAuBs9a,GAAc+F,EAAG5vc,WAAWra,MAAM2E,MAAM,sCAA8E,qBAAtCu/c,GAAc+F,EAAG5vc,WAAWra,OAAqE,SAArCkkd,GAAc+F,EAAG5vc,WAAWknC,MAAwD,qBAArC2ia,GAAc+F,EAAG5vc,WAAWknC,MAAoE,kBAArC2ia,GAAc+F,EAAG5vc,WAAWknC,OACtZ,OAAO,EACF,GAAmB,SAAf0oa,EAAGrjb,QAAoB,CAChC,GAAIm+a,EAAeoF,sBAAwBjG,GAAc+F,EAAG5vc,WAAWra,MAAM2E,MAAM,0BACjF,OAAO,EACF,GAAIogd,EAAeqF,iBAAmBlG,GAAc+F,EAAG5vc,WAAWX,UAAU/U,MAAM,sBAAwBu/c,GAAc+F,EAAG5vc,WAAWra,MAAM2E,MAAM,mBAA2D,cAAtCu/c,GAAc+F,EAAG5vc,WAAWra,OACxM,OAAO,EACF,GAAI+kd,EAAesF,iBAAyD,WAAtCnG,GAAc+F,EAAG5vc,WAAWra,OAA4D,cAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAA+D,YAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAC9K,OAAO,EACF,GAAI+kd,EAAeuF,wBAAqD/wd,IAAhC0wd,EAAG5vc,WAAW,cAC3D,OAAO,EACF,GAAI0qc,EAAewF,qBAA6D,WAAtCrG,GAAc+F,EAAG5vc,WAAWra,OAA4D,cAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAA+D,cAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAA+D,cAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAA+D,WAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAAsBkkd,GAAc+F,EAAG5vc,WAAWX,UAAU/U,MAAM,cAAgBu/c,GAAc+F,EAAG5vc,WAAWX,UAAU/U,MAAM,cAC1Z,OAAO,EACF,GAAIogd,EAAeyF,uBAA+D,6BAAtCtG,GAAc+F,EAAG5vc,WAAWra,OAA8E,wBAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAAyE,eAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAAgE,oBAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAAqE,cAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAA+D,iBAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAAkE,+BAAtCkkd,GAAc+F,EAAG5vc,WAAWra,OAC9a,OAAO,GAKb,OAAO,EA8EIyqd,CAAgBtE,EAAiBpB,KAAoBmB,GAAsBC,EAAgB/+c,OAAS82c,GAAWwL,MAASvD,EAAgBgD,SAAYhD,EAAgBtna,YAAYpgD,QAAQ,cAAe,IAAIP,QAG/Msjd,MAp4BU,EAu4BjB,IAAIkJ,EAAiBppd,OAAO0V,OAAOmvc,EAAiB,CAClDrnd,GAAIA,IAIN,GAFAuld,EAAOjkc,IAAI4qC,EAAG0/Z,IA14BG,IA44Bb5rd,EACF,OAAO,KAGLwmd,GACFA,EAAYt6Z,GAGd,IAAI2/Z,GAAejG,EAEnB,GAAIgG,EAAetjd,OAAS82c,GAAWp8P,QAAS,CAC9C6oQ,EAAcA,IAAgBD,EAAepD,iBACtCoD,EAAepD,UACtB,IAAI30P,EAAa3nK,EAAE2nK,WACfA,GAAcqsP,GAAkBrsP,KAAa+3P,EAAeE,cAAe,GAGjF,IAAKF,EAAetjd,OAAS82c,GAAW2I,UAAY6D,EAAetjd,OAAS82c,GAAWp8P,UAAY6oQ,EAAa,CAC1G5F,EAAe8F,gBAAkBH,EAAetjd,OAAS82c,GAAWp8P,SAAsC,SAA3B4oQ,EAAe9jb,UAChGs/a,GAAqB,GAiCvB,IA9BA,IAAI4E,EAAgB,CAClBnpU,IAAKA,EACL0iU,OAAQA,EACRC,WAAYA,EACZC,cAAeA,EACfR,YAAaA,EACbS,gBAAiBA,EACjBb,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBY,UAAWA,EACXE,iBAAkBA,EAClBlE,iBAAkBA,EAClBoC,gBAAiBA,EACjBgC,WAAYA,EACZjE,YAAaA,EACbkE,eAAgBA,EAChBE,eAAgBA,EAChBE,aAAcA,EACdE,aAAcA,EACda,mBAAoBA,EACpBZ,YAAaA,EACbC,aAAcA,EACdE,kBAAmBA,EACnBC,iBAAkBA,EAClBE,sBAAuBA,EACvBE,gBAAiBA,GAGV9mX,EAAK,EAAGs1J,EAAcv2P,MAAM4sB,KAAKqgC,EAAE7vC,YAAa6jF,EAAKs1J,EAAYp2P,OAAQ8gG,IAAM,CACtF,IACI+rX,EAAsB3G,GADb9vN,EAAYt1J,GAC6B8rX,GAElDC,GACFL,EAAevvc,WAAWtd,KAAKktd,GAInC,GAnwCJ,SAAqB//Z,GACnB,OAAOA,EAAE0F,WAAa1F,EAAEuuK,aAkwClByxP,CAAYhga,IAAMA,EAAE2nK,WACtB,IAAK,IAAIp9F,EAAM,EAAG01V,EAAeltd,MAAM4sB,KAAKqgC,EAAE2nK,WAAWx3M,YAAao6G,EAAM01V,EAAa/sd,OAAQq3H,IAAO,CACtG,IAEI21V,EAAuB9G,GAFb6G,EAAa11V,GAE6Bu1V,GAEpDI,IACFlM,GAAkBh0Z,EAAE2nK,cAAgBu4P,EAAqBC,UAAW,GACpET,EAAevvc,WAAWtd,KAAKqtd,KA4FvC,OAtFIlga,EAAEnwC,YAAc,GAAamwC,EAAEnwC,aAAemkc,GAAkBh0Z,EAAEnwC,cACpE6vc,EAAeS,UAAW,GAGxBT,EAAetjd,OAAS82c,GAAWp8P,SAAsC,WAA3B4oQ,EAAe9jb,SA3oBnE,SAA0Bwkb,EAAUjgc,EAAUs6b,GAC5C,IAAIn3S,EAAM88S,EAASt9U,cAEnB,GAAKwgC,EAAL,CAIA,IACI91K,EADA43J,GAAQ,EAGZ,IACE53J,EAAa81K,EAAI5pK,SAASlM,WAC1B,MAAO+F,GACP,OAGF,GAAmB,aAAf/F,EAAJ,CAeA,IAAI6yd,EAAW,cAEf,GAAI/8S,EAAI7nK,SAASX,OAASuld,GAAYD,EAASv7c,MAAQw7c,GAA6B,KAAjBD,EAASv7c,IAE1E,OADAsxc,GAAah2b,EAAU,GAChBigc,EAASpxd,iBAAiB,OAAQmxB,GAG3Cigc,EAASpxd,iBAAiB,OAAQmxB,OAtBlC,CACE,IAAIs4F,EAAQ09V,IAAa,WAClB/wT,IACHjlI,IACAilI,GAAQ,KAETq1T,GACH2F,EAASpxd,iBAAiB,QAAQ,WAChCond,GAAe39V,GACf2sC,GAAQ,EACRjlI,SAknBFmgc,CAAiBtga,GAAG,WAClB,IAAIuga,EAAYvga,EAAEykG,gBAElB,GAAI87T,GAAahG,EAAc,CAC7B,IAAIiG,EAAuBpH,GAAoBmH,EAAW,CACxD5pU,IAAK4pU,EACLlH,OAAQA,EACRC,WAAYA,EACZC,cAAeA,EACfC,gBAAiBA,EACjBT,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBY,WAAW,EACXE,iBAAkBA,EAClBlE,iBAAkBA,EAClBoC,gBAAiBA,EACjBgC,WAAYA,EACZjE,YAAaA,EACbkE,eAAgBA,EAChBE,eAAgBA,EAChBE,aAAcA,EACdE,aAAcA,EACda,mBAAoBA,EACpBZ,YAAaA,EACbC,aAAcA,EACdE,kBAAmBA,EACnBC,iBAAkBA,EAClBE,sBAAuBA,EACvBE,gBAAiBA,IAGf0F,GACFjG,EAAav6Z,EAAGwga,MAGnB/F,GAGDiF,EAAetjd,OAAS82c,GAAWp8P,SAAsC,SAA3B4oQ,EAAe9jb,SAA+D,iBAAlC8jb,EAAerwc,WAAWknC,MAAuD,eAAlCmpa,EAAerwc,WAAWknC,KAA0D,YAAlCmpa,EAAerwc,WAAWknC,KAA+D,iBAAnCmpa,EAAerwc,WAAWvU,MAA8E,QAAzDi7c,GAAqB2J,EAAerwc,WAAWvU,QA5oBrV,SAA8B0wF,EAAMrrE,EAAUsgc,GAC5C,IACIC,EADAt7T,GAAQ,EAGZ,IACEs7T,EAAmBl1X,EAAK24K,MACxB,MAAO5wQ,GACP,OAGF,IAAImtd,EAAJ,CACA,IAAIjoW,EAAQ09V,IAAa,WAClB/wT,IACHjlI,IACAilI,GAAQ,KAETq7T,GACHj1X,EAAKx8F,iBAAiB,QAAQ,WAC5Bond,GAAe39V,GACf2sC,GAAQ,EACRjlI,QAynBAwgc,CAAqB3ga,GAAG,WACtB,GAAI06Z,EAAkB,CACpB,IAAIkG,EAAqBxH,GAAoBp5Z,EAAG,CAC9C22F,IAAKA,EACL0iU,OAAQA,EACRC,WAAYA,EACZC,cAAeA,EACfC,gBAAiBA,EACjBT,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBY,WAAW,EACXE,iBAAkBA,EAClBlE,iBAAkBA,EAClBoC,gBAAiBA,EACjBgC,WAAYA,EACZjE,YAAaA,EACbkE,eAAgBA,EAChBE,eAAgBA,EAChBE,aAAcA,EACdE,aAAcA,EACda,mBAAoBA,EACpBZ,YAAaA,EACbC,aAAcA,EACdE,kBAAmBA,EACnBC,iBAAkBA,EAClBE,sBAAuBA,EACvBE,gBAAiBA,IAGf8F,GACFlG,EAAiB16Z,EAAG4ga,MAGvBhG,GAGE8E,EAGT,SAASmB,GAAS7ga,EAAGpsD,GACnB,IAAI0R,EAAQ1R,GAAW,GACnBktd,EAAex7c,EAAM+zc,OACrBA,OAA0B,IAAjByH,EAA0B,IAAIhM,GAAWgM,EAClDC,EAAmBz7c,EAAMg0c,WACzBA,OAAkC,IAArByH,EAA8B,WAAaA,EACxDC,EAAsB17c,EAAMi0c,cAC5BA,OAAwC,IAAxByH,EAAiC,KAAOA,EACxDC,EAAwB37c,EAAMk0c,gBAC9BA,OAA4C,IAA1ByH,EAAmC,KAAOA,EAC5DC,EAAoB57c,EAAMyzc,YAC1BA,OAAoC,IAAtBmI,GAAuCA,EACrDC,EAAsB77c,EAAMqzc,cAC5BA,OAAwC,IAAxBwI,EAAiC,UAAYA,EAC7DC,EAAwB97c,EAAMuzc,gBAC9BA,OAA4C,IAA1BuI,EAAmC,KAAOA,EAC5DC,EAAwB/7c,EAAMszc,iBAC9BA,OAA6C,IAA1ByI,EAAmC,KAAOA,EAC7DC,EAAwBh8c,EAAMwzc,mBAC9BA,OAA+C,IAA1BwI,EAAmC,KAAOA,EAC/DC,EAAwBj8c,EAAMs0c,iBAC9BA,OAA6C,IAA1B2H,GAA0CA,EAC7DC,EAAqBl8c,EAAM60c,aAC3BA,OAAsC,IAAvBqH,GAAwCA,EACvDC,EAAqBn8c,EAAM+0c,aAC3BA,OAAsC,IAAvBoH,GAAwCA,EACvDC,EAAsBp8c,EAAMq8c,cAC5BA,OAAwC,IAAxBD,GAAyCA,EACzD5J,EAAkBxyc,EAAMwyc,gBACxBgC,EAAax0c,EAAMw0c,WACnBjE,EAAcvwc,EAAMuwc,YACpB+L,EAAgBt8c,EAAMu8c,QACtBA,OAA4B,IAAlBD,GAAmCA,EAC7C3H,EAAiB30c,EAAM20c,eACvBiB,EAAqB51c,EAAM41c,mBAC3BZ,EAAch1c,EAAMg1c,YACpBC,EAAej1c,EAAMi1c,aACrBE,EAAoBn1c,EAAMm1c,kBAC1BC,EAAmBp1c,EAAMo1c,iBACzBE,EAAwBt1c,EAAMs1c,sBAC9BkH,EAAwBx8c,EAAMw1c,gBAkClC,OAAO1B,GAAoBp5Z,EAAG,CAC5B22F,IAAK32F,EACLq5Z,OAAQA,EACRC,WAAYA,EACZC,cAAeA,EACfC,gBAAiBA,EACjBT,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBY,WAAW,EACXE,iBAAkBA,EAClBlE,kBA1CuC,IAAlBiM,EAAyB,CAC9Clhd,OAAO,EACPgsB,MAAM,EACN,kBAAkB,EAClBm5F,OAAO,EACPvuB,OAAO,EACPniG,QAAQ,EACRiM,OAAO,EACPjG,QAAQ,EACR6md,KAAK,EACLlmb,MAAM,EACNs8C,MAAM,EACN1rF,KAAK,EACL2kG,MAAM,EACNuqB,UAAU,EACVH,QAAQ,IACY,IAAlBmmW,EAA0B,GAAKA,EA2BjC7J,gBAAiBA,EACjBgC,WAAYA,EACZjE,YAAaA,EACbkE,gBA7B+B,IAAZ8H,GAAgC,QAAZA,EAAoB,CAC3DjrU,QAAQ,EACR+vD,SAAS,EACTu4Q,aAAa,EACbW,gBAAgB,EAChBV,qBAAkC,QAAZ0C,EACtBzC,gBAAgB,EAChBC,gBAAgB,EAChBC,mBAAmB,EACnBC,oBAAoB,EACpBC,sBAAsB,IACR,IAAZqC,EAAoB,GAAKA,EAmB3B5H,eAAgBA,EAChBE,aAAcA,EACdE,aAAcA,EACda,mBAAoBA,EACpBZ,YAAaA,EACbC,aAAcA,EACdE,kBAAmBA,EACnBC,iBAAkBA,EAClBE,sBAAuBA,EACvBE,qBA5D8C,IAA1BgH,EAAmC,WACvD,OAAO,GACLA,EA2DF9G,mBAAmB,IAIvB,SAASgH,GAAiB3U,GAKxB,IAJA,IAAIC,OAAgB/+c,EAChBkD,EAAQ47c,EAAI,GACZ90c,EAAI,EAEDA,EAAI80c,EAAIn6c,QAAQ,CACrB,IAAIygb,EAAK05B,EAAI90c,GACTxE,EAAKs5c,EAAI90c,EAAI,GAGjB,GAFAA,GAAK,GAEO,mBAAPo7a,GAAkC,iBAAPA,IAAmC,MAATlib,EACxD,OAGS,WAAPkib,GAA0B,mBAAPA,GACrB25B,EAAgB77c,EAChBA,EAAQsC,EAAGtC,IACK,SAAPkib,GAAwB,iBAAPA,IAC1Blib,EAAQsC,GAAG,WAGT,IAFA,IAAIkud,EAEKxhc,EAAQ1uB,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM0tB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFpoB,EAAKooB,GAAS3uB,UAAU2uB,GAG1B,OAAQuhc,EAAUxwd,GAAOgD,KAAKzB,MAAMivd,EAAS,CAAC3U,GAAer6c,OAAOqF,OAEtEg1c,OAAgB/+c,GAIpB,OAAOkD,EAGT,SAAS,GAAG2K,EAAMrI,GAChB,IAAI+B,EAAS/D,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK2H,SAC7E9F,EAAU,CACZ4qH,SAAS,EACTpoE,SAAS,GAGX,OADAtgD,EAAO9G,iBAAiBoN,EAAMrI,EAAIH,GAC3B,WACL,OAAOkC,EAAOuf,oBAAoBjZ,EAAMrI,EAAIH,IAIhD,IAAIsud,GAAiC,4NACjCC,GAAU,CACZp2c,IAAK,GACLspc,MAAO,WAEL,OADAn4c,QAAQ3J,MAAM2ud,KACN,GAEV1M,QAAS,WAEP,OADAt4c,QAAQ3J,MAAM2ud,IACP,MAET5M,kBAAmB,WACjBp4c,QAAQ3J,MAAM2ud,KAEhBrqZ,IAAK,WAEH,OADA36D,QAAQ3J,MAAM2ud,KACP,GAET7nb,MAAO,WACLn9B,QAAQ3J,MAAM2ud,MAgBlB,SAASE,GAAW9ta,EAAMmuB,GACxB,IAAI7uE,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9EzE,EAAU,KACVg9E,EAAW,EACf,OAAO,WACL,IAAK,IAAItvB,EAAQjpD,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMioD,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF3iD,EAAK2iD,GAASlpD,UAAUkpD,GAG1B,IAAIlhD,EAAMP,KAAKO,MAEVuwE,IAAgC,IAApB12E,EAAQokF,UACvB1N,EAAWvwE,GAGb,IAAIm7E,EAAYzS,GAAQ1oE,EAAMuwE,GAC1Bx6E,EAAUgB,KAEVokF,GAAa,GAAKA,EAAYzS,GAC5Bn1E,IACF+0d,GAAe/0d,GACfA,EAAU,MAGZg9E,EAAWvwE,EACXu6C,EAAKthD,MAAMlD,EAASwI,IACVhL,IAAgC,IAArBsG,EAAQy7E,WAC7B/hF,EAAUg1d,IAAa,WACrBh4Y,GAA+B,IAApB12E,EAAQokF,QAAoB,EAAIx+E,KAAKO,MAChDzM,EAAU,KACVgnD,EAAKthD,MAAMlD,EAASwI,KACnB48E,KAKT,SAASqtY,GAAWzsd,EAAQnH,EAAKoxD,EAAGyia,GAClC,IAAIl/S,EAAMvxK,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyJ,OAC1EqhI,EAAWymC,EAAIhtK,OAAOyqB,yBAAyBjrB,EAAQnH,GAc3D,OAbA20K,EAAIhtK,OAAOqY,eAAe7Y,EAAQnH,EAAK6zd,EAAYzia,EAAI,CACrDztC,IAAK,SAAa7gB,GAChB,IAAIm8N,EAAS98N,KAEbwxd,IAAa,WACXvia,EAAEztC,IAAI7d,KAAKm5N,EAAQn8N,KAClB,GAECorI,GAAYA,EAASvqH,KACvBuqH,EAASvqH,IAAI7d,KAAK3D,KAAMW,MAIvB,WACL,OAAO8wd,GAAWzsd,EAAQnH,EAAKkuI,GAAY,IAAI,IAInD,SAAS,GAAMtrI,EAAQyD,EAAMgpI,GAC3B,IACE,KAAMhpI,KAAQzD,GACZ,OAAO,aAGT,IAAIsrI,EAAWtrI,EAAOyD,GAClBmpB,EAAU6/G,EAAYnB,GAa1B,MAXuB,mBAAZ1+G,IACTA,EAAQnuB,UAAYmuB,EAAQnuB,WAAa,GACzCsG,OAAOy1H,iBAAiB5tG,EAAS,CAC/Bskc,mBAAoB,CAClBtlc,YAAY,EACZ1rB,MAAOorI,MAKbtrI,EAAOyD,GAAQmpB,EACR,WACL5sB,EAAOyD,GAAQ6nI,GAEjB,MAAO2jU,GACP,OAAO,cA7FW,oBAAXhlc,QAA0BA,OAAO67G,OAAS77G,OAAO07G,UAC1DirW,GAAU,IAAI9qW,MAAM8qW,GAAS,CAC3B5vc,IAAK,SAAazc,EAAQK,EAAM0hH,GAK9B,MAJa,QAAT1hH,GACF+G,QAAQ3J,MAAM2ud,IAGThrW,QAAQ3kG,IAAIzc,EAAQK,EAAM0hH,OA0FvC,IAAI6qW,GAAelpd,KAAKO,IAQxB,SAAS,GAAgBupK,GACvB,IAAI3sB,EAAM2sB,EAAI5pK,SACd,MAAO,CACL4W,KAAMqmI,EAAIgsU,iBAAmBhsU,EAAIgsU,iBAAiBrsT,gBAAiC/nK,IAApB+0K,EAAIryH,YAA4BqyH,EAAIryH,YAAc+wa,GAAiB,CAACrrU,EAAK,iBAAkB,SAAUn0I,GAClK,OAAOA,EAAEkwC,iBACR,SAAU,SAAUqha,GACrB,OAAOA,EAAGz9S,eACL0rT,GAAiB,CAACrrU,EAAK,iBAAkB,SAAUs+T,GACxD,OAAOA,EAAGplb,MACT,iBAAkB,SAAUslb,GAC7B,OAAOA,EAAGtL,eACT,iBAAkB,SAAUuL,GAC7B,OAAOA,EAAG9+S,eACL0rT,GAAiB,CAACrrU,EAAK,iBAAkB,SAAUq/T,GACxD,OAAOA,EAAGnmb,MACT,iBAAkB,SAAU0ub,GAC7B,OAAOA,EAAGjoT,eACL,EACP/lJ,IAAKomI,EAAIgsU,iBAAmBhsU,EAAIgsU,iBAAiBpsc,eAAgChoB,IAApB+0K,EAAIpyH,YAA4BoyH,EAAIpyH,YAAc8wa,GAAiB,CAACrrU,EAAK,iBAAkB,SAAU6nU,GAChK,OAAOA,EAAG9ra,iBACT,SAAU,SAAU+ra,GACrB,OAAOA,EAAGloc,cACLyrc,GAAiB,CAACrrU,EAAK,iBAAkB,SAAUisU,GACxD,OAAOA,EAAI/yb,MACV,iBAAkB,SAAUgzb,GAC7B,OAAOA,EAAIhZ,eACV,iBAAkB,SAAUiZ,GAC7B,OAAOA,EAAIvsc,cACNyrc,GAAiB,CAACrrU,EAAK,iBAAkB,SAAUosU,GACxD,OAAOA,EAAIlzb,MACV,iBAAkB,SAAUmzb,GAC7B,OAAOA,EAAIzsc,cACN,GAIX,SAAS0sc,KACP,OAAOznd,OAAO0qH,aAAexsH,SAASg5C,iBAAmBh5C,SAASg5C,gBAAgB6rK,cAAgB7kN,SAASm2B,MAAQn2B,SAASm2B,KAAK0uL,aAGnI,SAAS2kQ,KACP,OAAO1nd,OAAO49C,YAAc1/C,SAASg5C,iBAAmBh5C,SAASg5C,gBAAgB4zE,aAAe5sH,SAASm2B,MAAQn2B,SAASm2B,KAAKy2F,YAGjI,SAAS68V,GAAqBt0c,GAC5B,OAAKA,EAIIA,EAAK62C,WAAa72C,EAAK0/M,aAAe1/M,EAAOA,EAAKg7b,cAHlD,KAOX,SAASuZ,GAAUv0c,EAAMyqc,EAAYC,EAAeC,EAAiB6J,GACnE,IAAKx0c,EACH,OAAO,EAGT,IAAIqB,EAAKizc,GAAqBt0c,GAE9B,IAAKqB,EACH,OAAO,EAGT,IAAIozc,EAAmB/K,GAAqBe,EAAYC,GAExD,IAAK8J,EAAgB,CACnB,IAAIE,EAAc/J,GAAmBtpc,EAAGie,QAAQqrb,GAChD,OAAO8J,EAAiBpzc,KAAQqzc,EAGlC,IAAIC,EAAgBnL,GAAgBnoc,EAAIozc,GACpCG,GAAmB,EAEvB,QAAID,EAAgB,KAIhBhK,IACFiK,EAAkBpL,GAAgBnoc,EAAIqoc,GAAqB,KAAMiB,KAG/DgK,GAAiB,GAAKC,EAAkB,GAIrCD,EAAgBC,GAOzB,SAASC,GAAU1ja,EAAGq5Z,GACpB,OAt6CiB,IAs6CVA,EAAOhE,MAAMr1Z,GAGtB,SAAS2ja,GAAkB7td,EAAQujd,GACjC,GAAI,GAAavjd,GACf,OAAO,EAGT,IAAIhC,EAAKuld,EAAOhE,MAAMv/c,GAEtB,OAAKujd,EAAOxhZ,IAAI/jE,MAIZgC,EAAO+Z,YAAc/Z,EAAO+Z,WAAW61C,WAAa5vD,EAAO6ld,kBAI1D7ld,EAAO+Z,YAIL8zc,GAAkB7td,EAAO+Z,WAAYwpc,IAG9C,SAASuK,GAAoBluc,GAC3B,OAAOyjG,QAAQzjG,EAAMq5I,gBAGvB,SAAS80T,KACP,IAAIl1P,EAAS79N,KAETwyK,EAAMvxK,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyJ,OAE1E,aAAc8nK,IAAQA,EAAIzpC,SAAS7pI,UAAUvB,UAC/C60K,EAAIzpC,SAAS7pI,UAAUvB,QAAUsE,MAAM/C,UAAUvB,SAG/C,iBAAkB60K,IAAQA,EAAInqC,aAAanpI,UAAUvB,UACvD60K,EAAInqC,aAAanpI,UAAUvB,QAAUsE,MAAM/C,UAAUvB,SAGlDs2O,KAAK/0O,UAAUm8C,WAClB44L,KAAK/0O,UAAUm8C,SAAW,WACxB,IAAK,IAAIgP,EAAQppD,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMooD,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF9iD,EAAK8iD,GAASrpD,UAAUqpD,GAG1B,IAAIvsC,EAAOvW,EAAK,GAEhB,KAAM,KAAKA,GACT,MAAM,IAAIpH,UAAU,0BAGtB,GACE,GAAIy9N,IAAW9/M,EACb,OAAO,QAEFA,EAAOA,GAAQA,EAAKgB,YAE7B,OAAO,IAKb,SAASi0c,GAAmB9ja,EAAGq5Z,GAC7B,OAAOlgW,QAAuB,WAAfn5D,EAAE1M,UAAyB+la,EAAOnE,QAAQl1Z,IAG3D,SAAS+ja,GAAuB/ja,EAAGq5Z,GACjC,OAAOlgW,QAAuB,SAAfn5D,EAAE1M,UAAuB0M,EAAE0F,WAAa1F,EAAEuuK,cAAgBvuK,EAAElxC,cAA0C,eAA1BkxC,EAAElxC,aAAa,QAA2Buqc,EAAOnE,QAAQl1Z,IAGtJ,SAASgka,GAAchka,GACrB,OAAOm5D,QAAQ6oW,GAAiB,CAAChia,EAAG,iBAAkB,SAAUika,GAC9D,OAAOA,EAAIt8P,eA/KV,iBAAiB3tN,KAAKR,KAAKO,MAAMhJ,cACpC2xd,GAAe,WACb,OAAO,IAAIlpd,MAAO+rD,YAiLtB,IAAI2+Z,GAAgC,WAClC,SAASA,IACP,GAAgBpzd,KAAMozd,GAEtBpzd,KAAKgD,GAAK,EACVhD,KAAKqzd,WAAa,IAAIjoZ,QACtBprE,KAAKszd,WAAa,IAAIpoZ,IAgDxB,OA7CA,GAAakoZ,EAAkB,CAAC,CAC9Bv1d,IAAK,QACL8C,MAAO,SAAeg0Q,GACpB,OAAyD,WACvD,OAAQ,GCh8DA,OAFUmuM,EDi8DI9id,KAAKqzd,WAAW5xc,IAAIkzP,IC/7D3BmuM,GDg8DP,ECl8DhB,IAA0BA,IDq8DrB,CACDjld,IAAK,MACL8C,MAAO,SAAag0Q,GAClB,OAAO30Q,KAAKqzd,WAAWtsZ,IAAI4tM,KAE5B,CACD92Q,IAAK,MACL8C,MAAO,SAAag0Q,EAAY3xQ,GAC9B,OAAIhD,KAAK+mE,IAAI4tM,GAAoB30Q,KAAKukd,MAAM5vM,IAI1C4+M,OADS91d,IAAPuF,EACMhD,KAAKgD,KACAA,EAEfhD,KAAKqzd,WAAW7xc,IAAImzP,EAAY4+M,GAChCvzd,KAAKszd,WAAW9xc,IAAI+xc,EAAO5+M,GACpB4+M,GARP,IAAIA,IAUL,CACD11d,IAAK,WACL8C,MAAO,SAAkBqC,GACvB,OAAOhD,KAAKszd,WAAW7xc,IAAIze,IAAO,OAEnC,CACDnF,IAAK,QACL8C,MAAO,WACLX,KAAKqzd,WAAa,IAAIjoZ,QACtBprE,KAAKszd,WAAa,IAAIpoZ,IACtBlrE,KAAKgD,GAAK,IAEX,CACDnF,IAAK,aACL8C,MAAO,WACL,OAAOX,KAAKgD,SAITowd,EAtD2B,GAyDpC,SAASI,GAActka,GACrB,IAAIuka,EAAa,KAQjB,OAPIvC,GAAiB,CAAChia,EAAG,SAAU,SAAUwka,GAC3C,OAAOA,EAAIxza,aACV,eAAgB,SAAUyza,GAC3B,OAAOA,KACN,iBAAkB,SAAUC,GAC7B,OAAOA,EAAIh/Z,cACLq/K,KAAK4/O,wBAA0B3ka,EAAEhP,cAAc/1C,OAAMspd,EAAavka,EAAEhP,cAAc/1C,MACnFspd,EAqBT,SAASK,GAAM5ka,GACb,IAAI22F,EAAM32F,EAAEq7F,cACZ,QAAK1E,IACEA,EAAIxqG,SAAS6T,IAVtB,SAAyBA,GACvB,IAAI22F,EAAM32F,EAAEq7F,cACZ,IAAK1E,EAAK,OAAO,EACjB,IAAI4tU,EAdN,SAA2Bvka,GAIzB,IAHA,IACIuka,EADAM,EAAiB7ka,EAGduka,EAAaD,GAAcO,IAChCA,EAAiBN,EAGnB,OAAOM,EAMUC,CAAkB9ka,GACnC,OAAO22F,EAAIxqG,SAASo4a,GAMMQ,CAAgB/ka,IAG5C,IAAI,GAAwB,GAE5B,SAASgla,GAAkBhwd,GACzB,IAAIitJ,EAAS,GAAsBjtJ,GAEnC,GAAIitJ,EACF,OAAOA,EAGT,IAAIvoJ,EAAW8B,OAAO9B,SAClBsic,EAAOxgc,OAAOxG,GAElB,GAAI0E,GAA8C,mBAA3BA,EAASkB,cAC9B,IACE,IAAIghc,EAAUlic,EAASkB,cAAc,UACrCghc,EAAQ5zb,QAAS,EACjBtO,EAASk8E,KAAKrxE,YAAYq3b,GAC1B,IAAI94T,EAAgB84T,EAAQ94T,cAExBA,GAAiBA,EAAc9tI,KACjCgnc,EAAOl5T,EAAc9tI,IAGvB0E,EAASk8E,KAAK9lE,YAAY8rb,GAC1B,MAAO7jc,IAGX,OAAO,GAAsB/C,GAAQgnc,EAAKvsc,KAAK+L,QAOjD,SAAS8md,KACP,OAAO0C,GAAkB,cAAchyd,WAAM,EAAQjB,WAGvD,SAASswd,KACP,OAAO2C,GAAkB,gBAAgBhyd,WAAM,EAAQjB,WAGzD,IAAIkzd,GAA2B,SAAUC,GAQvC,OAPAA,EAAWA,EAA6B,iBAAI,GAAK,mBACjDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAyB,aAAI,GAAK,eAC7CA,EAAWA,EAAgC,oBAAI,GAAK,sBACpDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAmB,OAAI,GAAK,SACvCA,EAAWA,EAAmB,OAAI,GAAK,SAChCA,EARsB,CAS7BD,IAAa,IAEXE,GAAmC,SAAUC,GAkB/C,OAjBAA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAwB,IAAI,IAAM,MACrDA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAqC,iBAAI,IAAM,mBAClEA,EAAmBA,EAA8B,UAAI,IAAM,YAC3DA,EAAmBA,EAAsC,kBAAI,IAAM,oBACnEA,EAAmBA,EAAkC,cAAI,IAAM,gBACxDA,EAlB8B,CAmBrCD,IAAqB,IAEnBE,GAAmC,SAAUC,GAY/C,OAXAA,EAAmBA,EAA4B,QAAI,GAAK,UACxDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAgC,YAAI,GAAK,cAC5DA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAuC,mBAAI,GAAK,qBACnEA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAAgC,YAAI,IAAM,cACtDA,EAZ8B,CAarCD,IAAqB,IAEnBE,GAA8B,SAAUC,GAI1C,OAHAA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAqB,MAAI,GAAK,QACrCA,EAJyB,CAKhCD,IAAgB,IAElB,SAASE,GAAiBpY,GAKxB,IAJA,IAAIC,OAAgB/+c,EAChBkD,EAAQ47c,EAAI,GACZ90c,EAAI,EAEDA,EAAI80c,EAAIn6c,QAAQ,CACrB,IAAIygb,EAAK05B,EAAI90c,GACTxE,EAAKs5c,EAAI90c,EAAI,GAGjB,GAFAA,GAAK,GAEO,mBAAPo7a,GAAkC,iBAAPA,IAAmC,MAATlib,EACxD,OAGS,WAAPkib,GAA0B,mBAAPA,GACrB25B,EAAgB77c,EAChBA,EAAQsC,EAAGtC,IACK,SAAPkib,GAAwB,iBAAPA,IAC1Blib,EAAQsC,GAAG,WAGT,IAFA,IAAI2xd,EAEKrgK,EAAQtzT,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMsyT,GAAQ3/B,EAAQ,EAAGA,EAAQ2/B,EAAO3/B,IACpFptR,EAAKotR,GAAS3zR,UAAU2zR,GAG1B,OAAQggM,EAAUj0d,GAAOgD,KAAKzB,MAAM0yd,EAAS,CAACpY,GAAer6c,OAAOqF,OAEtEg1c,OAAgB/+c,GAIpB,OAAOkD,EAGT,SAASk0d,GAAmB3la,GAC1B,MAAO,SAAUA,EAGnB,IA8rBIwrH,GA9rBAo6S,GAAgC,WAClC,SAASA,IACP,GAAgB90d,KAAM80d,GAEtB90d,KAAKoC,OAAS,EACdpC,KAAK8kF,KAAO,KACZ9kF,KAAKqvF,KAAO,KAkGd,OA/FA,GAAaylY,EAAkB,CAAC,CAC9Bj3d,IAAK,MACL8C,MAAO,SAAa2f,GAClB,GAAIA,GAAYtgB,KAAKoC,OACnB,MAAM,IAAIoB,MAAM,kCAKlB,IAFA,IAAIwuB,EAAUhyB,KAAK8kF,KAEVppE,EAAQ,EAAGA,EAAQ4E,EAAU5E,IACpCsW,EAAU2ic,GAAiB,CAAC3ic,EAAS,iBAAkB,SAAUtgB,GAC/D,OAAOA,EAAEqc,SACJ,KAGT,OAAOiE,IAER,CACDn0B,IAAK,UACL8C,MAAO,SAAiBuuD,GACtB,IAAInxC,EAAO,CACTpd,MAAOuuD,EACPsqB,SAAU,KACVzrD,KAAM,MAIR,GAFAmhC,EAAE6la,KAAOh3c,EAELmxC,EAAEs+Z,iBAAmBqH,GAAmB3la,EAAEs+Z,iBAAkB,CAC9D,IAAIx7b,EAAUk9B,EAAEs+Z,gBAAgBuH,KAAKhnc,KACrChQ,EAAKgQ,KAAOiE,EACZjU,EAAKy7D,SAAWtqB,EAAEs+Z,gBAAgBuH,KAClC7la,EAAEs+Z,gBAAgBuH,KAAKhnc,KAAOhQ,EAE1BiU,IACFA,EAAQwnD,SAAWz7D,QAEhB,GAAImxC,EAAE7lC,aAAewrc,GAAmB3la,EAAE7lC,cAAgB6lC,EAAE7lC,YAAY0rc,KAAKv7Y,SAAU,CAC5F,IAAIw7Y,EAAW9la,EAAE7lC,YAAY0rc,KAAKv7Y,SAClCz7D,EAAKy7D,SAAWw7Y,EAChBj3c,EAAKgQ,KAAOmhC,EAAE7lC,YAAY0rc,KAC1B7la,EAAE7lC,YAAY0rc,KAAKv7Y,SAAWz7D,EAE1Bi3c,IACFA,EAASjnc,KAAOhQ,QAGd/d,KAAK8kF,OACP9kF,KAAK8kF,KAAKtL,SAAWz7D,GAGvBA,EAAKgQ,KAAO/tB,KAAK8kF,KACjB9kF,KAAK8kF,KAAO/mE,EAGI,OAAdA,EAAKgQ,OACP/tB,KAAKqvF,KAAOtxE,GAGd/d,KAAKoC,WAEN,CACDvE,IAAK,aACL8C,MAAO,SAAoBuuD,GACzB,IAAIl9B,EAAUk9B,EAAE6la,KAEX/0d,KAAK8kF,OAIL9yD,EAAQwnD,UASXxnD,EAAQwnD,SAASzrD,KAAOiE,EAAQjE,KAE5BiE,EAAQjE,KACViE,EAAQjE,KAAKyrD,SAAWxnD,EAAQwnD,SAEhCx5E,KAAKqvF,KAAOr9D,EAAQwnD,WAbtBx5E,KAAK8kF,KAAO9yD,EAAQjE,KAEhB/tB,KAAK8kF,KACP9kF,KAAK8kF,KAAKtL,SAAW,KAErBx5E,KAAKqvF,KAAO,MAYZngC,EAAE6la,aACG7la,EAAE6la,KAGX/0d,KAAKoC,cAIF0yd,EAxG2B,GA2GhCG,GAAU,SAAiBjyd,EAAIkzc,GACjC,MAAO,GAAG/zc,OAAOa,EAAI,KAAKb,OAAO+zc,IAG/Bgf,GAA8B,WAChC,SAASA,IACP,IAAIh3P,EAASl+N,KAEb,GAAgBA,KAAMk1d,GAEtBl1d,KAAKmlC,QAAS,EACdnlC,KAAKu0J,QAAS,EACdv0J,KAAKm1d,MAAQ,GACbn1d,KAAKue,WAAa,GAClBve,KAAKo1d,aAAe,IAAIhqZ,QACxBprE,KAAKq1d,QAAU,GACfr1d,KAAKs1d,WAAa,GAClBt1d,KAAKu1d,SAAW,GAChBv1d,KAAKw1d,SAAW,IAAIrqZ,IACpBnrE,KAAKy1d,SAAW,IAAItqZ,IACpBnrE,KAAK01d,WAAa,IAAIvqZ,IAEtBnrE,KAAK21d,iBAAmB,SAAUC,GAChCA,EAAUj4d,QAAQugO,EAAO23P,iBAEzB33P,EAAOpgF,QAGT99I,KAAK89I,KAAO,WACV,IAAIogF,EAAO/4L,SAAU+4L,EAAO3pE,OAA5B,CA+FA,IA3FA,IAAIuhU,EAAO,GACPC,EAAW,IAAI5qZ,IACf6qZ,EAAU,IAAIlB,GAEdmB,EAAY,SAAmB/ma,GAIjC,IAHA,IAAIhxC,EAAKgxC,EACLgna,GA12DO,OA42DJA,GAELA,GADAh4c,EAAKA,GAAMA,EAAGmL,cACC60M,EAAOqqP,OAAOhE,MAAMrmc,GAGrC,OAAOg4c,GAGLC,EAAU,SAAiBjna,GAC7B,GAAKA,EAAEnwC,YAAe+0c,GAAM5ka,GAA5B,CAIA,IAAIgnZ,EAAW,GAAahnZ,EAAEnwC,YAAcm/M,EAAOqqP,OAAOhE,MAAMiP,GAActka,IAAMgvK,EAAOqqP,OAAOhE,MAAMr1Z,EAAEnwC,YACtGm3c,EAASD,EAAU/ma,GAEvB,IAAkB,IAAdgnZ,IAA+B,IAAZggB,EACrB,OAAOF,EAAQI,QAAQlna,GAGzB,IAAIi/Z,EAAK7F,GAAoBp5Z,EAAG,CAC9B22F,IAAKq4E,EAAOr4E,IACZ0iU,OAAQrqP,EAAOqqP,OACfC,WAAYtqP,EAAOsqP,WACnBC,cAAevqP,EAAOuqP,cACtBR,YAAa/pP,EAAO+pP,YACpBS,gBAAiBxqP,EAAOwqP,gBACxBb,cAAe3pP,EAAO2pP,cACtBE,gBAAiB7pP,EAAO6pP,gBACxBD,iBAAkB5pP,EAAO4pP,iBACzBE,mBAAoB9pP,EAAO8pP,mBAC3BY,WAAW,EACXsB,mBAAmB,EACnBpB,iBAAkB5qP,EAAO4qP,iBACzBlE,iBAAkB1mP,EAAO0mP,iBACzBoC,gBAAiB9oP,EAAO8oP,gBACxBgC,WAAY9qP,EAAO8qP,WACnBjE,YAAa7mP,EAAO6mP,YACpBkE,eAAgB/qP,EAAO+qP,eACvBE,eAAgBjrP,EAAOirP,eACvBI,aAAcrrP,EAAOqrP,aACrBF,aAAcnrP,EAAOmrP,aACrBG,YAAa,SAAqB6M,GAC5BrD,GAAmBqD,EAAUn4P,EAAOqqP,UAAY+J,GAAU+D,EAAUn4P,EAAOsqP,WAAYtqP,EAAOuqP,cAAevqP,EAAOwqP,iBAAiB,IACvIxqP,EAAOo4P,cAAcC,UAAUF,GAG7BpD,GAAuBoD,EAAUn4P,EAAOqqP,SAC1CrqP,EAAOs4P,kBAAkBC,iBAAiBJ,GAGxCnD,GAAchka,IAChBgvK,EAAOw4P,iBAAiBC,cAAczna,EAAE2nK,WAAYqH,EAAOr4E,MAG/D4jU,aAAc,SAAsB13U,EAAQ6kV,GACtCtE,GAAUvgV,EAAQmsF,EAAOsqP,WAAYtqP,EAAOuqP,cAAevqP,EAAOwqP,iBAAiB,KAIvFxqP,EAAOo4P,cAAcO,aAAa9kV,EAAQ6kV,GAEtC7kV,EAAOC,eACTksF,EAAO44P,cAAcC,UAAUhlV,EAAOC,eAGxCksF,EAAOw4P,iBAAiBM,oBAAoBjlV,KAE9C63U,iBAAkB,SAA0BlvX,EAAMk8X,GAChD14P,EAAOs4P,kBAAkBS,kBAAkBv8X,EAAMk8X,MAIjDzI,IACF2H,EAAK/zd,KAAK,CACRm0c,SAAUA,EACVggB,OAAQA,EACRn4c,KAAMowc,IAER4H,EAASzxc,IAAI6pc,EAAGnrd,OAIbk7N,EAAOo3P,WAAWlzd,QACvB87N,EAAOqqP,OAAO/D,kBAAkBtmP,EAAOo3P,WAAWjzd,SAGpD,IACIy/N,EADAC,EAAa,GAA2B7D,EAAOu3P,UAGnD,IACE,IAAK1zP,EAAWtyK,MAAOqyK,EAASC,EAAW7yK,KAAKrhC,MAAO,CACrD,IAAIqhC,EAAI4yK,EAAOnhO,MAEXu2d,GAAgBh5P,EAAOm3P,QAASnma,EAAGgvK,EAAOqqP,UAAYrqP,EAAOu3P,SAAS1uZ,IAAI7X,EAAEnwC,aAIhFo3c,EAAQjna,IAEV,MAAOphC,GACPi0M,EAAW96N,EAAE6mB,GACb,QACAi0M,EAAWjwM,IAGb,IACI+sO,EADAD,EAAa,GAA2B1gC,EAAOs3P,UAGnD,IACE,IAAK52N,EAAWnvM,MAAOovM,EAASD,EAAW1vM,KAAKrhC,MAAO,CACrD,IAAIg4J,EAAKg5E,EAAOl+P,MAEXw2d,GAAgBj5P,EAAOw3P,WAAY7vS,IAAQqxS,GAAgBh5P,EAAOm3P,QAASxvS,EAAIq4C,EAAOqqP,QAEhF4O,GAAgBj5P,EAAOu3P,SAAU5vS,GAC1CswS,EAAQtwS,GAERq4C,EAAOw3P,WAAWpxc,IAAIuhK,GAJtBswS,EAAQtwS,IAOZ,MAAO/3J,GACP8wO,EAAW33P,EAAE6mB,GACb,QACA8wO,EAAW9sO,IAKb,IAFA,IAAIslc,EAAY,KAETpB,EAAQ5zd,QAAQ,CACrB,IAAI2b,EAAO,KAEX,GAAIq5c,EAAW,CACb,IAAIlhB,EAAWh4O,EAAOqqP,OAAOhE,MAAM6S,EAAUz2d,MAAMoe,YAE/Cm3c,EAASD,EAAUmB,EAAUz2d,QAEf,IAAdu1c,IAA+B,IAAZggB,IACrBn4c,EAAOq5c,GAIX,IAAKr5c,EAGH,IAFA,IAAIs5c,EAAWrB,EAAQ3mY,KAEhBgoY,GAAU,CACf,IAAIC,EAAQD,EAGZ,GAFAA,EAAWA,EAAS79Y,SAEhB89Y,EAAO,CACT,IAAIC,EAAYr5P,EAAOqqP,OAAOhE,MAAM+S,EAAM32d,MAAMoe,YAIhD,IAAiB,IAFHk3c,EAAUqB,EAAM32d,OAEV,SAAc,IAAmB,IAAf42d,EAAkB,CACtDx5c,EAAOu5c,EACP,MAEA,IAAIE,EAAgBF,EAAM32d,MAE1B,GAAI62d,EAAcz4c,YAAcy4c,EAAcz4c,WAAW61C,WAAaq/K,KAAK4/O,uBAAwB,CACjG,IAAIJ,EAAa+D,EAAcz4c,WAAW5U,KAI1C,IAAoB,IAFH+zN,EAAOqqP,OAAOhE,MAAMkP,GAEd,CACrB11c,EAAOu5c,EACP,SAQZ,IAAKv5c,EAAM,CACT,KAAOi4c,EAAQlxY,MACbkxY,EAAQnpR,WAAWmpR,EAAQlxY,KAAKnkF,OAGlC,MAGFy2d,EAAYr5c,EAAKy7D,SACjBw8Y,EAAQnpR,WAAW9uL,EAAKpd,OACxBw1d,EAAQp4c,EAAKpd,OAGf,IAAI6I,EAAU,CACZ2rd,MAAOj3P,EAAOi3P,MAAMl6c,KAAI,SAAU8vB,GAChC,MAAO,CACL/nC,GAAIk7N,EAAOqqP,OAAOhE,MAAMx5a,EAAKhtB,MAC7Bpd,MAAOoqC,EAAKpqC,UAEb+E,QAAO,SAAUqlC,GAClB,OAAQgrb,EAAShvZ,IAAIh8B,EAAK/nC,OACzB0C,QAAO,SAAUqlC,GAClB,OAAOmzL,EAAOqqP,OAAOxhZ,IAAIh8B,EAAK/nC,OAEhCub,WAAY2/M,EAAO3/M,WAAWtD,KAAI,SAAU0wC,GAC1C,IAAIptC,EAAaotC,EAAUptC,WAE3B,GAAgC,iBAArBA,EAAWwF,MAAoB,CACxC,IAAI0zc,EAAY3wd,KAAKI,UAAUykD,EAAU+ra,WACrCC,EAAiB7wd,KAAKI,UAAUykD,EAAUisa,kBAE1CH,EAAUr1d,OAASmc,EAAWwF,MAAM3hB,SACjCq1d,EAAYE,GAAgB3sd,MAAM,QAAQ5I,SAAWmc,EAAWwF,MAAM/Y,MAAM,QAAQ5I,SACvFmc,EAAWwF,MAAQ4nC,EAAU+ra,WAKnC,MAAO,CACL10d,GAAIk7N,EAAOqqP,OAAOhE,MAAM54Z,EAAU5tC,MAClCQ,WAAYA,MAEb7Y,QAAO,SAAUimD,GAClB,OAAQoqa,EAAShvZ,IAAIpb,EAAU3oD,OAC9B0C,QAAO,SAAUimD,GAClB,OAAOuyK,EAAOqqP,OAAOxhZ,IAAIpb,EAAU3oD,OAErCqyd,QAASn3P,EAAOm3P,QAChBS,KAAMA,IAGHtsd,EAAQ2rd,MAAM/yd,QAAWoH,EAAQ+U,WAAWnc,QAAWoH,EAAQ6rd,QAAQjzd,QAAWoH,EAAQssd,KAAK1zd,UAIpG87N,EAAOi3P,MAAQ,GACfj3P,EAAO3/M,WAAa,GACpB2/M,EAAOk3P,aAAe,IAAIhqZ,QAC1B8yJ,EAAOm3P,QAAU,GACjBn3P,EAAOs3P,SAAW,IAAIrqZ,IACtB+yJ,EAAOu3P,SAAW,IAAItqZ,IACtB+yJ,EAAOw3P,WAAa,IAAIvqZ,IACxB+yJ,EAAOq3P,SAAW,GAElBr3P,EAAO25P,WAAWrud,MAGpBxJ,KAAK61d,gBAAkB,SAAUzma,GAC/B,IAAIwja,GAAUxja,EAAEpqD,OAAQk5N,EAAOqqP,QAI/B,OAAQn5Z,EAAE9jD,MACR,IAAK,gBAED,IAAI3K,EAAQyuD,EAAEpqD,OAAO+9C,YAEhBuva,GAAUlja,EAAEpqD,OAAQk5N,EAAOsqP,WAAYtqP,EAAOuqP,cAAevqP,EAAOwqP,iBAAiB,IAAU/nd,IAAUyuD,EAAEwxH,UAC9Gs9C,EAAOi3P,MAAMpzd,KAAK,CAChBpB,MAAOind,GAAgBx4Z,EAAEpqD,OAAQk5N,EAAO2pP,cAAe3pP,EAAO4pP,iBAAkB5pP,EAAO6pP,gBAAiB7pP,EAAO8pP,mBAAoB9pP,EAAO+pP,cAAgBtnd,EAAQu9N,EAAO8qP,WAAa9qP,EAAO8qP,WAAWrod,EAAO0xd,GAAqBjja,EAAEpqD,SAAWrE,EAAMgC,QAAQ,QAAS,KAAOhC,EAC/Qod,KAAMqxC,EAAEpqD,SAIZ,MAGJ,IAAK,aAED,IAAIA,EAASoqD,EAAEpqD,OACXmmD,EAAgBiE,EAAEjE,cAElB2sa,EAAU1oa,EAAEpqD,OAAOgZ,aAAamtC,GAEpC,GAAsB,UAAlBA,EAA2B,CAC7B,IAAI7/C,EAAO05c,GAAahgd,GACpB8lC,EAAU9lC,EAAO8lC,QACrBgtb,EAAUn/V,GAAc3zH,EAAQ8lC,EAASx/B,GACzC,IAAIysd,EAAgBpT,GAAgB,CAClCC,iBAAkB1mP,EAAO0mP,iBACzB95a,QAASA,EACTx/B,KAAMA,IAGRwsd,EAAUjT,GAAe,CACvBC,SAFc8C,GAAgBx4Z,EAAEpqD,OAAQk5N,EAAO2pP,cAAe3pP,EAAO4pP,iBAAkB5pP,EAAO6pP,gBAAiB7pP,EAAO8pP,mBAAoB+P,GAG1Itld,QAASzN,EACTrE,MAAOm3d,EACP/S,YAAa7mP,EAAO6mP,cAIxB,GAAIuN,GAAUlja,EAAEpqD,OAAQk5N,EAAOsqP,WAAYtqP,EAAOuqP,cAAevqP,EAAOwqP,iBAAiB,IAAUoP,IAAY1oa,EAAEwxH,SAC/G,OAGF,IAAIhtK,EAAOsqN,EAAOk3P,aAAa3zc,IAAI2tC,EAAEpqD,QAErC,GAAuB,WAAnBA,EAAO8lC,SAA0C,QAAlBqgB,IAA4B+yK,EAAO8rP,gBAAgB8N,GAAU,CAC9F,GAAK9yd,EAAO2uJ,gBAGV,OAFAxoG,EAAgB,SAuBpB,GAjBKv3C,IACHA,EAAO,CACLmK,KAAMqxC,EAAEpqD,OACRuZ,WAAY,GACZm5c,UAAW,GACXE,iBAAkB,IAGpB15P,EAAO3/M,WAAWxc,KAAK6R,GAEvBsqN,EAAOk3P,aAAa5zc,IAAI4tC,EAAEpqD,OAAQ4O,IAGd,SAAlBu3C,GAA+C,UAAnBnmD,EAAO8lC,SAA4D,cAApCskB,EAAEwxH,UAAY,IAAI9iL,eAC/EkH,EAAOiF,aAAa,sBAAuB,SAGxCq9c,GAAgBtid,EAAO8lC,QAASqgB,KACnCv3C,EAAK2K,WAAW4sC,GAAiB47Z,GAAmB7oP,EAAOr4E,IAAK/nJ,GAAYkH,EAAO8lC,SAAUhtC,GAAYqtD,GAAgB2sa,EAAS9yd,EAAQk5N,EAAO8oP,iBAE3H,UAAlB77Z,GAA2B,CAC7B,IAAK+yK,EAAO85P,cACV,IACE95P,EAAO85P,cAAgBpvd,SAASgpK,eAAeD,qBAC/C,MAAO1qK,GACPi3N,EAAO85P,cAAgB95P,EAAOr4E,IAIlC,IAAInoD,EAAMwgI,EAAO85P,cAAclud,cAAc,QAEzCslD,EAAEwxH,UACJljF,EAAIzzF,aAAa,QAASmlD,EAAEwxH,UAG9B,IAAK,IAAI7mD,EAAM,EAAGk+V,EAAeh2d,MAAM4sB,KAAK7pB,EAAO+e,OAAQg2G,EAAMk+V,EAAa71d,OAAQ23H,IAAO,CAC3F,IAAIm+V,EAAQD,EAAal+V,GACrBnuG,EAAW5mB,EAAO+e,MAAMywG,iBAAiB0jW,GACzCC,EAAcnzd,EAAO+e,MAAMq0c,oBAAoBF,GAE/Ctsc,IAAa8xE,EAAI35E,MAAMywG,iBAAiB0jW,IAAUC,IAAgBz6X,EAAI35E,MAAMq0c,oBAAoBF,GAEhGtkd,EAAK8jd,UAAUQ,GADG,KAAhBC,EACsBvsc,EAEA,CAACA,EAAUusc,GAGrCvkd,EAAKgkd,iBAAiBM,GAAS,CAACtsc,EAAUusc,GAI9C,IAAK,IAAI3kK,EAAM,EAAG6kK,EAAep2d,MAAM4sB,KAAK6uE,EAAI35E,OAAQyvS,EAAM6kK,EAAaj2d,OAAQoxT,IAAO,CACxF,IAAI8kK,EAASD,EAAa7kK,GAEoB,KAA1CxuT,EAAO+e,MAAMywG,iBAAiB8jW,KAChC1kd,EAAK8jd,UAAUY,IAAU,IAMjC,MAGJ,IAAK,YAED,GAAIhG,GAAUlja,EAAEpqD,OAAQk5N,EAAOsqP,WAAYtqP,EAAOuqP,cAAevqP,EAAOwqP,iBAAiB,GACvF,OAGFt5Z,EAAEmpa,WAAW56d,SAAQ,SAAUuxD,GAC7B,OAAOgvK,EAAOs6P,QAAQtpa,EAAGE,EAAEpqD,WAE7BoqD,EAAEqpa,aAAa96d,SAAQ,SAAUuxD,GAC/B,IAAIwpa,EAASx6P,EAAOqqP,OAAOhE,MAAMr1Z,GAE7BgnZ,EAAW,GAAa9mZ,EAAEpqD,QAAUk5N,EAAOqqP,OAAOhE,MAAMn1Z,EAAEpqD,OAAOmF,MAAQ+zN,EAAOqqP,OAAOhE,MAAMn1Z,EAAEpqD,QAE/Fstd,GAAUlja,EAAEpqD,OAAQk5N,EAAOsqP,WAAYtqP,EAAOuqP,cAAevqP,EAAOwqP,iBAAiB,IAAUkK,GAAU1ja,EAAGgvK,EAAOqqP,UAt0BrI,SAAsBr5Z,EAAGq5Z,GACvB,OAA4B,IAArBA,EAAOhE,MAAMr1Z,GAq0B2Hypa,CAAazpa,EAAGgvK,EAAOqqP,UAItJrqP,EAAOs3P,SAASzuZ,IAAI7X,IACtB0pa,GAAW16P,EAAOs3P,SAAUtma,GAE5BgvK,EAAOw3P,WAAWpxc,IAAI4qC,IACbgvK,EAAOs3P,SAASzuZ,IAAI3X,EAAEpqD,UAAuB,IAAZ0zd,GAAyB7F,GAAkBzja,EAAEpqD,OAAQk5N,EAAOqqP,UAAmBrqP,EAAOu3P,SAAS1uZ,IAAI7X,IAAMgvK,EAAOq3P,SAASN,GAAQyD,EAAQxiB,IACnL0iB,GAAW16P,EAAOu3P,SAAUvma,GAE5BgvK,EAAOm3P,QAAQtzd,KAAK,CAClBm0c,SAAUA,EACVlzc,GAAI01d,EACJrJ,YAAU,GAAajga,EAAEpqD,UAAWk+c,GAAkB9zZ,EAAEpqD,eAAiBvH,KAI7EygO,EAAOo3P,WAAWvzd,KAAKmtD,SAOjClvD,KAAKw4d,QAAU,SAAUtpa,EAAGlqD,GAC1B,IAAIk5N,EAAO26P,qBAAqBC,cAAc5pa,EAAGgvK,KAC7CA,EAAOs3P,SAASzuZ,IAAI7X,KAAMgvK,EAAOu3P,SAAS1uZ,IAAI7X,GAAlD,CAEA,GAAIgvK,EAAOqqP,OAAOmC,QAAQx7Z,GAAI,CAC5B,GAAI0ja,GAAU1ja,EAAGgvK,EAAOqqP,QACtB,OAGFrqP,EAAOu3P,SAASnxc,IAAI4qC,GAEpB,IAAI6pa,EAAW,KAEX/zd,GAAUk5N,EAAOqqP,OAAOmC,QAAQ1ld,KAClC+zd,EAAW76P,EAAOqqP,OAAOhE,MAAMv/c,IAG7B+zd,IAA0B,IAAdA,IACd76P,EAAOq3P,SAASN,GAAQ/2P,EAAOqqP,OAAOhE,MAAMr1Z,GAAI6pa,KAAa,QAG/D76P,EAAOs3P,SAASlxc,IAAI4qC,GAEpBgvK,EAAOw3P,WAAWn6R,OAAOrsI,GAGtBoja,GAAUpja,EAAGgvK,EAAOsqP,WAAYtqP,EAAOuqP,cAAevqP,EAAOwqP,iBAAiB,KACjFx5Z,EAAE7vC,WAAW1hB,SAAQ,SAAUq7d,GAC7B,OAAO96P,EAAOs6P,QAAQQ,MAGpB9F,GAAchka,IAChBA,EAAE2nK,WAAWx3M,WAAW1hB,SAAQ,SAAUq7d,GACxC96P,EAAO26P,qBAAqBv0c,IAAI00c,EAAQ96P,GAExCA,EAAOs6P,QAAQQ,EAAQ9pa,SAuDjC,OAhDA,GAAagma,EAAgB,CAAC,CAC5Br3d,IAAK,OACL8C,MAAO,SAAcmC,GACnB,IAAI07N,EAASx+N,KAEb,CAAC,aAAc,aAAc,gBAAiB,kBAAmB,cAAe,gBAAiB,kBAAmB,mBAAoB,qBAAsB,mBAAoB,mBAAoB,kBAAmB,aAAc,cAAe,kBAAmB,eAAgB,eAAgB,iBAAkB,iBAAkB,MAAO,SAAU,gBAAiB,oBAAqB,mBAAoB,gBAAiB,wBAAwBrC,SAAQ,SAAUE,GACjd2gO,EAAO3gO,GAAOiF,EAAQjF,QAGzB,CACDA,IAAK,SACL8C,MAAO,WACLX,KAAKmlC,QAAS,EACdnlC,KAAK82d,cAAcxzb,WAEpB,CACDzlC,IAAK,WACL8C,MAAO,WACLX,KAAKmlC,QAAS,EACdnlC,KAAK82d,cAAcmC,WACnBj5d,KAAK89I,SAEN,CACDjgJ,IAAK,WACL8C,MAAO,WACL,OAAOX,KAAKmlC,SAEb,CACDtnC,IAAK,OACL8C,MAAO,WACLX,KAAKu0J,QAAS,EACdv0J,KAAK82d,cAAcniU,SAEpB,CACD92J,IAAK,SACL8C,MAAO,WACLX,KAAKu0J,QAAS,EACdv0J,KAAK82d,cAAcoC,SACnBl5d,KAAK89I,SAEN,CACDjgJ,IAAK,QACL8C,MAAO,WACLX,KAAK02d,iBAAiBntb,QACtBvpC,KAAK82d,cAAcvtb,YAIhB2rb,EAnhByB,GAshBlC,SAAS0D,GAAWO,EAASjqa,GAC3Biqa,EAAQ59R,OAAOrsI,GACfA,EAAE7vC,WAAW1hB,SAAQ,SAAUq7d,GAC7B,OAAOJ,GAAWO,EAASH,MAI/B,SAAS9B,GAAgB7B,EAASnma,EAAGq5Z,GACnC,OAAuB,IAAnB8M,EAAQjzd,QAId,SAA0Bizd,EAASnma,EAAGq5Z,GAiBpC,IAhBA,IAAIxqc,EAAOmxC,EAAEnwC,WAET4yM,EAAQ,WACV,IAAIukP,EAAWqS,EAAOhE,MAAMxmc,GAE5B,GAAIs3c,EAAQj7c,MAAK,SAAU9K,GACzB,OAAOA,EAAEtM,KAAOkzc,KAEhB,MAAO,CACLruc,GAAG,GAIPkW,EAAOA,EAAKgB,YAGPhB,GAAM,CACX,IAAI4sQ,EAAOh5D,IAEX,GAAsB,WAAlB,GAAQg5D,GAAoB,OAAOA,EAAK9iR,EAG9C,OAAO,EA1BAuxd,CAAiB/D,EAASnma,EAAGq5Z,GA6BtC,SAAS4O,GAAgB31c,EAAK0tC,GAC5B,OAAiB,IAAb1tC,EAAI/I,MACD4gd,GAAiB73c,EAAK0tC,GAG/B,SAASmqa,GAAiB73c,EAAK0tC,GAC7B,IAAInwC,EAAamwC,EAAEnwC,WAEnB,QAAKA,MAIDyC,EAAIulD,IAAIhoD,IAILs6c,GAAiB73c,EAAKzC,IAK/B,SAASu6c,GAAqB1yb,GAC5B8zI,GAAe9zI,EAGjB,SAAS2yb,KACP7+S,QAAej9K,EAGjB,IAAI+7d,GAAkB,SAAyB9kd,GAC7C,OAAKgmK,GAIc,WACjB,IACE,OAAOhmK,EAAGxS,WAAM,EAAQjB,WACxB,MAAOwB,GACP,GAAIi4K,KAAwC,IAAxBA,GAAaj4K,GAC/B,OAAO,aAGT,MAAMA,IAXDiS,GAkBX,SAAS+kd,GAAiBld,GAKxB,IAJA,IAAIC,OAAgB/+c,EAChBkD,EAAQ47c,EAAI,GACZ90c,EAAI,EAEDA,EAAI80c,EAAIn6c,QAAQ,CACrB,IAAIygb,EAAK05B,EAAI90c,GACTxE,EAAKs5c,EAAI90c,EAAI,GAGjB,GAFAA,GAAK,GAEO,mBAAPo7a,GAAkC,iBAAPA,IAAmC,MAATlib,EACxD,OAGS,WAAPkib,GAA0B,mBAAPA,GACrB25B,EAAgB77c,EAChBA,EAAQsC,EAAGtC,IACK,SAAPkib,GAAwB,iBAAPA,IAC1Blib,EAAQsC,GAAG,WAGT,IAFA,IAAIy2d,EAEK76J,EAAQ59T,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM48T,GAAQ86J,EAAQ,EAAGA,EAAQ96J,EAAO86J,IACpFnyd,EAAKmyd,GAAS14d,UAAU04d,GAG1B,OAAQD,EAAU/4d,GAAOgD,KAAKzB,MAAMw3d,EAAS,CAACld,GAAer6c,OAAOqF,OAEtEg1c,OAAgB/+c,GAIpB,OAAOkD,EAGT,IAAIi5d,GAAkB,GAEtB,SAAS,GAAeh1c,GACtB,IACE,GAAI,iBAAkBA,EAAO,CAC3B,IAAIvc,EAAOuc,EAAMi1c,eAEjB,GAAIxxd,EAAKjG,OACP,OAAOiG,EAAK,QAET,GAAI,SAAUuc,GAASA,EAAMvc,KAAKjG,OACvC,OAAOwiB,EAAMvc,KAAK,GAEpB,MAAOqnc,IAET,OAAO9qb,GAASA,EAAM5f,OAGxB,SAAS80d,GAAqBh3d,EAASi3d,GACrC,IAAIC,EAAiB,IAAI9E,GACzB0E,GAAgB73d,KAAKi4d,GACrBA,EAAelvW,KAAKhoH,GACpB,IAAIm3d,EAAuBvvd,OAAO8lI,kBAAoB9lI,OAAOwvd,qBAEzDC,EAAoBV,GAAiB,CAAC/ud,OAAQ,iBAAkB,SAAUgH,GAC5E,OAAOA,EAAEknF,MACR,iBAAkB,SAAUqqX,GAC7B,OAAOA,EAAGmX,YACT,eAAgB,SAAUjW,GAC3B,OAAOA,EAAG,uBAGRgW,GAAqBzvd,OAAOyvd,KAC9BF,EAAuBvvd,OAAOyvd,IAGhC,IAAIx6a,EAAW,IAAIs6a,EAAqBT,IAAgB,SAAU5D,GAC5D9yd,EAAQu3d,aAAgD,IAAlCv3d,EAAQu3d,WAAWzE,IAI7CoE,EAAerE,iBAAiBh3d,KAAKq7d,EAArCA,CAAqDpE,OAUvD,OARAj2a,EAASoxF,QAAQgpV,EAAQ,CACvBx7c,YAAY,EACZ+7c,mBAAmB,EACnBtpV,eAAe,EACfupV,uBAAuB,EACvBC,WAAW,EACXC,SAAS,IAEJ96a,EAwKT,SAAS+6a,GAAmBtnd,GAC1B,IAAIund,EAAWvnd,EAAMund,SACjB90U,EAAMzyI,EAAMyyI,IACZ0iU,EAASn1c,EAAMm1c,OACfC,EAAap1c,EAAMo1c,WACnBC,EAAgBr1c,EAAMq1c,cACtBC,EAAkBt1c,EAAMs1c,gBACxBkS,EAAWxnd,EAAMwnd,SACjBxmF,EAAiBolF,GAAgBlI,GAAWkI,IAAgB,SAAUvoT,GACxE,IAAIjsK,EAAS,GAAeisK,GAE5B,GAAKjsK,IAAUstd,GAAUttd,EAAQwjd,EAAYC,EAAeC,GAAiB,GAA7E,CAIA,IAAI1ld,EAAKuld,EAAOhE,MAAMv/c,GAEtB,GAAIA,IAAW6gJ,GAAOA,EAAIgG,YAAa,CACrC,IAAIgvU,EAAgB,GAAgBh1U,EAAIgG,aACxC8uU,EAAS,CACP33d,GAAIA,EACJyoC,EAAGovb,EAAcr7c,KACjBksB,EAAGmvb,EAAcp7c,WAGnBk7c,EAAS,CACP33d,GAAIA,EACJyoC,EAAGzmC,EAAOwgK,WACV95H,EAAG1mC,EAAOygB,gBAGZm1c,EAAS3zQ,QAAU,MACvB,OAAO,GAAG,SAAUmtL,EAAgBvuP,GAwBtC,IAAIi1U,GAAa,CAAC,QAAS,WAAY,UACnCC,GAAoB,IAAI3vZ,QAE5B,SAAS4vZ,GAAkBlzb,GACzB,IAAImzb,EAAUnzb,EAAOmzb,QACjBp1U,EAAM/9G,EAAO+9G,IACb0iU,EAASzgb,EAAOygb,OAChBC,EAAa1gb,EAAO0gb,WACpBC,EAAgB3gb,EAAO2gb,cACvBC,EAAkB5gb,EAAO4gb,gBACzBwS,EAAcpzb,EAAOozb,YACrBC,EAAiBrzb,EAAOqzb,eACxBvW,EAAmB98a,EAAO88a,iBAC1BG,EAAcj9a,EAAOi9a,YACrB6V,EAAW9yb,EAAO8yb,SAClBQ,EAAuBtzb,EAAOszb,qBAC9BvT,EAAgB//a,EAAO+/a,cACvBE,EAAkBjgb,EAAOigb,gBACzBD,EAAmBhgb,EAAOggb,iBAC1BE,EAAqBlgb,EAAOkgb,mBAEhC,SAASqT,EAAaz2c,GACpB,IAAI5f,EAAS,GAAe4f,GACxB02c,EAAgB12c,EAAMk6G,UACtBh0F,EAAU9lC,GAAU3I,GAAY2I,EAAO8lC,SAG3C,GAFgB,WAAZA,IAAsB9lC,EAASA,EAAO+zc,eAErC/zc,GAAW8lC,KAAWgwb,GAAWl+d,QAAQkuC,GAAW,KAAKwnb,GAAUttd,EAAQwjd,EAAYC,EAAeC,GAAiB,GAA5H,CAIA,IAAItpc,EAAKpa,EAET,KAAIoa,EAAGsyB,UAAU2J,SAAS6/a,IAAgBC,GAAkB/7c,EAAGie,QAAQ89b,IAAvE,CAIA,IAAI7vd,EAAO05c,GAAahgd,GACpB+lC,EAAO4tF,GAAcv5G,EAAI0rB,EAASx/B,GAClCiwd,GAAY,EACZxD,EAAgBpT,GAAgB,CAClCC,iBAAkBA,EAClB95a,QAASA,EACTx/B,KAAMA,IAEJugd,EAAYjE,GAAgB5id,EAAQ6id,EAAeC,EAAkBC,EAAiBC,EAAoB+P,GAEjG,UAATzsd,GAA6B,aAATA,IACtBiwd,EAAYv2d,EAAO0zH,SAGrB3tF,EAAO85a,GAAe,CACpBC,SAAU+G,EACVp5c,QAASzN,EACTrE,MAAOoqC,EACPg6a,YAAaA,IAEfyW,EAAYx2d,EAAQo2d,EAAuB,CACzCrwb,KAAMA,EACNwwb,UAAWA,EACXD,cAAeA,GACb,CACFvwb,KAAMA,EACNwwb,UAAWA,IAEb,IAAIr3d,EAAOc,EAAOd,KAEL,UAAToH,GAAoBpH,GAAQq3d,GAC9B11U,EAAI95F,iBAAiB,6BAAgC5pD,OAAO+B,EAAM,OAAQvG,SAAQ,SAAUyhB,GAC1F,GAAIA,IAAOpa,EAAQ,CACjB,IAAIy2d,EAAQ5W,GAAe,CACzBC,SAAU+G,EACVp5c,QAAS2M,EACTze,MAAOg4H,GAAcv5G,EAAI0rB,EAASx/B,GAClCy5c,YAAaA,IAGfyW,EAAYp8c,EAAIg8c,EAAuB,CACrCrwb,KAAM0wb,EACNF,WAAYA,EACZD,eAAe,GACb,CACFvwb,KAAM0wb,EACNF,WAAYA,UAOtB,SAASC,EAAYx2d,EAAQ6C,GAC3B,IAAI6zd,EAAiBX,GAAkBt5c,IAAIzc,GAE3C,IAAK02d,GAAkBA,EAAe3wb,OAASljC,EAAEkjC,MAAQ2wb,EAAeH,YAAc1zd,EAAE0zd,UAAW,CACjGR,GAAkBv5c,IAAIxc,EAAQ6C,GAC9B,IAAI7E,EAAKuld,EAAOhE,MAAMv/c,GACtBw0d,GAAgByB,EAAhBzB,CAAyB,GAAc,GAAc,GAAI3xd,GAAI,GAAI,CAC/D7E,GAAIA,MAKV,IACIJ,GAD4B,SAAnBg4d,EAASxgb,MAAmB,CAAC,UAAY,CAAC,QAAS,WAC1Cn/B,KAAI,SAAU8/Y,GAClC,OAAO,GAAGA,EAAWy+D,GAAgB6B,GAAex1U,MAElD81U,EAAgB91U,EAAIgG,YAExB,IAAK8vU,EACH,OAAO,WACL/4d,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,QAKb,IAAI04d,EAAqBD,EAAcn2d,OAAOyqB,yBAAyB0rc,EAAcE,iBAAiB38d,UAAW,SAC7G48d,EAAiB,CAAC,CAACH,EAAcE,iBAAiB38d,UAAW,SAAU,CAACy8d,EAAcE,iBAAiB38d,UAAW,WAAY,CAACy8d,EAAchzV,kBAAkBzpI,UAAW,SAAU,CAACy8d,EAAcI,oBAAoB78d,UAAW,SAAU,CAACy8d,EAAchzV,kBAAkBzpI,UAAW,iBAAkB,CAACy8d,EAAcK,kBAAkB98d,UAAW,aAe1V,OAbI08d,GAAsBA,EAAmBp6c,KAC3C5e,EAASb,KAAKG,MAAMU,EAAU,GAAmBk5d,EAAe7gd,KAAI,SAAU1K,GAC5E,OAAOkhd,GAAWlhd,EAAE,GAAIA,EAAE,GAAI,CAC5BiR,IAAK,WACHg4c,GAAgB6B,EAAhB7B,CAA8B,CAC5Bx0d,OAAQhF,KACR8+H,WAAW,OAGd,EAAO68V,QAIPnC,IAAgB,WACrB52d,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,UAKb,SAAS+4d,GAA0BrgO,GAmBjC,OAhBA,SAAiBsgO,EAAW7tX,GAC1B,GAAI8tX,GAAiB,oBAAsBD,EAAUE,sBAAsBC,iBAAmBF,GAAiB,iBAAmBD,EAAUE,sBAAsBE,cAAgBH,GAAiB,oBAAsBD,EAAUE,sBAAsBG,iBAAmBJ,GAAiB,qBAAuBD,EAAUE,sBAAsBI,iBAAkB,CACpW,IACI9gd,EADQzZ,MAAM4sB,KAAKqtc,EAAUE,WAAW/gO,UAC1Bz+P,QAAQs/d,GAC1B7tX,EAAI1sG,QAAQ+Z,QACP,GAAIwgd,EAAUr+N,iBAAkB,CACrC,IAEIroN,EAFSvzC,MAAM4sB,KAAKqtc,EAAUr+N,iBAAiBxC,UAE/Bz+P,QAAQs/d,GAE5B7tX,EAAI1sG,QAAQ6zC,GAGd,OAAO64D,EAGFouX,CAAQ7gO,EAlBC,IAqBlB,SAAS8gO,GAAgBrpN,EAAOk1M,EAAQoU,GACtC,IAAI35d,EAAI45d,EACR,OAAKvpN,GACDA,EAAMjY,UAAWp4P,EAAKuld,EAAOhE,MAAMlxM,EAAMjY,WAAgBwhO,EAAUD,EAAYpY,MAAMlxM,GAClF,CACLupN,QAASA,EACT55d,GAAIA,IAJa,GAiNrB,SAAS65d,GAA8BvlP,EAAQntO,GAC7C,IAEI2yd,EAFAvU,EAASjxO,EAAOixO,OAChBiO,EAAoBl/O,EAAOk/O,kBAEIsG,EAAb,cAAlB3yd,EAAKq4C,SAAmC+la,EAAOhE,MAAMp6c,GAAoBo+c,EAAOhE,MAAMp6c,EAAKA,MAC/F,IAAI4yd,EAAgC,cAAlB5yd,EAAKq4C,SAA2Bi3a,GAAiB,CAACtvd,EAAM,SAAU,SAAUk6c,GAC5F,OAAOA,EAAGx4T,aACT,iBAAkB,SAAUy4T,GAC7B,OAAOA,EAAGyG,YACN0O,GAAiB,CAACtvd,EAAM,SAAU,SAAU+6c,GAChD,OAAOA,EAAG36T,eACT,iBAAkB,SAAUkjU,GAC7B,OAAOA,EAAG5hU,aACT,iBAAkB,SAAU6hU,GAC7B,OAAOA,EAAGvnQ,cAER62Q,EAA6BvD,GAAiB,CAACsD,EAAa,iBAAkB,SAAUpP,GAC1F,OAAOA,EAAGzud,aACNsG,OAAOyqB,yBAAyBwpc,GAAiB,CAACsD,EAAa,iBAAkB,SAAUjL,GAC/F,OAAOA,EAAI5yd,aACR,2BAAwBzB,EAC7B,OAAe,OAAXq/d,IAA+B,IAAZA,GAAkBC,GAAgBC,GACzDx3d,OAAOqY,eAAe1T,EAAM,qBAAsB,CAChDm7G,aAAc03W,EAA2B13W,aACzCj5F,WAAY2wc,EAA2B3wc,WACvC5K,IAAK,WACH,IAAIw9M,EAASj/N,KAEb,OAAOy5d,GAAiB,CAACuD,EAA4B,SAAU,SAAUjL,GACvE,OAAOA,EAAItwc,KACV,iBAAkB,SAAUuwc,GAC7B,OAAOA,EAAIrud,MACV,OAAQ,SAAUsud,GACnB,OAAOA,EAAIhzP,OAGfz9M,IAAK,SAAay7c,GAChB,IAAI59P,EAASr/N,KAETwM,EAASitd,GAAiB,CAACuD,EAA4B,SAAU,SAAU9K,GAC7E,OAAOA,EAAI1wc,KACV,iBAAkB,SAAU07c,GAC7B,OAAOA,EAAIv5d,MACV,OAAQ,SAAUw5d,GACnB,OAAOA,EAAI99P,EAAQ49P,MAGrB,GAAe,OAAXH,IAA+B,IAAZA,EACrB,IACEtG,EAAkB4G,iBAAiBH,EAAQH,GAC3C,MAAO71d,IAGX,OAAOuF,KAGJgtd,IAAgB,WACrBh0d,OAAOqY,eAAe1T,EAAM,qBAAsB,CAChDm7G,aAAc03W,EAA2B13W,aACzCj5F,WAAY2wc,EAA2B3wc,WACvC5K,IAAKu7c,EAA2Bv7c,IAChCD,IAAKw7c,EAA2Bx7c,UAxCwD,aAiR9F,SAAS67c,GAAc96c,GACrB,IAQI+6c,EANA3B,EAAgBp5c,EAAEsjI,IAAIgG,YAE1B,IAAK8vU,EACH,OAAO,aAKLp5c,EAAEg7c,YACJD,EAAmBxD,GAAqBv3c,EAAGA,EAAEsjI,MAG/C,IA9rByCl+G,EACrC61b,EACAhrT,EACAirT,EACAC,EA0rBAC,EAt4BN,SAA0B7qd,GACxB,IAAI8qd,EAAc9qd,EAAM8qd,YACpBhD,EAAW9nd,EAAM8nd,SACjB/0U,EAAM/yI,EAAM+yI,IACZ0iU,EAASz1c,EAAMy1c,OAEnB,IAA2B,IAAvBqS,EAASiD,UACX,OAAO,aAGT,IAGIC,EAHAx5W,EAA0C,iBAAvBs2W,EAASiD,UAAyBjD,EAASiD,UAAY,GAC1EE,EAA0D,iBAA/BnD,EAASoD,kBAAiCpD,EAASoD,kBAAoB,IAClGC,EAAY,GAEZC,EAAY5M,GAAWkI,IAAgB,SAAU/4d,GACnD,IAAI09d,EAAcz1d,KAAKO,MAAQ60d,EAC/BF,EAAYK,EAAUhjd,KAAI,SAAU1K,GAElC,OADAA,EAAE6td,YAAcD,EACT5td,KACL9P,GACJw9d,EAAY,GACZH,EAAe,QACbC,GACA3pF,EAAiBolF,GAAgBlI,GAAWkI,IAAgB,SAAUvoT,GACxE,IAAIjsK,EAAS,GAAeisK,GAExB99J,EAAQ2/c,GAAoB7hT,GAAOA,EAAIhT,eAAe,GAAKgT,EAC3D5S,EAAUlrJ,EAAMkrJ,QAChBC,EAAUnrJ,EAAMmrJ,QAEfw/T,IACHA,EAAelM,MAGjBqM,EAAUl8d,KAAK,CACb0pC,EAAG4yH,EACH3yH,EAAG4yH,EACHt7J,GAAIuld,EAAOhE,MAAMv/c,GACjBo5d,WAAYxM,KAAiBkM,IAE/BI,EAA+B,oBAAdG,WAA6BptT,aAAeotT,UAAYhK,GAAkBiK,KAAOrtT,aAAestT,WAAalK,GAAkBmK,UAAYnK,GAAkBoK,cAC5Kn6W,EAAW,CACb/lC,UAAU,KAER37E,EAAW,CAAC,GAAG,YAAawxY,EAAgBvuP,GAAM,GAAG,YAAauuP,EAAgBvuP,GAAM,GAAG,OAAQuuP,EAAgBvuP,IACvH,OAAO2zU,IAAgB,WACrB52d,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,UAu1BYw7d,CAAiBn8c,GACpCo8c,EAn1BN,SAAsClpd,GACpC,IAAImpd,EAAqBnpd,EAAMmpd,mBAC3B/4U,EAAMpwI,EAAMowI,IACZ0iU,EAAS9yc,EAAM8yc,OACfC,EAAa/yc,EAAM+yc,WACnBC,EAAgBhzc,EAAMgzc,cACtBC,EAAkBjzc,EAAMizc,gBACxBkS,EAAWnld,EAAMmld,SAErB,IAAkC,IAA9BA,EAASiE,iBACX,OAAO,aAGT,IAAIC,GAA2C,IAA9BlE,EAASiE,uBAA2Dphe,IAA9Bm9d,EAASiE,iBAAiC,GAAKjE,EAASiE,iBAC3Gj8d,EAAW,GACXm8d,EAAqB,KA2FzB,OArBAv5d,OAAOC,KAAK8ud,IAAmB7ud,QAAO,SAAU7H,GAC9C,OAAOy0D,OAAOoC,MAAMpC,OAAOz0D,MAAUA,EAAIozF,SAAS,eAAoC,IAApB6tY,EAAWjhe,MAC5EF,SAAQ,SAAUkuR,GACnB,IAAIkvI,EAAYj9Z,GAAY+tR,GACxBjlP,EAxEW,SAAoBilP,GACnC,OAAO,SAAUjnQ,GACf,IAAI5f,EAAS,GAAe4f,GAE5B,IAAI0tc,GAAUttd,EAAQwjd,EAAYC,EAAeC,GAAiB,GAAlE,CAIA,IAAIlqT,EAAc,KACdwgU,EAAenzM,EAEnB,GAAI,gBAAiBjnQ,EAAO,CAC1B,OAAQA,EAAM45I,aACZ,IAAK,QACHA,EAAci2T,GAAawK,MAC3B,MAEF,IAAK,QACHzgU,EAAci2T,GAAayK,MAC3B,MAEF,IAAK,MACH1gU,EAAci2T,GAAa0K,IAI3B3gU,IAAgBi2T,GAAayK,MAC3B3K,GAAkB1oM,KAAc0oM,GAAkB6K,UACpDJ,EAAe,aACNzK,GAAkB1oM,KAAc0oM,GAAkB8K,UAC3DL,EAAe,YAEQvK,GAAa0K,SAC/BrM,GAAoBluc,KAC7B45I,EAAci2T,GAAayK,OAGT,OAAhB1gU,GACFugU,EAAqBvgU,GAEjBwgU,EAAalrY,WAAW,UAAY0qE,IAAgBi2T,GAAayK,OAASF,EAAalrY,WAAW,UAAY0qE,IAAgBi2T,GAAawK,SAC7IzgU,EAAc,OAEP+1T,GAAkB1oM,KAAc0oM,GAAkB+K,QAC3D9gU,EAAcugU,EACdA,EAAqB,MAGvB,IAAI93d,EAAI6rd,GAAoBluc,GAASA,EAAMq5I,eAAe,GAAKr5I,EAE/D,GAAK3d,EAAL,CAIA,IAAIjE,EAAKuld,EAAOhE,MAAMv/c,GAClBq5J,EAAUp3J,EAAEo3J,QACZC,EAAUr3J,EAAEq3J,QAChBk7T,GAAgBoF,EAAhBpF,CAAoC,GAAc,CAChDlud,KAAMipd,GAAkByK,GACxBh8d,GAAIA,EACJyoC,EAAG4yH,EACH3yH,EAAG4yH,GACc,OAAhBE,GAAwB,CACzBA,YAAaA,QASH+gU,CAAW1zM,GAEzB,GAAInhR,OAAO80d,aACT,OAAQjL,GAAkB1oM,IACxB,KAAK0oM,GAAkB6K,UACvB,KAAK7K,GAAkB8K,QACrBtkE,EAAYA,EAAUp4Z,QAAQ,QAAS,WACvC,MAEF,KAAK4xd,GAAkBkL,WACvB,KAAKlL,GAAkBmL,SACrB,OAIN98d,EAASb,KAAK,GAAGg5Z,EAAWn0X,EAASi/G,OAEhC2zU,IAAgB,WACrB52d,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,UAuuBmBy8d,CAA6Bp9c,GACvDq9c,EAAgBlF,GAAmBn4c,GACnCs9c,GAjsBqCl4b,EAisBiB,CACxD6qI,IAAKmpT,GAjsBH6B,EAgsBmDj7c,EAhsB1Bi7c,iBACzBhrT,EAAM7qI,EAAM6qI,IACZirT,GAAS,EACTC,GAAS,EAcN,GAAG,SAbYlE,GAAgBlI,GAAWkI,IAAgB,WAC/D,IAAIzqd,EAASojd,KACTrjd,EAAQsjd,KAERqL,IAAU1ud,GAAU2ud,IAAU5ud,IAChC0ud,EAAiB,CACf1ud,MAAOwjD,OAAOxjD,GACdC,OAAQujD,OAAOvjD,KAEjB0ud,EAAQ1ud,EACR2ud,EAAQ5ud,MAER,MACiC0jK,IAkrBjCstT,EAAe9E,GAAkBz4c,GACjCw9c,EA1KN,SAAsC90O,GACpC,IAAI+0O,EAAqB/0O,EAAO+0O,mBAC5BxX,EAAav9N,EAAOu9N,WACpBC,EAAgBx9N,EAAOw9N,cACvBC,EAAkBz9N,EAAOy9N,gBACzBH,EAASt9N,EAAOs9N,OAChBqS,EAAW3vO,EAAO2vO,SAClB/0U,EAAMolG,EAAOplG,IACbj/G,EAAU4yb,IAAgB,SAAUlud,GACtC,OAAOgmd,GAAWkI,IAAgB,SAAU50c,GAC1C,IAAI5f,EAAS,GAAe4f,GAE5B,GAAK5f,IAAUstd,GAAUttd,EAAQwjd,EAAYC,EAAeC,GAAiB,GAA7E,CAIA,IAAIjvZ,EAAcz0D,EAAOy0D,YACrB8sT,EAASvhX,EAAOuhX,OAChBhsT,EAAQv1D,EAAOu1D,MACf0la,EAAej7d,EAAOi7d,aAC1BD,EAAmB,CACjB10d,KAAMA,EACNtI,GAAIuld,EAAOhE,MAAMv/c,GACjBy0D,YAAaA,EACb8sT,OAAQA,EACRhsT,MAAOA,EACP0la,aAAcA,QAEdrF,EAASlX,OAAS,QAEpB9gd,EAAW,CAAC,GAAG,OAAQgkC,EAAQ,GAAIi/G,GAAM,GAAG,QAASj/G,EAAQ,GAAIi/G,GAAM,GAAG,SAAUj/G,EAAQ,GAAIi/G,GAAM,GAAG,eAAgBj/G,EAAQ,GAAIi/G,GAAM,GAAG,aAAcj/G,EAAQ,GAAIi/G,IAC5K,OAAO2zU,IAAgB,WACrB52d,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,UAyImBg9d,CAA6B39c,GAEvD49c,EAAqB,aAErBC,EAA4B,aAE5BC,EAA2B,aAE3BC,EAAe,aAEf/9c,EAAEg7c,YACJ4C,EAhhBJ,SAAgC11b,EAAQwG,GACtC,IAAIsvb,EAAmB91b,EAAO81b,iBAC1BhY,EAAS99a,EAAO89a,OAChBiO,EAAoB/rb,EAAO+rb,kBAC3BhkT,EAAMvhI,EAAOuhI,IAEjB,IAAKA,EAAIguT,gBAAkBhuT,EAAIguT,cAActhe,UAC3C,OAAO,aAGT,IAAI+1Q,EAAaziG,EAAIguT,cAActhe,UAAU+1Q,WAC7CziG,EAAIguT,cAActhe,UAAU+1Q,WAAa,IAAI1uJ,MAAM0uJ,EAAY,CAC7D/yQ,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IAAIC,EAAiB,GAAeD,EAAe,GAC/C7kO,EAAO8kO,EAAe,GACtBhld,EAAQgld,EAAe,GAEvBC,EAAmBjE,GAAgBn1d,EAASghd,EAAQiO,EAAkBmG,aACtE35d,EAAK29d,EAAiB39d,GACtB45d,EAAU+D,EAAiB/D,QAa/B,OAXI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC2D,EAAiB,CACfv9d,GAAIA,EACJ45d,QAASA,EACT9G,KAAM,CAAC,CACLl6N,KAAMA,EACNlgP,MAAOA,MAKN1W,EAAO9C,MAAMqF,EAASk5d,QAGjC,IAuBI99d,EA0BAi+d,EAjDAC,EAAaruT,EAAIguT,cAActhe,UAAU2he,WAC7CruT,EAAIguT,cAActhe,UAAU2he,WAAa,IAAIt6W,MAAMs6W,EAAY,CAC7D3+d,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IACI/kd,EADkB,GAAe+kd,EAAe,GACxB,GAExBK,EAAoBpE,GAAgBn1d,EAASghd,EAAQiO,EAAkBmG,aACvE35d,EAAK89d,EAAkB99d,GACvB45d,EAAUkE,EAAkBlE,QAYhC,OAVI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC2D,EAAiB,CACfv9d,GAAIA,EACJ45d,QAASA,EACTvH,QAAS,CAAC,CACR35c,MAAOA,MAKN1W,EAAO9C,MAAMqF,EAASk5d,QAK7BjuT,EAAIguT,cAActhe,UAAUyD,UAC9BA,EAAU6vK,EAAIguT,cAActhe,UAAUyD,QACtC6vK,EAAIguT,cAActhe,UAAUyD,QAAU,IAAI4jH,MAAM5jH,EAAS,CACvDT,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IACI11b,EADkB,GAAe01b,EAAe,GACzB,GAEvBM,EAAoBrE,GAAgBn1d,EAASghd,EAAQiO,EAAkBmG,aACvE35d,EAAK+9d,EAAkB/9d,GACvB45d,EAAUmE,EAAkBnE,QAUhC,OARI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC2D,EAAiB,CACfv9d,GAAIA,EACJ45d,QAASA,EACTj6d,QAASooC,IAIN/lC,EAAO9C,MAAMqF,EAASk5d,SAO/BjuT,EAAIguT,cAActhe,UAAU0he,cAC9BA,EAAcpuT,EAAIguT,cAActhe,UAAU0he,YAC1CpuT,EAAIguT,cAActhe,UAAU0he,YAAc,IAAIr6W,MAAMq6W,EAAa,CAC/D1+d,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IACI11b,EADkB,GAAe01b,EAAe,GACzB,GAEvBO,EAAoBtE,GAAgBn1d,EAASghd,EAAQiO,EAAkBmG,aACvE35d,EAAKg+d,EAAkBh+d,GACvB45d,EAAUoE,EAAkBpE,QAUhC,OARI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC2D,EAAiB,CACfv9d,GAAIA,EACJ45d,QAASA,EACTgE,YAAa71b,IAIV/lC,EAAO9C,MAAMqF,EAASk5d,SAKnC,IAAIQ,EAA8B,GAE9BC,GAA4B,mBAC9BD,EAA4B5E,gBAAkB7pT,EAAI6pT,iBAE9C6E,GAA4B,kBAC9BD,EAA4B3E,aAAe9pT,EAAI8pT,cAG7C4E,GAA4B,sBAC9BD,EAA4BzE,iBAAmBhqT,EAAIgqT,kBAGjD0E,GAA4B,qBAC9BD,EAA4B1E,gBAAkB/pT,EAAI+pT,kBAItD,IAAI4E,EAAsB,GAyD1B,OAxDA37d,OAAOg5C,QAAQyib,GAA6Btje,SAAQ,SAAUo5O,GAC5D,IAAIG,EAAS,GAAeH,EAAQ,GAChCqqP,EAAUlqP,EAAO,GACjB5rO,EAAO4rO,EAAO,GAElBiqP,EAAoBC,GAAW,CAC7BnsN,WAAY3pQ,EAAKpM,UAAU+1Q,WAC3B4rN,WAAYv1d,EAAKpM,UAAU2he,YAE7Bv1d,EAAKpM,UAAU+1Q,WAAa,IAAI1uJ,MAAM46W,EAAoBC,GAASnsN,WAAY,CAC7E/yQ,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IAAIY,EAAkB,GAAeZ,EAAe,GAChD7kO,EAAOylO,EAAgB,GACvB3ld,EAAQ2ld,EAAgB,GAExBC,EAAoB5E,GAAgBn1d,EAAQs2P,iBAAkB0qN,EAAQiO,EAAkBmG,aACxF35d,EAAKs+d,EAAkBt+d,GACvB45d,EAAU0E,EAAkB1E,QAahC,OAXI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC2D,EAAiB,CACfv9d,GAAIA,EACJ45d,QAASA,EACT9G,KAAM,CAAC,CACLl6N,KAAMA,EACNlgP,MAAO,GAAGvZ,OAAO,GAAmB85d,GAA0B10d,IAAW,CAACmU,GAAS,QAKlF1W,EAAO9C,MAAMqF,EAASk5d,QAGjCn1d,EAAKpM,UAAU2he,WAAa,IAAIt6W,MAAM46W,EAAoBC,GAASP,WAAY,CAC7E3+d,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IACI/kd,EADkB,GAAe+kd,EAAe,GACxB,GAExBc,EAAoB7E,GAAgBn1d,EAAQs2P,iBAAkB0qN,EAAQiO,EAAkBmG,aACxF35d,EAAKu+d,EAAkBv+d,GACvB45d,EAAU2E,EAAkB3E,QAYhC,OAVI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC2D,EAAiB,CACfv9d,GAAIA,EACJ45d,QAASA,EACTvH,QAAS,CAAC,CACR35c,MAAO,GAAGvZ,OAAO,GAAmB85d,GAA0B10d,IAAW,CAACmU,QAKzE1W,EAAO9C,MAAMqF,EAASk5d,WAI5BjH,IAAgB,WACrBhnT,EAAIguT,cAActhe,UAAU+1Q,WAAaA,EACzCziG,EAAIguT,cAActhe,UAAU2he,WAAaA,EACzCl+d,IAAY6vK,EAAIguT,cAActhe,UAAUyD,QAAUA,GAClDi+d,IAAgBpuT,EAAIguT,cAActhe,UAAU0he,YAAcA,GAC1Dp7d,OAAOg5C,QAAQyib,GAA6Btje,SAAQ,SAAUy5O,GAC5D,IAAIC,EAAS,GAAeD,EAAQ,GAChCgqP,EAAU/pP,EAAO,GACjB/rO,EAAO+rO,EAAO,GAElB/rO,EAAKpM,UAAU+1Q,WAAaksN,EAAoBC,GAASnsN,WACzD3pQ,EAAKpM,UAAU2he,WAAaM,EAAoBC,GAASP,iBA4UtCW,CAAuBj/c,EAAG,CAC7CiwJ,IAAKmpT,IAEPyE,EAA4BvD,GAA8Bt6c,EAAGA,EAAEsjI,KAC/Dw6U,EAzQJ,SAAsC9oP,EAAQoT,GAC5C,IAAI82O,EAAqBlqP,EAAOkqP,mBAC5BlZ,EAAShxO,EAAOgxO,OAChBmZ,EAAsBnqP,EAAOmqP,oBAC7BlL,EAAoBj/O,EAAOi/O,kBAC3BhkT,EAAMm4E,EAAOn4E,IACb3N,EAAc2N,EAAIxqC,oBAAoB9oI,UAAU2lK,YACpD2N,EAAIxqC,oBAAoB9oI,UAAU2lK,YAAc,IAAIt+C,MAAMs+C,EAAa,CACrE3iK,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IAAIkB,EAAkB,GAAelB,EAAe,GAChD7id,EAAW+jd,EAAgB,GAC3Bhhe,EAAQghe,EAAgB,GACxB57X,EAAW47X,EAAgB,GAE/B,GAAID,EAAoB36Z,IAAInpD,GAC1B,OAAOinJ,EAAY3iK,MAAMqF,EAAS,CAACqW,EAAUjd,EAAOolG,IAGtD,IAAI67X,EAAoBlF,GAAgBjD,GAAiB,CAAClyd,EAAS,SAAU,SAAUs6d,GACrF,OAAOA,EAAIzF,YACV,iBAAkB,SAAUjJ,GAC7B,OAAOA,EAAIt1N,oBACR0qN,EAAQiO,EAAkBmG,aAC3B35d,EAAK4+d,EAAkB5+d,GACvB45d,EAAUgF,EAAkBhF,QAehC,OAbI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC6E,EAAmB,CACjBz+d,GAAIA,EACJ45d,QAASA,EACTp7c,IAAK,CACH5D,SAAUA,EACVjd,MAAOA,EACPolG,SAAUA,GAEZrqF,MAAOugd,GAA0B10d,EAAQ60d,cAItCp3d,EAAO9C,MAAMqF,EAASk5d,QAGjC,IAAI7zW,EAAiB4lD,EAAIxqC,oBAAoB9oI,UAAU0tH,eAgCvD,OA/BA4lD,EAAIxqC,oBAAoB9oI,UAAU0tH,eAAiB,IAAIrG,MAAMqG,EAAgB,CAC3E1qH,MAAOs3d,IAAgB,SAAUx0d,EAAQuC,EAASk5d,GAChD,IACI7id,EADkB,GAAe6id,EAAe,GACrB,GAE/B,GAAIiB,EAAoB36Z,IAAInpD,GAC1B,OAAOgvG,EAAe1qH,MAAMqF,EAAS,CAACqW,IAGxC,IAAIkkd,EAAoBpF,GAAgBjD,GAAiB,CAAClyd,EAAS,SAAU,SAAUmsd,GACrF,OAAOA,EAAI0I,YACV,iBAAkB,SAAUzI,GAC7B,OAAOA,EAAI91N,oBACR0qN,EAAQiO,EAAkBmG,aAC3B35d,EAAK8+d,EAAkB9+d,GACvB45d,EAAUkF,EAAkBlF,QAahC,OAXI55d,IAAc,IAARA,GAAa45d,IAAwB,IAAbA,IAChC6E,EAAmB,CACjBz+d,GAAIA,EACJ45d,QAASA,EACT5zd,OAAQ,CACN4U,SAAUA,GAEZlC,MAAOugd,GAA0B10d,EAAQ60d,cAItCp3d,EAAO9C,MAAMqF,EAASk5d,QAG1BjH,IAAgB,WACrBhnT,EAAIxqC,oBAAoB9oI,UAAU2lK,YAAcA,EAChD2N,EAAIxqC,oBAAoB9oI,UAAU0tH,eAAiBA,KA6LxBm1W,CAA6Bx/c,EAAG,CACzDiwJ,IAAKmpT,IAGHp5c,EAAEy/c,eACJ1B,EAxJN,SAA0B30O,GACxB,IAAIs2O,EAASt2O,EAAOs2O,OAChBp8U,EAAM8lG,EAAO9lG,IACb2sB,EAAM3sB,EAAIgG,YAEd,IAAK2mB,EACH,OAAO,aAGT,IAAI5vK,EAAW,GACXs/d,EAAU,IAAI92Z,QACd+2Z,EAAmB3vT,EAAI4vT,SAE3B5vT,EAAI4vT,SAAW,SAAkBC,EAAQ5he,EAAQy7O,GAC/C,IAAIomP,EAAW,IAAIH,EAAiBE,EAAQ5he,EAAQy7O,GAOpD,OANAgmP,EAAQ1gd,IAAI8gd,EAAU,CACpBD,OAAQA,EACR97d,OAA0B,iBAAX9F,EACfy7O,YAAaA,EACb8iB,WAA8B,iBAAXv+P,EAAsBA,EAASqG,KAAKI,UAAUjF,MAAM4sB,KAAK,IAAIgQ,WAAWp+B,OAEtF6he,GAGT,IAAIC,EAAiB,GAAM18U,EAAI4+O,MAAO,OAAO,SAAU14P,GACrD,OAAO,SAAUu2V,GASf,OARA9Q,GAAagI,IAAgB,WAC3B,IAAIjpd,EAAI2xd,EAAQzgd,IAAI6gd,GAEhB/xd,IACF0xd,EAAO1xd,GACP2xd,EAAQ3mS,OAAO+mS,OAEf,GACGv2V,EAAS7pI,MAAMlC,KAAM,CAACsie,QAOjC,OAJA1/d,EAASb,MAAK,WACZywK,EAAI4vT,SAAWD,KAEjBv/d,EAASb,KAAKwge,GACP/I,IAAgB,WACrB52d,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,UA6GQs/d,CAAiBjgd,KAIpC,IAKIksP,EALAg0N,EA5GN,SAA+Bh3W,GAC7B,IAAIo6B,EAAMp6B,EAAMo6B,IACZ0iU,EAAS98V,EAAM88V,OACfC,EAAa/8V,EAAM+8V,WACnBC,EAAgBh9V,EAAMg9V,cACtBC,EAAkBj9V,EAAMi9V,gBACxBga,EAAcj3W,EAAMi3W,YACpBC,GAAY,EACZC,EAAkBpJ,IAAgB,WACpC,IAAIj/T,EAAY1U,EAAIg9U,eACpB,MAAKtoU,GAAaooU,GAAalJ,GAAiB,CAACl/T,EAAW,iBAAkB,SAAUq5T,GACtF,OAAOA,EAAIkP,gBADb,CAGAH,EAAYpoU,EAAUuoU,cAAe,EAIrC,IAHA,IAAIC,EAAS,GACTh+b,EAAQw1H,EAAUyoU,YAAc,EAE3Bv7d,EAAI,EAAGA,EAAIs9B,EAAOt9B,IAAK,CAC9B,IAAI4I,EAAQkqJ,EAAU0oU,WAAWx7d,GAC7By7d,EAAiB7yd,EAAM6yd,eACvBvrI,EAActnV,EAAMsnV,YACpBwrI,EAAe9yd,EAAM8yd,aACrBvrI,EAAYvnV,EAAMunV,UACR06H,GAAU4Q,EAAgB1a,EAAYC,EAAeC,GAAiB,IAAS4J,GAAU6Q,EAAc3a,EAAYC,EAAeC,GAAiB,IAEjKqa,EAAOhhe,KAAK,CACVigB,MAAOumc,EAAOhE,MAAM2e,GACpBvrI,YAAaA,EACblrT,IAAK87a,EAAOhE,MAAM4e,GAClBvrI,UAAWA,IAIf8qI,EAAY,CACVK,OAAQA,QAIZ,OADAH,IACO,GAAG,kBAAmBA,GAsELQ,CAAsB7gd,GAC1C8gd,EApEN,SAAmCv3O,GACjC,IAAIjmG,EAAMimG,EAAOjmG,IACby9U,EAAkBx3O,EAAOw3O,gBACzB9wT,EAAM3sB,EAAIgG,YACd,OAAK2mB,GAAQA,EAAIy6S,eACI,GAAMz6S,EAAIy6S,eAAgB,UAAU,SAAUlhV,GACjE,OAAO,SAAU7nI,EAAMqF,EAAazG,GAClC,IACEwge,EAAgB,CACdtvT,OAAQ,CACN9vK,KAAMA,KAGV,MAAO+C,IAET,OAAO8kI,EAAS7pI,MAAMlC,KAAM,CAACkE,EAAMqF,EAAazG,QAXZ,aAgEZyge,CAA0Bhhd,GAClDihd,EAAiB,GAEjBh1N,EAAa,GAA2BjsP,EAAEusC,SAG9C,IACE,IAAK0/M,EAAW/+M,MAAOg/M,EAASD,EAAWt/M,KAAKrhC,MAAO,CACrD,IAAIrc,EAASi9P,EAAO9tQ,MACpB6ie,EAAezhe,KAAKyP,EAAOmuC,SAASnuC,EAAOrG,SAAUwwd,EAAenqd,EAAO1O,WAE7E,MAAOgrB,GACP0gP,EAAWvnQ,EAAE6mB,GACb,QACA0gP,EAAW18O,IAGb,OAAO0nc,IAAgB,WACrBI,GAAgBj8d,SAAQ,SAAU0P,GAChC,OAAOA,EAAEk8B,WAGXkwb,GAAiB,CAAC6D,EAAkB,iBAAkB,SAAUmG,GAC9D,OAAOA,EAAInwL,YACV,OAAQ,SAAUowL,GACnB,OAAOA,OAGT/F,IACAgB,IACAiB,IACAC,IACAC,IACAC,IACAI,IACAC,IACAC,IACAC,IACAmC,IACAY,IACAG,EAAe7le,SAAQ,SAAUuF,GAC/B,OAAOA,UAKb,SAASi5d,GAAiB92d,GACxB,YAA+B,IAAjBqF,OAAOrF,GAGvB,SAAS67d,GAA4B77d,GACnC,OAAOgjH,aAAgC,IAAjB39G,OAAOrF,IAAyBqF,OAAOrF,GAAMnG,WAAa,eAAgBwL,OAAOrF,GAAMnG,WAAa,eAAgBwL,OAAOrF,GAAMnG,WAGzJ,IAAIyke,GAAuC,WACzC,SAASA,EAAwBC,GAC/B,GAAgB5je,KAAM2je,GAEtB3je,KAAK4je,aAAeA,EACpB5je,KAAK6je,sBAAwB,IAAIz4Z,QACjCprE,KAAK8je,sBAAwB,IAAI14Z,QAsFnC,OAnFA,GAAau4Z,EAAyB,CAAC,CACrC9le,IAAK,QACL8C,MAAO,SAAeoxI,EAAQgyV,EAAUC,EAAeC,GACrD,IAAIC,EAAkBF,GAAiBhke,KAAKmke,mBAAmBpyV,GAC3DqyV,EAAkBH,GAAiBjke,KAAKqke,mBAAmBtyV,GAC3D/uI,EAAKkhe,EAAgBzid,IAAIsid,GAQ7B,OANK/ge,IACHA,EAAKhD,KAAK4je,eACVM,EAAgB1id,IAAIuid,EAAU/ge,GAC9Bohe,EAAgB5id,IAAIxe,EAAI+ge,IAGnB/ge,IAER,CACDnF,IAAK,SACL8C,MAAO,SAAgBoxI,EAAQgyV,GAC7B,IAAIvjQ,EAASxgO,KAETkke,EAAkBlke,KAAKmke,mBAAmBpyV,GAC1CqyV,EAAkBpke,KAAKqke,mBAAmBtyV,GAC9C,OAAOgyV,EAAS9od,KAAI,SAAUjY,GAC5B,OAAOw9N,EAAO+jP,MAAMxyU,EAAQ/uI,EAAIkhe,EAAiBE,QAGpD,CACDvme,IAAK,cACL8C,MAAO,SAAqBoxI,EAAQ/uI,EAAIiY,GACtC,IAAImpd,EAAkBnpd,GAAOjb,KAAKqke,mBAAmBtyV,GACrD,MAAkB,iBAAP/uI,EAAwBA,EACpBohe,EAAgB3id,IAAIze,KACZ,IAGxB,CACDnF,IAAK,eACL8C,MAAO,SAAsBoxI,EAAQuyV,GACnC,IAAI1jQ,EAAS5gO,KAEToke,EAAkBpke,KAAKqke,mBAAmBtyV,GAC9C,OAAOuyV,EAAIrpd,KAAI,SAAUjY,GACvB,OAAO49N,EAAO2jQ,YAAYxyV,EAAQ/uI,EAAIohe,QAGzC,CACDvme,IAAK,QACL8C,MAAO,SAAeoxI,GACpB,IAAKA,EAGH,OAFA/xI,KAAK6je,sBAAwB,IAAIz4Z,aACjCprE,KAAK8je,sBAAwB,IAAI14Z,SAInCprE,KAAK6je,sBAAsBtoS,OAAOxpD,GAClC/xI,KAAK8je,sBAAsBvoS,OAAOxpD,KAEnC,CACDl0I,IAAK,qBACL8C,MAAO,SAA4BoxI,GACjC,IAAImyV,EAAkBlke,KAAK6je,sBAAsBpid,IAAIswH,GAOrD,OALKmyV,IACHA,EAAkB,IAAIh5Z,IACtBlrE,KAAK6je,sBAAsBrid,IAAIuwH,EAAQmyV,IAGlCA,IAER,CACDrme,IAAK,qBACL8C,MAAO,SAA4BoxI,GACjC,IAAIqyV,EAAkBpke,KAAK8je,sBAAsBrid,IAAIswH,GAOrD,OALKqyV,IACHA,EAAkB,IAAIl5Z,IACtBlrE,KAAK8je,sBAAsBtid,IAAIuwH,EAAQqyV,IAGlCA,MAIJT,EA5FkC,GA+F3C,SAASa,GAAiBjoB,GAKxB,IAJA,IAAIC,OAAgB/+c,EAChBkD,EAAQ47c,EAAI,GACZ90c,EAAI,EAEDA,EAAI80c,EAAIn6c,QAAQ,CACrB,IAAIygb,EAAK05B,EAAI90c,GACTxE,EAAKs5c,EAAI90c,EAAI,GAGjB,GAFAA,GAAK,GAEO,mBAAPo7a,GAAkC,iBAAPA,IAAmC,MAATlib,EACxD,OAGS,WAAPkib,GAA0B,mBAAPA,GACrB25B,EAAgB77c,EAChBA,EAAQsC,EAAGtC,IACK,SAAPkib,GAAwB,iBAAPA,IAC1Blib,EAAQsC,GAAG,WAGT,IAFA,IAAIwhe,EAEKxlK,EAAQh+T,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMg9T,GAAQ7K,EAAQ,EAAGA,EAAQ6K,EAAO7K,IACpF5sT,EAAK4sT,GAASnzT,UAAUmzT,GAG1B,OAAQqwK,EAAU9je,GAAOgD,KAAKzB,MAAMuie,EAAS,CAACjoB,GAAer6c,OAAOqF,OAEtEg1c,OAAgB/+c,GAIpB,OAAOkD,EAGT,IA4jBI+je,GAEAC,GA9jBAC,GAAiC,WACnC,SAASA,IACP,GAAgB5ke,KAAM4ke,GAEtB5ke,KAAK6ke,wBAA0B,IAAIlB,GAAwBje,IAC3D1ld,KAAK8ke,2BAA6B,IAAI15Z,QAcxC,OAXA,GAAaw5Z,EAAmB,CAAC,CAC/B/me,IAAK,YACL8C,MAAO,cACN,CACD9C,IAAK,kBACL8C,MAAO,cACN,CACD9C,IAAK,eACL8C,MAAO,gBAGFike,EAnB4B,GAsBjCG,GAA6B,WAC/B,SAASA,EAAcjie,GACrB,GAAgB9C,KAAM+ke,GAEtB/ke,KAAKgle,QAAU,IAAI55Z,QACnBprE,KAAKile,qBAAuB,IAAI75Z,QAChCprE,KAAK6ke,wBAA0B,IAAIlB,GAAwBje,IAC3D1ld,KAAK8ke,2BAA6B,IAAI15Z,QACtCprE,KAAK63d,WAAa/0d,EAAQ+0d,WAC1B73d,KAAK0ke,YAAc5he,EAAQ4he,YAC3B1ke,KAAKw2d,kBAAoB1zd,EAAQ0zd,kBACjCx2d,KAAKkle,yBAA2Bpie,EAAQoie,yBACxClle,KAAKmle,6BAA+B,IAAIxB,GAAwB3je,KAAKw2d,kBAAkBmG,YAAYyI,WAAWzme,KAAKqB,KAAKw2d,kBAAkBmG,cAC1I38d,KAAKuod,OAASzld,EAAQyld,OAElBvod,KAAKkle,0BACPx6d,OAAOxM,iBAAiB,UAAW8B,KAAKqle,cAAc1me,KAAKqB,OAoQ/D,OAhQA,GAAa+ke,EAAe,CAAC,CAC3Blne,IAAK,YACL8C,MAAO,SAAmB2ud,GACxBtvd,KAAKgle,QAAQxjd,IAAI8tc,GAAU,GACvBA,EAASt9U,eAAehyI,KAAKile,qBAAqBzjd,IAAI8tc,EAASt9U,cAAes9U,KAEnF,CACDzxd,IAAK,kBACL8C,MAAO,SAAyB+T,GAC9B1U,KAAKsle,aAAe5wd,IAErB,CACD7W,IAAK,eACL8C,MAAO,SAAsB2ud,EAAUsH,GACrC52d,KAAK63d,WAAW,CACd/B,KAAM,CAAC,CACL5f,SAAUl2c,KAAKuod,OAAOhE,MAAM+K,GAC5B4G,OAAQ,KACRn4c,KAAM64c,IAERvB,QAAS,GACTF,MAAO,GACP52c,WAAY,GACZgnd,gBAAgB,IAGlBf,GAAiB,CAACxke,KAAM,SAAU,SAAU0R,GAC1C,OAAOA,EAAE4zd,cACR,eAAgB,SAAUriB,GAC3B,OAAOA,EAAGqM,MAGRA,EAAS37T,iBAAmB27T,EAAS37T,gBAAgB6xU,oBAAsBlW,EAAS37T,gBAAgB6xU,mBAAmBpje,OAAS,GAAGpC,KAAKw2d,kBAAkB4G,iBAAiB9N,EAAS37T,gBAAgB6xU,mBAAoBxle,KAAKuod,OAAOhE,MAAM+K,EAAS37T,oBAExP,CACD91J,IAAK,gBACL8C,MAAO,SAAuBZ,GAC5B,IAAI0le,EAA0B1le,EAC9B,GAA0C,UAAtC0le,EAAwB9qe,KAAK2Q,MAAoBm6d,EAAwB3hc,SAAW2hc,EAAwB9qe,KAAKmpC,QAC5F/jC,EAAQU,OACjC,CACA,IAAI6ud,EAAWtvd,KAAKile,qBAAqBxjd,IAAI1hB,EAAQU,QACrD,GAAK6ud,EAAL,CACA,IAAIoW,EAAmB1le,KAAK2le,0BAA0BrW,EAAUmW,EAAwB9qe,KAAKiqB,OACzF8gd,GAAkB1le,KAAK0ke,YAAYgB,EAAkBD,EAAwB9qe,KAAKire,gBAEvF,CACD/ne,IAAK,4BACL8C,MAAO,SAAmC2ud,EAAUrod,GAClD,IAAIq6N,EAAUthO,KAEd,OAAQiH,EAAEqE,MACR,KAAK6od,GAAU0R,aAEX7le,KAAK6ke,wBAAwBt7b,MAAM+lb,GACnCtvd,KAAKmle,6BAA6B57b,MAAM+lb,GACxCtvd,KAAK8le,gBAAgB7+d,EAAEtM,KAAKojB,KAAMuxc,GAClC,IAAI7E,EAASxjd,EAAEtM,KAAKojB,KAAK/a,GAGzB,OAFAhD,KAAK8ke,2BAA2Btjd,IAAI8tc,EAAU7E,GAC9Czqd,KAAK+le,kBAAkB9+d,EAAEtM,KAAKojB,KAAM0sc,GAC7B,CACL1ic,UAAW9gB,EAAE8gB,UACbzc,KAAM6od,GAAU6R,oBAChBrre,KAAM,CACJ8F,OAAQ4zd,GAAkB4R,SAC1BnQ,KAAM,CAAC,CACL5f,SAAUl2c,KAAKuod,OAAOhE,MAAM+K,GAC5B4G,OAAQ,KACRn4c,KAAM9W,EAAEtM,KAAKojB,OAEfs3c,QAAS,GACTF,MAAO,GACP52c,WAAY,GACZgnd,gBAAgB,IAKxB,KAAKpR,GAAU+R,KACf,KAAK/R,GAAUgS,KACf,KAAKhS,GAAUiS,iBAEX,OAAO,EAGX,KAAKjS,GAAUlrV,OAEX,OAAOhiI,EAGX,KAAKktd,GAAUkS,OAGX,OADArme,KAAKsme,WAAWr/d,EAAEtM,KAAK6O,QAAS8ld,EAAU,CAAC,KAAM,WAAY,aAAc,WACpErod,EAGX,KAAKktd,GAAU6R,oBAEX,OAAQ/+d,EAAEtM,KAAK8F,QACb,KAAK4zd,GAAkB4R,SAoBnB,OAlBAh/d,EAAEtM,KAAKm7d,KAAKn4d,SAAQ,SAAUuxD,GAC5BoyK,EAAQglQ,WAAWp3a,EAAGoga,EAAU,CAAC,WAAY,SAAU,eAEvDhuP,EAAQwkQ,gBAAgB52a,EAAEnxC,KAAMuxc,GAEhC,IAAI7E,EAASnpP,EAAQwjQ,2BAA2Brjd,IAAI6tc,GAEpD7E,GAAUnpP,EAAQykQ,kBAAkB72a,EAAEnxC,KAAM0sc,MAE9Cxjd,EAAEtM,KAAK06d,QAAQ13d,SAAQ,SAAUuxD,GAC/BoyK,EAAQglQ,WAAWp3a,EAAGoga,EAAU,CAAC,WAAY,UAE/Crod,EAAEtM,KAAK4jB,WAAW5gB,SAAQ,SAAUuxD,GAClCoyK,EAAQglQ,WAAWp3a,EAAGoga,EAAU,CAAC,UAEnCrod,EAAEtM,KAAKw6d,MAAMx3d,SAAQ,SAAUuxD,GAC7BoyK,EAAQglQ,WAAWp3a,EAAGoga,EAAU,CAAC,UAE5Brod,EAGX,KAAKotd,GAAkBiK,KACvB,KAAKjK,GAAkBoK,UACvB,KAAKpK,GAAkBmK,UAKnB,OAHAv3d,EAAEtM,KAAKsje,UAAUtge,SAAQ,SAAU4S,GACjC+wN,EAAQglQ,WAAW/1d,EAAG++c,EAAU,CAAC,UAE5Brod,EAGX,KAAKotd,GAAkBkS,eAEnB,OAAO,EAGX,KAAKlS,GAAkBmS,iBACvB,KAAKnS,GAAkBoS,iBACvB,KAAKpS,GAAkBqS,OACvB,KAAKrS,GAAkBsS,eACvB,KAAKtS,GAAkB3jJ,MAGnB,OADA1wU,KAAKsme,WAAWr/d,EAAEtM,KAAM20d,EAAU,CAAC,OAC5Brod,EAGX,KAAKotd,GAAkBuS,eACvB,KAAKvS,GAAkBwS,iBAInB,OAFA7me,KAAKsme,WAAWr/d,EAAEtM,KAAM20d,EAAU,CAAC,OACnCtvd,KAAK8me,gBAAgB7/d,EAAEtM,KAAM20d,EAAU,CAAC,YACjCrod,EAGX,KAAKotd,GAAkB0S,KAEnB,OAAO9/d,EAGX,KAAKotd,GAAkB2S,UAKnB,OAHA//d,EAAEtM,KAAKooe,OAAOple,SAAQ,SAAU0S,GAC9BixN,EAAQglQ,WAAWj2d,EAAOi/c,EAAU,CAAC,QAAS,WAEzCrod,EAGX,KAAKotd,GAAkB4S,kBAiBnB,OAfAjne,KAAKsme,WAAWr/d,EAAEtM,KAAM20d,EAAU,CAAC,OACnCtvd,KAAK8me,gBAAgB7/d,EAAEtM,KAAM20d,EAAU,CAAC,aAExCkV,GAAiB,CAACv9d,EAAG,SAAU,SAAUk9c,GACvC,OAAOA,EAAGxpd,MACT,SAAU,SAAU0pd,GACrB,OAAOA,EAAG1xc,QACT,iBAAkB,SAAU2xc,GAC7B,OAAOA,EAAG3md,SACT,OAAQ,SAAUund,GACnB,OAAOA,GAAG,SAAUnhc,GAClBu9M,EAAQwlQ,gBAAgB/id,EAAOurc,EAAU,CAAC,kBAIvCrod,GAMnB,OAAO,IAER,CACDpJ,IAAK,UACL8C,MAAO,SAAiBume,EAAc99d,EAAKkmd,EAAU7pd,GACnD,IACI01Q,EADAE,EAAa,GAA2B51Q,GAG5C,IACE,IAAK41Q,EAAW5rN,MAAO0rN,EAASE,EAAWnsN,KAAKrhC,MAAO,CACrD,IAAIhwB,EAAMs9Q,EAAOx6Q,OACZsB,MAAMiD,QAAQkE,EAAIvL,KAA6B,iBAAbuL,EAAIvL,MAEvCoE,MAAMiD,QAAQkE,EAAIvL,IACpBuL,EAAIvL,GAAOqpe,EAAaC,OAAO7X,EAAUlmd,EAAIvL,IAE7CuL,EAAIvL,GAAOqpe,EAAa3iB,MAAM+K,EAAUlmd,EAAIvL,MAGhD,MAAOiwB,GACPutP,EAAWp0Q,EAAE6mB,GACb,QACAutP,EAAWvpP,IAGb,OAAO1oB,IAER,CACDvL,IAAK,aACL8C,MAAO,SAAoByI,EAAKkmd,EAAU7pd,GACxC,OAAOzF,KAAK2C,QAAQ3C,KAAK6ke,wBAAyBz7d,EAAKkmd,EAAU7pd,KAElE,CACD5H,IAAK,kBACL8C,MAAO,SAAyByI,EAAKkmd,EAAU7pd,GAC7C,OAAOzF,KAAK2C,QAAQ3C,KAAKmle,6BAA8B/7d,EAAKkmd,EAAU7pd,KAEvE,CACD5H,IAAK,kBACL8C,MAAO,SAAyBod,EAAMuxc,GACpC,IAAI7tP,EAAUzhO,KAEdA,KAAKsme,WAAWvod,EAAMuxc,EAAU,CAAC,KAAM,WAEnC,eAAgBvxc,GAClBA,EAAKsB,WAAW1hB,SAAQ,SAAU+gB,GAChC+iN,EAAQqkQ,gBAAgBpnd,EAAO4wc,QAIpC,CACDzxd,IAAK,oBACL8C,MAAO,SAA2Bod,EAAM0sc,GACtC,IAAIv8I,EAAUluU,KAEV+d,EAAKzS,OAAS82c,GAAW2I,UAAahtc,EAAK0sc,SAAQ1sc,EAAK0sc,OAASA,GAEjE,eAAgB1sc,GAClBA,EAAKsB,WAAW1hB,SAAQ,SAAU+gB,GAChCwvT,EAAQ63J,kBAAkBrnd,EAAO+rc,UAMlCsa,EApRwB,GAuR7BqC,GAAoC,WACtC,SAASA,IACP,GAAgBpne,KAAMone,GAiBxB,OAdA,GAAaA,EAAsB,CAAC,CAClCvpe,IAAK,OACL8C,MAAO,cACN,CACD9C,IAAK,gBACL8C,MAAO,cACN,CACD9C,IAAK,sBACL8C,MAAO,cACN,CACD9C,IAAK,QACL8C,MAAO,gBAGFyme,EAnB+B,GAsBpCC,GAAgC,WAClC,SAASA,EAAiBvke,GACxB,GAAgB9C,KAAMqne,GAEtBrne,KAAKsne,WAAa,IAAIpsD,QACtBl7a,KAAKune,gBAAkB,GACvBvne,KAAK63d,WAAa/0d,EAAQ+0d,WAC1B73d,KAAK26d,SAAW73d,EAAQ63d,SACxB36d,KAAKgvd,cAAgBlsd,EAAQksd,cAC7Bhvd,KAAKuod,OAASzld,EAAQyld,OACtBvod,KAAK8qH,OAyEP,OAtEA,GAAau8W,EAAkB,CAAC,CAC9Bxpe,IAAK,OACL8C,MAAO,WACLX,KAAKupC,QACLvpC,KAAKwne,kBAAkBxhR,QAASp9M,YAEjC,CACD/K,IAAK,gBACL8C,MAAO,SAAuBk2N,EAAYhxE,GACxC,IAAIgrL,EAAU7wU,KAEd,GAAKkjd,GAAkBrsP,KACnB72N,KAAKsne,WAAWvga,IAAI8vJ,GAAxB,CACA72N,KAAKsne,WAAWhjd,IAAIuyM,GACpB72N,KAAKgvd,cAAc8H,cAAcH,cAAc9/P,GAC/C,IAAIl3K,EAAWm6a,GAAqB,GAAc,GAAc,GAAI95d,KAAKgvd,eAAgB,GAAI,CAC3FnpU,IAAKA,EACLgyU,WAAY73d,KAAK63d,WACjBtP,OAAQvod,KAAKuod,OACbmO,iBAAkB12d,OAChB62N,GACJ72N,KAAKune,gBAAgBxle,MAAK,WACxB,OAAO49C,EAAS2zP,gBAElBtzS,KAAKune,gBAAgBxle,KAAK24d,GAAmB,GAAc,GAAc,GAAI16d,KAAKgvd,eAAgB,GAAI,CACpG2L,SAAU36d,KAAK26d,SACf90U,IAAKgxE,EACL0xP,OAAQvod,KAAKuod,WAEfiJ,IAAa,WACP36P,EAAW2uQ,oBAAsB3uQ,EAAW2uQ,mBAAmBpje,OAAS,GAAGyuU,EAAQm+I,cAAcwH,kBAAkB4G,iBAAiBvmQ,EAAW2uQ,mBAAoB30J,EAAQ03I,OAAOhE,MAAM1tP,EAAW1sN,OAEvM0mU,EAAQ02J,gBAAgBxle,KAAK86d,GAA8B,CACzDtU,OAAQ13I,EAAQ03I,OAChBiO,kBAAmB3lJ,EAAQm+I,cAAcwH,mBACxC3/P,MACF,MAEJ,CACDh5N,IAAK,sBACL8C,MAAO,SAA6B8me,GAC7BA,EAAcz1V,eAAkBy1V,EAAc9zU,iBACnD3zJ,KAAKwne,kBAAkBC,EAAcz1V,cAAcg0E,QAASyhR,EAAc9zU,mBAE3E,CACD91J,IAAK,oBACL8C,MAAO,SAA2B8R,EAASozI,GACzC,IAAI6hV,EAAU1ne,KACdA,KAAKune,gBAAgBxle,KAAK,GAAM0Q,EAAQvT,UAAW,gBAAgB,SAAU6sI,GAC3E,OAAO,SAAU9/G,GACf,IAAI4qM,EAAa9qF,EAASpoI,KAAK3D,KAAMisB,GAErC,OADIjsB,KAAK62N,YAAci9P,GAAM9zd,OAAO0ne,EAAQ/Q,cAAc32d,KAAK62N,WAAYhxE,GACpEgxE,SAIZ,CACDh5N,IAAK,QACL8C,MAAO,WACLX,KAAKune,gBAAgB5pe,SAAQ,SAAUipC,GACrC,IACEA,IACA,MAAO3/B,QAEXjH,KAAKune,gBAAkB,GACvBvne,KAAKsne,WAAa,IAAIpsD,QACtBl7a,KAAKgvd,cAAc8H,cAAc6Q,uBAI9BN,EAnF2B,GAsFhCO,GAAiC,WACnC,SAASA,IACP,GAAgB5ne,KAAM4ne,GAgCxB,OA7BA,GAAaA,EAAmB,CAAC,CAC/B/pe,IAAK,QACL8C,MAAO,cACN,CACD9C,IAAK,SACL8C,MAAO,cACN,CACD9C,IAAK,WACL8C,MAAO,cACN,CACD9C,IAAK,OACL8C,MAAO,cACN,CACD9C,IAAK,SACL8C,MAAO,cACN,CACD9C,IAAK,WACL8C,MAAO,cACN,CACD9C,IAAK,YACL8C,MAAO,cACN,CACD9C,IAAK,gBACL8C,MAAO,cACN,CACD9C,IAAK,mBACL8C,MAAO,gBAGFine,EAlC4B,GAqCjCC,GAAiC,WACnC,SAASA,EAAkB/ke,GACzB,GAAgB9C,KAAM6ne,GAEtB7ne,KAAK8ne,oBAAsB,IAAI5sD,QAC/Bl7a,KAAK28d,YAAc,IAAIvJ,GACvBpzd,KAAK63d,WAAa/0d,EAAQ+0d,WAC1B73d,KAAK+ne,oBAAsBjle,EAAQile,oBA6ErC,OA1EA,GAAaF,EAAmB,CAAC,CAC/Bhqe,IAAK,oBACL8C,MAAO,SAA2Bqne,EAAQpR,GACpC,aAAcA,EAAQr4c,YAAYve,KAAK63d,WAAW,CACpD/B,KAAM,GACNT,QAAS,GACTF,MAAO,GACP52c,WAAY,CAAC,CACXvb,GAAI4zd,EAAQ5zd,GACZub,WAAYq4c,EAAQr4c,eAGxBve,KAAKy2d,iBAAiBuR,KAEvB,CACDnqe,IAAK,mBACL8C,MAAO,SAA0Bqne,GAC3Bhoe,KAAK8ne,oBAAoB/ga,IAAIiha,KACjChoe,KAAK8ne,oBAAoBxjd,IAAI0jd,GAC7Bhoe,KAAKioe,6BAA6BD,MAEnC,CACDnqe,IAAK,mBACL8C,MAAO,SAA0Bs8d,EAAQH,GACvC,GAAsB,IAAlBG,EAAO76d,OAAX,CACA,IAOIqoR,EAPAy9M,EAAwB,CAC1Blle,GAAI85d,EACJqL,SAAU,IAERx1d,EAAS,GAET63Q,EAAa,GAA2ByyM,GAG5C,IACE,IAAKzyM,EAAW/6N,MAAOg7N,EAASD,EAAWt7N,KAAKrhC,MAAO,CACrD,IAAIwlP,EAAQoX,EAAO9pR,MACfi8d,OAAU,EAET58d,KAAK28d,YAAY51Z,IAAIssM,GAWnBupN,EAAU58d,KAAK28d,YAAYpY,MAAMlxM,IAVtCupN,EAAU58d,KAAK28d,YAAYr4c,IAAI+uP,GAC/B1gQ,EAAO5Q,KAAK,CACV66d,QAASA,EACTjhO,MAAO15P,MAAM4sB,KAAKwkP,EAAM1X,OAASysO,SAAS,SAAU94d,EAAGoM,GACrD,MAAO,CACLkgP,KAAMwnN,GAAc9zc,GACpBoM,MAAOA,SAMfwsd,EAAsBC,SAASpme,KAAK66d,IAEtC,MAAO9uc,GACP08P,EAAWvjR,EAAE6mB,GACb,QACA08P,EAAW14P,IAGTnf,EAAOvQ,OAAS,IAAG8le,EAAsBv1d,OAASA,GACtD3S,KAAK+ne,oBAAoBG,MAE1B,CACDrqe,IAAK,QACL8C,MAAO,WACLX,KAAK28d,YAAYpzb,QACjBvpC,KAAK8ne,oBAAsB,IAAI5sD,UAEhC,CACDr9a,IAAK,+BACL8C,MAAO,SAAsCqne,QAGxCH,EApF4B,GAuFjCQ,GAAoC,WACtC,SAASA,IACP,GAAgBroe,KAAMqoe,GAEtBroe,KAAKsoe,QAAU,IAAIl9Z,QACnBprE,KAAKmtK,QAAS,EA+BhB,OA5BA,GAAak7T,EAAsB,CAAC,CAClCxqe,IAAK,gBACL8C,MAAO,SAAuBod,EAAMwqd,GAClC,IAAIr4C,EAAUlwb,KAAKsoe,QAAQ7md,IAAI1D,GAC/B,OAAOmya,GAAWjub,MAAM4sB,KAAKqha,GAAS91a,MAAK,SAAU7T,GACnD,OAAOA,IAAWgie,OAGrB,CACD1qe,IAAK,MACL8C,MAAO,SAAaod,EAAMxX,GACxB,IAAI8uU,EAAUr1U,KAETA,KAAKmtK,SACRntK,KAAKmtK,QAAS,EApiFtB,WACS+mT,GAAkB,yBAAyBhyd,WAAM,EAAQjB,WAoiF1Dune,EAAwB,WACtBnzJ,EAAQizJ,QAAU,IAAIl9Z,QACtBiqQ,EAAQloK,QAAS,MAIrBntK,KAAKsoe,QAAQ9md,IAAIzD,GAAO/d,KAAKsoe,QAAQ7md,IAAI1D,IAAS,IAAIotD,KAAO7mD,IAAI/d,MAElE,CACD1I,IAAK,UACL8C,MAAO,gBAGF0ne,EApC+B,GA2CxC,IACE,GAEU,IAFNpme,MAAM4sB,KAAK,CAAC,IAAI,SAAU4c,GAC5B,OAAW,EAAJA,KACN,GAAU,CACX,IAAIg9b,GAAa7/d,SAASkB,cAAc,UACxClB,SAASm2B,KAAKtrB,YAAYg1d,IAC1Bxme,MAAM4sB,KAAOytb,GAAe,CAACmsB,GAAY,SAAU,SAAU/2d,GAC3D,OAAOA,EAAEsgI,eACR,iBAAkB,SAAUixU,GAC7B,OAAOA,EAAGhhd,OACT,SAAU,SAAUkid,GACrB,OAAOA,EAAGt1b,SACL5sB,MAAM4sB,KACbjmB,SAASm2B,KAAK/f,YAAYypd,KAE5B,MAAO36c,GACP1hB,QAAQkyH,MAAM,gCAAiCxwG,GAGjD,IAAIy6b,GAn0IK,IAAIvE,GAq0Ib,SAAS7uS,KACP,IAAIryK,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC9E68I,EAAOh7I,EAAQg7I,KACf4qV,EAAmB5le,EAAQ4le,iBAC3BC,EAAmB7le,EAAQ6le,iBAC3BC,EAAsB9le,EAAQ0ld,WAC9BA,OAAqC,IAAxBogB,EAAiC,WAAaA,EAC3DC,EAAwB/le,EAAQ2ld,cAChCA,OAA0C,IAA1BogB,EAAmC,KAAOA,EAC1DC,EAAwBhme,EAAQ4ld,gBAChCA,OAA4C,IAA1BogB,EAAmC,KAAOA,EAC5DC,EAAuBjme,EAAQo4d,YAC/BA,OAAuC,IAAzB6N,EAAkC,YAAcA,EAC9DC,EAAwBlme,EAAQq4d,eAChCA,OAA2C,IAA1B6N,EAAmC,KAAOA,EAC3DC,EAAuBnme,EAAQmld,YAC/BA,OAAuC,IAAzBghB,GAA0CA,EACxDC,EAAwBpme,EAAQ+kd,cAChCA,OAA0C,IAA1BqhB,EAAmC,UAAYA,EAC/DC,EAAwBrme,EAAQild,gBAChCA,OAA4C,IAA1BohB,EAAmC,KAAOA,EAC5DC,EAAwBtme,EAAQgld,iBAChCA,OAA6C,IAA1BshB,EAAmC,KAAOA,EAC7DC,EAAwBvme,EAAQkld,mBAChCA,OAA+C,IAA1BqhB,EAAmC,KAAOA,EAC/DC,EAAyBxme,EAAQgmd,iBACjCA,OAA8C,IAA3BwgB,GAA2CA,EAC9DzY,EAAgB/td,EAAQ+td,cACxB0Y,EAAoBzme,EAAQ8hd,iBAC5B4kB,EAAkB1me,EAAQmmd,eAC1BjC,EAAkBlkd,EAAQkkd,gBAC1BjC,EAAcjid,EAAQiid,YACtBiE,EAAalmd,EAAQkmd,WACrBygB,EAAwB3me,EAAQ4me,cAChCA,OAA0C,IAA1BD,EAAmC,KAAOA,EAC1DE,EAAS7me,EAAQ6me,OACjBC,EAAoB9me,EAAQ83d,SAC5BA,OAAiC,IAAtBgP,EAA+B,GAAKA,EAC/CC,EAAyB/me,EAAQqmd,eACjCA,OAA4C,IAA3B0gB,EAAoC,GAAKA,EAC1DC,EAAgBhne,EAAQgne,cACxBC,EAAqBjne,EAAQy6d,UAC7BA,OAAmC,IAAvBwM,GAAuCA,EACnDC,EAAyBlne,EAAQymd,aACjCA,OAA0C,IAA3BygB,GAA4CA,EAC3DC,EAAwBnne,EAAQoie,yBAChCA,OAAqD,IAA1B+E,GAA2CA,EACtEC,EAAuBpne,EAAQqne,YAC/BA,OAAuC,IAAzBD,EAA0D,qBAAxBpne,EAAQqne,YAAqCrne,EAAQqne,YAAc,OAASD,EAC5HE,EAAwBtne,EAAQs4d,qBAChCA,OAAiD,IAA1BgP,GAA2CA,EAClEC,EAAwBvne,EAAQk/d,aAChCA,OAAyC,IAA1BqI,GAA2CA,EAC1DC,EAAyBxne,EAAQumd,aACjCA,OAA0C,IAA3BihB,GAA4CA,EAC3Dx7a,GAAUhsD,EAAQgsD,QAClBy7a,GAAyBzne,EAAQknd,gBACjCA,QAA6C,IAA3BugB,GAAoC,WACxD,OAAO,GACLA,GACAC,GAAwB1ne,EAAQ4+d,oBAChCA,QAAgD,IAA1B8I,GAAmC,IAAIr/Z,IAAI,IAAMq/Z,GACvE9vT,GAAe53K,EAAQ43K,aACvB2/S,GAAav3d,EAAQu3d,WACrBoQ,GAAmB3ne,EAAQ2ne,iBAC/BnR,GAAqB5+S,IACrB,IAAIgwT,IAAkBxF,GAA2Bx6d,OAAO+T,SAAW/T,OAC/Dige,IAAoB,EAExB,IAAKD,GACH,IACMhge,OAAO+T,OAAO7V,WAChB+he,IAAoB,GAEtB,MAAO1je,GACP0je,IAAoB,EAIxB,GAAID,KAAoB5sV,EACtB,MAAM,IAAIt6I,MAAM,6BAGlB,IAAKkne,KAAoBC,GACvB,OAAO,kBAGalte,IAAlBqse,QAAsDrse,IAAvBm9d,EAASiD,YAC1CjD,EAASiD,UAAYiM,GAGvBvhB,GAAOh/a,QACP,IAgCIqhc,GAhCAhmB,IAAqC,IAAlBiM,EAAyB,CAC9Clhd,OAAO,EACPgsB,MAAM,EACN,kBAAkB,EAClBm5F,OAAO,EACPvuB,OAAO,EACPniG,QAAQ,EACRiM,OAAO,EACPjG,QAAQ,EACR6md,KAAK,EACLlmb,MAAM,EACNs8C,MAAM,EACN1rF,KAAK,EACL2kG,MAAM,EACNuqB,UAAU,EACVH,QAAQ,EACRC,OAAO,EACPC,UAAU,QACcntH,IAAtB8re,EAAkCA,EAAoB,GACtDtgB,IAAqC,IAApBugB,GAAgD,QAApBA,EAA4B,CAC3E1jV,QAAQ,EACR+vD,SAAS,EACTu4Q,aAAa,EACbW,gBAAgB,EAChBT,gBAAgB,EAChBC,gBAAgB,EAChBC,mBAAmB,EACnBE,sBAAsB,EACtBD,mBAAwC,QAApB+a,EACpBnb,qBAA0C,QAApBmb,GACpBA,GAAoC,GACxCzW,KAEA,IAAI8X,GAA2B,EAE3BtlC,GAAiB,SAAwBt+b,GAC3C,IACIgrR,EADAE,EAAa,GAA2BrjO,IAAW,IAGvD,IACE,IAAKqjO,EAAW1iO,MAAOwiO,EAASE,EAAWjjO,KAAKrhC,MAAO,CACrD,IAAIrc,EAASygR,EAAOtxR,MAEhB6Q,EAAO+zb,iBACTt+b,EAAIuK,EAAO+zb,eAAet+b,KAG9B,MAAO6mB,GACPqkQ,EAAWlrR,EAAE6mB,GACb,QACAqkQ,EAAWrgQ,IAOb,OAJI63c,IAAWgB,KACb1je,EAAI0ie,EAAO1ie,IAGNA,GAGTy9d,GAAc,SAAqBp1d,EAAGs2d,GACpC,IAAI3+d,EAAIqI,EAeR,GAdArI,EAAE8gB,UAAY6pc,MAEVtV,GAAe,CAACsd,GAAiB,SAAU,SAAUvV,GACvD,OAAOA,EAAG,IACT,iBAAkB,SAAUC,GAC7B,OAAOA,EAAG5hX,UACT,OAAQ,SAAUwiX,GACnB,OAAOA,QACFj+c,EAAEqE,OAAS6od,GAAU0R,cAAkB5+d,EAAEqE,OAAS6od,GAAU6R,qBAAuB/+d,EAAEtM,KAAK8F,SAAW4zd,GAAkB4R,UAC5HrM,GAAgBj8d,SAAQ,SAAUwyb,GAChC,OAAOA,EAAI8oC,cAIXyR,GACFpuB,GAAe,CAACx+T,EAAM,eAAgB,SAAU2vU,GAC9C,OAAOA,EAAGloB,GAAet+b,GAAI2+d,WAE1B,GAAI+E,GAAmB,CAC5B,IAAI5qe,EAAU,CACZuL,KAAM,QACNsZ,MAAO2gb,GAAet+b,GACtB68B,OAAQp5B,OAAOC,SAASm5B,OACxB8hc,WAAYA,GAEdl7d,OAAO+T,OAAOquC,YAAY/sD,EAAS,KAGrC,GAAIkH,EAAEqE,OAAS6od,GAAU0R,aACvB+E,GAAwB3je,EACxB4je,GAA2B,OACtB,GAAI5je,EAAEqE,OAAS6od,GAAU6R,oBAAqB,CACnD,GAAI/+d,EAAEtM,KAAK8F,SAAW4zd,GAAkB4R,UAAYh/d,EAAEtM,KAAK4qe,eACzD,OAGFsF,KACA,IAAIC,EAAcnC,GAAoBkC,IAA4BlC,EAC9DoC,EAAarC,GAAoBkC,IAAyB3je,EAAE8gB,UAAY6id,GAAsB7id,UAAY2gd,GAE1GoC,GAAeC,IACjBC,IAAiB,KAKvB,IAiDIllL,GAjDAmlL,GAAsB,SAA6B77a,GACrDs1a,GAAY,CACVp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkB4R,UACzB72a,MAIH87a,GAAoB,SAA2B36d,GACjD,OAAOm0d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBqS,QACzBn2d,MAIH46d,GAA4B,SAAmC56d,GACjE,OAAOm0d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBsS,gBACzBp2d,MAIH66d,GAA+B,SAAsCh+d,GACvE,OAAOs3d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkB4S,mBACzB75d,MAIHopd,GAAoB,IAAIqR,GAAkB,CAC5ChQ,WAAYoT,GACZlD,oBAAqBqD,KAEnB9U,GAAoD,kBAA7B+U,0BAA0CA,yBAA2B,IAAIzG,GAAsB,IAAIG,GAAc,CAC1Ixc,OAAQA,GACRsP,WAAYoT,GACZzU,kBAAmBA,GACnB0O,yBAA0BA,EAC1BR,YAAaA,KAGXv+K,GAAa,GAA2Br3P,IAAW,IAGvD,IACE,IAAKq3P,GAAW12P,MAAOq2P,GAASK,GAAWj3P,KAAKrhC,MAAO,CACrD,IAAIrc,GAASs0S,GAAOnlT,MAChB6Q,GAAO85d,WAAW95d,GAAO85d,UAAU,CACrCC,WAAYhjB,GACZsc,wBAAyBvO,GAAcuO,wBACvCM,6BAA8B7O,GAAc6O,gCAGhD,MAAOr3c,GACPq4R,GAAWl/S,EAAE6mB,GACb,QACAq4R,GAAWr0R,IAGb,IAAI+mc,GAAuB,IAAIwP,GAE3BvR,GAAgB0U,GAAkBf,GAAkB,CACtDliB,OAAQA,GACR/1S,IAAK9nK,OACLmtd,WAAY,SAAoBtnd,GAC9B,OAAOm0d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBsS,gBACzBp2d,MAGPg5c,aAAcA,EACdf,WAAYA,EACZC,cAAeA,EACfC,gBAAiBA,EACjBghB,cAAeA,EACf9O,SAAUA,EAAiB,OAC3BzR,eAAgBA,EAChBzuS,aAAcA,KAGZg8S,GAA2D,kBAAjC+U,8BAA8CA,6BAA+B,IAAIrE,GAAyB,IAAIC,GAAiB,CAC3JxP,WAAYoT,GACZtQ,SAAUuQ,GACVlc,cAAe,CACbqL,WAAYA,GACZ7R,WAAYA,EACZC,cAAeA,EACfC,gBAAiBA,EACjBT,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBc,iBAAkBA,EAClBlE,iBAAkBA,GAClBuE,eAAgBA,EAChBnC,gBAAiBA,EACjBgC,WAAYA,EACZjE,YAAaA,EACbwE,aAAcA,EACdF,aAAcA,EACduR,SAAUA,EACV3R,eAAgBA,GAChBqN,cAAeA,GACfE,kBAAmBA,GACnBM,cAAeA,GACf9M,gBAAiBA,GACjB6O,qBAAsBA,IAExBtQ,OAAQA,KAGNyiB,GAAmB,WACrB,IAAIpF,EAAa3ke,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,IAAmBA,UAAU,GAEhF,GAAKs8d,EAAL,CAIAmH,GAAY,CACVp5d,KAAM6od,GAAU+R,KAChBvre,KAAM,CACJqP,KAAMU,OAAOC,SAASX,KACtB8E,MAAOsjd,KACPrjd,OAAQojd,OAETyT,GACHpP,GAAkBjtb,QAClBmtb,GAAiB5rW,OACjB8uW,GAAgBj8d,SAAQ,SAAUwyb,GAChC,OAAOA,EAAIx7R,UAEb,IAAI52I,EAAOgyc,GAASnnd,SAAU,CAC5B2/c,OAAQA,GACRC,WAAYA,EACZC,cAAeA,EACfC,gBAAiBA,EACjBT,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBc,iBAAkBA,EAClB+H,cAAejM,GACfoC,gBAAiBA,EACjBjC,YAAaA,EACbiE,WAAYA,EACZ+H,QAAS9H,GACTE,eAAgBA,EAChBI,aAAcA,EACdF,aAAcA,EACdG,YAAa,SAAqBt6Z,GAC5B8ja,GAAmB9ja,EAAGq5Z,KACxB+N,GAAcC,UAAUrna,GAGtB+ja,GAAuB/ja,EAAGq5Z,KAC5BiO,GAAkBC,iBAAiBvna,GAGjCgka,GAAchka,IAChBwna,GAAiBC,cAAczna,EAAE2nK,WAAYjuN,WAGjD6gd,aAAc,SAAsB13U,EAAQ6kV,GAC1CN,GAAcO,aAAa9kV,EAAQ6kV,GAE/B7kV,EAAOC,eACT8kV,GAAcC,UAAUhlV,EAAOC,eAGjC0kV,GAAiBM,oBAAoBjlV,IAEvC63U,iBAAkB,SAA0Boe,EAAQpR,GAClDJ,GAAkBS,kBAAkB+Q,EAAQpR,IAE9C5M,gBAAiBA,KAGnB,IAAKjsc,EACH,OAAO3R,QAAQC,KAAK,mCAGtBq4d,GAAY,CACVp5d,KAAM6od,GAAU0R,aAChBlre,KAAM,CACJojB,KAAMA,EACN2td,cAAe,GAAgBhhe,WAGnCkvd,GAAgBj8d,SAAQ,SAAUwyb,GAChC,OAAOA,EAAI+oC,YAETtwd,SAAS48d,oBAAsB58d,SAAS48d,mBAAmBpje,OAAS,GAAGo0d,GAAkB4G,iBAAiBx0d,SAAS48d,mBAAoBjd,GAAOhE,MAAM37c,aAG1J+7d,GAAoBqG,GAEpB,IACE,IAAIjtD,GAAY,GAEZhtS,GAAU,SAAiB8U,GAC7B,OAAO2zU,GAAgB6D,GAAhB7D,CAA+B,CACpCa,WAAYA,GACZxC,WAAYoT,GACZrN,YAAa,SAAqBK,EAAWx9d,GAC3C,OAAOike,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,CACJ8F,OAAQA,EACRw9d,UAAWA,MAIjBW,mBAAoB,SAA4B3va,GAC9C,OAAOy1a,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBoS,kBACzBx3a,MAGP0ra,SAAUuQ,GACV1N,iBAAkB,SAA0Bvua,GAC1C,OAAOy1a,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBkS,gBACzBt3a,MAGPgsa,QAAS,SAAiBpzd,GACxB,OAAO68d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkB3jJ,OACzB7oU,MAGPm4d,mBAAoB,SAA4Bzvd,GAC9C,OAAOm0d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBmS,kBACzBj2d,MAGPgwd,iBAAkB,SAA0Bjxd,GAC1C,OAAOo1d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBuS,gBACzBt3d,MAGPmyd,mBAAoB,SAA4Bnyd,GAC9C,OAAOo1d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBwS,kBACzBv3d,MAGPq8d,iBAAkBR,GAClBlJ,OAAQ,SAAgB1xd,GACtB,OAAOm0d,GAAY,CACjBp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkB0S,MACzBx2d,MAGPmyd,YAAa,SAAqBnyd,GAChCm0d,GAAY,CACVp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkB2S,WACzBz2d,MAGP+yd,gBAAiB,SAAyB5ie,GACxCgke,GAAY,CACVp5d,KAAM6od,GAAU6R,oBAChBrre,KAAM,GAAc,CAClB8F,OAAQ4zd,GAAkBuX,eACzBlre,MAGP8nd,WAAYA,EACZ0S,YAAaA,EACbC,eAAgBA,EAChBlT,YAAaA,EACbJ,cAAeA,EACfE,gBAAiBA,EACjBD,iBAAkBA,EAClBE,mBAAoBA,EACpBpD,iBAAkBA,GAClBkE,iBAAkBA,EAClB8R,SAAUA,EACV2C,UAAWA,EACXhU,aAAcA,EACdF,aAAcA,EACd+R,qBAAsBA,EACtB4G,aAAcA,EACdn8U,IAAKA,EACLmhU,gBAAiBA,EACjBjC,YAAaA,EACbiE,WAAYA,EACZgB,gBAAiBA,GACjBvB,cAAeA,EACfC,gBAAiBA,EACjBO,eAAgBA,GAChBE,eAAgBA,EAChBZ,OAAQA,GACR+N,cAAeA,GACfE,kBAAmBA,GACnBE,iBAAkBA,GAClBmC,qBAAsBA,GACtB/B,cAAeA,GACf4K,oBAAqBA,GACrB5ya,QAASwtZ,GAAe,CAACxtZ,GAAS,iBAAkB,SAAU4+Z,GAC5D,OAAOA,EAAGhod,QACT,OAAQ,SAAUiod,GACnB,OAAOA,GAAG,SAAUp9c,GAClB,OAAOA,EAAEovC,aAEV,iBAAkB,SAAUmya,GAC7B,OAAOA,EAAI72c,KACV,OAAQ,SAAU82c,GACnB,OAAOA,GAAI,SAAUxhd,GACnB,MAAO,CACLovC,SAAUpvC,EAAEovC,SACZ78C,QAASyN,EAAEzN,QACXqI,SAAU,SAAkB3B,GAC1B,OAAOk7d,GAAY,CACjBp5d,KAAM6od,GAAUlrV,OAChBtuI,KAAM,CACJ6W,OAAQjB,EAAErM,KACVsF,QAASA,cAMd,IACN,KAGL8sd,GAAcuV,iBAAgB,SAAUvc,GACtC,IACEvxC,GAAUh8a,KAAKgvI,GAAQu+U,EAAS37T,kBAChC,MAAOlxJ,GACP2J,QAAQC,KAAK5J,OAIjB,IAAIqoH,GAAO,WACTkgX,KAEAjtD,GAAUh8a,KAAKgvI,GAAQnoI,YAuBzB,MApB4B,gBAAxBA,SAASlM,YAAwD,aAAxBkM,SAASlM,WACpDouH,MAEAizT,GAAUh8a,KAAK,GAAG,oBAAoB,WACpC2ie,GAAY,CACVp5d,KAAM6od,GAAUiS,iBAChBzre,KAAM,KAEY,qBAAhBwve,GAAoCr/W,SAG1CizT,GAAUh8a,KAAK,GAAG,QAAQ,WACxB2ie,GAAY,CACVp5d,KAAM6od,GAAUgS,KAChBxre,KAAM,KAEY,SAAhBwve,GAAwBr/W,OAC3BpgH,UAGE,WACLqza,GAAUpgb,SAAQ,SAAUuF,GAC1B,OAAOA,OAGT21d,GAAqB30c,UACrBygd,QAAoBlne,EACpB87d,MAEF,MAAO92d,GACP2J,QAAQC,KAAK5J,IAejB,SAAS+oe,GAAkBM,EAAoBhpe,GAC7C,IACE,OAAOgpe,EAAqBA,EAAmBhpe,GAAW,IAAI8ke,GAC9D,MAAOl4B,GAEP,OADAtjc,QAAQC,KAAK,sCACN,IAAIu7d,IARfzyT,GAAOozS,OAASA,GAChBpzS,GAAO61T,iBATP,SAA0BpF,GACxB,IAAKjB,GACH,MAAM,IAAInhe,MAAM,mDAGlBmhe,GAAkBiB,IAqBpB,IAAI,GAA0C,oBAArB/0D,kBAAoCA,iBACzD,GAAiB,CAAC,OAAQ,OAAQ,QAAS,OAC3C,GAAS,YAEb,SAASk7D,GAAehse,GACtB,IAAIorB,EAAQlqB,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,OAChFw5a,GAAc,CACZt4Z,SAAU,UACVxnB,KAAM,CACJ02a,OAAQ,UAEVlmZ,MAAOA,EACPprB,QAAS,GAAGoC,OAAO,IAAQA,OAAOpC,IACjC,CACDorB,MAAOA,IAiFX,IA5EM6gd,GACAC,GACAC,GAwKF,GA9FA,IA5EEF,IAAW,EACXC,IAAS,EACTC,GAAU,CACZ50T,UAAW,aAGX60T,SAAU,aAGVC,UAAW,SAAmBjge,GAC5B6/d,GAAW7/d,EAAKkge,kBAChBJ,GAAS9/d,EAAKmge,iBAId,IACF,GAAe3ue,SAAQ,SAAUuG,GAC/Bgoe,GAAQhoe,GAAQ,WACd,IAAK,IAAIm7T,EAAQp+T,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMo9T,GAAQ7K,EAAQ,EAAGA,EAAQ6K,EAAO7K,IACpFhtT,EAAKgtT,GAASvzT,UAAUuzT,GAG1B,GAAStwT,GAAMhC,MAAM,GAAU,CAAC,IAAQC,OAAOqF,IAE3Cyke,IACFF,GAAevke,EAAKQ,KAAK,IAAKukb,GAAwBrob,QAK5Dgoe,GAAQ50T,UAAY,SAAU70K,GAC5B,IAAK,IAAIirU,EAAQzsU,UAAUmB,OAAQrC,EAAU,IAAIkC,MAAMyrU,EAAQ,EAAIA,EAAQ,EAAI,GAAI5O,EAAQ,EAAGA,EAAQ4O,EAAO5O,IAC3G/+T,EAAQ++T,EAAQ,GAAK79T,UAAU69T,GAG7B/+T,EAAQqC,QAAU8pe,GAAQzpe,OAC5Bype,GAAQzpe,MAAMP,MAAMgqe,GAASnse,GAG/B,SAAe,GAAQ0C,GAEnBupe,GACFnzD,GAAiBp2a,GACRwpe,IAGTF,GAAetpe,EAAO,UAI1Bype,GAAQC,SAAW,WACjB,IAAK,IAAIp+H,EAAS9sW,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM8rW,GAAS7uC,EAAS,EAAGA,EAAS6uC,EAAQ7uC,IACzF13T,EAAK03T,GAAUj+T,UAAUi+T,GAG3B,cAAoB,GAAU,CAAC,IAAQ/8T,OAAOqF,IAE1Cyke,IAGFpve,YAAW,WACT,OAAOkve,GAAevke,EAAK,MAC1B,KAIP,GAAe7J,SAAQ,SAAUuG,GAC/Bgoe,GAAQhoe,GAAQ,gBAMbgoe,IAUT,SAASK,GAAcxkd,GAErB,OADWA,EAAY,WACTA,EAAwB,IAAZA,EAO5B,SAASykd,GAAazkd,GAEpB,OADWA,EAAY,WACTA,EAAY,IAAOA,EAOnC,SAAS0kd,GAAmBC,EAAQv0D,GACN,uBAAxBA,EAAWh2Z,WAIX,CAAC,WAAY,YAAY9D,SAAS85Z,EAAWh2Z,UAC/Cuqd,EAAOC,sBAEPD,EAAOE,+BAGTF,EAAOG,WAAU,WAef,OAZAH,EAAOI,kBAAkB,CACvBxhe,KAAM6od,GAAUkS,OAGhBt+c,UAAyC,KAA7BowZ,EAAWpwZ,WAAa,GACpCptB,KAAM,CACJwX,IAAK,aAEL3I,QAAS,GAAU2ua,EAAY,GAAI,QAIR,YAAxBA,EAAWh2Z,aAOtB,SAAS4qd,GAAsBt6d,GAE7B,OADyBA,EAAQ0gJ,QAJR,aAKI1gJ,EAU/B,SAASu6d,GAAmBpod,GAC1B,IAAI5f,EAASioe,GAAcrod,GAE3B,OAAK5f,GAAYA,aAAkBghN,QAI5B+mR,GAAsB/ne,GAHpBA,EAQX,SAASioe,GAAcrod,GACrB,OAOF,SAA2BA,GACzB,MAA0B,WAAnB,GAAQA,MAAyBA,GAAS,WAAYA,EARzDsod,CAAkBtod,GACbA,EAAM5f,OAGR4f,EAqDT,IA0VIm/b,GA1VAopB,GAA6B,IAAIhia,IAAI,CAACkpZ,GAAkB4R,SAAU5R,GAAkBuS,eAAgBvS,GAAkBwS,iBAAkBxS,GAAkB4S,kBAAmB5S,GAAkBsS,eAAgBtS,GAAkB2S,UAAW3S,GAAkBmS,mBAS9P4G,GAA6B,WAE/B,SAASA,EAAcV,EAAQW,GAC7B,IAAIC,EAAsBrse,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKwre,GAE9F,GAAgBzse,KAAMote,GAEtBpte,KAAKute,cAAgB,EACrBvte,KAAKwte,YAAc,EACnBxte,KAAKyte,QAAU,GAEfzte,KAAK0te,SAAWL,EAAgB7we,QAAU,IAC1CwD,KAAK2te,WAAaN,EAAgB/oX,UAAY,IAC9CtkH,KAAK4te,eAAiBP,EAAgBQ,cAAgB,IACtD7te,KAAK8te,QAAUpB,EACf1se,KAAK+te,gBAAkBV,EAAgBlS,eACvCn7d,KAAKste,oBAAsBA,EAgO7B,OA3NA,GAAaF,EAAe,CAAC,CAC3Bvve,IAAK,eACL8C,MAAO,WACL,IAzEgB+T,EAyEZ6hU,EAAUv2U,KAEVgue,GA3EYt5d,EA2EqB,WAEnC6hU,EAAQg3J,cAAgBU,MA3EzB,KACH,GAAW,GAebxgZ,GAAK,GAAQ,QAAQ,SAAUygZ,GAC7B,OAAO,WACL,GAAI,GACF,IACE,GAASvwe,SAAQ,SAAUipC,GACzB,OAAOA,OAET,MAAO3/B,IAIX,IAAK,IAAI0yZ,EAAS14Z,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM03Z,GAASr6F,EAAS,EAAGA,EAASq6F,EAAQr6F,IACzF93T,EAAK83T,GAAUr+T,UAAUq+T,GAG3B,OAAO4uK,EAAmBhse,MAAM,GAAQsF,QA1B5C,GAASzF,KAAK2S,GACP,WACL,IAAI25F,EAAM,GAAW,GAASzxG,QAAQ8X,IAAO,EAEzC25F,GAAO,GACT,GAASvvF,OAAOuvF,EAAK,KAoErBruG,KAAKmue,UAAY,WACfH,IACAz3J,EAAQk3J,QAAU,GAClBl3J,EAAQg3J,cAAgB,EACxBh3J,EAAQi3J,YAAc,KAKzB,CACD3ve,IAAK,kBACL8C,MAAO,WACDX,KAAKmue,WACPnue,KAAKmue,YAGHnue,KAAKoue,oBACP/sc,aAAarhC,KAAKoue,sBAKrB,CACDvwe,IAAK,cACL8C,MAAO,SAAqBw3a,EAAYp6Z,GACtC,IA8LN,SAAuBA,EAAMo9c,GAC3B,OAAKkT,GAAgBhwd,SAASN,EAAK+sB,WAKd,UAAjB/sB,EAAK+sB,UAAwB,CAAC,SAAU,UAAUzsB,SAASN,EAAKC,aAAa,SAAW,QAOvE,MAAjBD,EAAK+sB,WAAoB/sB,EAAKE,aAAa,aAAeF,EAAKE,aAAa,WAA6C,UAAhCF,EAAKC,aAAa,gBAI3Gm9c,IAAkBp9c,EAAKsf,QAAQ89b,MA/M3BmT,CAAcvwd,EAAM/d,KAAK+te,kBAsNnC,SAA2B51D,GACzB,SAAUA,EAAWx9a,MAA0C,iBAA3Bw9a,EAAWx9a,KAAK+9d,SAAuBvgD,EAAWpwZ,WAvNhCwmd,CAAkBp2D,GAApE,CAIA,IAAIq2D,EAAW,CACbzmd,UAAWykd,GAAar0D,EAAWpwZ,WACnC0md,gBAAiBt2D,EAEjBu2D,WAAY,EACZ3wd,KAAMA,GAGJ/d,KAAKyte,QAAQrzd,MAAK,SAAUghC,GAC9B,OAAOA,EAAMr9B,OAASywd,EAASzwd,MAAQxP,KAAKmS,IAAI06B,EAAMrzB,UAAYymd,EAASzmd,WAAa,OAK1F/nB,KAAKyte,QAAQ1re,KAAKyse,GAGU,IAAxBxue,KAAKyte,QAAQrre,QACfpC,KAAK2ue,2BAKR,CACD9we,IAAK,mBACL8C,MAAO,WACL,IAAIonB,EAAY9mB,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyH,KAAKO,MACzFjJ,KAAKute,cAAgBf,GAAazkd,KAInC,CACDlqB,IAAK,iBACL8C,MAAO,WACL,IAAIonB,EAAY9mB,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyH,KAAKO,MACzFjJ,KAAKwte,YAAchB,GAAazkd,KAIjC,CACDlqB,IAAK,gBACL8C,MAAO,SAAuB8R,GAC5B,IAAIsL,EAAOgvd,GAAsBt6d,GAEjCzS,KAAK4ue,kBAAkB7wd,KAIxB,CACDlgB,IAAK,oBACL8C,MAAO,SAA2Bod,GAChC/d,KAAK6ue,WAAW9wd,GAAMpgB,SAAQ,SAAUy9C,GACtCA,EAAMszb,kBAKT,CACD7we,IAAK,aACL8C,MAAO,SAAoBod,GACzB,OAAO/d,KAAKyte,QAAQ/ne,QAAO,SAAU01C,GACnC,OAAOA,EAAMr9B,OAASA,OAKzB,CACDlgB,IAAK,eACL8C,MAAO,WACL,IAAI+7U,EAAU18U,KAEV8ue,EAAiB,GACjB7le,EAAMgle,KAEVjue,KAAKyte,QAAQ9ve,SAAQ,SAAUy9C,IACxBA,EAAM2zb,eAAiBryJ,EAAQ6wJ,gBAClCnyb,EAAM2zb,cAAgB3zb,EAAMrzB,WAAa20T,EAAQ6wJ,cAAgB7wJ,EAAQ6wJ,cAAgBnyb,EAAMrzB,eAAYtqB,IAGxG29C,EAAM4zb,aAAetyJ,EAAQ8wJ,cAChCpyb,EAAM4zb,YAAc5zb,EAAMrzB,WAAa20T,EAAQ8wJ,YAAc9wJ,EAAQ8wJ,YAAcpyb,EAAMrzB,eAAYtqB,GAInG29C,EAAMrzB,UAAY20T,EAAQgxJ,UAAYzke,GACxC6le,EAAe/se,KAAKq5C,MAKxB,IAAK,IAAIq4Q,EAAM,EAAGw7K,EAAkBH,EAAgBr7K,EAAMw7K,EAAgB7se,OAAQqxT,IAAO,CACvF,IAAIr4Q,EAAQ6zb,EAAgBx7K,GAExBplN,EAAMruG,KAAKyte,QAAQ7we,QAAQw+C,GAE3BizD,GAAO,IACTruG,KAAKkve,qBAAqB9zb,GAE1Bp7C,KAAKyte,QAAQ3ud,OAAOuvF,EAAK,IAKzBruG,KAAKyte,QAAQrre,QACfpC,KAAK2ue,yBAKR,CACD9we,IAAK,uBACL8C,MAAO,SAA8By6C,GACnC,IAAIsxb,EAAS1se,KAAK8te,QACdqB,EAAY/zb,EAAM4zb,aAAe5zb,EAAM4zb,aAAehve,KAAK4te,eAC3DwB,EAAch0b,EAAM2zb,eAAiB3zb,EAAM2zb,eAAiB/ue,KAAK2te,WACjE0B,GAAeF,IAAcC,EAC7BV,EAAatzb,EAAMszb,WACnBD,EAAkBrzb,EAAMqzb,gBAE5B,GAAIY,EAAJ,CAGE,IAAIC,EAAmF,IAAhE/ge,KAAKM,IAAIusC,EAAM2zb,eAAiB/ue,KAAK0te,SAAU1te,KAAK0te,UACvE6B,EAAYD,EAAmC,IAAhBtve,KAAK0te,SAAkB,WAAa,UACnEv1D,EAAa,CACf7sa,KAAM,UACNvL,QAAS0ue,EAAgB1ue,QACzBgoB,UAAW0md,EAAgB1md,UAC3B5F,SAAU,uBACVxnB,KAAM,GAAc,GAAc,GAAI8ze,EAAgB9ze,MAAO,GAAI,CAC/DgB,IAAK,GAAOgP,SAASX,KACrB4mC,MAAO87b,EAAO8C,kBACdF,iBAAkBA,EAClBC,UAAWA,EAGXb,WAAYA,GAAc,KAI9B1ue,KAAKste,oBAAoBZ,EAAQv0D,QAMnC,GAAIu2D,EAAa,EAAG,CAClB,IAAIe,EAAc,CAChBnke,KAAM,UACNvL,QAAS0ue,EAAgB1ue,QACzBgoB,UAAW0md,EAAgB1md,UAC3B5F,SAAU,gBACVxnB,KAAM,GAAc,GAAc,GAAI8ze,EAAgB9ze,MAAO,GAAI,CAC/DgB,IAAK,GAAOgP,SAASX,KACrB4mC,MAAO87b,EAAO8C,kBACdd,WAAYA,EACZ9xB,QAAQ,KAIZ58c,KAAKste,oBAAoBZ,EAAQ+C,MAKpC,CACD5xe,IAAK,uBACL8C,MAAO,WACL,IAAI0+U,EAAUr/U,KAEVA,KAAKoue,oBACP/sc,aAAarhC,KAAKoue,oBAGpBpue,KAAKoue,mBAAqB,IAAa,WACrC,OAAO/uJ,EAAQqwJ,iBACd,SAIAtC,EAhPwB,GAmP7BiB,GAAkB,CAAC,IAAK,SAAU,SAgCtC,SAASJ,KACP,OAAOvle,KAAKO,MAAQ,IAsDtB,SAAS0me,GAAiBx3D,GACxB,OAAO,GAAc,CACnBpwZ,UAAWrf,KAAKO,MAAQ,IACxBqC,KAAM,WACL6sa,IAKL,SAAW4rC,GACTA,EAASA,EAAmB,SAAI,GAAK,WACrCA,EAASA,EAAuB,aAAI,GAAK,eACzCA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAkB,QAAI,GAAK,UANtC,CAOGA,KAAaA,GAAW,KAI3B,IAAI6rB,GAAuB,IAAIzka,IAAI,CAAC,KAAM,QAAS,aAAc,OAAQ,OAAQ,MAAO,QAAS,eAAgB,cAAe,WAAY,gBAAiB,0BAK7J,SAAS0ka,GAAsBtxd,GAC7B,IAAInV,EAAM,GAMV,IAAK,IAAIvL,KAJJ0gB,EAAW,0BAA4BA,EAAW,yBACrDA,EAAW,yBAA2BA,EAAW,wBAGnCA,EACd,GAAIqxd,GAAqB7oa,IAAIlpE,GAAM,CACjC,IAAIiye,EAAgBjye,EAER,gBAARA,GAAiC,iBAARA,IAC3Biye,EAAgB,UAGlB1me,EAAI0me,GAAiBvxd,EAAW1gB,GAIpC,OAAOuL,EA4BT,SAAS2me,GAAqB/qe,EAAQjF,GACpC,IAAI24d,EAASvjT,GAAOozS,OAAOhE,MAAMv/c,GAC7B+Y,EAAO26c,GAAUvjT,GAAOozS,OAAO7D,QAAQgU,GACvC3yb,EAAOhoB,GAAQo3J,GAAOozS,OAAOnE,QAAQrmc,GACrCtL,EAAUszB,GAuDhB,SAAmBhoB,GACjB,OAAOA,EAAKzS,OAASy4c,GAAS/9P,QAxDR,CAAUjgL,GAAQA,EAAO,KAC/C,MAAO,CACLhmC,QAASA,EACTpF,KAAM8X,EAAU,CACdimd,OAAQA,EACR36c,KAAM,CACJ/a,GAAI01d,EACJ5tb,QAASr4B,EAAQq4B,QACjBiY,YAAa9gD,MAAM4sB,KAAKpc,EAAQ4M,YAAYpE,KAAI,SAAU8C,GACxD,OAAOA,EAAKzS,OAASy4c,GAAS6J,MAAQ7vc,EAAKglC,eAC1Cr9C,OAAO2iH,SACTptG,KAAI,SAAU8vB,GACb,OAAOA,EAAK/jC,UACXgB,KAAK,IACRuW,WAAYsxd,GAAsBp9d,EAAQ8L,cAE1C,IA6GR,IAAIyxd,GAAc,CAEhBn2L,SAiGF,SAA6Bp8P,GAC3B,IAAIuka,EAAYvka,EAAMuka,UAClBiuB,EAAgBxyb,EAAMwyb,cACtB/re,EAAOu5C,EAAMv5C,KACbgse,EAAczyb,EAAMyyb,YACpBlzW,EAAYv/E,EAAMu/E,UAClBmzW,EAAkB1yb,EAAM0yb,gBACxBC,EAAkB3yb,EAAM2yb,gBACxBC,EAAiB5yb,EAAM4yb,eACvBC,EAAe7yb,EAAM6yb,aAEzB,MAAI,CAAC,QAAS,kBAAkBjyd,SAAS4xd,GAChC,KAGF,CACL3ke,KAAM,GAAGnJ,OAAO6/c,EAAW,KAAK7/c,OAAO8te,GACvCjud,MAAOuud,GAAgBvzW,GACvBvwF,IAAK8jc,GAAgBL,GACrBhse,KAAMA,EACNvJ,KAAM,CACJ8d,KAAM63d,EACN3hU,WAAY0hU,EACZF,gBAAiBA,EACjBC,gBAAiBA,KAxHrBI,MAuCF,SAA0B/yb,GACxB,IAAItpC,EAAWspC,EAAMtpC,SACjB6tc,EAAYvka,EAAMuka,UAClB99c,EAAOu5C,EAAMv5C,KAEb8d,EAAQuud,GADI9yb,EAAMu/E,WAEtB,MAAO,CACL1xH,KAAM02c,EACN99c,KAAMA,EACN8d,MAAOA,EACPyqB,IAAKzqB,EAAQ7N,EACbxZ,UAAM8C,IAhDRgze,WAoDF,SAA+Bhzb,GAC7B,IAAIuka,EAAYvka,EAAMuka,UAClB99c,EAAOu5C,EAAMv5C,KACbise,EAAkB1yb,EAAM0yb,gBACxBh8d,EAAWspC,EAAMtpC,SACjBu8d,EAAcjzb,EAAMizb,YACpBN,EAAkB3yb,EAAM2yb,gBACxBO,EAA6Blzb,EAAMkzb,2BACnCC,EAA2Bnzb,EAAMmzb,yBACjCC,EAAiBpzb,EAAMozb,eACvBC,EAAiBrzb,EAAMqzb,eACvBC,EAAetzb,EAAMszb,aACrBC,EAAgBvzb,EAAMuzb,cACtBh0W,EAAYv/E,EAAMu/E,UAClBszW,EAAe7yb,EAAM6yb,aACrBhle,EAAOmyC,EAAMnyC,KAEjB,OAAiB,IAAb6I,EACK,KAGF,CACL7I,KAAM,GAAGnJ,OAAO6/c,EAAW,KAAK7/c,OAAOmJ,GACvC0W,MAAOuud,GAAgBvzW,GACvBvwF,IAAK8jc,GAAgBG,GACrBxse,KAAMA,EACNvJ,KAAM,CACJ8d,KAAM63d,EACNH,gBAAiBA,EACjBC,gBAAiBA,EACjBj8d,SAAUA,EACV08d,eAAgBA,EAChBF,2BAA4BA,EAC5BC,yBAA0BA,EAC1BE,eAAgBA,EAChBC,aAAcA,EACdL,YAAaA,EACbM,cAAeA,MAnFrB,SAASC,GAAgBzud,EAAQkqd,GAC/B,OAAO,SAAU3gP,GACf,IAAI6wN,EAAS7wN,EAAO6wN,OACR8vB,EAAOwE,yBAAyBnve,KAAKygB,EAAOo6b,KAY5D,SAASu0B,GAAuB1zb,GAC9B,IAAIuka,EAAYguB,GAAYvyb,EAAMuka,WAElC,OAAKA,EAIEA,EAAUvka,GAHR,KAMX,SAAS8yb,GAAgBlpZ,GAGvB,QAAS0tV,IAAgC,GAAO1mX,YAAYwmX,YAAcxtV,GAAQ,IA6FpF,SAAS+pZ,GAA0Bx0B,GACjC,IAAI8E,EAAY9E,EAAOp+Z,QAAQo+Z,EAAOp+Z,QAAQp8C,OAAS,GAEvD,OAAOive,GAAYz0B,EAAQ,2BADhB8E,GAAaA,EAAUjvc,QAAU,CAACivc,EAAUjvc,cAAWhV,GAIpE,SAAS6ze,GAAc7zb,GACrB,YAAyBhgD,IAAlBggD,EAAMoM,QAOf,SAAS0nb,GAAyB30B,GAChC,IAII40B,EAJAC,EAAe,GACf92U,EAAQ,GAER+2U,EAAa,GAA2B90B,EAAOp+Z,SAGnD,IACE,IAAKkzb,EAAWjib,MAAO+hb,EAASE,EAAWxib,KAAKrhC,MAAO,CACrD,IAAI4vB,EAAQ+zb,EAAO7we,MAEnB,GAAI2we,GAAc7zb,GAAQ,CACxB,IAGIk0b,EAHAC,EAAU,GAEVC,EAAc,GAA2Bp0b,EAAMoM,SAGnD,IACE,IAAKgob,EAAYpib,MAAOkib,EAAUE,EAAY3ib,KAAKrhC,MAAO,CACxD,IAAIptB,EAASkxe,EAAQhxe,MAErB,GAAIF,EAAOsd,KAAM,CACf48I,EAAM54J,KAAKtB,EAAOsd,MAClB,IAAI26c,EAASvjT,GAAOozS,OAAOhE,MAAM9jd,EAAOsd,MAEpC26c,GACFkZ,EAAQ7ve,KAAK22d,KAInB,MAAO5qc,GACP+jd,EAAY5qe,EAAE6mB,GACd,QACA+jd,EAAY//c,IAGd2/c,EAAa1ve,KAAK,CAChBpB,MAAO88C,EAAM98C,MACbixe,QAASA,EAAQxve,OAASwve,OAAUn0e,MAI1C,MAAOqwB,GACP4jd,EAAWzqe,EAAE6mB,GACb,QACA4jd,EAAW5/c,IAGb,OAAOu/c,GAAYz0B,EAAQ,0BAA2BjiT,EAAO82U,GAO/D,SAASK,GAAmBl1B,GAC1B,IAAI8E,EAAY9E,EAAOp+Z,QAAQo+Z,EAAOp+Z,QAAQp8C,OAAS,GAEvD,OAAOive,GAAYz0B,EAAQ,oBADhB8E,GAAaA,EAAU18c,OAAS,CAAC08c,EAAU18c,aAAUvH,GAQlE,SAASs0e,GAA0Bn1B,GACjC,IAAI8E,EAAY9E,EAAOp+Z,QAAQo+Z,EAAOp+Z,QAAQp8C,OAAS,GAEvD,OAAOive,GAAYz0B,EAAQ,4BADhB8E,GAAaA,EAAU18c,OAAS,CAAC08c,EAAU18c,aAAUvH,GAQlE,SAAS4ze,GAAYz0B,EAAQ14c,EAAMy2J,EAAOq3U,GACxC,IAAIrxe,EAAQi8c,EAAOj8c,MACfo8c,EAASH,EAAOG,OAChBtwa,EAAM8jc,GAAgB5ve,GAC1B,MAAO,CACL2K,KAAM,YACNpH,KAAMA,EACN8d,MAAOyqB,EACPA,IAAKA,EACL9xC,KAAM,CACJgG,MAAOA,EACP8X,KAAM9X,EACNo8c,OAAQA,EACR60B,QAASj3U,EAAQA,EAAM1/I,KAAI,SAAU8C,GACnC,OAAOo3J,GAAOozS,OAAOhE,MAAMxmc,WACxBtgB,EACLu0e,aAAcA,IA6CpB,IAAIC,GAA4C,SAAUzmP,GACxD,GAAUymP,EAA8BzmP,GAExC,IAAIC,EAAS,GAAawmP,GAE1B,SAASA,IAGP,OAFA,GAAgBjye,KAAMiye,GAEfxmP,EAAO9nP,KAAK3D,KAAM,yCAAyCmC,OAAOwgd,GAA8B,MAGzG,OAAO,GAAasvB,GAX0B,CAYhC,GAAiBzue,QAO7B0ue,GAAgC,WAIlC,SAASA,IACP,GAAgBlye,KAAMkye,GAEtBlye,KAAKqkB,OAAS,GACdrkB,KAAKmye,WAAa,EAClBnye,KAAKoye,aAAc,EA4BZ,IACDC,EA6ER,OArGA,GAAaH,EAAkB,CAAC,CAC9Br0e,IAAK,YACL4jB,IAAK,WACH,OAAOzhB,KAAKqkB,OAAOjiB,OAAS,IAI7B,CACDvE,IAAK,OACL4jB,IAAK,WACH,MAAO,SAIR,CACD5jB,IAAK,UACL8C,MAAO,WACLX,KAAKqkB,OAAS,KAIf,CACDxmB,IAAK,WACL8C,OACM0xe,EAAa,GAAgC,SAAyB,SAASh2Q,EAAQz3M,GACzF,IAAI0td,EACJ,OAAO,SAAyB,SAAkBv0Q,GAChD,OACE,OAAQA,EAAU3sL,KAAO2sL,EAAUhwM,MACjC,KAAK,EAIH,GAHAukd,EAAYxre,KAAKI,UAAU0d,GAAOxiB,OAClCpC,KAAKmye,YAAcG,IAEbtye,KAAKmye,WAAaxvB,IAA+B,CACrD5kP,EAAUhwM,KAAO,EACjB,MAGF,MAAM,IAAIkkd,GAEZ,KAAK,EACHjye,KAAKqkB,OAAOtiB,KAAK6iB,GAEnB,KAAK,EACL,IAAK,MACH,OAAOm5M,EAAUvtN,UAGtB6rN,EAASr8N,UAGd,SAAkBs+N,GAChB,OAAO+zQ,EAAWnwe,MAAMlC,KAAMiB,cAOjC,CACDpD,IAAK,SACL8C,MAAO,WACL,IAAIogV,EAAU/gV,KAEd,OAAO,IAAIzF,SAAQ,SAAUC,GAI3B,IAAI+3e,EAAYxxJ,EAAQ18T,OAExB08T,EAAQj4S,QAERtuC,EAAQsM,KAAKI,UAAUqre,SAK1B,CACD10e,IAAK,QACL8C,MAAO,WACLX,KAAKqkB,OAAS,GACdrkB,KAAKmye,WAAa,EAClBnye,KAAKoye,aAAc,IAIpB,CACDv0e,IAAK,uBACL8C,MAAO,WACL,IAAIonB,EAAY/nB,KAAKqkB,OAAOpJ,KAAI,SAAU2J,GACxC,OAAOA,EAAMmD,aACZc,OAAO,GAEV,OAAKd,EAIEwkd,GAAcxkd,GAHZ,SAONmqd,EAnH2B,GA2HhCM,GAA6B,WAC/B,SAASA,EAAc/lb,GACrB,GAAgBzsD,KAAMwye,GAEtBxye,KAAKyye,QAAUhmb,EACfzsD,KAAKo7Z,IAAM,EA6Gb,OArGA,GAAao3E,EAAe,CAAC,CAC3B30e,IAAK,cACL8C,MAAO,WACL,IAAIihV,EAAU5hV,KAGd,OAAIA,KAAK0ye,sBAIT1ye,KAAK0ye,oBAAsB,IAAIn4e,SAAQ,SAAUC,EAASC,GACxDmnV,EAAQ6wJ,QAAQv0e,iBAAiB,WAAW,SAAUkvP,GACzCA,EAAOzyP,KAETuoC,QACP1oC,IAEAC,MAED,CACDi0F,MAAM,IAGRkzP,EAAQ6wJ,QAAQv0e,iBAAiB,SAAS,SAAUuE,GAClDhI,EAAOgI,KACN,CACDisF,MAAM,QAnBD1uF,KAAK0ye,sBA4Bf,CACD70e,IAAK,UACL8C,MAAO,WACL,IAAe,GAAO+8B,KAAK,iCAE3B19B,KAAKyye,QAAQ1lb,cAMd,CACDlvD,IAAK,cACL8C,MAAO,SAAqBvE,EAAQuxB,GAClC,IAAI60T,EAAUxiV,KAEVgD,EAAKhD,KAAK2ye,qBAEd,OAAO,IAAIp4e,SAAQ,SAAUC,EAASC,GA8BpC+nV,EAAQiwJ,QAAQv0e,iBAAiB,WA7BlB,SAASmxB,EAAS4+N,GAC/B,IACIlyP,EADOkyP,EAAOtzP,KAGlB,GAAIoB,EAASK,SAAWA,GAMpBL,EAASiH,KAAOA,EAApB,CAOA,GAFAw/U,EAAQiwJ,QAAQlud,oBAAoB,UAAW8K,IAE1CtzB,EAASmnC,QAIZ,OAFA,IAAe,GAAOzgC,MAAM,gCAAiC1G,EAASA,eACtEtB,EAAO,IAAI+I,MAAM,gCAInBhJ,EAAQuB,EAASA,cAOnBymV,EAAQiwJ,QAAQ3lb,YAAY,CAC1B9pD,GAAIA,EACJ5G,OAAQA,EACRuxB,IAAKA,SAMV,CACD9vB,IAAK,qBACL8C,MAAO,WACL,OAAOX,KAAKo7Z,UAITo3E,EAlHwB,GA0H7BI,GAA4C,WAE9C,SAASA,EAA6Bnmb,GACpC,GAAgBzsD,KAAM4ye,GAEtB5ye,KAAKyye,QAAU,IAAID,GAAc/lb,GACjCzsD,KAAK6ye,mBAAqB,KAC1B7ye,KAAKmye,WAAa,EAClBnye,KAAKoye,aAAc,EAwGZ,IACDU,EA+BR,OAnIA,GAAaF,EAA8B,CAAC,CAC1C/0e,IAAK,YACL4jB,IAAK,WACH,QAASzhB,KAAK6ye,qBAIf,CACDh1e,IAAK,OACL4jB,IAAK,WACH,MAAO,WAOR,CACD5jB,IAAK,cACL8C,MAAO,WACL,OAAOX,KAAKyye,QAAQM,gBAMrB,CACDl1e,IAAK,UACL8C,MAAO,WACLX,KAAKyye,QAAQvud,YAQd,CACDrmB,IAAK,WACL8C,MAAO,SAAkBikB,GACvB,IAAImD,EAAYwkd,GAAc3nd,EAAMmD,aAE/B/nB,KAAK6ye,oBAAsB9qd,EAAY/nB,KAAK6ye,sBAC/C7ye,KAAK6ye,mBAAqB9qd,GAG5B,IAAIptB,EAAOmM,KAAKI,UAAU0d,GAG1B,OAFA5kB,KAAKmye,YAAcx3e,EAAKyH,OAEpBpC,KAAKmye,WAAaxvB,GACbpod,QAAQE,OAAO,IAAIw3e,IAGrBjye,KAAKgze,mBAAmBr4e,KAMhC,CACDkD,IAAK,SACL8C,MAAO,WACL,OAAOX,KAAKize,mBAIb,CACDp1e,IAAK,QACL8C,MAAO,WACLX,KAAK6ye,mBAAqB,KAC1B7ye,KAAKmye,WAAa,EAClBnye,KAAKoye,aAAc,EAEnBpye,KAAKyye,QAAQ3lb,YAAY,SAASvuD,KAAK,MAAM,SAAU0I,GACrD,IAAe,GAAOqwK,UAAUrwK,EAAG,2CAA4CA,QAKlF,CACDpJ,IAAK,uBACL8C,MAAO,WACL,OAAOX,KAAK6ye,qBAMb,CACDh1e,IAAK,qBACL8C,MAAO,SAA4BhG,GACjC,OAAOqF,KAAKyye,QAAQ3lb,YAAY,WAAYnyD,KAM7C,CACDkD,IAAK,iBACL8C,OACMmye,EAAkB,GAAgC,SAAyB,SAASh1Q,IACtF,IAAI/hO,EACJ,OAAO,SAAyB,SAAmBqiO,GACjD,OACE,OAAQA,EAAUhtL,KAAOgtL,EAAUrwM,MACjC,KAAK,EAEH,OADAqwM,EAAUrwM,KAAO,EACV/tB,KAAKyye,QAAQ3lb,YAAY,UAElC,KAAK,EAIH,OAHA/wD,EAAWqiO,EAAUrpD,KACrB/0K,KAAK6ye,mBAAqB,KAC1B7ye,KAAKmye,WAAa,EACX/zQ,EAAUlpD,OAAO,SAAUn5K,GAEpC,KAAK,EACL,IAAK,MACH,OAAOqiO,EAAU5tN,UAGtBstN,EAAU99N,UAGf,WACE,OAAO8ye,EAAgB5we,MAAMlC,KAAMiB,gBAOlC2xe,EAhJuC,GAyJ5CM,GAAgC,WAClC,SAASA,EAAiBzmb,GACxB,GAAgBzsD,KAAMkze,GAEtBlze,KAAKmze,UAAY,IAAIjB,GACrBlye,KAAKoze,aAAe,IAAIR,GAA6Bnmb,GACrDzsD,KAAKqze,MAAQrze,KAAKmze,UAClBnze,KAAKsze,6BAA+Btze,KAAKuze,wBAoJlC,IACDC,EA5CAC,EArCAC,EA4IR,OA3MA,GAAaR,EAAkB,CAAC,CAC9Br1e,IAAK,OACL4jB,IAAK,WACH,OAAOzhB,KAAKqze,MAAM/ne,OAInB,CACDzN,IAAK,YACL4jB,IAAK,WACH,OAAOzhB,KAAKqze,MAAMM,YAInB,CACD91e,IAAK,cACL4jB,IAAK,WACH,OAAOzhB,KAAKqze,MAAMjB,aAIpB5wd,IAAK,SAAa7gB,GAChBX,KAAKqze,MAAMjB,YAAczxe,IAI1B,CACD9C,IAAK,UACL8C,MAAO,WACLX,KAAKmze,UAAUjvd,UAEflkB,KAAKoze,aAAalvd,YAInB,CACDrmB,IAAK,QACL8C,MAAO,WACL,OAAOX,KAAKqze,MAAMvqc,UAInB,CACDjrC,IAAK,uBACL8C,MAAO,WACL,OAAOX,KAAKqze,MAAMO,yBAQnB,CACD/1e,IAAK,WACL8C,MAAO,SAAkBikB,GACvB,OAAO5kB,KAAKqze,MAAM1gD,SAAS/ta,KAI5B,CACD/mB,IAAK,SACL8C,OACM+ye,EAAU,GAAgC,SAAyB,SAASv1Q,IAC9E,OAAO,SAAyB,SAAmBO,GACjD,OACE,OAAQA,EAAUttL,KAAOstL,EAAU3wM,MACjC,KAAK,EAEH,OADA2wM,EAAU3wM,KAAO,EACV/tB,KAAK6ze,uBAEd,KAAK,EACH,OAAOn1Q,EAAUxpD,OAAO,SAAUl1K,KAAKqze,MAAMxrU,UAE/C,KAAK,EACL,IAAK,MACH,OAAO62D,EAAUluN,UAGtB2tN,EAAUn+N,UAGf,WACE,OAAO0ze,EAAQxxe,MAAMlC,KAAMiB,cAO9B,CACDpD,IAAK,uBACL8C,MAAO,WACL,OAAOX,KAAKsze,+BAIb,CACDz1e,IAAK,wBACL8C,OACM8ye,EAAyB,GAAgC,SAAyB,SAASh1Q,IAC7F,OAAO,SAAyB,SAAmBU,GACjD,OACE,OAAQA,EAAU/tL,KAAO+tL,EAAUpxM,MACjC,KAAK,EAGH,OAFAoxM,EAAU/tL,KAAO,EACjB+tL,EAAUpxM,KAAO,EACV/tB,KAAKoze,aAAaL,cAE3B,KAAK,EACH5zQ,EAAUpxM,KAAO,EACjB,MAEF,KAAK,EAMH,OALAoxM,EAAU/tL,KAAO,EACjB+tL,EAAUyV,GAAKzV,EAAiB,MAAE,GAGlC,IAAe,GAAO7nD,UAAU6nD,EAAUyV,GAAI,wEACvCzV,EAAUjqD,OAAO,UAE1B,KAAK,EAEH,OADAiqD,EAAUpxM,KAAO,GACV/tB,KAAK8ze,6BAEd,KAAK,GACL,IAAK,MACH,OAAO30Q,EAAU3uN,UAGtBiuN,EAAUz+N,KAAM,CAAC,CAAC,EAAG,SAG1B,WACE,OAAOyze,EAAuBvxe,MAAMlC,KAAMiB,cAO7C,CACDpD,IAAK,6BACL8C,OACM6ye,EAA8B,GAAgC,SAAyB,SAASt0Q,IAClG,IAAI60Q,EAAiB1vd,EAAQ+td,EAAa4B,EAAkBC,EAAaC,EAAStvd,EAElF,OAAO,SAAyB,SAAmBs7M,GACjD,OACE,OAAQA,EAAU9uL,KAAO8uL,EAAUnyM,MACjC,KAAK,EACHgmd,EAAkB/ze,KAAKmze,UAAW9ud,EAAS0vd,EAAgB1vd,OAAQ+td,EAAc2B,EAAgB3B,YACjG4B,EAAmB,GACnBC,EAAc,GAA2B5vd,GAEzC,IACE,IAAK4vd,EAAYxkb,MAAOykb,EAAUD,EAAY/kb,KAAKrhC,MACjDjJ,EAAQsvd,EAAQvze,MAChBqze,EAAiBjye,KAAK/B,KAAKoze,aAAazgD,SAAS/ta,IAEnD,MAAOkJ,GACPmmd,EAAYhte,EAAE6mB,GACd,QACAmmd,EAAYnid,IAUd,OAPA9xB,KAAKoze,aAAahB,YAAcA,EAGhCpye,KAAKqze,MAAQrze,KAAKoze,aAElBlzQ,EAAU9uL,KAAO,EACjB8uL,EAAUnyM,KAAO,EACVxzB,QAAQoF,IAAIq0e,GAErB,KAAK,EAEHh0e,KAAKmze,UAAUrqc,QAEfo3L,EAAUnyM,KAAO,GACjB,MAEF,KAAK,GACHmyM,EAAU9uL,KAAO,GACjB8uL,EAAU0U,GAAK1U,EAAiB,MAAE,GAClC,IAAe,GAAO5oD,UAAU4oD,EAAU0U,GAAI,gDAEhD,KAAK,GACL,IAAK,MACH,OAAO1U,EAAU1vN,UAGtB0uN,EAAUl/N,KAAM,CAAC,CAAC,EAAG,UAG1B,WACE,OAAOwze,EAA4Btxe,MAAMlC,KAAMiB,gBAO9Ciye,EAvN2B,GAyQpC,SAASiB,KACP,IAEE,MAAO,mBAAoB,MAAY,GAAOC,eAC9C,MAAOnte,GACP,OAAO,GAQX,SAASote,GAAa3H,IAStB,WACE,GAAKyH,KAIL,IACE,GAAOC,eAAeE,WAAWjyB,IACjC,MAAOp7c,KAfTste,GACA7H,EAAOl3D,aAAU/3a,EAyBnB,SAAS+2e,GAAUnnD,GACjB,YAAmB5vb,IAAf4vb,GAKG9+a,KAAK2e,SAAWmga,EAOzB,SAAS,GAAY7X,GACnB,IAAIvsa,EAAMP,KAAKO,MAQf,MAAO,CACLjG,GAROwya,EAAQxya,IAAM,KASrB4xH,QAPY4gT,EAAQ5gT,SAAW3rH,EAQ/Bwre,aAPiBj/D,EAAQi/D,cAAgBxre,EAQzCyre,UAPcl/D,EAAQk/D,WAAa,EAQnC7zD,QAPYrL,EAAQqL,QAQpB8zD,kBAPsBn/D,EAAQm/D,mBAelC,SAASC,GAAYp/D,GACnB,GAAK2+D,KAIL,IACE,GAAOC,eAAeS,QAAQxyB,GAAoBv7c,KAAKI,UAAUsua,IACjE,MAAOvua,KAQX,SAAS6te,GAAqBC,EAAmBC,GAC/C,OAAOR,GAAUO,GAAqB,YAAYC,GAAiB,SASrE,SAASC,GAAc1gP,GACrB,IAAIwgP,EAAoBxgP,EAAOwgP,kBAC3BC,EAAiBzgP,EAAOygP,eACxBE,EAAuB3gP,EAAO4gP,cAC9BA,OAAyC,IAAzBD,GAA0CA,EAE1Dt/O,EAAS30P,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC7E0ze,EAAoB/+O,EAAO++O,kBAE3B9zD,EAAUi0D,GAAqBC,EAAmBC,GAClDx/D,EAAU,GAAY,CACxBqL,QAASA,EACT8zD,kBAAmBA,IAOrB,OAJIQ,GACFP,GAAYp/D,GAGPA,EAiCT,SAAS4/D,GAAUC,EAAaC,GAC9B,IAAItiN,EAAa/xR,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,IAAM,IAAIyH,KAG1F,OAAoB,OAAhB2se,QAAmC53e,IAAX63e,GAAwBA,EAAS,GAK9C,IAAXA,GAIGD,EAAcC,GAAUtiN,EAOjC,SAASuiN,GAAiB//D,EAASr/K,GACjC,IAAIq/O,EAAoBr/O,EAAOq/O,kBAC3BC,EAAoBt/O,EAAOs/O,kBAC3BC,EAAoBv/O,EAAO68B,WAC3BA,OAAmC,IAAtB0iN,EAA+Bhte,KAAKO,MAAQyse,EAC7D,OACEN,GAAU5/D,EAAQ5gT,QAAS4gX,EAAmBxiN,IAE9CoiN,GAAU5/D,EAAQi/D,aAAcgB,EAAmBziN,GAMvD,SAAS2iN,GAAqBngE,EAAS5+K,GAKrC,QAAK2+O,GAAiB//D,EAAS,CAC7BigE,kBALsB7+O,EAAO6+O,kBAM7BD,kBALsB5+O,EAAO4+O,sBAWP,WAApBhgE,EAAQqL,SAA8C,IAAtBrL,EAAQk/D,WAY9C,SAASkB,GAAoB1+O,EAAQ2+O,GACnC,IAAIJ,EAAoBv+O,EAAOu+O,kBAC3BD,EAAoBt+O,EAAOs+O,kBAC3Bb,EAAoBz9O,EAAOy9O,kBAC3BmB,EAAkBD,EAAeV,eAzFvC,WACE,IAAKhB,KACH,OAAO,KAGT,IAEE,IAAI4B,EAA2B,GAAO3B,eAAe4B,QAAQ3zB,IAE7D,IAAK0zB,EACH,OAAO,KAGT,IAAIE,EAAanve,KAAKC,MAAMgve,GAE5B,OADA,IAAe,GAAO5J,SAAS,4BACxB,GAAY8J,GACnB,MAAOhve,GACP,OAAO,MAwE6Cive,GAEtD,OAAKJ,EAOAH,GAAqBG,EAAiB,CACzCL,kBAAmBA,EACnBD,kBAAmBA,KAKrB,IAAe,GAAOrJ,SAAS,6DACxB8I,GAAcY,EAAgB,CACnClB,kBAAmBmB,EAAgB9ye,MAL5B8ye,GAVP,IAAe,GAAO3J,SAAS,wBACxB8I,GAAcY,EAAgB,CACnClB,kBAAmBA,KA8BzB,SAASwB,GAAazJ,EAAQ9nd,EAAOghd,GACnC,QAAKwQ,GAAe1J,EAAQ9nd,KAM5Byxd,GAAU3J,EAAQ9nd,EAAOghd,IAElB,GAkBT,SAASyQ,GAAU/6P,EAAKC,EAAK2B,GAC3B,OAAOo5P,GAAWp0e,MAAMlC,KAAMiB,WAKhC,SAASq1e,KAkEP,OAjEAA,GAAa,GAAgC,SAAyB,SAASprP,EAAUwhP,EAAQ9nd,EAAOghd,GACtG,IAAI2Q,EAAeC,EAA4Bj2e,EAAQs/C,EACvD,OAAO,SAAyB,SAAoB6sM,GAClD,OACE,OAAQA,EAAWt7M,KAAOs7M,EAAW3+N,MACnC,KAAK,EACH,GAAI2+c,EAAO+J,YAAa,CACtB/pP,EAAW3+N,KAAO,EAClB,MAGF,OAAO2+N,EAAWx3E,OAAO,SAAU,MAErC,KAAK,EAcH,GAbAw3E,EAAWt7M,KAAO,EAEdw0b,GAAuC,WAAzB8G,EAAOgK,eACvBhK,EAAO+J,YAAY3tc,QAGjB88b,IACF8G,EAAO+J,YAAYrE,aAAc,GAGnCmE,EAAgB7J,EAAOx6c,aACvBskd,EAA6BG,GAAmB/xd,EAAO2xd,EAAcK,yBAErC,CAC9BlqP,EAAW3+N,KAAO,EAClB,MAGF,OAAO2+N,EAAWx3E,OAAO,UAE3B,KAAK,EAEH,OADAw3E,EAAW3+N,KAAO,GACX2+c,EAAO+J,YAAY9jD,SAAS6jD,GAErC,KAAK,GACH,OAAO9pP,EAAWx3E,OAAO,SAAUw3E,EAAW33E,MAEhD,KAAK,GAMH,OALA23E,EAAWt7M,KAAO,GAClBs7M,EAAW9X,GAAK8X,EAAkB,MAAE,GACpCnsP,EAASmsP,EAAW9X,IAAM8X,EAAW9X,cAAcq9P,GAA+B,uBAAyB,WAC3GvF,EAAOmK,gBAAgBnqP,EAAW9X,IAClC8X,EAAW3+N,KAAO,GACX2+c,EAAOl8d,KAAK,CACjBjQ,OAAQA,IAGZ,KAAK,IACHs/C,EAAS,OAGPA,EAAO00Y,mBAAmB,qBAAsB,UAGpD,KAAK,GACL,IAAK,MACH,OAAO7nM,EAAWl8O,UAGvB06O,EAAW,KAAM,CAAC,CAAC,EAAG,WAEThpP,MAAMlC,KAAMiB,WAGhC,SAASm1e,GAAe1J,EAAQ9nd,GAC9B,IAAK8nd,EAAO+J,aAAe/J,EAAO/nH,aAAe+nH,EAAOp7D,YACtD,OAAO,EAGT,IAAIwlE,EAAgBvK,GAAc3nd,EAAMmD,WAKxC,QAAI+ud,EAAgBpK,EAAOqK,SAASC,iBAAmBtue,KAAKO,OAKxD6te,EAAgBpK,EAAOx9d,aAAa+ne,iBAAmBvK,EAAOx6c,aAAasjd,oBAC7E,IAAe,GAAOrJ,SAAS,iCAAiChqe,OAAO20e,EAAe,2CAC/E,IAMX,SAASH,GAAmB/xd,EAAOzZ,GACjC,IACE,GAAwB,mBAAbA,GA5If,SAAuByZ,GACrB,OAAOA,EAAMtZ,OAAS6od,GAAUkS,OA2IQ6Q,CAActyd,GAClD,OAAOzZ,EAASyZ,GAElB,MAAOniB,GAEP,OADA,IAAe,GAAO60K,UAAU70K,EAAO,sFAChC,KAGT,OAAOmiB,EAKT,SAAS,GAAaA,GACpB,OAAQA,EAAMtZ,KAKhB,SAAS,GAAmBsZ,GAC1B,MAAsB,gBAAfA,EAAMtZ,KAWf,SAAS6re,GAAgBvyd,GACvB,MAAsB,aAAfA,EAAMtZ,KAqOf,SAAS8re,GAAyBj/D,GAChC,QAASA,EAAWh2Z,SAsJtB,SAASk1d,GAAuB3K,EAAQlub,GACtC,OAAOA,EAAQvjC,KAAI,SAAU0/O,GAC3B,IAAIrvP,EAAOqvP,EAAOrvP,KACd0W,EAAQ24O,EAAO34O,MACfyqB,EAAMkuN,EAAOluN,IACbvoC,EAAOy2P,EAAOz2P,KACdvJ,EAAOggQ,EAAOhgQ,KACdoB,EAAW2we,EAAOI,kBAAkB,CACtCxhe,KAAM6od,GAAUkS,OAChBt+c,UAAW/F,EACXrnB,KAAM,CACJwX,IAAK,kBACL3I,QAAS,CACPq5a,GAAIv3a,EACJnH,YAAaD,EACb8ub,eAAgBhxa,EAChBqxa,aAAc5mZ,EACd9xC,KAAMA,MAKZ,MAA2B,iBAAboB,EAAwBxB,QAAQC,QAAQ,MAAQuB,KA8DlE,SAASu7e,GAAqB5K,EAAQlge,GAC/Bkge,EAAOp7D,aAIG,OAAX9ka,IAhBN,SAA6Bkge,EAAQ/we,GAEnC,QAAI,KAAe+we,EAAOx6c,aAAaqld,aAAajL,iBAI7C/yB,GAAmB59c,EAAK,MAc3B67e,CAAoB9K,EAAQlge,EAAOtI,OAIvCwoe,EAAOG,WAAU,WAKf,OAJAwK,GAAuB3K,EAAQ,CAAClge,KAIzB,MAMX,SAASire,GAAY14c,GACnB,GAAKA,EAAL,CAIA,IAAI24c,EAAc,IAAI9nD,YAEtB,IACE,GAAoB,iBAAT7wZ,EACT,OAAO24c,EAAYhwe,OAAOq3B,GAAM38B,OAGlC,GAAI28B,aAAgB9xB,gBAClB,OAAOyqe,EAAYhwe,OAAOq3B,EAAK9+B,YAAYmC,OAG7C,GAAI28B,aAAgBlyB,SAAU,CAC5B,IAAI8qe,EAAcC,GAAmB74c,GAErC,OAAO24c,EAAYhwe,OAAOiwe,GAAav1e,OAGzC,GAAI28B,aAAgB9B,KAClB,OAAO8B,EAAKtmB,KAGd,GAAIsmB,aAAgBjyB,YAClB,OAAOiyB,EAAKgyC,WAGd,MAAO9pE,MAQX,SAAS4we,GAAyBrsd,GAChC,GAAKA,EAAL,CAIA,IAAI/S,EAAOyM,SAASsG,EAAQ,IAC5B,OAAOkpC,MAAMj8C,QAAQhb,EAAYgb,GAKnC,SAASq/d,GAAc/4c,GACrB,IACE,GAAoB,iBAATA,EACT,MAAO,CAACA,GAGV,GAAIA,aAAgB9xB,gBAClB,MAAO,CAAC8xB,EAAK9+B,YAGf,GAAI8+B,aAAgBlyB,SAClB,MAAO,CAAC+qe,GAAmB74c,IAG7B,IAAKA,EACH,MAAO,MAACthC,GAEV,MAAOgF,GAEP,OADA,IAAe,GAAO60K,UAAU70K,EAAO,2BAA4Bs8B,GAC5D,MAACthC,EAAW,oBAIrB,OADA,IAAe,GAAOigC,KAAK,6CAA8CqB,GAClE,MAACthC,EAAW,yBAKrB,SAASs6e,GAAar6c,EAAM+sF,GAC1B,IAAK/sF,EACH,MAAO,CACL7iC,QAAS,GACT4d,UAAMhb,EACNu6e,MAAO,CACLC,SAAU,CAACxtX,KAKjB,IAAIytX,EAAU,GAAc,GAAIx6c,EAAKs6c,OAEjCG,EAAmBD,EAAQD,UAAY,GAG3C,OAFAC,EAAQD,SAAW,GAAG91e,OAAO,GAAmBg2e,GAAmB,CAAC1tX,IACpE/sF,EAAKs6c,MAAQE,EACNx6c,EAKT,SAAS06c,GAA4B9se,EAAM3Q,GACzC,OAAKA,EAWQ,CACX2Q,KAAMA,EACN0W,MATmBrnB,EAAKq4b,eASA,IACxBvmZ,IATiB9xC,EAAK04b,aASF,IACpBnvb,KATQvJ,EAAKgB,IAUbhB,KAAMm4a,GAAkB,CACtB12a,OAVSzB,EAAKyB,OAWduyK,WAVah0K,EAAKg0K,WAWlB3zK,QAVUL,EAAKK,QAWfe,SAVWpB,EAAKoB,YATX,KA2BX,SAASs8e,GAAqCzmN,GAC5C,MAAO,CACL/2R,QAAS,GACT4d,KAAMm5Q,EACNomN,MAAO,CACLC,SAAU,CAAC,iBAOjB,SAASK,GAA8Bz9e,EAAS+2R,EAAU7yP,GACxD,GAAK6yP,GAA4C,IAAhCpsR,OAAOC,KAAK5K,GAASuH,OAAtC,CAIA,IAAKwvR,EACH,MAAO,CACL/2R,QAASA,GAIb,IAAKkkC,EACH,MAAO,CACLlkC,QAASA,EACT4d,KAAMm5Q,GAIV,IAAIl0P,EAAO,CACT7iC,QAASA,EACT4d,KAAMm5Q,GAGJ2mN,EAwCN,SAA8Bx5c,GAC5B,IAAKA,GAAwB,iBAATA,EAClB,MAAO,CACLA,KAAMA,GAIV,IAAIy5c,EAAmBz5c,EAAK38B,OAASqgd,GAEjCg2B,EAiCN,SAA4Bnre,GAC1B,IAAIsoF,EAAQtoF,EAAI,GACZi5B,EAAOj5B,EAAIA,EAAIlL,OAAS,GAE5B,MAAiB,MAAVwzF,GAA0B,MAATrvD,GAA0B,MAAVqvD,GAA0B,MAATrvD,EArCpCmyc,CAAmB35c,GAExC,GAAIy5c,EAAkB,CACpB,IAAIG,EAAgB55c,EAAK55B,MAAM,EAAGs9c,IAElC,OAAIg2B,EACK,CACL15c,KAAM45c,EACNV,SAAU,CAAC,yBAIR,CACLl5c,KAAM,GAAG58B,OAAOw2e,EAAe,KAC/BV,SAAU,CAAC,mBAIf,GAAIQ,EACF,IAEE,MAAO,CACL15c,KAFaj4B,KAAKC,MAAMg4B,IAI1B,MAAO2wa,IAIX,MAAO,CACL3wa,KAAMA,GA9EoB65c,CAAqB75c,GAC7C85c,EAAiBN,EAAsBx5c,KACvCk5c,EAAWM,EAAsBN,SAUrC,OARAv6c,EAAKqB,KAAO85c,EAERZ,GAAYA,EAAS71e,OAAS,IAChCs7B,EAAKs6c,MAAQ,CACXC,SAAUA,IAIPv6c,GAKT,SAASo7c,GAAkBj+e,EAASk+e,GAClC,OAAOvze,OAAOg5C,QAAQ3jD,GAASme,QAAO,SAAUgge,EAAiB/8O,GAC/D,IAAIe,EAAS,GAAef,EAAQ,GAChCp+P,EAAMm/P,EAAO,GACbr8P,EAAQq8P,EAAO,GAEf8yO,EAAgBjye,EAAIC,cAMxB,OAJIi7e,EAAe16d,SAASyxd,IAAkBj1e,EAAQgD,KACpDm7e,EAAgBlJ,GAAiBnve,GAG5Bq4e,IACN,IAGL,SAASpB,GAAmBp2c,GAI1B,OAAO,IAAIv0B,gBAAgBu0B,GAAUvhC,WAsDvC,SAASg5e,GAAWt9e,EAAKu9e,GACvB,IAAIC,EAMN,SAAoBx9e,GAClB,IAAIy9e,EAAUn4e,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAAO2H,SAASwwe,QAGlG,GAAIz9e,EAAIm4F,WAAW,YAAcn4F,EAAIm4F,WAAW,aAAen4F,EAAIm4F,WAAW,GAAOnpF,SAASm5B,QAC5F,OAAOnoC,EAGT,IAAI09e,EAAW,IAAI9sb,IAAI5wD,EAAKy9e,GAE5B,GAAIC,EAASv1c,SAAW,IAAIyoB,IAAI6sb,GAASt1c,OACvC,OAAOnoC,EAGT,IAAIw9e,EAAUE,EAASrve,KAEvB,OAAKrO,EAAIs1F,SAAS,MAAQkoZ,EAAQloZ,SAAS,KAClCkoZ,EAAQh0e,MAAM,GAAI,GAGpBg0e,EA1BOG,CAAW39e,GACzB,OAAOq2a,GAAyBmnE,EAASD,GA2C3C,SAASK,KA+BP,OA9BAA,GAAkC,GAAgC,SAAyB,SAAS9sP,EAAU0rL,EAAYzzR,EAAM5hJ,GAC9H,IAAInI,EAAM6R,EACV,OAAO,SAAyB,SAAoB+gP,GAClD,OACE,OAAQA,EAAWn8M,KAAOm8M,EAAWx/N,MACnC,KAAK,EAGH,OAFAw/N,EAAWn8M,KAAO,EAClBm8M,EAAWx/N,KAAO,EACXyrd,GAAkBrhE,EAAYzzR,EAAM5hJ,GAE7C,KAAK,EACHnI,EAAO4yP,EAAWx4E,KAElBvoK,EAAS4re,GAA4B,iBAAkBz9e,GACvD28e,GAAqBx0e,EAAQ4pe,OAAQlge,GACrC+gP,EAAWx/N,KAAO,GAClB,MAEF,KAAK,EACHw/N,EAAWn8M,KAAO,EAClBm8M,EAAW3Y,GAAK2Y,EAAkB,MAAE,GACpC,IAAe,GAAOj2E,UAAUi2E,EAAW3Y,GAAI,sCAEjD,KAAK,GACL,IAAK,MACH,OAAO2Y,EAAW/8O,UAGvBi8O,EAAW,KAAM,CAAC,CAAC,EAAG,SAEpB8sP,GAAgCr3e,MAAMlC,KAAMiB,WAmBrD,SAASu4e,GAAkBr6P,EAAKC,EAAKI,GACnC,OAAOi6P,GAAmBv3e,MAAMlC,KAAMiB,WAGxC,SAASw4e,KAmCP,OAlCAA,GAAqB,GAAgC,SAAyB,SAASpsP,EAAU8qL,EAAYzzR,EAAM5hJ,GACjH,IAAImG,EAAKywe,EAAuB1mD,EAAgB2mD,EAAqBtmD,EAAcumD,EAAmBj+e,EAAKS,EAAQy9e,EAAuBlrU,EAAYmrU,EAAiBC,EAAkBC,EAAgBh/e,EAASe,EAElN,OAAO,SAAyB,SAAoB+yP,GAClD,OACE,OAAQA,EAAW19M,KAAO09M,EAAW/gO,MACnC,KAAK,EAOH,OANA9kB,EAAMP,KAAKO,MACXywe,EAAwBh1V,EAAKsuS,eAAgBA,OAA2C,IAA1B0mD,EAAmCzwe,EAAMywe,EAAuBC,EAAsBj1V,EAAK2uS,aAAcA,OAAuC,IAAxBsmD,EAAiC1we,EAAM0we,EAC7NC,EAAoBzhE,EAAWx9a,KAAMgB,EAAMi+e,EAAkBj+e,IAAKS,EAASw9e,EAAkBx9e,OAAQy9e,EAAwBD,EAAkB5pC,YAAarhS,OAAuC,IAA1BkrU,EAAmC,EAAIA,EAAuBC,EAAkBF,EAAkBK,kBAAmBF,EAAmBH,EAAkBM,mBACnUF,EAAiBf,GAAWt9e,EAAKmH,EAAQq3e,0BAA4BlB,GAAWt9e,EAAKmH,EAAQs3e,uBAC7Fp/e,EAAUg/e,EAAiBK,GAAgBv3e,EAAS4hJ,EAAKtqG,MAAO0/b,GAAmBzB,GAAqCyB,GACxHhrP,EAAW/gO,KAAO,EACXusd,GAAiBN,EAAgBl3e,EAAS4hJ,EAAK3oJ,SAAUg+e,GAElE,KAAK,EAEH,OADAh+e,EAAW+yP,EAAW/5E,KACf+5E,EAAW55E,OAAO,SAAU,CACjC89Q,eAAgBA,EAChBK,aAAcA,EACd13b,IAAKA,EACLS,OAAQA,EACRuyK,WAAYA,EACZ3zK,QAASA,EACTe,SAAUA,IAGd,KAAK,EACL,IAAK,MACH,OAAO+yP,EAAWt+O,UAGvB68O,OAEEosP,GAAmBv3e,MAAMlC,KAAMiB,WAGxC,SAASo5e,GAAgB78O,EAAQpjN,EAAO0/b,GACtC,IAmMyB5nC,EAAW6mC,EAnMhCwB,EAAuB/8O,EAAO+8O,qBAC9BC,EAAwBh9O,EAAOg9O,sBAC/B3/e,EAAUu/C,GAiMsB2+b,EAjMWyB,EAkMtB,KADAtoC,EAjMe93Z,GAkM1Bh4C,QAAwC,iBAAjB8vc,EAAU,GACtCuoC,GAAsBvoC,EAAU,GAAI6mC,GAGpB,IAArB7mC,EAAU9vc,OACLq4e,GAAsBvoC,EAAU,GAAI6mC,GAGtC,IA1MiE,GAExE,IAAKwB,EACH,OAAOjC,GAA8Bz9e,EAASi/e,OAAiBr8e,GAIjE,IAGIi9e,EAAkB,GADD5C,GAFH6C,GAAwBvgc,IAGW,GACjDwgc,EAAUF,EAAgB,GAC1BjwX,EAAUiwX,EAAgB,GAE1B//e,EAAO29e,GAA8Bz9e,EAASi/e,EAAiBc,GAEnE,OAAInwX,EACKstX,GAAap9e,EAAM8vH,GAGrB9vH,EAKT,SAAS2/e,GAAiB76P,EAAMG,EAAMC,EAAMC,GAC1C,OAAO+6P,GAAkB34e,MAAMlC,KAAMiB,WAGvC,SAAS45e,KA4DP,OA3DAA,GAAoB,GAAgC,SAAyB,SAAS3sP,EAAU8rP,EAAgBz7O,EAAQxiQ,EAAUg+e,GAChI,IAAIQ,EAAsBO,EAAwBjgf,EAASkgf,EAAuBC,EAAwBC,EAAUxwX,EAASj+G,EAE7H,OAAO,SAAyB,SAAoBskP,GAClD,OACE,OAAQA,EAAW1/M,KAAO0/M,EAAW/iO,MACnC,KAAK,EAGH,GAFAwsd,EAAuBh8O,EAAOg8O,qBAAsBO,EAAyBv8O,EAAOu8O,uBAE7Ed,QAAuCv8e,IAArBs8e,EAAiC,CACxDjpP,EAAW/iO,KAAO,EAClB,MAGF,OAAO+iO,EAAW57E,OAAO,SAAUmjU,GAAqC0B,IAE1E,KAAK,EAGH,GAFAl/e,EAAUkB,EAAWm/e,GAAcn/e,EAASlB,QAASigf,GAA0B,GAExE/+e,IAAaw+e,QAA6C98e,IAArBs8e,GAAiC,CAC3EjpP,EAAW/iO,KAAO,EAClB,MAGF,OAAO+iO,EAAW57E,OAAO,SAAUojU,GAA8Bz9e,EAASk/e,OAAkBt8e,IAE9F,KAAK,EAEH,OADAqzP,EAAW/iO,KAAO,EACXotd,GAAwBp/e,GAEjC,KAAK,EAYH,GAXAg/e,EAAwBjqP,EAAW/7E,KACnCimU,EAAyB,GAAeD,EAAuB,GAC/DE,EAAWD,EAAuB,GAClCvwX,EAAUuwX,EAAuB,GACjCxue,EAAS4ue,GAAgBH,EAAU,CACjCV,qBAAsBA,EACtBR,iBAAkBA,EAClBC,eAAgBA,EAChBn/e,QAASA,KAGN4vH,EAAS,CACZqmI,EAAW/iO,KAAO,GAClB,MAGF,OAAO+iO,EAAW57E,OAAO,SAAU6iU,GAAavre,EAAQi+G,IAE1D,KAAK,GACH,OAAOqmI,EAAW57E,OAAO,SAAU1oK,GAErC,KAAK,GACL,IAAK,MACH,OAAOskP,EAAWtgP,UAGvB09O,OAEE2sP,GAAkB34e,MAAMlC,KAAMiB,WAGvC,SAASm6e,GAAgBH,EAAUI,GACjC,IAAId,EAAuBc,EAAOd,qBAC9BR,EAAmBsB,EAAOtB,iBAC1BC,EAAiBqB,EAAOrB,eACxBn/e,EAAUwgf,EAAOxgf,QAErB,IACE,IAAI4d,EAAOwie,GAAYA,EAAS74e,aAA+B3E,IAArBs8e,EAAiCtC,GAAYwD,GAAYlB,EAEnG,OAAKC,EAKI1B,GAA8Bz9e,EAAS4d,EAD5C8he,EACkDU,OAGFx9e,GAP3C46e,GAAqC5/d,GAQ9C,MAAOhW,GAGP,OAFA,IAAe,GAAO60K,UAAU70K,EAAO,qCAEhC61e,GAA8Bz9e,EAASk/e,OAAkBt8e,IAIpE,SAAS09e,GAAwB/xP,GAC/B,OAAOkyP,GAAyBp5e,MAAMlC,KAAMiB,WAG9C,SAASq6e,KAgDP,OA/CAA,GAA2B,GAAgC,SAAyB,SAASjrP,EAAUt0P,GACrG,IAAIq9B,EAAK2R,EACT,OAAO,SAAyB,SAAoBiqN,GAClD,OACE,OAAQA,EAAW5jN,KAAO4jN,EAAWjnO,MACnC,KAAK,EAGH,GAFAqL,EAAMmid,GAAkBx/e,GAEf,CACPi5P,EAAWjnO,KAAO,EAClB,MAGF,OAAOinO,EAAW9/E,OAAO,SAAU,MAACz3K,EAAW,qBAEjD,KAAK,EAGH,OAFAu3P,EAAW5jN,KAAO,EAClB4jN,EAAWjnO,KAAO,EACXytd,GAAoBpid,GAE7B,KAAK,EAEH,OADA2R,EAAOiqN,EAAWjgF,KACXigF,EAAW9/E,OAAO,SAAU,CAACnqI,IAEtC,KAAK,GAIH,GAHAiqN,EAAW5jN,KAAO,GAClB4jN,EAAWpgB,GAAKogB,EAAkB,MAAE,KAE9BA,EAAWpgB,cAAcpxO,OAASwxP,EAAWpgB,GAAG70O,QAAQnD,QAAQ,YAAc,GAAI,CACtFo4P,EAAWjnO,KAAO,GAClB,MAIF,OADA,IAAe,GAAO1hB,KAAK,6CACpB2oP,EAAW9/E,OAAO,SAAU,MAACz3K,EAAW,uBAEjD,KAAK,GAEH,OADA,IAAe,GAAO65K,UAAU09E,EAAWpgB,GAAI,yCACxCogB,EAAW9/E,OAAO,SAAU,MAACz3K,EAAW,qBAEjD,KAAK,GACL,IAAK,MACH,OAAOu3P,EAAWxkP,UAGvB6/O,EAAW,KAAM,CAAC,CAAC,EAAG,WAEKnuP,MAAMlC,KAAMiB,WAG9C,SAAS05e,KACP,IAAIzoC,EAAYjxc,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAGpF,GAAyB,IAArBixc,EAAU9vc,QAA0C,WAA1B,GAAQ8vc,EAAU,IAIhD,OAAOA,EAAU,GAAGnza,KAGtB,SAASm8c,GAAcrgf,EAASk+e,GAC9B,IAAI0C,EAAa,GAMjB,OALA1C,EAAep7e,SAAQ,SAAU6tB,GAC3B3wB,EAAQ4mB,IAAI+J,KACdiwd,EAAWjwd,GAAU3wB,EAAQ4mB,IAAI+J,OAG9Biwd,EAeT,SAAShB,GAAsBrgc,EAAO2+b,GACpC,IAAK3+b,EACH,MAAO,GAGT,IAAIv/C,EAAUu/C,EAAMv/C,QAEpB,OAAKA,EAIDA,aAAmB2vc,QACd0wC,GAAcrgf,EAASk+e,GAI5B92e,MAAMiD,QAAQrK,GACT,GAGFi+e,GAAkBj+e,EAASk+e,GAZzB,GAeX,SAASwC,GAAkBx/e,GACzB,IAEE,OAAOA,EAAS0oF,QAChB,MAAOhiF,GAEP,IAAe,GAAO60K,UAAU70K,EAAO,kCAU3C,SAAS+4e,GAAoBz/e,GAC3B,OAAO,IAAIxB,SAAQ,SAAUC,EAASC,GACpC,IAAI+B,EAAU,IAAa,WACzB,OAAO/B,EAAO,IAAI+I,MAAM,iDACvB,MAYP,SAA0B6lP,GACxB,OAAOqyP,GAAkBx5e,MAAMlC,KAAMiB,YAXnC06e,CAAiB5/e,GAAUwC,MAAK,SAAUi8P,GACxC,OAAOhgQ,EAAQggQ,MACd,SAAUj6P,GACX,OAAO9F,EAAO8F,MACb26H,SAAQ,WACT,OAAO75F,aAAa7kC,SAc1B,SAASk/e,KAmBP,OAlBAA,GAAoB,GAAgC,SAAyB,SAASlnP,EAAUz4P,GAC9F,OAAO,SAAyB,SAAoBg6P,GAClD,OACE,OAAQA,EAAW3kN,KAAO2kN,EAAWhoO,MACnC,KAAK,EAEH,OADAgoO,EAAWhoO,KAAO,EACXhyB,EAASgvC,OAElB,KAAK,EACH,OAAOgrN,EAAW7gF,OAAO,SAAU6gF,EAAWhhF,MAEhD,KAAK,EACL,IAAK,MACH,OAAOghF,EAAWvlP,UAGvBgkP,QAEoBtyP,MAAMlC,KAAMiB,WAavC,SAAS26e,KAuBP,OAtBAA,GAAgC,GAAgC,SAAyB,SAAS/lP,EAAUsiL,EAAYzzR,EAAM5hJ,GAC5H,IAAInI,EAAM6R,EACV,OAAO,SAAyB,SAAoB0uP,GAClD,OACE,OAAQA,EAAW9pN,KAAO8pN,EAAWntO,MACnC,KAAK,EACH,IACEpzB,EAAOkhf,GAAgB1jE,EAAYzzR,EAAM5hJ,GAEzC0J,EAAS4re,GAA4B,eAAgBz9e,GACrD28e,GAAqBx0e,EAAQ4pe,OAAQlge,GACrC,MAAO/J,GACP,IAAe,GAAO60K,UAAU70K,EAAO,oCAG3C,KAAK,EACL,IAAK,MACH,OAAOy4P,EAAW1qP,UAGvBqlP,OAEE+lP,GAA8B15e,MAAMlC,KAAMiB,WAuBnD,SAAS46e,GAAgB1jE,EAAYzzR,EAAM5hJ,GACzC,IAAImG,EAAMP,KAAKO,MACX6ye,EAAuBp3V,EAAKsuS,eAC5BA,OAA0C,IAAzB8oD,EAAkC7ye,EAAM6ye,EACzDC,EAAqBr3V,EAAK2uS,aAC1BA,OAAsC,IAAvB0oD,EAAgC9ye,EAAM8ye,EACrD3hc,EAAQsqG,EAAKtqG,MACb7a,EAAMmlH,EAAKnlH,IACXy8c,EAAmB7jE,EAAWx9a,KAC9BgB,EAAMqgf,EAAiBrgf,IACvBS,EAAS4/e,EAAiB5/e,OAC1B6/e,EAAwBD,EAAiBhsC,YACzCrhS,OAAuC,IAA1BstU,EAAmC,EAAIA,EACpDnC,EAAkBkC,EAAiB/B,kBACnCF,EAAmBiC,EAAiB9B,mBAExC,IAAKv+e,EACH,OAAO,KAGT,IAAK4jC,IAAQ05c,GAAWt9e,EAAKmH,EAAQq3e,yBAA2BlB,GAAWt9e,EAAKmH,EAAQs3e,uBAKtF,MAAO,CACLpnD,eAAgBA,EAChBK,aAAcA,EACd13b,IAAKA,EACLS,OAAQA,EACRuyK,WAAYA,EACZ3zK,QAVaq9e,GAAqCyB,GAWlD/9e,SATcs8e,GAAqC0B,IAavD,IAAIhqC,EAAUxwa,EAAuB,kBACjCi7c,EAAwBzqC,EAAU+oC,GAAkB/oC,EAAQH,gBAAiB9sc,EAAQ03e,uBAAyB,GAC9GM,EAAyBhC,GAyB/B,SAA4Bv5c,GAC1B,IAAI1kC,EAAU0kC,EAAIzjC,wBAElB,OAAKjB,EAIEA,EAAQmQ,MAAM,QAAQgO,QAAO,SAAU4sM,EAAK36M,GACjD,IACIgwc,EAAe,GADDhwc,EAAKD,MAAM,MACkB,GAC3CnN,EAAMo9c,EAAa,GACnBt6c,EAAQs6c,EAAa,GAMzB,OAJIt6c,IACFilN,EAAI/nN,EAAIC,eAAiB6C,GAGpBilN,IACN,IAdM,GA7BsCs2R,CAAmB38c,GAAMz8B,EAAQg4e,wBAG5Eh8O,EAAS,GADAh8P,EAAQy3e,qBAAuBzC,GAAc19b,GAAS,MAAC38C,GAChC,GAChC0+e,EAAcr9O,EAAO,GACrBs9O,EAAiBt9O,EAAO,GAExBS,EAASz8P,EAAQy3e,qBAuCvB,SAA6Bh7c,GAE3B,IAAImlL,EAAS,GAEb,IACE,MAAO,CAACnlL,EAAIvjC,cACZ,MAAOiL,GACPy9M,EAAO3iN,KAAKkF,GAId,IACE,OAqBJ,SAA2B83B,EAAMjkC,GAC/B,IACE,GAAoB,iBAATikC,EACT,MAAO,CAACA,GAGV,GAAIA,aAAgBgsb,SAClB,MAAO,CAAChsb,EAAKA,KAAK46F,WAGpB,GAAqB,SAAjB7+H,GAA2BikC,GAA0B,WAAlB,GAAQA,GAC7C,MAAO,CAACj4B,KAAKI,UAAU63B,IAGzB,IAAKA,EACH,MAAO,MAACthC,GAEV,MAAOgF,GAEP,OADA,IAAe,GAAO60K,UAAU70K,EAAO,2BAA4Bs8B,GAC5D,MAACthC,EAAW,oBAIrB,OADA,IAAe,GAAOigC,KAAK,6CAA8CqB,GAClE,MAACthC,EAAW,yBA5CV4+e,CAAkB98c,EAAIxjC,SAAUwjC,EAAIzkC,cAC3C,MAAOmM,GACPy9M,EAAO3iN,KAAKkF,GAId,OADA,IAAe,GAAOoF,KAAKnK,MAAM,GAAQ,CAAC,mCAAmCC,OAAOuiN,IAC7E,MAACjnN,GAzDoC6+e,CAAoB/8c,GAAO,MAAC9hC,GACpE8+e,EAAS,GAAeh9O,EAAQ,GAChCi9O,EAAeD,EAAO,GACtBE,EAAkBF,EAAO,GAEzBvhf,EAAUs9e,GAA8BkC,EAAuBV,EAAiBqC,GAChFpgf,EAAWu8e,GAA8BwC,EAAwBf,EAAkByC,GACvF,MAAO,CACLxpD,eAAgBA,EAChBK,aAAcA,EACd13b,IAAKA,EACLS,OAAQA,EACRuyK,WAAYA,EACZ3zK,QAASohf,EAAiBrE,GAAa/8e,EAASohf,GAAkBphf,EAClEe,SAAU0gf,EAAkB1E,GAAah8e,EAAU0gf,GAAmB1gf,GAoG1E,SAAS2gf,GAAyBhQ,GAChC,IAAI7sb,EAAS,KAEb,IACE,IAAI88b,EAAsBjQ,EAAOx6c,aAO7BpvB,EAAU,CACZ4pe,OAAQA,EACRyN,uBAR2BwC,EAAoBxC,uBAS/CC,sBAR0BuC,EAAoBvC,sBAS9CG,qBARyBoC,EAAoBpC,qBAS7CC,sBAR0BmC,EAAoBnC,sBAS9CM,uBAR2B6B,EAAoB7B,wBAW7Cj7b,GACFA,EAAOp7B,GAAG,uBAAuB,SAAU0zZ,EAAYzzR,GACrD,OASR,SAAoC5hJ,EAASq1a,EAAYzzR,GACvD,GAAKyzR,EAAWx9a,KAIhB,KAyBF,SAA0Bw9a,GACxB,MAA+B,QAAxBA,EAAWh2Z,UAzBZy6d,CAAiBzkE,IAgCzB,SAAoBzzR,GAClB,OAAOA,GAAQA,EAAKnlH,IAjCkBs9c,CAAWn4V,KAxNnD,SAA6ByzR,EAAYzzR,GACvC,IAAInlH,EAAMmlH,EAAKnlH,IACX6a,EAAQsqG,EAAKtqG,MAEjB,GAAK7a,EAAL,CAIA,IAAIu9c,EAAUrF,GAAYr9b,GACtB2ic,EAAUx9c,EAAIkB,kBAAkB,kBAAoBo3c,GAAyBt4c,EAAIkB,kBAAkB,mBA0JzG,SAAsB1B,EAAMjkC,GAC1B,IAEE,OAAO28e,GADwB,SAAjB38e,GAA2BikC,GAA0B,WAAlB,GAAQA,GAAqBj4B,KAAKI,UAAU63B,GAAQA,GAErG,MAAO2wa,GACP,QA/J0HstC,CAAaz9c,EAAIxjC,SAAUwjC,EAAIzkC,mBAE3I2C,IAAZq/e,IACF3kE,EAAWx9a,KAAKs/e,kBAAoB6C,QAGtBr/e,IAAZs/e,IACF5kE,EAAWx9a,KAAKu/e,mBAAqB6C,IA4MnCE,CAAoB9kE,EAAYzzR,GAhQtC,SAAsC4kG,EAAMkB,EAAMM,GACzC8wP,GAA8B15e,MAAMlC,KAAMiB,WAkQ7Ci8e,CAA6B/kE,EAAYzzR,EAAM5hJ,IAqBrD,SAA4Bq1a,GAC1B,MAA+B,UAAxBA,EAAWh2Z,SAnBZg7d,CAAmBhlE,IA0B3B,SAAsBzzR,GACpB,OAAOA,GAAQA,EAAK3oJ,SA3BoBqhf,CAAa14V,KAtmBvD,SAA+ByzR,EAAYzzR,GACzC,IAAItqG,EAAQsqG,EAAKtqG,MACbr+C,EAAW2oJ,EAAK3oJ,SAEhB+gf,EAAUrF,GADHr9b,EAAQugc,GAAwBvgc,QAAS38C,GAEhDs/e,EAAUhhf,EAAW87e,GAAyB97e,EAASlB,QAAQ4mB,IAAI,wBAAqBhkB,OAE5EA,IAAZq/e,IACF3kE,EAAWx9a,KAAKs/e,kBAAoB6C,QAGtBr/e,IAAZs/e,IACF5kE,EAAWx9a,KAAKu/e,mBAAqB6C,GA8lBnCM,CAAsBllE,EAAYzzR,GAtpBxC,SAAwC44F,EAAKa,EAAKC,GACzCm7P,GAAgCr3e,MAAMlC,KAAMiB,WAwpB/Cq8e,CAA+BnlE,EAAYzzR,EAAM5hJ,IAEnD,MAAOmE,GACP,IAAe,GAAOqwK,UAAUrwK,EAAG,4CAnCxBs2e,CAA2Bz6e,EAASq1a,EAAYzzR,MAG3D,MAAOgrT,KA8GX,SAAS8tC,GAAenyP,GACtB,OAAOoyP,GAAgBv7e,MAAMlC,KAAMiB,WAGrC,SAASw8e,KAsBP,OArBAA,GAAkB,GAAgC,SAAyB,SAAS7iP,EAAU8xO,GAC5F,OAAO,SAAyB,SAAoBnwO,GAClD,OACE,OAAQA,EAAWnrN,KAAOmrN,EAAWxuO,MACnC,KAAK,EAEH,OADAwuO,EAAWnrN,KAAO,EACXmrN,EAAWrnF,OAAO,SAAU36K,QAAQoF,IAAI03e,GAAuB3K,EAAQ,CAC9EgR,GAAkB,GAAOrvb,YAAYgmG,YAEvC,KAAK,EAGH,OAFAkoG,EAAWnrN,KAAO,EAClBmrN,EAAW3nB,GAAK2nB,EAAkB,MAAE,GAC7BA,EAAWrnF,OAAO,SAAU,IAErC,KAAK,EACL,IAAK,MACH,OAAOqnF,EAAW/rP,UAGvBoqP,EAAW,KAAM,CAAC,CAAC,EAAG,UAEJ14P,MAAMlC,KAAMiB,WAGrC,SAASy8e,GAAkBC,GACzB,IAAIC,EAAkBD,EAAYC,gBAC9BC,EAAkBF,EAAYE,gBAC9BC,EAAiBH,EAAYG,eAG7Bz2Z,EAAO3+E,KAAKO,MAAQ,IACxB,MAAO,CACLqC,KAAM,SACNpH,KAAM,SACN8d,MAAOqlE,EACP56C,IAAK46C,EACL1sF,KAAM,CACJ05J,OAAQ,CACNupV,gBAAiBA,EACjBC,gBAAiBA,EACjBC,eAAgBA,KA4ExB,SAASC,GAAuBrR,GAC9B,IAAIsR,GAAgB,EACpB,OAAO,SAAUp5d,EAAOq5d,GAEtB,GAAKvR,EAAOE,+BAAZ,CAOA,IAAIhH,EAAaqY,IAAgBD,EACjCA,GAAgB,EAEZtR,EAAOwR,eAjtGf,SAA8CA,EAAet5d,GAC3D,IAQE,IA4BJ,SAA4BA,GAC1B,OAnduC,IAmdhCA,EAAMtZ,KA7BN6ye,CAAmBv5d,GACtB,OAGF,IAAInkB,EAASmkB,EAAMjqB,KAAK8F,OAUxB,GARI0se,GAA2Bpma,IAAItmE,IACjCy9e,EAAcE,iBAAiBx5d,EAAMmD,WAGnCtnB,IAAW4zd,GAAkBqS,QAC/BwX,EAAcG,eAAez5d,EAAMmD,WAqBzC,SAAuCnD,GACrC,OAAOA,EAAMjqB,KAAK8F,SAAW4zd,GAAkBoS,iBAnBzC6X,CAA8B15d,GAAQ,CACxC,IAAI25d,EAAc35d,EAAMjqB,KACpB2Q,EAAOize,EAAYjze,KACnBtI,EAAKu7e,EAAYv7e,GACjB+a,EAAOo3J,GAAOozS,OAAO7D,QAAQ1hd,GAE7B+a,aAAgBzB,aAAehR,IAASipd,GAAkB+K,OAC5D4e,EAAcM,cAAczge,IAGhC,MAAO9W,KAirGLw3e,CAAqC/R,EAAOwR,cAAet5d,GAI7D8nd,EAAOG,WAAU,WAYf,GAN6B,WAAzBH,EAAOgK,eAA8B9Q,GACvC8G,EAAOgS,mBAKJvI,GAAazJ,EAAQ9nd,EAAOghd,GAE/B,OAAO,EAKT,IAAKA,EACH,OAAO,EAGT,IAAIpwD,EAAUk3D,EAAOl3D,QAarB,GAwEN,SAA0Bk3D,EAAQ9G,GAE3BA,GAAe8G,EAAOl3D,SAAwC,IAA7Bk3D,EAAOl3D,QAAQk/D,WAIrDyB,GAAazJ,EApCf,SAA4BA,GAC1B,IAAI5pe,EAAU4pe,EAAOx6c,aACrB,MAAO,CACL5mB,KAAM6od,GAAUkS,OAChBt+c,UAAWrf,KAAKO,MAChBtO,KAAM,CACJwX,IAAK,UACL3I,QAAS,CACPm1e,mBAAoBjS,EAAOkS,oBAC3B7J,kBAAmBjye,EAAQiye,kBAC3B8J,gBAAiB/7e,EAAQ+7e,gBACzBC,qBAAsBh8e,EAAQi8e,eAC9BC,cAAel8e,EAAQk8e,cACvB/2B,YAAanld,EAAQmld,YACrB4I,cAAe/td,EAAQ+td,cACvBkuB,iBAAgBrS,EAAO+J,aAA0C,WAA5B/J,EAAO+J,YAAYnre,KACxD2ze,qBAAsBn8e,EAAQq3e,uBAAuB/3e,OAAS,EAC9Dm4e,qBAAsBz3e,EAAQy3e,qBAC9B2E,yBAA0Bp8e,EAAQ03e,sBAAsBp4e,OAAS,EACjE+8e,0BAA2Br8e,EAAQg4e,uBAAuB14e,OAAS,KAiBpDg9e,CAAmB1S,IAAS,GAjF7C2S,CAAiB3S,EAAQ9G,GAGI,WAAzB8G,EAAOgK,eAA8BlhE,GAAWk3D,EAAO+J,YAAa,CACtE,IAAI6I,EAAgB5S,EAAO+J,YAAY7C,uBAEnC0L,IACF,IAAe,GAAO5hd,KAAK,8DAA8Dv7B,OAAO,IAAIuG,KAAK42e,KACzG9pE,EAAQ5gT,QAAU0qX,EAEd5S,EAAOx6c,aAAaijd,eACtBP,GAAYp/D,IAWlB,OAAIA,GAAWA,EAAQm/D,mBAIM,YAAzBjI,EAAOgK,eAOJhK,EAAO3kZ,SAVL,UAtET,IAAe,GAAO17E,KAAK,iDAuIjC,SAASkze,KAEP,IAAIz+D,EAAM,KAAkBgW,wBAAwBhW,IAEhDA,UACKA,EAAI0+D,UAIb,IAAItzD,EAAa3I,KAEb2I,UACS/H,GAAkC+H,GAEjCszD,UAShB,SAASC,GAAqBC,EAAaC,EAAexxD,EAAKgE,GAC7D,OAAOhD,GAAe8C,GAA2BytD,EAAa5tD,GAAgC4tD,GAAcvtD,EAAQhE,GAAM,CAAC,CAAC,CAC1H7ib,KAAM,gBACLo0e,GAAc,CAAC,CAChBp0e,KAAM,mBAINlJ,OAAiC,iBAAlBu9e,GAA6B,IAAI/vD,aAAclob,OAAOi4e,GAAev9e,OAASu9e,EAAcv9e,QAC1Gu9e,KAOL,SAASC,GAAqBz7O,GAC5B,IAEI07O,EAFAF,EAAgBx7O,EAAOw7O,cACvB9kf,EAAUspQ,EAAOtpQ,QAGjBilf,EAAgB,GAAG39e,OAAO2E,KAAKI,UAAUrM,GAAU,MAEvD,GAA6B,iBAAlB8kf,EACTE,EAAsB,GAAG19e,OAAO29e,GAAe39e,OAAOw9e,OACjD,CACL,IAEII,GAFM,IAAInwD,aAEKlob,OAAOo4e,IAE1BD,EAAsB,IAAIhhd,WAAWkhd,EAAS39e,OAASu9e,EAAcv9e,SACjDof,IAAIu+d,GACxBF,EAAoBr+d,IAAIm+d,EAAeI,EAAS39e,QAGlD,OAAOy9e,EAOT,SAASG,GAAmBrzP,GAC1B,OAAOszP,GAAoB/9e,MAAMlC,KAAMiB,WAOzC,SAASg/e,KAiDP,OAhDAA,GAAsB,GAAgC,SAAyB,SAAS/jP,EAAUoI,GAChG,IAAIzkN,EAAQqB,EAAO0yX,EAAUhvZ,EAAO2ga,EAAc26D,EAAWC,EAAejgd,EAAU8rO,EAAQ9nQ,EAAMwH,EAEpG,OAAO,SAAyB,SAAoByxP,GAClD,OACE,OAAQA,EAAW/rN,KAAO+rN,EAAWpvO,MACnC,KAAK,EASH,OARA8xB,EAASykN,EAAOzkN,OAAQqB,EAAQojN,EAAOpjN,MAAO0yX,EAAWtvK,EAAO87O,SAAUx7d,EAAQ0/O,EAAO1/O,MACzF2ga,EAAiD,WAAlC,GAAQ1lY,EAAOukZ,gBAAwD,OAAzBvkZ,EAAOukZ,eAA2Bnic,MAAMiD,QAAQ26C,EAAOukZ,oBAAqD3mc,EAApC+H,OAAOC,KAAKo6C,EAAOukZ,eACxJ87C,EAAY,CACVtsE,SAAUA,EACV2R,aAAcA,GAEhB1lY,EAAOi+F,KAAK,kBAAmBl5H,EAAOs7d,GACtC/iP,EAAWpvO,KAAO,EACXk3Z,GAAaplY,EAAO3tB,aAActN,EAAOs7d,EAAWh/b,EAAOrB,EAAQq6X,MAE5E,KAAK,EAGH,GAFAimE,EAAgBhjP,EAAWpoF,KAER,CACjBooF,EAAWpvO,KAAO,EAClB,MAGF,OAAOovO,EAAWjoF,OAAO,SAAU,MAErC,KAAK,EAYH,OARAirU,EAAcnzP,SAAWmzP,EAAcnzP,UAAY,aAEnD9sN,EAAW2f,EAAOyqZ,iBAClBt+L,EAAS9rO,GAAYA,EAAS0lZ,KAAO,GAAI1hb,EAAO8nQ,EAAO9nQ,KAAMwH,EAAUsgQ,EAAOtgQ,QAC9Ey0e,EAAcv6D,IAAM,GAAc,GAAc,GAAIu6D,EAAcv6D,KAAM,GAAI,CAC1E1hb,KAAMA,GAAQ,4BACdwH,QAASA,GAAW,UAEfyxP,EAAWjoF,OAAO,SAAUirU,GAErC,KAAK,GACL,IAAK,MACH,OAAOhjP,EAAW3sP,UAGvB0rP,QAEsBh6P,MAAMlC,KAAMiB,WAGzC,SAASo/e,GAAkBzzP,GACzB,OAAO0zP,GAAmBp+e,MAAMlC,KAAMiB,WAOxC,SAASq/e,KAuJP,OAtJAA,GAAqB,GAAgC,SAAyB,SAASrjP,EAAUsH,GAC/F,IAAIo7O,EAAeS,EAAUlsD,EAAYqsD,EAAcx4d,EAAWytZ,EAASgrE,EAAuBtH,EAAMuH,EAAUC,EAAUzJ,EAAkBp3b,EAAQqB,EAAO+sH,EAAWkgR,EAAKwyD,EAAWjB,EAAarwD,EAAUtzb,EAAU0G,EAAOw3b,EAChO,OAAO,SAAyB,SAAoBr8L,GAClD,OACE,OAAQA,EAAWxsN,KAAOwsN,EAAW7vO,MACnC,KAAK,EAcH,GAbA4xd,EAAgBp7O,EAAOo7O,cAAeS,EAAW77O,EAAO67O,SAAUlsD,EAAa3vL,EAAOmwO,UAAW6L,EAAeh8O,EAAOg8O,aAAcx4d,EAAYw8O,EAAOx8O,UAAWytZ,EAAUjxK,EAAOixK,QACpLgrE,EAAwBZ,GAAqB,CAC3CD,cAAeA,EACf9kf,QAAS,CACPq5b,WAAYA,KAGhBglD,EAAOqH,EAAarH,KAAMuH,EAAWF,EAAaE,SAAUC,EAAWH,EAAaG,SAAUzJ,EAAmBsJ,EAAatJ,iBAC9Hp3b,EAAS,KACTqB,EAAQ,KACR+sH,EAAYpuH,GAAUA,EAAO6/Y,eAC7BvR,EAAMtuY,GAAUA,EAAOokY,SAEhBpkY,GAAWouH,GAAckgR,GAAQ3Y,EAAQqL,QAAU,CACxDjjL,EAAW7vO,KAAO,EAClB,MAGF,OAAO6vO,EAAW1oF,OAAO,SAAUsoQ,GAAoB,KAEzD,KAAK,EAaH,OAZAmjE,EAAY,CACVr1e,KAAMg3c,GACNs+B,uBAAwB3J,EAAmB,IAC3Clvd,UAAWA,EAAY,IACvB84d,UAAWJ,EACXK,UAAWJ,EACXxH,KAAMA,EACNsG,UAAWY,EACXlsD,WAAYA,EACZ6sD,YAAavrE,EAAQqL,SAEvBjjL,EAAW7vO,KAAO,GACXiyd,GAAmB,CACxB9+b,MAAOA,EACPrB,OAAQA,EACRugc,SAAUA,EACVx7d,MAAO+7d,IAGX,KAAK,GAGH,GAFAjB,EAAc9hP,EAAW7oF,KAER,CACf6oF,EAAW7vO,KAAO,GAClB,MAMF,OAFA8xB,EAAO00Y,mBAAmB,kBAAmB,SAAUosD,GACvD,IAAe,GAAOjjd,KAAK,4DACpBkgO,EAAW1oF,OAAO,SAAUsoQ,GAAoB,KAEzD,KAAK,GA0CH,cAJOkiE,EAAYhnE,sBACnB2W,EAAWowD,GAAqBC,EAAac,EAAuBryD,EAAKtuY,EAAO3tB,aAAaiga,QAC7Fv0L,EAAWxsN,KAAO,GAClBwsN,EAAW7vO,KAAO,GACXkgJ,EAAUvvK,KAAK2wb,GAExB,KAAK,GACHtzb,EAAW6hQ,EAAW7oF,KACtB6oF,EAAW7vO,KAAO,GAClB,MAEF,KAAK,GACH6vO,EAAWxsN,KAAO,GAClBwsN,EAAWhpB,GAAKgpB,EAAkB,MAAE,IACpCn7P,EAAQ,IAAIe,MAAM++c,IAElB,IAGE9/c,EAAM+5b,MAAQ5+L,EAAWhpB,GACzB,MAAO3tO,IAGT,MAAMxE,EAER,KAAK,GACH,GAAqC,iBAAxB1G,EAAS4yK,cAA4B5yK,EAAS4yK,WAAa,KAAO5yK,EAAS4yK,YAAc,KAAO,CAC3GivF,EAAW7vO,KAAO,GAClB,MAGF,MAAM,IAAIizd,GAAyBjlf,EAAS4yK,YAE9C,KAAK,GAGH,IAAK0qR,GAFLY,EAAaX,GAAiB,GAAIv9b,GAEH,UAAW,CACxC6hQ,EAAW7vO,KAAO,GAClB,MAGF,MAAM,IAAIkzd,GAAehnD,GAE3B,KAAK,GACH,OAAOr8L,EAAW1oF,OAAO,SAAUn5K,GAErC,KAAK,GACL,IAAK,MACH,OAAO6hQ,EAAWptP,UAGvBysP,EAAW,KAAM,CAAC,CAAC,GAAI,WAEF/6P,MAAMlC,KAAMiB,WAGxC,IAAI+/e,GAAwC,SAAUE,GACpD,GAAUF,EAA0BE,GAEpC,IAAIruL,EAAU,GAAamuL,GAE3B,SAASA,EAAyBryU,GAGhC,OAFA,GAAgB3uK,KAAMghf,GAEfnuL,EAAQlvT,KAAK3D,KAAM,kCAAkCmC,OAAOwsK,IAGrE,OAAO,GAAaqyU,GAXsB,CAY5B,GAAiBx9e,QAM7By9e,GAA8B,SAAUE,GAC1C,GAAUF,EAAgBE,GAE1B,IAAInrL,EAAU,GAAairL,GAE3B,SAASA,EAAehnD,GACtB,IAAIjyG,EAMJ,OAJA,GAAgBhoV,KAAMihf,IAEtBj5J,EAAUhyB,EAAQryT,KAAK3D,KAAM,mBACrBi6b,WAAaA,EACdjyG,EAGT,OAAO,GAAai5J,GAfY,CAgBlB,GAAiBz9e,QAMjC,SAAS49e,GAAWv0P,GAClB,OAAOw0P,GAAYn/e,MAAMlC,KAAMiB,WAGjC,SAASogf,KA8GP,OA7GAA,GAAc,GAAgC,SAAyB,SAAS7iP,EAAU8iP,GACxF,IAAIC,EACA5B,EACAt5O,EACA5jQ,EACA++e,EAAUvgf,UACd,OAAO,SAAyB,SAAoBkgQ,GAClD,OACE,OAAQA,EAAW/vN,KAAO+vN,EAAWpzO,MACnC,KAAK,EAOH,GANAwzd,EAAcC,EAAQp/e,OAAS,QAAoB3E,IAAf+jf,EAAQ,GAAmBA,EAAQ,GAAK,CAC1Ez8c,MAAO,EACP0e,SAAU++Z,IAEZm9B,EAAgB2B,EAAW3B,cAAet5O,EAAUi7O,EAAWj7O,QAE3Ds5O,EAAcv9e,OAAQ,CACxB++P,EAAWpzO,KAAO,EAClB,MAGF,OAAOozO,EAAWjsF,OAAO,UAE3B,KAAK,EAGH,OAFAisF,EAAW/vN,KAAO,EAClB+vN,EAAWpzO,KAAO,EACXsyd,GAAkBiB,GAE3B,KAAK,EACH,OAAOngP,EAAWjsF,OAAO,UAAU,GAErC,KAAK,GAIH,GAHAisF,EAAW/vN,KAAO,GAClB+vN,EAAWvsB,GAAKusB,EAAkB,MAAE,KAE9BA,EAAWvsB,cAAcosQ,IAA4B7/O,EAAWvsB,cAAcqsQ,IAAiB,CACnG9/O,EAAWpzO,KAAO,GAClB,MAGF,MAAMozO,EAAWvsB,GAEnB,KAAK,GAYH,GAVA,GAAW,UAAW,CACpB6sQ,YAAaF,EAAYx8c,QAGvBshO,GACFA,EAAQlF,EAAWvsB,MAKf2sQ,EAAYx8c,OA75SR,GA65SmC,CAC3Co8N,EAAWpzO,KAAO,GAClB,MAGFtrB,EAAQ,IAAIe,MAAM,GAAGrB,OAAOogd,GAAuB,4BAEnD,IAGE9/c,EAAM+5b,MAAQr7L,EAAWvsB,GACzB,MAAO3tO,IAGT,MAAMxE,EAER,KAAK,GAGH,OADA8+e,EAAY99b,YAAc89b,EAAYx8c,MAC/Bo8N,EAAWjsF,OAAO,SAAU,IAAI36K,SAAQ,SAAUC,EAASC,GAChE,GAA2B,GAAgC,SAAyB,SAASgjQ,IAC3F,OAAO,SAAyB,SAAoByB,GAClD,OACE,OAAQA,EAAW9tN,KAAO8tN,EAAWnxO,MACnC,KAAK,EAGH,OAFAmxO,EAAW9tN,KAAO,EAClB8tN,EAAWnxO,KAAO,EACXqzd,GAAWE,EAAYC,GAEhC,KAAK,EACH/mf,GAAQ,GACR0kQ,EAAWnxO,KAAO,EAClB,MAEF,KAAK,EACHmxO,EAAW9tN,KAAO,EAClB8tN,EAAWtqB,GAAKsqB,EAAkB,MAAE,GACpCzkQ,EAAOykQ,EAAWtqB,IAEpB,KAAK,EACL,IAAK,MACH,OAAOsqB,EAAW1uP,UAGvBitP,EAAW,KAAM,CAAC,CAAC,EAAG,SACtB8jP,EAAY99b,cAGrB,KAAK,GACL,IAAK,MACH,OAAO09M,EAAW3wP,UAGvBguP,EAAW,KAAM,CAAC,CAAC,EAAG,UAEpB6iP,GAAYn/e,MAAMlC,KAAMiB,WAGjC,IAAIygf,GAAY,cACZC,GAAU,YAyDVC,GAA+B,WAmDjC,SAASA,EAAgBC,GACvB,IAAI/4J,EAAU9oV,KAEV8C,EAAU++e,EAAO/+e,QACjBg/e,EAAmBD,EAAOC,iBAE9B,GAAgB9hf,KAAM4hf,GAEtBA,EAAgB1if,UAAUy+a,OAAOh6a,KAAK3D,MAEtC4hf,EAAgB1if,UAAU0+a,QAAQj6a,KAAK3D,MAEvC4hf,EAAgB1if,UAAU2+a,QAAQl6a,KAAK3D,MAEvC4hf,EAAgB1if,UAAU4+a,QAAQn6a,KAAK3D,MAEvC4hf,EAAgB1if,UAAU6if,QAAQp+e,KAAK3D,MAEvC4hf,EAAgB1if,UAAU8if,QAAQr+e,KAAK3D,MAEvCA,KAAKy2e,YAAc,KACnBz2e,KAAKiif,mBAAqB,GAC1Bjif,KAAKkxe,yBAA2B,GAChClxe,KAAK02e,cAAgB,UACrB12e,KAAK+2e,SAAW,CACdC,iBA5mT4B,IA6mT5BvB,kBA1mT6B,KA4mT/Bz1e,KAAKkif,cAAgBx5e,KAAKO,MAC1BjJ,KAAKwlc,YAAa,EAClBxlc,KAAKmif,WAAY,EACjBnif,KAAKoif,sBAAuB,EAC5Bpif,KAAKqif,8BAA+B,EACpCrif,KAAKquJ,SAAW,CACdoyV,SAAU,IAAIt1a,IACdu1a,SAAU,IAAIv1a,IACd+ta,KAAM,GACNjC,iBAAkBvue,KAAKO,MACvBq5e,WAAY,IAEdtif,KAAKuif,kBAAoBT,EACzB9hf,KAAKuqN,SAAWznN,EAChB9C,KAAKwif,gBAlxBT,SAAkBh/b,EAAMmuB,EAAM7uE,GAC5B,IAAI2/e,EACA17Z,EACA27Z,EACA57Z,EAAUhkF,GAAWA,EAAQgkF,QAAUv4E,KAAK6sB,IAAIt4B,EAAQgkF,QAASnV,GAAQ,EAE7E,SAASyV,IAGP,OAFAu7Z,IACAF,EA2wBS35J,EAAQ2/F,SAvwBnB,SAASk6D,SACKllf,IAAZspF,GAAyB1lD,aAAa0lD,QACvBtpF,IAAfilf,GAA4Brhd,aAAaqhd,GACzC37Z,EAAU27Z,OAAajlf,EAWzB,SAASoqF,IAWP,OAVId,GACF1lD,aAAa0lD,GAGfA,EAAU,GAAaK,EAAYzV,GAE/BmV,QAA0BrpF,IAAfilf,IACbA,EAAa,GAAat7Z,EAAYN,IAGjC27Z,EAKT,OAFA56Z,EAAUrpF,OAASmkf,EACnB96Z,EAAUE,MAvBV,WACE,YAAgBtqF,IAAZspF,QAAwCtpF,IAAfilf,EACpBt7Z,IAGFq7Z,GAmBF56Z,EAwuBkB,CAAS,EAE7B7nF,KAAKuqN,SAASq4R,cAAe,CAC9B97Z,QAAS9mF,KAAKuqN,SAASs4R,gBAEzB7if,KAAK8if,mBAhJT,SAAkB7/e,EAAI8/e,EAAUC,GAC9B,IAAInsW,EAAU,IAAI3rE,IAEd+3a,EAAW,SAAkBh6e,GAC/B,IAAIq7G,EAAYr7G,EAgJhB,EA/IA4tI,EAAQl5I,SAAQ,SAAUkoM,EAAQhoM,GAC5BA,EAAMymH,GACRuyB,EAAQ0kD,OAAO19L,OAKjBqlf,EAAiB,WACnB,OAAO,GAAmBrsW,EAAQzxE,UAAUpsD,QAAO,SAAU5L,EAAGC,GAC9D,OAAOD,EAAIC,IACV,IAGD81e,GAAc,EAClB,OAAO,WAEL,IAAIl6e,EAAMsF,KAAKiB,MAAM9G,KAAKO,MAAQ,KAKlC,GAHAg6e,EAASh6e,GAGLi6e,KAyHJ,IAzHkC,CAChC,IAAIE,EAAeD,EAEnB,OADAA,GAAc,EACPC,EAAezB,GAAUD,GAGlCyB,GAAc,EACd,IAAIp+c,EAAQ8xG,EAAQp1H,IAAIxY,IAAQ,EAEhC,OADA4tI,EAAQr1H,IAAIvY,EAAK87B,EAAQ,GAClB9hC,EAAGf,WAAM,EAAQjB,YA6GE0uF,EAAS,SAAU/qE,EAAOghd,GAClD,OA59EN,SAAkB8G,EAAQ9nd,EAAOghd,GAC/B,OAAKwQ,GAAe1J,EAAQ9nd,GAIrByxd,GAAU3J,EAAQ9nd,EAAOghd,GAHvBrre,QAAQC,QAAQ,MA09Edm4b,CAAS7pG,EAASlkU,EAAOghd,MAKlC,IAAIyd,EAAmBrjf,KAAKkyB,aACxBoxd,EAAmBD,EAAiBC,iBACpCC,EAA2BF,EAAiBE,yBAE5ClW,EAAkBiW,EAAmB,CACvCh/X,UAAW/1G,KAAKM,IArnTK,IAqnTqBy0e,GAC1C9mf,QAAS8mf,EACTzV,cApnT0B,IAqnT1B1S,eAAgBooB,EAA2BA,EAAyBv7e,KAAK,KAAO,SAC9EvK,EAOJ,GALI4ve,IACFrte,KAAKk+e,cAAgB,IAAI9Q,GAAcpte,KAAMqte,IAI3C,GAAa,CACf,IAAImW,EAAc1gf,EAAQy0e,aAC1B,GAAOnL,UAAU,CACfC,oBAAqBmX,EAAYnX,kBACjCC,iBAAkBkX,EAAYlX,kBA8kC3B,IACDmX,EAjWAC,EA9YAC,EAzHAC,EAgqCR,OAh4CA,GAAahC,EAAiB,CAAC,CAC7B/jf,IAAK,aACL8C,MAAO,WACL,OAAOX,KAAKquJ,WAIb,CACDxwJ,IAAK,YACL8C,MAAO,WACL,OAAOX,KAAKwlc,aAIb,CACD3nc,IAAK,WACL8C,MAAO,WACL,OAAOX,KAAKmif,YAMb,CACDtkf,IAAK,oBACL8C,MAAO,WACL,OAAO0nH,QAAQroH,KAAKu7S,WAIrB,CACD19S,IAAK,aACL8C,MAAO,WACL,OAAOX,KAAKuqN,WAIb,CACD1sN,IAAK,kBACL8C,MAAO,SAAyB8B,GAC9B,IAAe,GAAO60K,UAAU70K,GAE5BzC,KAAKuqN,SAAS87C,SAChBrmQ,KAAKuqN,SAAS87C,QAAQ5jQ,KAQzB,CACD5E,IAAK,qBACL8C,MAAO,SAA4Bg0e,GACjC,IAAIkP,EAAiB7jf,KAAKuqN,SACtBs0R,EAAkBgF,EAAehF,gBACjC9J,EAAoB8O,EAAe9O,kBAGnC+O,EAAsBjF,GAAmB,GAAK9J,GAAqB,EACvE/0e,KAAKoif,qBAAuB0B,EAExBA,IAMJ9jf,KAAK+jf,8BAA8BpP,GAE9B30e,KAAKw1a,SAMmB,IAAzBx1a,KAAKw1a,QAAQqL,UAQjB7gb,KAAK02e,cAAyC,WAAzB12e,KAAKw1a,QAAQqL,SAAmD,IAA3B7gb,KAAKw1a,QAAQk/D,UAAkB,SAAW,UACpG,IAAe,GAAOvI,SAAS,sBAAsBhqe,OAAOnC,KAAK02e,cAAe,UAEhF12e,KAAKgkf,wBAfH,IAAe,GAAO1sU,UAAU,IAAI9zK,MAAM,+CAyB7C,CACD3F,IAAK,QACL8C,MAAO,WACL,GAAIX,KAAKwlc,YAAqC,YAAvBxlc,KAAK02e,cAC1B,IAAe,GAAOh5c,KAAK,yCAI7B,GAAI19B,KAAKwlc,YAAqC,WAAvBxlc,KAAK02e,cAC1B,IAAe,GAAOh5c,KAAK,mEAD7B,CAKA,IAAe,GAAOyuc,SAAS,mCAK/Bnse,KAAKikf,sBAEL,IAAIzuE,EAAUogE,GAAoB,CAChCJ,kBAAmBx1e,KAAKuqN,SAASirR,kBACjCC,kBAAmBz1e,KAAK+2e,SAAStB,mBAChC,CACDN,cAAen1e,KAAKuqN,SAAS4qR,cAE7BJ,kBAAmB,EACnBC,gBAAgB,IAElBh1e,KAAKw1a,QAAUA,EAEfx1a,KAAKgkf,0BAON,CACDnmf,IAAK,iBACL8C,MAAO,WACL,GAAIX,KAAKwlc,WACP,IAAe,GAAO9na,KAAK,mEAD7B,CAKA,IAAe,GAAOyuc,SAAS,kCAC/B,IAAI32D,EAAUogE,GAAoB,CAChCH,kBAAmBz1e,KAAK+2e,SAAStB,kBACjCD,kBAAmBx1e,KAAKuqN,SAASirR,mBAChC,CACDL,cAAen1e,KAAKuqN,SAAS4qR,cAC7BJ,kBAAmB,EACnBC,gBAAgB,IAElBh1e,KAAKw1a,QAAUA,EACfx1a,KAAK02e,cAAgB,SAErB12e,KAAKgkf,0BAQN,CACDnmf,IAAK,iBACL8C,MAAO,WACL,IACE,IAAIujf,EAAgBlkf,KAAKu7S,QACzBv7S,KAAKmkf,eAAiBhvU,GAAO,GAAc,GAAc,GAAc,GAAIn1K,KAAKuif,mBAA2C,WAAvBvif,KAAK02e,cAA6B,CACpIhO,iBA/zTiB,KAu0TnB1oe,KAAKuqN,SAASgtR,aAAa6M,oBAAsB,CAE/C1b,iBAAkBn6d,KAAK6sB,IAAI,KAAQp7B,KAAKuqN,SAASgtR,aAAa6M,sBAC5D,GAAI,CACNtmW,KAAMigW,GAAuB/9e,MAC7Bq6d,WAAYr6d,KAAKqkf,oBAChBH,EAAgB,CACjB36B,aAAc26B,EAAc36B,aAC5BkhB,iBAAkByZ,EAAczZ,iBAChC7P,SAAUspB,EAActpB,SACxBzR,eAAgB+6B,EAAc/6B,gBAC5B,KACJ,MAAOr7b,GACP9tB,KAAK62e,gBAAgB/od,MAUxB,CACDjwB,IAAK,gBACL8C,MAAO,WACL,IAOE,OANIX,KAAKmkf,iBACPnkf,KAAKmkf,iBAELnkf,KAAKmkf,oBAAiB1mf,IAGjB,EACP,MAAOqwB,GAEP,OADA9tB,KAAK62e,gBAAgB/od,IACd,KAQV,CACDjwB,IAAK,OACL8C,OACMijf,EAAQ,GAAgC,SAAyB,SAASnjR,IAC5E,IAAI6jR,EACAC,EACAC,EACAjkf,EACAkkf,EAASxjf,UAEb,OAAO,SAAyB,SAAmB0gO,GACjD,OACE,OAAQA,EAAUvwL,KAAOuwL,EAAU5zM,MACjC,KAAK,EAGH,GAFAu2d,EAASG,EAAOrif,OAAS,QAAmB3E,IAAdgnf,EAAO,GAAmBA,EAAO,GAAK,GAAIF,EAAoBD,EAAOE,WAAYA,OAAmC,IAAtBD,GAAuCA,EAAmBhkf,EAAS+jf,EAAO/jf,OAElMP,KAAKwlc,WAAY,CACnB7jO,EAAU5zM,KAAO,EACjB,MAGF,OAAO4zM,EAAUzsD,OAAO,UAE1B,KAAK,EAgBH,GAbAl1K,KAAKwlc,YAAa,EAClB7jO,EAAUvwL,KAAO,EACjB,IAAe,GAAO1T,KAAK,kBAAkBv7B,OAAO5B,EAAS,iBAAiB4B,OAAO5B,GAAU,KAC/Fg/e,KAEAv/e,KAAK0kf,mBAEL1kf,KAAK2kf,gBAEL3kf,KAAKwif,gBAAgBhkf,UAIhBgmf,EAAY,CACf7iR,EAAU5zM,KAAO,GACjB,MAIF,OADA4zM,EAAU5zM,KAAO,GACV/tB,KAAKyob,OAAO,CACjB1sT,OAAO,IAGX,KAAK,GAEH/7H,KAAKy2e,aAAez2e,KAAKy2e,YAAYvyd,UACrClkB,KAAKy2e,YAAc,KAGnBpC,GAAar0e,MACb2hO,EAAU5zM,KAAO,GACjB,MAEF,KAAK,GACH4zM,EAAUvwL,KAAO,GACjBuwL,EAAUiT,GAAKjT,EAAiB,MAAE,GAClC3hO,KAAK62e,gBAAgBl1Q,EAAUiT,IAEjC,KAAK,GACL,IAAK,MACH,OAAOjT,EAAUnxN,UAGtBiwN,EAAUzgO,KAAM,CAAC,CAAC,EAAG,UAG1B,WACE,OAAO4jf,EAAM1hf,MAAMlC,KAAMiB,cAW5B,CACDpD,IAAK,QACL8C,MAAO,WACDX,KAAKmif,YAITnif,KAAKmif,WAAY,EACjBnif,KAAK2kf,gBACL,IAAe,GAAOjnd,KAAK,qBAS5B,CACD7/B,IAAK,SACL8C,MAAO,WACAX,KAAKmif,WAAcnif,KAAK4kf,kBAI7B5kf,KAAKmif,WAAY,EACjBnif,KAAK6kf,iBACL,IAAe,GAAOnnd,KAAK,sBAU5B,CACD7/B,IAAK,4BACL8C,OACMgjf,EAA6B,GAAgC,SAAyB,SAASjiR,IACjG,IAAIolC,EACAg+O,EACAC,EACAC,EACAC,EACAC,EAASjkf,UAEb,OAAO,SAAyB,SAAmBkoP,GACjD,OACE,OAAQA,EAAU/3M,KAAO+3M,EAAUp7N,MACjC,KAAK,EAGH,GAFA+4O,EAASo+O,EAAO9if,OAAS,QAAmB3E,IAAdynf,EAAO,GAAmBA,EAAO,GAAK,GAAIJ,EAAwBh+O,EAAOi+O,kBAAmBA,OAA8C,IAA1BD,GAA0CA,EAE3J,YAAvB9kf,KAAK02e,cAA8B,CACvCvtP,EAAUp7N,KAAO,EACjB,MAGF,OAAOo7N,EAAUj0E,OAAO,SAAUl1K,KAAKmlf,kBAEzC,KAAK,EAQH,OAPAH,EAAet8e,KAAKO,MACpB,IAAe,GAAOy0B,KAAK,gCAK3ByrN,EAAUp7N,KAAO,EACV/tB,KAAKmlf,iBAEd,KAAK,EAGH,GAFAF,EAAsBjlf,KAAK2kf,gBAEpBI,GAAsBE,EAAsB,CACjD97P,EAAUp7N,KAAO,GACjB,MAGF,OAAOo7N,EAAUj0E,OAAO,UAE1B,KAAK,GACH,GAA6B,YAAvBl1K,KAAK02e,cAA8B,CACvCvtP,EAAUp7N,KAAO,GACjB,MAGF,OAAOo7N,EAAUj0E,OAAO,UAE1B,KAAK,GAEHl1K,KAAK02e,cAAgB,UAEjB12e,KAAKw1a,UACPx1a,KAAKikf,oBAAoBe,GAEzBhlf,KAAKolf,uBAAuBJ,GAE5Bhlf,KAAKqlf,qBAGPrlf,KAAK6kf,iBAEP,KAAK,GACL,IAAK,MACH,OAAO17P,EAAU34O,UAGtBkxN,EAAU1hO,UAGf,WACE,OAAO2jf,EAA2Bzhf,MAAMlC,KAAMiB,cAcjD,CACDpD,IAAK,YACL8C,MAAO,SAAmB+T,GAExB,IAAI4we,EAAW5we,IAGY,WAAvB1U,KAAK02e,gBAMQ,IAAb4O,GAMJtlf,KAAKwif,oBAQN,CACD3kf,IAAK,sBACL8C,MAAO,WAKL,GAJAX,KAAKikf,sBAIAjkf,KAAKmkf,eAaVnkf,KAAK4se,+BAEL5se,KAAKolf,6BAfL,CAGE,IAAKplf,KAAK4kf,gBACR,OAIF5kf,KAAK0tB,YAiBR,CACD7vB,IAAK,qBACL8C,MAAO,WACLX,KAAKikf,sBAELjkf,KAAKolf,2BAMN,CACDvnf,IAAK,mBACL8C,MAAO,WACL,MAA2B,WAAvBX,KAAK02e,cACAn8e,QAAQC,UAGVwF,KAAKmlf,mBAMb,CACDtnf,IAAK,QACL8C,MAAO,WACL,OAAOX,KAAKwif,oBAQb,CACD3kf,IAAK,iBACL8C,MAAO,WAIL,OAHAX,KAAKwif,kBAGExif,KAAKwif,gBAAgBz6Z,UAM7B,CACDlqF,IAAK,cACL8C,MAAO,WACLX,KAAKwif,gBAAgBhkf,WAItB,CACDX,IAAK,eACL8C,MAAO,WACL,OAAOX,KAAKw1a,SAAWx1a,KAAKw1a,QAAQxya,KAWrC,CACDnF,IAAK,+BACL8C,MAAO,WAKL,KAAIX,KAAKkif,eAAiB9M,GAAUp1e,KAAKkif,cAAelif,KAAK+2e,SAASC,mBAAqBh3e,KAAKw1a,SAAoC,YAAzBx1a,KAAKw1a,QAAQqL,SAWxH,QAAK7gb,KAAK4kf,gBANR5kf,KAAKy6D,UAmBR,CACD58D,IAAK,kBACL8C,MAAO,WACL,IAAI4kf,EAAU,GAAGpjf,OAAO,GAAOwI,SAASH,UAAUrI,OAAO,GAAOwI,SAASN,MAAMlI,OAAO,GAAOwI,SAASP,QAClGzO,EAAM,GAAGwG,OAAO,GAAOwI,SAASm5B,QAAQ3hC,OAAOojf,GACnDvlf,KAAKiif,mBAAqB,GAC1Bjif,KAAKkxe,yBAA2B,GAEhClxe,KAAKwlf,gBAELxlf,KAAKquJ,SAASi0V,WAAa3mf,EAC3BqE,KAAKquJ,SAAS4oV,iBAAmBvue,KAAKO,MAEtCjJ,KAAKquJ,SAAS6qV,KAAKn3e,KAAKpG,KAOzB,CACDkC,IAAK,oBACL8C,MAAO,SAA2BikB,EAAOghd,GACvC,IAAI/7I,EAAU7pV,KAEVo5B,EAAMp5B,KAAK8if,mBAAmBl+d,EAAOghd,GAIzC,GAAIxsc,IAAQsod,GAAW,CACrB,IAAIvpE,EAAaw3D,GAAiB,CAChCxtd,SAAU,qBAEZniB,KAAK6se,WAAU,WAEb,OAAQsJ,GAAatsJ,EAAS,CAC5Bv+U,KAr+JgB,EAs+JhByc,UAAWowZ,EAAWpwZ,WAAa,EACnCptB,KAAM,CACJwX,IAAK,aACL3I,QAAS2ua,EACTykC,QAAQ,QAMhB,OAAOxjb,IAOR,CACDv7B,IAAK,kBACL8C,MAAO,WACL,IAAI8kf,EAAiBzlf,KAAKylf,gBAAkBliE,KACxCmiE,EAAeD,GAAkBniE,GAAYmiE,GAE7Chlf,GADailf,GAAgB1jE,GAAW0jE,GAAc/qf,MAAQ,IAC1C2za,IAExB,GAAKo3E,GAAiBjlf,GAAW,CAAC,QAAS,UAAU4d,SAAS5d,GAI9D,OAAOuhb,GAAW0jE,GAAcvhf,cAOjC,CACDtG,IAAK,uBACL8C,MAAO,WACLX,KAAK0+e,kBAGL1+e,KAAKolf,yBAELplf,KAAKy2e,YAn9GX,SAA2BrmP,GACzB,IAAI2uP,EAAiB3uP,EAAO2uP,eACxB4G,EAAkBv1P,EAAOw1P,UAE7B,GAAI7G,GACJr0e,OAAOgiD,OAAQ,CACb,IAAID,EAWR,SAAqBk5b,GACnB,IACE,IAAIC,EAAYD,IAe8B,oBAArCE,kCAAqDA,iCAIzD,IA3qBH5+e,EAAI,IAAIg2B,KAAK,CAHX,u9TAICsvB,IAAIC,gBAAgBvlD,KAypBzB,IAAK2+e,EACH,OAGF,IAAe,GAAOlod,KAAK,2BAA2Bv7B,OAAOwjf,EAAkB,SAASxjf,OAAOwjf,GAAmB,KAClH,IAAIl5b,EAAS,IAAIC,OAAOk5b,GACxB,OAAO,IAAI1S,GAAiBzmb,GAC5B,MAAOhqD,GACP,IAAe,GAAO60K,UAAU70K,EAAO,uCAI3C,IAtqBMwE,EA2oBW6+e,CAAYH,GAEzB,GAAIl5b,EACF,OAAOA,EAKX,OADA,IAAe,GAAO/uB,KAAK,uBACpB,IAAIw0c,GAq8GY6T,CAAkB,CACnChH,eAAgB/+e,KAAKuqN,SAASw0R,eAC9B6G,UAAW5lf,KAAKuqN,SAASq7R,YAG3B5lf,KAAK0kf,mBAEL1kf,KAAKgmf,gBAGLhmf,KAAKwlc,YAAa,EAClBxlc,KAAKmif,WAAY,EACjBnif,KAAK6kf,mBAMN,CACDhnf,IAAK,gCACL8C,MAAO,SAAuCg0e,GAG5C,IAAIK,EAAiBh1e,KAAKuqN,SAASs0R,gBAAkB,EACjDrpE,EAAUogE,GAAoB,CAChCH,kBAAmBz1e,KAAK+2e,SAAStB,kBACjCD,kBAAmBx1e,KAAKuqN,SAASirR,kBACjCb,kBAAmBA,GAClB,CACDQ,cAAen1e,KAAKuqN,SAAS4qR,cAC7BJ,kBAAmB/0e,KAAKuqN,SAASwqR,kBACjCC,eAAgBA,IAElBh1e,KAAKw1a,QAAUA,IAOhB,CACD33a,IAAK,gBACL8C,MAAO,WAGL,IAAKX,KAAKw1a,QACR,OAAO,EAGT,IAAI6T,EAAiBrpb,KAAKw1a,QAE1B,OAAImgE,GAAqBtsD,EAAgB,CACvCosD,kBAAmBz1e,KAAK+2e,SAAStB,kBACjCD,kBAAmBx1e,KAAKuqN,SAASirR,sBAIjCx1e,KAAKimf,gBAAgB58D,IAEd,KAWV,CACDxrb,IAAK,kBACL8C,OACM+if,EAAmB,GAAgC,SAAyB,SAASx6P,EAASssL,GAChG,OAAO,SAAyB,SAAmBjrL,GACjD,OACE,OAAQA,EAAWn5M,KAAOm5M,EAAWx8N,MACnC,KAAK,EACH,GAAI/tB,KAAKwlc,WAAY,CACnBj7M,EAAWx8N,KAAO,EAClB,MAGF,OAAOw8N,EAAWr1E,OAAO,UAE3B,KAAK,EAEH,OADAq1E,EAAWx8N,KAAO,EACX/tB,KAAKwQ,KAAK,CACfjQ,OAAQ,oBAGZ,KAAK,EACHP,KAAKkmf,mBAAmB1wE,EAAQxya,IAElC,KAAK,EACL,IAAK,MACH,OAAOunP,EAAW/5O,UAGvB04O,EAAUlpP,UAGf,SAAyBwtP,GACvB,OAAOk2P,EAAiBxhf,MAAMlC,KAAMiB,cASvC,CACDpD,IAAK,gBACL8C,MAAO,WACL,IACE,GAAOiI,SAAS1K,iBAAiB,mBAAoB8B,KAAKmmf,yBAC1D,GAAOjof,iBAAiB,OAAQ8B,KAAKomf,mBACrC,GAAOlof,iBAAiB,QAAS8B,KAAKqmf,oBACtC,GAAOnof,iBAAiB,UAAW8B,KAAKsmf,sBAEpCtmf,KAAKk+e,eACPl+e,KAAKk+e,cAAc94Q,eAIhBplO,KAAKqif,+BAhtDU3V,EAitDC1se,KA/sDvB6/C,EAAS,KACbwuZ,GAv7FsB,SAA2Bq+B,GACjD,OAAO,SAAUjhD,GACf,GAAKihD,EAAOp7D,YAAZ,CAIA,IAAI9ka,EAgDR,SAAmBi/a,GACjB,IAAI86D,EASN,SAAsB96D,GACpB,IACI1rb,EADAymf,EAA+B,UAArB/6D,EAAYvnb,KAEtBc,EAAS,KAEb,IAEEjF,EAAU+va,GADV9qa,EAASwhf,EAAUxZ,GAAmBvhD,EAAY7ma,OAASqod,GAAcxhD,EAAY7ma,OAClD,CACjCwrZ,gBAAiB,OACb,YACN,MAAOnpa,GACPlH,EAAU,YAGZ,MAAO,CACLiF,OAAQA,EACRjF,QAASA,GAzBS0mf,CAAah7D,GAC7Bzmb,EAASuhf,EAAcvhf,OACvBjF,EAAUwmf,EAAcxmf,QAE5B,OAAO4ve,GAAiB,GAAc,CACpCxtd,SAAU,MAAMhgB,OAAOspb,EAAYvnb,OAClC6re,GAAqB/qe,EAAQjF,KAvDjB2mf,CAAUj7D,GAEvB,GAAKj/a,EAAL,CAIA,IA3YiB0xe,EAAezP,EAAiB1wd,EA2Y7Cyoe,EAA+B,UAArB/6D,EAAYvnb,KACtB0gB,EAAQ4he,EAAU/6D,EAAY7ma,WAAQnnB,IAEtC+of,GAAW9Z,EAAOwR,eAAiBt5d,GAASA,EAAM5f,SAAW4f,EAAMo5I,QAAWp5I,EAAMw5I,SAAYx5I,EAAMs5I,SAAYt5I,EAAM80G,WA9Y3GwkX,EA+YHxR,EAAOwR,cA/YWzP,EA+YIjie,EA/YauR,EA+YLivd,GAAmBvhD,EAAY7ma,OA9Y7Es5d,EAActqc,YAAY66b,EAAiB1wd,IAiZzC0ud,GAAmBC,EAAQlge,MAo6FUm6e,CAAkBja,IACzD/+B,GAvhCF,SAAmC++B,GACjC,OAAO,SAAUjhD,GACf,GAAKihD,EAAOp7D,YAAZ,CAIA,IAAI9ka,EAzBR,SAAuBi/a,GACrB,IAAI58Z,EAAO48Z,EAAY58Z,KACnBkd,EAAK0/Y,EAAY1/Y,GACjB9iC,EAAMP,KAAKO,MAAQ,IACvB,MAAO,CACLqC,KAAM,kBACN0W,MAAO/Y,EACPwjC,IAAKxjC,EACL/E,KAAM6nC,EACNpxC,KAAM,CACJ6+E,SAAU3qD,IAeC+3d,CAAcn7D,GAEZ,OAAXj/a,IAKJkge,EAAOx9d,aAAagqe,KAAKn3e,KAAKyK,EAAOtI,MACrCwoe,EAAOC,sBACPD,EAAOG,WAAU,WAGf,OAFAwK,GAAuB3K,EAAQ,CAAClge,KAEzB,QAqgCsBq6e,CAA0Bna,IA1zC7D,SAA2BA,GACzB,IAAI7sb,EAAS,KAERA,GAILA,EAAOp7B,GAAG,uBAAuB,SAAU0zZ,GACzC,OAIJ,SAA6Bu0D,EAAQv0D,GACnC,GAAKu0D,EAAOp7D,aAAgB8lE,GAAyBj/D,GAArD,CAIA,IAAI3ra,EASN,SAA6B2ra,GAC3B,OAAKi/D,GAAyBj/D,IAAe,CAC7C,QAAS,MACT,eAAgB,sBAAsB95Z,SAAS85Z,EAAWh2Z,WAC1Dg2Z,EAAWh2Z,SAAS2xE,WAAW,OACtB,KAGmB,YAAxBqkV,EAAWh2Z,SASjB,SAAoCg2Z,GAClC,IAAI3wa,EAAO2wa,EAAWx9a,MAAQw9a,EAAWx9a,KAAKsG,UAE9C,IAAKgB,MAAMiD,QAAQsC,IAAyB,IAAhBA,EAAKpF,OAC/B,OAAOute,GAAiBx3D,GAG1B,IAAI2uE,GAAc,EAEdC,EAAiBv/e,EAAKyT,KAAI,SAAU0S,GACtC,IAAKA,EACH,OAAOA,EAGT,GAAmB,iBAARA,EACT,OAAIA,EAAIvrB,OAASsgd,IACfokC,GAAc,EACP,GAAG3kf,OAAOwrB,EAAIxoB,MAAM,EAAGu9c,IAAuB,MAGhD/0b,EAGT,GAAqB,WAAjB,GAAQA,GACV,IACE,IAAIq5d,EAAgB,GAAUr5d,EAAK,GAGnC,OAFkB7mB,KAAKI,UAAU8/e,GAEjB5kf,OAASsgd,IACvBokC,GAAc,EAEP,GAAG3kf,OAAO2E,KAAKI,UAAU8/e,EAAe,KAAM,GAAG7hf,MAAM,EAAGu9c,IAAuB,MAGnFskC,EACP,MAAO//e,IAIX,OAAO0mB,KAET,OAAOgid,GAAiB,GAAc,GAAc,GAAIx3D,GAAa,GAAI,CACvEx9a,KAAM,GAAc,GAAc,GAAIw9a,EAAWx9a,MAAO,GAAI,CAC1DsG,UAAW8lf,GACVD,EAAc,CACf9O,MAAO,CACLC,SAAU,CAAC,2BAEX,OAxDGgP,CAA2B9uE,GAG7Bw3D,GAAiBx3D,GArBX+uE,CAAoB/uE,GAE7B3ra,GACFige,GAAmBC,EAAQlge,IAZpB26e,CAAoBza,EAAQv0D,MAmzCrCivE,CAAkB1a,GAClBgQ,GAAyBhQ,GAIzB9jD,GA7oCF,SAAmC8jD,GACjC,OAAOlne,OAAO0V,QAAO,SAAU0J,EAAO8/H,GAEpC,IAAKgoV,EAAOp7D,aAAeo7D,EAAO/nH,WAChC,OAAO//V,EAGT,GAvUJ,SAAuBA,GACrB,MAAsB,iBAAfA,EAAMtZ,KAsUP+7e,CAAczie,GAIhB,cADOA,EAAM2zZ,YACN3zZ,EAIT,IAAK,GAAaA,KAAW,GAAmBA,KAAWuyd,GAAgBvyd,GACzE,OAAOA,EAMT,IAFsB8nd,EAAOE,+BAG3B,OAAOhod,EAGT,GAAIuyd,GAAgBvyd,GAOlB,OAJA8nd,EAAO3kZ,QACPnjE,EAAM0rI,SAASy8R,SAASyyD,UAAY9S,EAAO4a,eAzFjD,SAA+B5a,EAAQ9nd,GACrC8nd,EAAOC,sBACPD,EAAOG,WAAU,WACf,OAAKjod,EAAMmD,YAQX2kd,EAAOI,kBAAkB,CACvBxhe,KAAM6od,GAAUkS,OAChBt+c,UAA6B,IAAlBnD,EAAMmD,UACjBptB,KAAM,CACJwX,IAAK,aACL3I,QAAS,CACPue,UAAWnD,EAAMmD,UACjBzc,KAAM,UACN6W,SAAU,kBACVxnB,KAAM,CACJ4sf,WAAY3ie,EAAMgvZ,eAKnB,MAiEL4zE,CAAsB9a,EAAQ9nd,GACvBA,EAKT,GAlHJ,SAAsBA,EAAO8/H,GAC3B,QAAI9/H,EAAMtZ,OAASsZ,EAAM0yJ,YAAc1yJ,EAAM0yJ,UAAUlyG,SAAWxgD,EAAM0yJ,UAAUlyG,OAAOhjE,SAKrFsiJ,EAAKo0R,oBAAqBp0R,EAAKo0R,kBAAkB2uE,WA4G/CC,CAAa9ie,EAAO8/H,KAAUgoV,EAAOx6c,aAAaqld,aAAalL,kBAEjE,OADA,IAAe,GAAO9tW,IAAI,sCAAuC35G,GAC1D,KAMT,IAAI+ie,EArER,SAAoCjb,EAAQ9nd,GAC1C,MAA6B,WAAzB8nd,EAAOgK,eAMP9xd,EAAM7kB,UAAYwid,OAKjB39b,EAAM0yJ,WAAa1yJ,EAAMtZ,OAIvBkpe,GAAU9H,EAAOx6c,aAAa2sd,iBAqDT+I,CAA2Blb,EAAQ9nd,GAW7D,OARwB+ie,GAAgD,YAAzBjb,EAAOgK,iBAGpD9xd,EAAMynN,KAAO,GAAc,GAAc,GAAIznN,EAAMynN,MAAO,GAAI,CAC5D+zQ,SAAU1T,EAAO4a,kBAId1ie,IACN,CACD5hB,GAAI,WAilCe6kf,CAA0Bnb,IAG3C7sb,IACFA,EAAOp7B,GAAG,kBAz2Cd,SAA+Biod,GAC7B,OAAO,SAAU9nd,GACV8nd,EAAOp7D,aAAgB,GAAa1sZ,IAQ7C,SAA8B8nd,EAAQ9nd,GACpC,IAAIkje,EAAiBlje,EAAM0yJ,WAAa1yJ,EAAM0yJ,UAAUlyG,QAAUxgD,EAAM0yJ,UAAUlyG,OAAO,IAAMxgD,EAAM0yJ,UAAUlyG,OAAO,GAAGzkE,MAE3F,iBAAnBmnf,IAOXA,EAAej/e,MAAM,oGAGrBi/e,EAAej/e,MAAM,qEAOnB4je,GAAmBC,EANFiD,GAAiB,CAChCxtd,SAAU,uBACVxnB,KAAM,CACJgB,IAAKg1a,SArBTo3E,CAAqBrb,EAAQ9nd,IAm2CAoje,CAAsBtb,IACnD7sb,EAAOp7B,GAAG,iBAn8Cd,SAA8Biod,GAC5B,OAAO,SAAU9nd,EAAOghb,GACtB,GAAK8mC,EAAOp7D,cAAgB,GAAa1sZ,IAAW,GAAmBA,IAAvE,CAIA,IAAI+pJ,EAAai3R,GAAgBA,EAAaj3R,YAIzCA,GAAcA,EAAa,KAAOA,GAAc,MAIjD,GAAmB/pJ,GAS3B,SAAgC8nd,EAAQ9nd,GACtC,IAAIqje,EAAgBvb,EAAOx9d,aAIvB0V,EAAM0rI,UAAY1rI,EAAM0rI,SAAS82R,OAASxia,EAAM0rI,SAAS82R,MAAMtF,UAAYmmE,EAAcvH,SAASjoe,KAAO,KAC3Gwve,EAAcvH,SAASp8d,IAAIM,EAAM0rI,SAAS82R,MAAMtF,UAd9ComE,CAAuBxb,EAAQ9nd,GAkBrC,SAA0B8nd,EAAQ9nd,GAChC,IAAIqje,EAAgBvb,EAAOx9d,aAa3B,GANI0V,EAAMgvZ,UAAYq0E,EAAcxH,SAAShoe,KAAO,KAClDwve,EAAcxH,SAASn8d,IAAIM,EAAMgvZ,UAKN,WAAzB84D,EAAOgK,eAA+B9xd,EAAMynN,MAASznN,EAAMynN,KAAK+zQ,SAApE,CAIA,IACI+H,EADqBzb,EAAOx6c,aACai2d,qBAEV,mBAAxBA,GAAuCA,EAAoBvje,KAItE,GAA2B,GAAgC,SAAyB,SAAS06M,IAC3F,OAAO,SAAyB,SAAmBqB,GACjD,OACE,OAAQA,EAAUvvL,KAAOuvL,EAAU5yM,MACjC,KAAK,EAGH,OAFA4yM,EAAUvvL,KAAO,EACjBuvL,EAAU5yM,KAAO,EACV2+c,EAAO0b,4BAEhB,KAAK,EACHznR,EAAU5yM,KAAO,EACjB,MAEF,KAAK,EACH4yM,EAAUvvL,KAAO,EACjBuvL,EAAUiU,GAAKjU,EAAiB,MAAE,GAClC+rQ,EAAOmK,gBAAgBl2Q,EAAUiU,IAEnC,KAAK,EACL,IAAK,MACH,OAAOjU,EAAUnwN,UAGtB8uN,EAAU,KAAM,CAAC,CAAC,EAAG,WA9DxB+oR,CAAiB3b,EAAQ9nd,MAg7CG0je,CAAqB5b,IACjD7sb,EAAOp7B,GAAG,aAAa,SAAUq8Z,GAC/B,IAAIs/D,EAAW1T,EAAO4a,eAElBlH,GAAY1T,EAAOp7D,aAAwC,YAAzBo7D,EAAOgK,eAErBhK,EAAOE,iCAG3B9rD,EAAI0+D,UAAYY,MAItBvgc,EAAOp7B,GAAG,aAAa,SAAUw9S,GAC/ByqK,EAAO+Y,eAAiBxjL,KAI1BpiR,EAAOp7B,GAAG,WAAW,SAAUw9S,GAC7ByqK,EAAO+Y,eAAiBxjL,KAG1BpiR,EAAOp7B,GAAG,sBAAsB,SAAUqoa,EAAehqb,GACvD,IAAIs9e,EAAW1T,EAAO4a,eAElBxkf,GAAWA,EAAQylf,eAAiB7b,EAAOp7D,aAAe8uE,GAExDtzD,EAAcx8R,UAAYw8R,EAAcx8R,SAASy8R,WACnDD,EAAcx8R,SAASy8R,SAASyyD,UAAYY,OAwqD5Cpgf,KAAKqif,8BAA+B,GAEtC,MAAOv0d,GACP9tB,KAAK62e,gBAAgB/od,GArtD7B,IAA4B4+c,EAEtB7sb,EAstDA7/C,KAAKwof,4BA3vIX,SAAkC9b,GAChC,SAAS+b,EAAoBhrc,GAEtBivb,EAAOuV,mBAAmB5je,SAASo/B,IACtCivb,EAAOuV,mBAAmBlgf,KAAK07C,GAInC,SAASirc,EAAUl8P,GACHA,EAAOhuM,QACb7gD,QAAQ8qf,GAGlB,IAAIE,EAAiB,GAMrB,MALA,CAAC,aAAc,QAAS,YAAYhrf,SAAQ,SAAU2N,GACpDq9e,EAAe5mf,KAAK6+c,GAAqCt1c,EAAMo9e,OAEjEC,EAAe5mf,KAAKu+c,GAA6B2wB,GAAgBG,GAA2B1E,IAAUxsB,GAA6B+wB,GAAgBM,GAA0B7E,IAAUlsB,GAA6BywB,GAAgBa,GAAoBpF,IAAUhsB,GAA6BuwB,GAAgBc,GAA2BrF,KAEnU,WACLic,EAAehrf,SAAQ,SAAUirf,GAC/B,OAAOA,QAsuI4BC,CAAyB7of,QAM7D,CACDnC,IAAK,mBACL8C,MAAO,WACL,IACE,GAAOiI,SAAS2b,oBAAoB,mBAAoBvkB,KAAKmmf,yBAC7D,GAAO5he,oBAAoB,OAAQvkB,KAAKomf,mBACxC,GAAO7he,oBAAoB,QAASvkB,KAAKqmf,oBACzC,GAAO9he,oBAAoB,UAAWvkB,KAAKsmf,sBAEvCtmf,KAAKk+e,eACPl+e,KAAKk+e,cAAc34Q,kBAGjBvlO,KAAKwof,6BACPxof,KAAKwof,8BAEP,MAAO16d,GACP9tB,KAAK62e,gBAAgB/od,MAUxB,CACDjwB,IAAK,SACL8C,MAAO,WACL,IAAIurV,EAAUlsV,KAEdA,KAAKmmf,wBAA0B,WACW,YAApC,GAAOv9e,SAASyqV,gBAClBnH,EAAQ48J,6BAER58J,EAAQ68J,gCAQb,CACDlrf,IAAK,UACL8C,MAAO,WACL,IAAIguV,EAAU3uV,KAEdA,KAAKomf,kBAAoB,WACvB,IAAIjuE,EAAaw3D,GAAiB,CAChCxtd,SAAU,YAIZwsU,EAAQo6J,2BAA2B5wE,MAOtC,CACDt6a,IAAK,UACL8C,MAAO,WACL,IAAI63V,EAAUx4V,KAEdA,KAAKqmf,mBAAqB,WACxB,IAAIluE,EAAaw3D,GAAiB,CAChCxtd,SAAU,aAIZq2U,EAAQswJ,2BAA2B3wE,MAKtC,CACDt6a,IAAK,UACL8C,MAAO,WACL,IAAIw4V,EAAUn5V,KAEdA,KAAKsmf,qBAAuB,SAAU1he,IA3oJ5C,SAA6B8nd,EAAQ9nd,GACnC,GAAK8nd,EAAOp7D,YAAZ,CAOAo7D,EAAOsc,qBACP,IAAI7wE,EAWN,SAA+BvzZ,GAC7B,IAAIw5I,EAAUx5I,EAAMw5I,QAChB1kC,EAAW90G,EAAM80G,SACjBwkC,EAAUt5I,EAAMs5I,QAChBF,EAASp5I,EAAMo5I,OACfngK,EAAM+mB,EAAM/mB,IACZmH,EAAS4f,EAAM5f,OAEnB,IAAKA,GA+BP,SAAwBA,GACtB,MAA0B,UAAnBA,EAAO8lC,SAA0C,aAAnB9lC,EAAO8lC,SAA0B9lC,EAAOk8T,kBAhC9D+nL,CAAejkf,KAAYnH,EACxC,OAAO,KAIT,IAAIqrf,EAAiB9qV,GAAWF,GAAWF,EACvCmrV,EAAgC,IAAftrf,EAAIuE,OAIzB,IAAK8mf,GAAkBC,EACrB,OAAO,KAGT,IAAIppf,EAAU+va,GAAiB9qa,EAAQ,CACrCora,gBAAiB,OACb,YAEN,OAAOu/D,GAAiB,CACtBxtd,SAAU,aACVpiB,QAASA,EACTpF,KAAM,GAAc,GAAc,GAJfo1e,GAAqB/qe,EAAQjF,GAIKpF,MAAO,GAAI,CAC9DyjK,QAASA,EACT1kC,SAAUA,EACVwkC,QAASA,EACTF,OAAQA,EACRngK,IAAKA,MA7CQurf,CAAsBxke,GAElCuzZ,GAILs0D,GAAmBC,EAAQv0D,IA6nJrBkxE,CAAoBlwJ,EAASv0U,MAOhC,CACD/mB,IAAK,6BACL8C,MAAO,SAAoCw3a,GACpCn4a,KAAKw1a,UAII+/D,GAAiBv1e,KAAKw1a,QAAS,CAC3CggE,kBAAmBx1e,KAAKuqN,SAASirR,kBACjCC,kBAAmBz1e,KAAK+2e,SAAStB,sBAO/Bt9D,GACFn4a,KAAKspf,wBAAwBnxE,GAQ1Bn4a,KAAKupf,uBAMX,CACD1rf,IAAK,6BACL8C,MAAO,SAAoCw3a,GACpCn4a,KAAKw1a,UAIYx1a,KAAK4se,+BAUvBz0D,GACFn4a,KAAKspf,wBAAwBnxE,GAL7B,IAAe,GAAOz6Y,KAAK,0DAY9B,CACD7/B,IAAK,sBACL8C,MAAO,WACL,IAAIuhf,EAAgBjhf,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyH,KAAKO,MAE7FjJ,KAAKkif,cAAgBA,IAMtB,CACDrkf,IAAK,yBACL8C,MAAO,WACL,IAAIuhf,EAAgBjhf,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyH,KAAKO,MAEzFjJ,KAAKw1a,UACPx1a,KAAKw1a,QAAQi/D,aAAeyN,EAE5Blif,KAAKqlf,uBAOR,CACDxnf,IAAK,0BACL8C,MAAO,SAAiCw3a,GACtC,IAAIr+E,EAAU95V,KAEdA,KAAK6se,WAAU,WAGb/yI,EAAQgzI,kBAAkB,CACxBxhe,KAAM6od,GAAUkS,OAChBt+c,UAAWowZ,EAAWpwZ,WAAa,EACnCptB,KAAM,CACJwX,IAAK,aACL3I,QAAS2ua,UAUhB,CACDt6a,IAAK,yBACL8C,MAAO,WACL,IAzqJ4B69C,EAyqJxByjc,GAzqJwBzjc,EAyqJsBx+C,KAAKiif,mBAxqJpDzjc,EAAQvjC,IAAIk2d,IAAwBzre,OAAO2iH,UAwqJ6BlmH,OAAOnC,KAAKkxe,0BASvF,GARAlxe,KAAKiif,mBAAqB,GAC1Bjif,KAAKkxe,yBAA2B,GAO5Blxe,KAAKoif,qBAAsB,CAC7B,IAAIoH,EAA4Bxpf,KAAKquJ,SAAS4oV,iBAAmB,IACjEgL,EAAqBA,EAAmBv8e,QAAO,SAAU+3C,GACvD,OAAOA,EAAMz7B,OAASwne,KAI1B,OAAOjvf,QAAQoF,IAAI03e,GAAuBr3e,KAAMiif,MAMjD,CACDpkf,IAAK,gBACL8C,MAAO,WAELX,KAAKquJ,SAASoyV,SAAS33c,QAEvB9oC,KAAKquJ,SAASqyV,SAAS53c,QAEvB9oC,KAAKquJ,SAAS6qV,KAAO,KAItB,CACDr7e,IAAK,yCACL8C,MAAO,WACL,IAAI60a,EAAUx1a,KAAKw1a,QACfihE,EAAcz2e,KAAKy2e,YAGvB,GAAKjhE,GAAYihE,IAAez2e,KAAKoif,uBAKjC5sE,EAAQk/D,UAAZ,CAIA,IAAI4K,EAAgB7I,EAAY7C,uBAE5B0L,GAAiBA,EAAgBt/e,KAAKquJ,SAAS4oV,mBACjDj3e,KAAKquJ,SAAS4oV,iBAAmBqI,MAOpC,CACDzhf,IAAK,mBACL8C,MAAO,WACL,IAAI0tJ,EAAW,CACb4oV,iBAAkBj3e,KAAKquJ,SAAS4oV,iBAChCqL,WAAYtif,KAAKquJ,SAASi0V,WAC1B7B,SAAUx+e,MAAM4sB,KAAK7uB,KAAKquJ,SAASoyV,UACnCC,SAAUz+e,MAAM4sB,KAAK7uB,KAAKquJ,SAASqyV,UACnCxH,KAAMl5e,KAAKquJ,SAAS6qV,MAKtB,OAFAl5e,KAAKwlf,gBAEEn3V,IAWR,CACDxwJ,IAAK,YACL8C,OACM8if,EAAa,GAAgC,SAAyB,SAASp5P,IACjF,IAEI+1P,EAAUr4d,EAAWw4d,EAAc7L,EAAWiL,EAAe9/b,EAAQ4pc,EAFrEnsJ,EAAUt9V,KAGd,OAAO,SAAyB,SAAoB6qP,GAClD,OACE,OAAQA,EAAWz5M,KAAOy5M,EAAW98N,MACnC,KAAK,EAGH,GAFAqyd,EAAWpgf,KAAKsnf,eAETtnf,KAAKw1a,SAAYx1a,KAAKy2e,aAAgB2J,EAAW,CACtDv1P,EAAW98N,KAAO,EAClB,MAIF,OADA,IAAe,GAAOtrB,MAAM,6CACrBooP,EAAW31E,OAAO,UAE3B,KAAK,EAEH,OADA21E,EAAW98N,KAAO,EACX/tB,KAAK0pf,yBAEd,KAAK,EACH,GAAO1pf,KAAKy2e,aAAgBz2e,KAAKy2e,YAAY9C,UAAY,CACvD9oP,EAAW98N,KAAO,EAClB,MAGF,OAAO88N,EAAW31E,OAAO,UAE3B,KAAK,EAEH,OADA21E,EAAW98N,KAAO,GACXyvd,GAAex9e,MAExB,KAAK,GACH,GAAIA,KAAKy2e,YAAa,CACpB5rP,EAAW98N,KAAO,GAClB,MAGF,OAAO88N,EAAW31E,OAAO,UAE3B,KAAK,GACH,GAAMkrU,IAAapgf,KAAKsnf,eAAiB,CACvCz8P,EAAW98N,KAAO,GAClB,MAGF,OAAO88N,EAAW31E,OAAO,UAE3B,KAAK,GAUH,GATA21E,EAAWz5M,KAAO,GAGlBpxC,KAAK2pf,4CAEL5he,EAAYrf,KAAKO,OAICjJ,KAAKquJ,SAAS4oV,iBAAmBj3e,KAAKuqN,SAASirR,kBAAoB,KAAQ,CAC3F3qP,EAAW98N,KAAO,GAClB,MAGF,MAAM,IAAIvqB,MAAM,2CAElB,KAAK,GASH,OARA+8e,EAAevgf,KAAK4pf,mBAEpBlV,EAAY10e,KAAKw1a,QAAQk/D,YAEzB10e,KAAKqlf,oBAGLx6P,EAAW98N,KAAO,GACX/tB,KAAKy2e,YAAY5uU,SAE1B,KAAK,GAGH,OAFA83U,EAAgB90P,EAAW91E,KAC3B81E,EAAW98N,KAAO,GACXqzd,GAAW,CAChBhB,SAAUA,EACVT,cAAeA,EACfjL,UAAWA,EACX6L,aAAcA,EACd/qE,QAASx1a,KAAKw1a,QACdztZ,UAAWA,EACXs+O,QAAS,SAAiBv4O,GACxB,OAAOwvU,EAAQu5I,gBAAgB/od,MAIrC,KAAK,GACH+8N,EAAW98N,KAAO,GAClB,MAEF,KAAK,GACH88N,EAAWz5M,KAAO,GAClBy5M,EAAWjW,GAAKiW,EAAkB,MAAE,IACpC7qP,KAAK62e,gBAAgBhsP,EAAWjW,IAMhC50O,KAAKwQ,KAAK,CACRjQ,OAAQ,gBAEVs/C,EAAS,QAGP4pc,EAAa5+P,EAAWjW,cAAcqsQ,GAAiB,oBAAsB,aAC7Ephc,EAAO00Y,mBAAmBk1D,EAAY,WAG1C,KAAK,GACL,IAAK,MACH,OAAO5+P,EAAWr6O,UAGvB65O,EAAWrqP,KAAM,CAAC,CAAC,GAAI,UAG5B,WACE,OAAOyjf,EAAWvhf,MAAMlC,KAAMiB,cAUjC,CACDpD,IAAK,UACL8C,MAAO,WACL,IAAIipW,EAAU5pW,KAEdA,KAAKyob,OAAsB,GAAgC,SAAyB,SAAS79L,IAC3F,IAAI+e,EACAkgP,EACA9tX,EACA/5G,EACA/Y,EACAkL,EACA21e,EACAC,EACAtT,EACAuT,EACAC,EAAUhpf,UAEd,OAAO,SAAyB,SAAoBmqP,GAClD,OACE,OAAQA,EAAWh6M,KAAOg6M,EAAWr9N,MACnC,KAAK,EAGH,GAFA47O,EAASsgP,EAAQ7nf,OAAS,QAAoB3E,IAAfwsf,EAAQ,GAAmBA,EAAQ,GAAK,GAAIJ,EAAelgP,EAAO5tI,MAAOA,OAAyB,IAAjB8tX,GAAkCA,EAE3IjgJ,EAAQ47F,YAAezpU,EAAQ,CACpCqvH,EAAWr9N,KAAO,EAClB,MAGF,OAAOq9N,EAAWl2E,OAAO,UAE3B,KAAK,EACH,GAAI00L,EAAQgjI,+BAAgC,CAC1CxhP,EAAWr9N,KAAO,EAClB,MAIF,OADA,IAAe,GAAOtrB,MAAM,4DACrB2oP,EAAWl2E,OAAO,UAE3B,KAAK,EACH,GAAI00L,EAAQ4rE,QAAS,CACnBpqL,EAAWr9N,KAAO,EAClB,MAGF,OAAOq9N,EAAWl2E,OAAO,UAE3B,KAAK,EAYH,GAXAlzJ,EAAQ4nV,EAAQ4rE,QAAQ5gT,QACxB3rH,EAAMP,KAAKO,MACXkL,EAAWlL,EAAM+Y,EAEjB4nV,EAAQ44I,gBAAgBhkf,SAIxBsrf,EAAW31e,EAAWy1V,EAAQr/I,SAAS2/R,kBACvCH,EAAU51e,EAAWy1V,EAAQr/I,SAASirR,kBAAoB,KAEpDsU,IAAYC,EAAU,CAC1B3+P,EAAWr9N,KAAO,GAClB,MASF,OANA,IAAe,GAAO2P,KAAK,qBAAqBv7B,OAAOoM,KAAKiB,MAAM2E,EAAW,KAAO,cAAchS,OAAO2nf,EAAW,QAAU,OAAQ,0BAElIA,GACFlgJ,EAAQ44I,kBAGHp3P,EAAWl2E,OAAO,UAE3B,KAAK,GAgBH,OAfAuhU,EAAc7sI,EAAQ6sI,cAE2B,IAA9B7sI,EAAQ4rE,QAAQk/D,YAAoB+B,EAAYrE,aACjE,IAAe,GAAO10c,KAAK,8CAG7Bssd,IAAqBpgJ,EAAQugJ,WAGxBvgJ,EAAQugJ,aACXvgJ,EAAQugJ,WAAavgJ,EAAQwgJ,aAG/Bh/P,EAAWh6M,KAAO,GAClBg6M,EAAWr9N,KAAO,GACX67U,EAAQugJ,WAEjB,KAAK,GACH/+P,EAAWr9N,KAAO,GAClB,MAEF,KAAK,GACHq9N,EAAWh6M,KAAO,GAClBg6M,EAAWxW,GAAKwW,EAAkB,MAAE,IAEpCw+G,EAAQitI,gBAAgBzrP,EAAWxW,IAErC,KAAK,GAaH,OAZAwW,EAAWh6M,KAAO,GAClBw4T,EAAQugJ,gBAAa1sf,EAEjBusf,GAMFpgJ,EAAQ44I,kBAGHp3P,EAAWvjF,OAAO,IAE3B,KAAK,GACL,IAAK,MACH,OAAOujF,EAAW56O,UAGvBo6O,EAAW,KAAM,CAAC,CAAC,GAAI,GAAI,GAAI,YAKrC,CACD/sP,IAAK,oBACL8C,MAAO,WACDX,KAAKw1a,SAAWx1a,KAAKuqN,SAAS4qR,eAChCP,GAAY50e,KAAKw1a,WAKpB,CACD33a,IAAK,UACL8C,MAAO,WACL,IAAI2iY,EAAUtjY,KAEdA,KAAKqkf,mBAAqB,SAAUzuB,GAClC,IAAI7wb,EAAQ6wb,EAAUxzd,OAClBiof,EAAgB/mH,EAAQ/4K,SAAS8/R,cAEjCC,EAAoBD,GAAiBtld,EAAQsld,EAGjD,GAAItld,EAJ0Bu+V,EAAQ/4K,SAASggS,yBAIRD,EAAmB,CACxD,IAAInyE,EAAaw3D,GAAiB,CAChCxtd,SAAU,mBACVxnB,KAAM,CACJoqC,MAAOA,EACP5J,MAAOmvd,KAIXhnH,EAAQgmH,wBAAwBnxE,GAIlC,OAAImyE,IAGFhnH,EAAQ9yX,KAAK,CACXjQ,OAAQ,gBACRikf,WAAsC,YAA1BlhH,EAAQozG,iBAGf,QASRkL,EAngD0B,GAsgDnC,SAAS4I,GAAU98V,EAAW+8V,GAC5B,MAAO,GAAGtof,OAAO,GAAmBurJ,GAAY,GAAmB+8V,IAAmBzif,KAAK,KAO7F,SAAS0if,GAAkB3gP,GACzB,IAAIlrI,EAAOkrI,EAAOlrI,KACd8rX,EAAS5gP,EAAO4gP,OAChBhyS,EAAQoxD,EAAOpxD,MACfiyS,EAAU7gP,EAAO6gP,QACjBC,EAAS9gP,EAAO8gP,OAYpB,MARc,CAEZ/iC,iBAJiB0iC,GAAU3rX,EAAM,CAAC,eAAgB,uBAKlDmpV,mBAJmBwiC,GAAUG,EAAQ,IAKrCliC,cAAe+hC,GAAU7xS,EAAO,CAAC,gBAAiB,uBAAuBx2M,OAP9C,CAAC,oBAQ5Bumd,gBAAiB8hC,GAAUI,EAAS,IACpCzvB,eAAgBqvB,GAAUK,EAAQ,CAAC,iBAAkB,uBAAwB,wBASjF,SAASC,GAActgP,GACrB,IAAIprP,EAAKorP,EAAOprP,GACZvhB,EAAM2sQ,EAAO3sQ,IACbktf,EAAiBvgP,EAAOugP,eACxB9iC,EAAcz9M,EAAOy9M,YACrB+iC,EAAiBxgP,EAAOwgP,eACxBrqf,EAAQ6pQ,EAAO7pQ,MAGnB,OAAKsnd,EAKD+iC,EAAehjC,oBAAsB5oc,EAAGie,QAAQ2td,EAAehjC,oBAC1Drnd,EAGLoqf,EAAe1se,SAASxgB,IAEpB,UAARA,GAAkC,UAAfuhB,EAAG0rB,SAAuB,CAAC,SAAU,UAAUzsB,SAASe,EAAGpB,aAAa,SAAW,IAC7Frd,EAAMgC,QAAQ,QAAS,KAGzBhC,EAdEA,EAiBX,IAAIsqf,GAAkB,mGAClBC,GAA0B,CAAC,iBAAkB,eAAgB,UAC7DC,IAAe,EAgBfxzC,GAAoB,SAA2B70c,GACjD,OAAO,IAAIsof,GAAOtof,IAUhBsof,GAAsB,WAgBxB,SAASA,IACP,IAAI5/O,EAASvqQ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC7Eoqf,EAAuB7/O,EAAOo3O,cAC9BA,OAAyC,IAAzByI,EA1oWM,IA0oWsDA,EAC5EC,EAAuB9/O,EAAOq3O,cAC9BA,OAAyC,IAAzByI,EAzoWM,KAyoWsDA,EAC5EC,EAAwB//O,EAAO0+O,kBAC/BA,OAA8C,IAA1BqB,EAnnWF,KAmnW2DA,EAC7EC,EAAwBhgP,EAAOgqO,kBAC/BA,OAA8C,IAA1BgW,EAAmC5oC,GAAsB4oC,EAC7EC,EAAuBjgP,EAAO2pO,cAC9BA,OAAyC,IAAzBsW,GAAyCA,EACzDC,EAAwBlgP,EAAOuzO,eAC/BA,OAA2C,IAA1B2M,GAA0CA,EAC3D9F,EAAYp6O,EAAOo6O,UACnB+F,EAAsBngP,EAAO+rO,aAC7BA,OAAuC,IAAxBoU,EAAiC,GAAKA,EACrDC,EAAqBpgP,EAAOy8M,YAC5BA,OAAqC,IAAvB2jC,GAAuCA,EACrDC,EAAuBrgP,EAAOqlN,cAC9BA,OAAyC,IAAzBg7B,GAAyCA,EACzDC,EAAuBtgP,EAAOwzO,cAC9BA,OAAyC,IAAzB8M,GAAyCA,EACzDC,EAAwBvgP,EAAO++O,wBAC/BA,OAAoD,IAA1BwB,EAAmC,IAAMA,EACnEC,EAAuBxgP,EAAO6+O,cAC9BA,OAAyC,IAAzB2B,EAAkC,IAAQA,EAC1DC,EAAwBzgP,EAAO83O,iBAC/BA,OAA6C,IAA1B2I,EAAmC,IAAOA,EAC7DC,EAAwB1gP,EAAO+3O,yBAC/BA,OAAqD,IAA1B2I,EAAmC,GAAKA,EACnEC,EAAwB3gP,EAAO2uO,uBAC/BA,OAAmD,IAA1BgS,EAAmC,GAAKA,EACjEC,EAAwB5gP,EAAO4uO,sBAC/BA,OAAkD,IAA1BgS,EAAmC,GAAKA,EAChEC,EAAwB7gP,EAAO+uO,qBAC/BA,OAAiD,IAA1B8R,GAA0CA,EACjEC,EAAwB9gP,EAAOgvO,sBAC/BA,OAAkD,IAA1B8R,EAAmC,GAAKA,EAChEC,EAAwB/gP,EAAOsvO,uBAC/BA,OAAmD,IAA1ByR,EAAmC,GAAKA,EACjEC,EAAchhP,EAAO3sI,KACrBA,OAAuB,IAAhB2tX,EAAyB,GAAKA,EACrCC,EAAwBjhP,EAAOu/O,eAC/BA,OAA2C,IAA1B0B,EAAmC,CAAC,QAAS,eAAiBA,EAC/EC,EAAgBlhP,EAAOm/O,OACvBA,OAA2B,IAAlB+B,EAA2B,GAAKA,EACzCC,EAAenhP,EAAO7yD,MACtBA,OAAyB,IAAjBg0S,EAA0B,GAAKA,EACvCC,EAAiBphP,EAAOo/O,QACxBA,OAA6B,IAAnBgC,EAA4B,GAAKA,EAC3CC,EAAgBrhP,EAAOq/O,OACvBA,OAA2B,IAAlBgC,EAA2B,GAAKA,EACzCC,EAASthP,EAAOshP,OAChBlW,GAA0BprO,EAAOorO,wBACjCuR,GAAsB38O,EAAO28O,oBAC7B9hP,GAAUmF,EAAOnF,QAErB,GAAgBrmQ,KAAMorf,GAEtBprf,KAAKkE,KAAOknf,EAAOpof,GACnB,IAAIgof,GAAiBN,GAAkB,CACrC7rX,KAAMA,EACN8rX,OAAQA,EACRhyS,MAAOA,EACPiyS,QAASA,EACTC,OAAQA,IAqEV,GAnEA7qf,KAAKuif,kBAAoB,GAAc,GAAc,CACnD1xB,cAAeA,EACf5I,YAAaA,EACbrD,iBAAkB,CAChBxpd,UAAU,GAEZ4td,WAAY8jC,EACZ/nC,YAAa+nC,EACb9lC,gBAAiB,SAAyBnpd,EAAK8C,EAAOye,GACpD,OAAO0re,GAAc,CACnBC,eAAgBA,EAChB9iC,YAAaA,EACb+iC,eAAgBA,GAChBntf,IAAKA,EACL8C,MAAOA,EACPye,GAAIA,MAGP4re,IAAiB,GAAI,CAEtB/hC,eAAgB,MAChBH,kBAAkB,EAElBO,cAAc,EAGd2Y,cAAc,EACdtnT,aAAc,SAAsB5sJ,GAClC,IACEA,EAAI25d,WAAY,EAChB,MAAOhlf,QAKbzC,KAAK+sf,gBAAkB,CACrBnK,cAAeA,EACfC,cAAeA,EACfqH,kBAAmB37e,KAAKM,IAAIq7e,EAntWF,MAotW1B1U,kBAAmBjne,KAAKM,IAAI2me,EAAmB5yB,IAC/CuyB,cAAeA,EACf4J,eAAgBA,EAChB6G,UAAWA,EACX5G,cAAeA,EACfnuB,cAAeA,EACf5I,YAAaA,EACbsiC,wBAAyBA,EACzBF,cAAeA,EACf/G,iBAAkBA,EAClBC,yBAA0BA,EAC1BpJ,uBAAwBA,EACxBC,sBAAuBA,EACvBG,qBAAsBA,EACtBC,sBAAuBwS,GAAyBxS,GAChDM,uBAAwBkS,GAAyBlS,GACjDlE,wBAAyBA,GACzBuR,oBAAqBA,GACrB9hP,QAASA,GACTkxO,aAAcA,GAGZv3e,KAAK+sf,gBAAgB/N,gBAGvBh/e,KAAKuif,kBAAkB95B,cAAiBzod,KAAKuif,kBAAkB95B,cAAkC,GAAGtmd,OAAOnC,KAAKuif,kBAAkB95B,cAAe,KAAKtmd,OAAO8of,IAA9EA,IAG7Ejrf,KAAKitf,gBAAkB,KACzB,MAAM,IAAIzpf,MAAM,8DAGlBxD,KAAKitf,gBAAiB,EAiMxB,OA5LA,GAAa7B,EAAQ,CAAC,CACpBvtf,IAAK,iBACL4jB,IAAK,WACH,OAAO0pe,IAIT3pe,IAAK,SAAa7gB,GAChBwqf,GAAexqf,IAMhB,CACD9C,IAAK,gBACL8C,MAAO,SAAuBk/C,GACvB,OAAe7/C,KAAK8te,UAIzB9te,KAAKktf,OAAOrtc,GAEZ7/C,KAAKmtf,YAAYttc,MAUlB,CACDhiD,IAAK,QACL8C,MAAO,WACAX,KAAK8te,SAIV9te,KAAK8te,QAAQ9rd,UAOd,CACDnkB,IAAK,iBACL8C,MAAO,WACAX,KAAK8te,SAIV9te,KAAK8te,QAAQsf,mBAOd,CACDvvf,IAAK,OACL8C,MAAO,WACL,OAAKX,KAAK8te,QAIH9te,KAAK8te,QAAQt9d,KAAK,CACvBg0e,WAA2C,YAA/Bxkf,KAAK8te,QAAQ4I,gBAJlBn8e,QAAQC,YAgBlB,CACDqD,IAAK,QACL8C,MAAO,SAAemC,GACpB,OAAK9C,KAAK8te,QAKL9te,KAAK8te,QAAQx8D,YAMXtxa,KAAK8te,QAAQsa,0BAA0Btlf,IAL5C9C,KAAK8te,QAAQ9rd,QAENznB,QAAQC,WAPRD,QAAQC,YAgBlB,CACDqD,IAAK,cACL8C,MAAO,WACL,GAAKX,KAAK8te,SAAY9te,KAAK8te,QAAQx8D,YAInC,OAAOtxa,KAAK8te,QAAQwZ,iBAWrB,CACDzpf,IAAK,mBACL8C,MAAO,WACL,GAAKX,KAAK8te,SAAY9te,KAAK8te,QAAQx8D,YAInC,OAAOtxa,KAAK8te,QAAQ4I,gBAMrB,CACD74e,IAAK,cACL8C,MAAO,SAAqBk/C,GACrB7/C,KAAK8te,UAIV9te,KAAKqtf,sCAAsCxtc,GAE3C7/C,KAAK8te,QAAQoY,wBAId,CACDrof,IAAK,SACL8C,MAAO,SAAgBk/C,GAErB,IAAIklK,EA8CV,SAAqCp9J,EAAgB9H,GACnD,IAAI5zC,EAAM4zC,EAAO3tB,aAEb6yL,EAAe,GAAc,CAC/BgwR,kBAAmB,EACnB8J,gBAAiB,GAChB/rE,GAAkBnrX,IAEjB2lc,EAA2BlgE,GAAgBnhb,EAAIqhf,0BAC/CC,EAA2BngE,GAAgBnhb,EAAIshf,0BAiBnD,OAfgC,MAA5BD,GAAgE,MAA5BC,GACtCt8E,IAAe,WAEb7ka,QAAQC,KAAK,4GAIe,MAA5Bihf,IACFvoS,EAAagwR,kBAAoBuY,GAGH,MAA5BC,IACFxoS,EAAa85R,gBAAkB0O,GAG1BxoS,EAxEgByoS,CAA4Bxtf,KAAK+sf,gBAAiBltc,GACrE7/C,KAAK8te,QAAU,IAAI8T,GAAgB,CACjC9+e,QAASiiN,EACT+8R,iBAAkB9hf,KAAKuif,sBAK1B,CACD1kf,IAAK,wCACL8C,MAAO,SAA+Ck/C,GAKpD,IACE,IAAI4tc,EAAoB5tc,EAAOq9Y,qBAAqB,gBAEpD,IAAKuwD,EACH,OAGFztf,KAAK8te,QAAiB,QAAI2f,EAAkBv7d,aAC5C,MAAOjrB,QAKT,CAAC,CACHpJ,IAAK,eACL8C,MAIA,WACEX,KAAKgD,GAAK,aAIPoof,EA5ViB,GAgY1B,SAAS4B,GAAyBnyf,GAChC,MAAO,GAAGsH,OAAO+of,GAAyB,GAAmBrwf,EAAQogB,KAAI,SAAUuQ,GACjF,OAAOA,EAAO1tB,mBAQlB,SAAS4vf,KACP,IAAI7tc,EAAS,KACb,OAAOA,GAAUA,EAAOq9Y,qBAAqB,UA7C/CkuD,GAAOuC,eExiXP,IAiDI,GAjDA,GAAY,CAAC,QAGjB,SAAS,GAAmBpge,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQp6N,EAAK8vB,GAAO,IAAM,IAAI+P,EAAOnQ,EAAI1vB,GAAK8vB,GAAUhtB,EAAQ+8B,EAAK/8B,MAAS,MAAO8B,GAAwB,YAAfhI,EAAOgI,GAAsBi7B,EAAK7P,KAAQrzB,EAAQmG,GAAiBpG,QAAQC,QAAQmG,GAAOpC,KAAKy5N,EAAOC,GAE7P,SAAS,GAAkBh1N,GAAM,OAAO,WAAc,IAAI8K,EAAO/N,KAAMwH,EAAOvG,UAAW,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAAU,IAAI8yB,EAAMtqB,EAAGf,MAAM6L,EAAMvG,GAAO,SAASwwN,EAAMr3N,GAAS,GAAmB4sB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,OAAQt3N,GAAU,SAASs3N,EAAOnqM,GAAO,GAAmBP,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,QAASnqM,GAAQkqM,OAAMv6N,OAEjX,SAAS,GAAQiuB,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAE3M,SAAS,GAAegC,EAAK3D,GAAK,OAMlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EANtB,CAAgBA,IAIzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GAJzb,CAAsBptN,EAAK3D,IAAM,GAA4B2D,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAczI,SAAS,GAAkB4E,EAAQuN,GAAS,IAAK,IAAI9K,EAAI,EAAGA,EAAI8K,EAAMnQ,OAAQqF,IAAK,CAAE,IAAI49G,EAAa9yG,EAAM9K,GAAI49G,EAAWh5F,WAAag5F,EAAWh5F,aAAc,EAAOg5F,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAM//G,OAAOqY,eAAe7Y,EAAQqgH,EAAWxnH,IAAKwnH,IAI7S,SAAS,GAAmBj6G,GAAO,OAMnC,SAA4BA,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAO,GAAkBA,GAN1C,CAAmBA,IAI7D,SAA0BwjB,GAAQ,GAAsB,oBAAXvlB,QAAmD,MAAzBulB,EAAKvlB,OAAOC,WAA2C,MAAtBslB,EAAK,cAAuB,OAAO3sB,MAAM4sB,KAAKD,GAJjF,CAAiBxjB,IAAQ,GAA4BA,IAE1H,WAAgC,MAAM,IAAIhL,UAAU,wIAF8E,GAQlI,SAAS,GAA2BmiB,EAAGu2M,GAAkB,IAAI93F,EAAuB,oBAAX33H,QAA0BkZ,EAAElZ,OAAOC,WAAaiZ,EAAE,cAAe,IAAKy+G,EAAI,CAAE,GAAI/+H,MAAMiD,QAAQqd,KAAOy+G,EAAK,GAA4Bz+G,KAAOu2M,GAAkBv2M,GAAyB,iBAAbA,EAAEngB,OAAqB,CAAM4+H,IAAIz+G,EAAIy+G,GAAI,IAAIv5H,EAAI,EAAO8nD,EAAI,aAAiB,MAAO,CAAEE,EAAGF,EAAGL,EAAG,WAAe,OAAIznD,GAAK8a,EAAEngB,OAAe,CAAEyrB,MAAM,GAAe,CAAEA,MAAM,EAAOltB,MAAO4hB,EAAE9a,OAAWR,EAAG,SAAW8xN,GAAO,MAAMA,GAAQjnM,EAAGy9B,GAAO,MAAM,IAAInvD,UAAU,yIAA4I,IAA6C0tB,EAAzCkrM,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAExpK,EAAG,WAAeuxE,EAAKA,EAAGr9H,KAAK4e,IAAO2sC,EAAG,WAAe,IAAIiyB,EAAO6/C,EAAGjzG,OAAsC,OAA9BirM,EAAmB73I,EAAKtzD,KAAaszD,GAASl6E,EAAG,SAAWiyN,GAAOD,GAAS,EAAMnrM,EAAMorM,GAAQpnM,EAAG,WAAe,IAAWknM,GAAiC,MAAbh4F,EAAG/yG,QAAgB+yG,EAAG/yG,SAAY,QAAU,GAAIgrM,EAAQ,MAAMnrM,KAE39B,SAAS,GAA4BvL,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAE7S,SAAS,GAAkBtnN,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAEhL,SAAS,GAAQtlB,GAAkC,OAAO,GAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnK,UAAY,gBAAkBkK,GAAQ,GAAQA,GA2BzU,SAAS,GAAgB2U,EAAMypc,GAC7B,IAAIrsb,EAAQl6B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyzE,EAAAA,EAC5Eo4I,EAAW7rN,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,EACnF,OAAK8c,EACDA,EAAK62C,WAAa72C,EAAK0/M,cACvB3Q,EAAW3xL,GADkC,EAE7Cqsb,EAAezpc,GAAc+uM,EAC1B,GAAgB/uM,EAAKgB,WAAYyoc,EAAgBrsb,EAAO2xL,EAAW,IAJvD,EAOrB,SAAS,GAAqBxuM,EAAWgtC,GACvC,OAAO,SAAUvtC,GACf,IAAIqB,EAAKrB,EACT,GAAW,OAAPqB,EAAa,OAAO,EAExB,IACE,GAAId,EACF,GAAyB,iBAAdA,GACT,GAAIc,EAAGie,QAAQ,IAAIl7B,OAAOmc,IAAa,OAAO,OACzC,GA/Bf,SAAkCc,EAAIuoF,GACpC,IAAK,IAAI+/W,EAAStoc,EAAGsyB,UAAUtvC,OAAQsld,KAAW,CAChD,IAAIppc,EAAYc,EAAGsyB,UAAUg2a,GAE7B,GAAI//W,EAAMz+F,KAAKoV,GACb,OAAO,EAIX,OAAO,EAsBU,CAAyBc,EAAId,GACtC,OAAO,EAIX,SAAIgtC,IAAYlsC,EAAGie,QAAQiuB,IAE3B,MAAOokZ,GACP,OAAO,KAhDb,SAAWqU,GACTA,EAASA,EAAmB,SAAI,GAAK,WACrCA,EAASA,EAAuB,aAAI,GAAK,eACzCA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAkB,QAAI,GAAK,UANtC,CAOG,KAAa,GAAW,KA8C3B,IAAI,GAAiC,4NACjC,GAAU,CACZ9oc,IAAK,GACLspc,MAAO,WAEL,OADAn4c,QAAQ3J,MAAM,KACN,GAEViid,QAAS,WAEP,OADAt4c,QAAQ3J,MAAM,IACP,MAET+hd,kBAAmB,WACjBp4c,QAAQ3J,MAAM,KAEhBskE,IAAK,WAEH,OADA36D,QAAQ3J,MAAM,KACP,GAET8mC,MAAO,WACLn9B,QAAQ3J,MAAM,MAgBlB,SAAS,GAAWuC,EAAQnH,EAAKoxD,EAAGyia,GAClC,IAAIl/S,EAAMvxK,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAKyJ,OAC1EqhI,EAAWymC,EAAIhtK,OAAOyqB,yBAAyBjrB,EAAQnH,GAc3D,OAbA20K,EAAIhtK,OAAOqY,eAAe7Y,EAAQnH,EAAK6zd,EAAYzia,EAAI,CACrDztC,IAAK,SAAa7gB,GAChB,IAAIiyH,EAAQ5yH,KAEZ,IAAW,WACTivD,EAAEztC,IAAI7d,KAAKivH,EAAOjyH,KACjB,GAECorI,GAAYA,EAASvqH,KACvBuqH,EAASvqH,IAAI7d,KAAK3D,KAAMW,MAIvB,WACL,OAAO,GAAWqE,EAAQnH,EAAKkuI,GAAY,IAAI,IAInD,SAAS,GAAMtrI,EAAQyD,EAAMgpI,GAC3B,IACE,KAAMhpI,KAAQzD,GACZ,OAAO,aAGT,IAAIsrI,EAAWtrI,EAAOyD,GAClBmpB,EAAU6/G,EAAYnB,GAa1B,MAXuB,mBAAZ1+G,IACTA,EAAQnuB,UAAYmuB,EAAQnuB,WAAa,GACzCsG,OAAOy1H,iBAAiB5tG,EAAS,CAC/Bskc,mBAAoB,CAClBtlc,YAAY,EACZ1rB,MAAOorI,MAKbtrI,EAAOyD,GAAQmpB,EACR,WACL5sB,EAAOyD,GAAQ6nI,GAEjB,MAAO2jU,GACP,OAAO,cAeX,SAAS,GAAU3xb,EAAMyqc,EAAYC,EAAeC,EAAiB6J,GACnE,IAAKx0c,EACH,OAAO,EAGT,IAAIqB,EAdN,SAA8BrB,GAC5B,OAAKA,EAIIA,EAAK62C,WAAa72C,EAAK0/M,aAAe1/M,EAAOA,EAAKg7b,cAHlD,KAYA,CAAqBh7b,GAE9B,IAAKqB,EACH,OAAO,EAGT,IACIszc,EAAgB,GAAgBtzc,EADb,GAAqBopc,EAAYC,IAEpDkK,GAAmB,EAEvB,QAAID,EAAgB,KAIhBhK,IACFiK,EAAkB,GAAgBvzc,EAAI,GAAqB,KAAMspc,KAG/DgK,GAAiB,GAAKC,EAAkB,GAIrCD,EAAgBC,GAnGH,oBAAXjod,QAA0BA,OAAO67G,OAAS77G,OAAO07G,UAC1D,GAAU,IAAIG,MAAM,GAAS,CAC3B9kG,IAAK,SAAazc,EAAQK,EAAM0hH,GAK9B,MAJa,QAAT1hH,GACF+G,QAAQ3J,MAAM,IAGT2jH,QAAQ3kG,IAAIzc,EAAQK,EAAM0hH,OAsDlC,iBAAiB79G,KAAKR,KAAKO,MAAMhJ,YAyCtC,IAAI,GAAwB,GAE5B,SAAS,GAAkBiE,GACzB,IAAIitJ,EAAS,GAAsBjtJ,GAEnC,GAAIitJ,EACF,OAAOA,EAGT,IAAIvoJ,EAAW8B,OAAO9B,SAClBsic,EAAOxgc,OAAOxG,GAElB,GAAI0E,GAA8C,mBAA3BA,EAASkB,cAC9B,IACE,IAAIghc,EAAUlic,EAASkB,cAAc,UACrCghc,EAAQ5zb,QAAS,EACjBtO,EAASk8E,KAAKrxE,YAAYq3b,GAC1B,IAAI94T,EAAgB84T,EAAQ94T,cAExBA,GAAiBA,EAAc9tI,KACjCgnc,EAAOl5T,EAAc9tI,IAGvB0E,EAASk8E,KAAK9lE,YAAY8rb,GAC1B,MAAO7jc,IAGX,OAAO,GAAsB/C,GAAQgnc,EAAKvsc,KAAK+L,QAGjD,SAAS,KACP,OAAO,GAAkB,yBAAyBxI,WAAM,EAAQjB,WAGlE,SAAS,KACP,OAAO,GAAkB,cAAciB,WAAM,EAAQjB,WA8CvD,IA3CA,IAOI,GAPA2sf,GAA+B,SAAUC,GAI3C,OAHAA,EAAeA,EAAe,MAAQ,GAAK,KAC3CA,EAAeA,EAAsB,MAAI,GAAK,QAC9CA,EAAeA,EAAuB,OAAI,GAAK,SACxCA,EAJ0B,CAKjCD,IAAiB,IAQf,GAAkB,SAAyBl5e,GAC7C,OAAK,GAIc,WACjB,IACE,OAAOA,EAAGxS,WAAM,EAAQjB,WACxB,MAAOwB,GACP,GAAI,KAAwC,IAAxB,GAAaA,GAC/B,OAAO,aAGT,MAAMA,IAXDiS,GAwBPssE,GAAQ,mEAERm3L,GAA+B,oBAAft5O,WAA6B,GAAK,IAAIA,WAAW,KAE5Dp3B,GAAI,EAAGA,GAAIu5E,GAAM5+E,OAAQqF,KAChC0wQ,GAAOn3L,GAAMvzE,WAAWhG,KAAMA,GAGhC,IAsBIqmf,GAAe,IAAI5ib,IAiBnB6ib,GAAe,SAAsBptf,EAAO6xK,EAAKvjK,GACnD,GAAKtO,IAAWqtf,GAAwBrtf,EAAO6xK,IAA2B,WAAnB,GAAQ7xK,IAA/D,CACA,IACIi3C,EAlBN,SAAyB3oC,EAAK+nK,GAC5B,IAAI8kJ,EAAagyL,GAAarse,IAAIxS,GAWlC,OATK6sT,IACHA,EAAa,IAAI5wP,IACjB4ib,GAAatse,IAAIvS,EAAK6sT,IAGnBA,EAAW/0P,IAAIiwG,IAClB8kJ,EAAWt6S,IAAIw1J,EAAM,IAGhB8kJ,EAAWr6S,IAAIu1J,GAMXi3U,CAAgBh/e,EADhBtO,EAAM4I,YAAYrF,MAEzBwX,EAAQk8B,EAAKh7C,QAAQ+D,GAOzB,OALe,IAAX+a,IACFA,EAAQk8B,EAAKx1C,OACbw1C,EAAK71C,KAAKpB,IAGL+a,IAGT,SAASwye,GAAavtf,EAAO6xK,EAAKvjK,GAChC,GAAItO,aAAiBsB,MACnB,OAAOtB,EAAMsa,KAAI,SAAU0S,GACzB,OAAOuge,GAAavge,EAAK6kJ,EAAKvjK,MAE3B,GAAc,OAAVtO,EACT,OAAOA,EACF,GAAIA,aAAiBmpS,cAAgBnpS,aAAiBwtf,cAAgBxtf,aAAiBytf,YAAcztf,aAAiBuwD,aAAevwD,aAAiBk+B,YAAcl+B,aAAiB0tf,aAAe1tf,aAAiB2tf,YAAc3tf,aAAiB4tf,WAAa5tf,aAAiB4uP,kBAEvR,MAAO,CACLi/P,QAFS7tf,EAAM4I,YAAYrF,KAG3BsD,KAAM,CAAChC,OAAO4/D,OAAOzkE,KAElB,GAAIA,aAAiBmM,YAAa,CACvC,IAAIklJ,EAAQrxJ,EAAM4I,YAAYrF,KAC1Buqf,EApEK,SAAgBC,GAC3B,IACIjnf,EADAsjB,EAAQ,IAAI8T,WAAW6vd,GAEvB5rZ,EAAM/3E,EAAM3oB,OACZqsf,EAAS,GAEb,IAAKhnf,EAAI,EAAGA,EAAIq7F,EAAKr7F,GAAK,EACxBgnf,GAAUzta,GAAMj2D,EAAMtjB,IAAM,GAC5Bgnf,GAAUzta,IAAkB,EAAXj2D,EAAMtjB,KAAW,EAAIsjB,EAAMtjB,EAAI,IAAM,GACtDgnf,GAAUzta,IAAsB,GAAfj2D,EAAMtjB,EAAI,KAAY,EAAIsjB,EAAMtjB,EAAI,IAAM,GAC3Dgnf,GAAUzta,GAAqB,GAAfj2D,EAAMtjB,EAAI,IAS5B,OANIq7F,EAAM,GAAM,EACd2rZ,EAASA,EAAOthe,UAAU,EAAGshe,EAAOrsf,OAAS,GAAK,IACzC0gG,EAAM,GAAM,IACrB2rZ,EAASA,EAAOthe,UAAU,EAAGshe,EAAOrsf,OAAS,GAAK,MAG7Cqsf,EAiDQ/mf,CAAO/G,GACpB,MAAO,CACL6tf,QAASx8V,EACTy8V,OAAQA,GAEL,OAAI9tf,aAAiBsqE,SAEnB,CACLujb,QAFW7tf,EAAM4I,YAAYrF,KAG7BsD,KAAM,CAAC0mf,GAAavtf,EAAM4F,OAAQisK,EAAKvjK,GAAMtO,EAAMmwE,WAAYnwE,EAAMowE,aAE9DpwE,aAAiBguf,iBAGnB,CACLH,QAHW7tf,EAAM4I,YAAYrF,KAI7B6P,IAHQpT,EAAMoT,KAKPpT,aAAiBs8O,kBAKnB,CACLuxQ,QALW,mBAMXz6e,IAJSpT,EAAMurd,aAMRvrd,aAAiBsvP,UAEnB,CACLu+P,QAFW7tf,EAAM4I,YAAYrF,KAG7BsD,KAAM,CAAC0mf,GAAavtf,EAAMhG,KAAM63K,EAAKvjK,GAAMtO,EAAMmO,MAAOnO,EAAMoO,SAEvDi/e,GAAwBrtf,EAAO6xK,IAA2B,WAAnB,GAAQ7xK,GAGjD,CACL6tf,QAHW7tf,EAAM4I,YAAYrF,KAI7BwX,MAHUqye,GAAaptf,EAAO6xK,EAAKvjK,IAOhCtO,EAGT,IAAIiuf,GAAgB,SAAuBpnf,EAAMgrK,EAAKvjK,GACpD,OAAOzH,EAAKyT,KAAI,SAAU0S,GACxB,OAAOuge,GAAavge,EAAK6kJ,EAAKvjK,OAI9B++e,GAA0B,SAAiCrtf,EAAO6xK,GACpE,IACIq8U,EADwB,CAAC,kBAAmB,cAAe,mBAAoB,eAAgB,oBAAqB,cAAe,6BAA8B,eAAgB,uBAAwB,yBAA0B,6BAC5Knpf,QAAO,SAAUxB,GAC1E,MAA4B,mBAAdsuK,EAAItuK,MAEpB,OAAOmkH,QAAQwmY,EAA+Bl2d,MAAK,SAAUz0B,GAC3D,OAAOvD,aAAiB6xK,EAAItuK,QA4EhC,SAAS4qf,GAAyBC,GAChC,MAAuB,uBAAhBA,EAAuC,QAAUA,EAG1D,SAASC,GAA0Bx8U,EAAKg2S,EAAYC,EAAeC,EAAiBumC,GAClF,IAAIrsf,EAAW,GAEf,IACE,IAAI2/d,EAAiB,GAAM/vT,EAAIyqE,kBAAkB/9O,UAAW,cAAc,SAAU6sI,GAClF,OAAO,SAAUgjX,GACf,IAAK,IAAIp/d,EAAQ1uB,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAM0tB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGpoB,EAAKooB,EAAQ,GAAK3uB,UAAU2uB,GAG9B,IAAK,GAAU5vB,KAAMwod,EAAYC,EAAeC,GAAwB,CACtE,IAAIwmC,EAAUJ,GAAyBC,GAGvC,GAFM,cAAe/uf,OAAOA,KAAK8rd,UAAYojC,GAEzCD,GAAkC,CAAC,QAAS,UAAU5we,SAAS6we,GACjE,GAAI1nf,EAAK,IAA2B,WAArB,GAAQA,EAAK,IAAkB,CAC5C,IAAI2nf,EAAoB3nf,EAAK,GAExB2nf,EAAkBC,wBACrBD,EAAkBC,uBAAwB,QAG5C5nf,EAAKsX,OAAO,EAAG,EAAG,CAChBswe,uBAAuB,IAM/B,OAAOrjX,EAAS7pI,MAAMlC,KAAM,CAAC+uf,GAAa5sf,OAAOqF,QAGrD5E,EAASb,KAAKwge,GACd,MAAOt7d,GACPmF,QAAQ3J,MAAM,0DAGhB,OAAO,WACLG,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,QAKb,SAASmsf,GAAiBnwf,EAAWoM,EAAMoJ,EAAI8zc,EAAYC,EAAeC,EAAiBH,EAAQ/1S,GACjG,IAIIsvD,EAJAl/N,EAAW,GAGXm/N,EAAa,GAFLv8N,OAAOwqB,oBAAoB9wB,IAKvC,IACE,IAAIowf,EAAS,WACX,IAAIjqf,EAAOy8N,EAAOnhO,MAElB,GAAI,CAAC,gBAAiB,SAAU,qBAAsB,uBAAuB0d,SAAShZ,GACpF,MAAO,WAGT,IACE,GAA+B,mBAApBnG,EAAUmG,GACnB,MAAO,WAGT,IAAIk9d,EAAiB,GAAMrje,EAAWmG,GAAM,SAAU0mI,GACpD,OAAO,WACL,IAAK,IAAI7hF,EAAQjpD,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMioD,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF3iD,EAAK2iD,GAASlpD,UAAUkpD,GAG1B,IAAI39C,EAASu/H,EAAS7pI,MAAMlC,KAAMwH,GAGlC,GAFAumf,GAAavhf,EAAQgmK,EAAKxyK,MAEtB,YAAaA,KAAKgP,SAAW,GAAUhP,KAAKgP,OAAQw5c,EAAYC,EAAeC,GAAwB,CACzG,IAAI6mC,EAAaX,GAAcpnf,EAAMgrK,EAAKxyK,MACtCwvf,EAAW,CACblkf,KAAMA,EACNsS,SAAUvY,EACVmC,KAAM+nf,GAER76e,EAAG1U,KAAKgP,OAAQwgf,GAGlB,OAAOhjf,MAGX5J,EAASb,KAAKwge,GACd,MAAOt7d,GACP,IAAIwof,EAAc,GAAWvwf,EAAWmG,EAAM,CAC5Cmc,IAAK,SAAa3Z,GAChB6M,EAAG1U,KAAKgP,OAAQ,CACd1D,KAAMA,EACNsS,SAAUvY,EACVmC,KAAM,CAACK,GACP4a,QAAQ,OAId7f,EAASb,KAAK0tf,KAIlB,IAAK1tR,EAAWtyK,MAAOqyK,EAASC,EAAW7yK,KAAKrhC,MAClCyhe,IAId,MAAOxhe,GACPi0M,EAAW96N,EAAE6mB,GACb,QACAi0M,EAAWjwM,IAGb,OAAOlvB,EAyBT,IAAI8sf,GAA6B,WAC/B,SAASA,EAAc5sf,GACrB,IAAI+6N,EAAS79N,MA1nBjB,SAAyBf,EAAUkmH,GAAe,KAAMlmH,aAAoBkmH,GAAgB,MAAM,IAAI/kH,UAAU,qCA4nB5G,CAAgBJ,KAAM0vf,GAEtB1vf,KAAK2vf,uBAAyB,IAAIzkb,IAClClrE,KAAK4vf,UAAY,CACfC,SAAU,EACVC,SAAU,MAEZ9vf,KAAKsne,WAAa,IAAIn8Z,IACtBnrE,KAAK+vf,WAAa,IAAI70E,QACtBl7a,KAAKgwf,QAAU,GACfhwf,KAAKune,gBAAkB,GACvBvne,KAAKmlC,QAAS,EACdnlC,KAAKu0J,QAAS,EACdv0J,KAAKiwf,sBAAwB,IAAI/kb,IACjClrE,KAAKysD,OAAS,KAEdzsD,KAAK61d,gBAAkB,SAAU7wd,EAAQwqf,KACxB3xR,EAAO+xR,UAAUE,UAAYjyR,EAAO+xR,UAAUC,WAAahyR,EAAO+xR,UAAUE,WAC1EjyR,EAAO+xR,UAAUE,WAAUjyR,EAAO+xR,UAAUE,SAAWjyR,EAAO+xR,UAAUC,UAEpFhyR,EAAO8xR,uBAAuB5ob,IAAI/hE,IACrC64N,EAAO8xR,uBAAuBnue,IAAIxc,EAAQ,IAG5C64N,EAAO8xR,uBAAuBlue,IAAIzc,GAAQjD,KAAKytf,IAGjD,IAAI5lB,EAAoB9me,EAAQ83d,SAC5BA,OAAiC,IAAtBgP,EAA+B,MAAQA,EAClDp3T,EAAM1vK,EAAQ0vK,IACdg2S,EAAa1ld,EAAQ0ld,WACrBC,EAAgB3ld,EAAQ2ld,cACxBC,EAAkB5ld,EAAQ4ld,gBAC1BghB,EAAgB5me,EAAQ4me,cACxBngB,EAAezmd,EAAQymd,aACvBJ,EAAiBrmd,EAAQqmd,eACzBzuS,EAAe53K,EAAQ43K,aAC3B16K,KAAK63d,WAAa/0d,EAAQ+0d,WAC1B73d,KAAKuod,OAASzld,EAAQyld,OACtBvod,KAAK8C,QAAUA,EAEX43K,IAzaN,GA0ayBA,IAGnB6uS,GAAoC,iBAAbqR,GAAyB93d,EAAQotf,wBAC1Dlwf,KAAKysD,OAASzsD,KAAKmwf,iBAGrBnwf,KAAK+2d,UAAUvkT,GAEX1vK,EAAQotf,sBAIZ,IAAgB,WACV3mC,GAA6B,QAAbqR,IAClB/8P,EAAOuyR,uBAEPvyR,EAAOwyR,qCAGL9mC,GAAoC,iBAAbqR,GACzB/8P,EAAOyyR,sBAAsB11B,EAAUpS,EAAYC,EAAeC,EAAiBghB,EAAe,CAChGvgB,eAAgBA,MATtB,GA/qBJ,IAAsBhkW,EAAaM,EAuiCjC,OAviCoBN,EA8rBPuqY,EA9rBoBjqY,EA8rBL,CAAC,CAC3B5nH,IAAK,QACL8C,MAAO,WACLX,KAAK2vf,uBAAuB7md,QAC5B9oC,KAAKune,gBAAgB5pe,SAAQ,SAAUipC,GACrC,IACEA,IACA,MAAO3/B,QAEXjH,KAAKune,gBAAkB,GACvBvne,KAAK+vf,WAAa,IAAI70E,QACtBl7a,KAAKgwf,QAAU,GACfhwf,KAAKsne,WAAa,IAAIn8Z,IAEtBmxY,GAAe,CAACt8c,KAAM,SAAU,SAAU0R,GACxC,OAAOA,EAAE+6C,QACR,iBAAkB,SAAUw2Z,GAC7B,OAAOA,EAAGl2Z,WACT,OAAQ,SAAUo3Z,GACnB,OAAOA,OAGTnkd,KAAKysD,OAAS,KACdzsD,KAAKiwf,sBAAwB,IAAI/kb,KAE7BlrE,KAAK8C,QAAQymd,cAAiD,iBAA1Bvpd,KAAK8C,QAAQ83d,UAAyB56d,KAAK8C,QAAQotf,wBACzFlwf,KAAKysD,OAASzsD,KAAKmwf,mBAGtB,CACDtyf,IAAK,SACL8C,MAAO,WACLX,KAAKmlC,QAAS,IAEf,CACDtnC,IAAK,WACL8C,MAAO,WACLX,KAAKmlC,QAAS,IAEf,CACDtnC,IAAK,OACL8C,MAAO,WACLX,KAAKu0J,QAAS,IAEf,CACD12J,IAAK,SACL8C,MAAO,WACLX,KAAKu0J,QAAS,IAEf,CACD12J,IAAK,YACL8C,MAAO,SAAmB6xK,GACxB,IAAI0rD,EAASl+N,KAET+kO,EAAgB/kO,KAAK8C,QACrBytf,EAAwBxrR,EAAc61P,SACtCA,OAAqC,IAA1B21B,EAAmC,MAAQA,EACtD/nC,EAAazjP,EAAcyjP,WAC3BC,EAAgB1jP,EAAc0jP,cAC9BC,EAAkB3jP,EAAc2jP,gBAChCa,EAAexkP,EAAcwkP,aAC7B2mC,EAAuBnrR,EAAcmrR,qBACzC,IAAIlwf,KAAK+vf,WAAWhpb,IAAIyrG,GAAxB,CAEA,GAAI09U,EAGF,OAFAlwf,KAAK+vf,WAAWzre,IAAIkuJ,QACpBxyK,KAAKgwf,QAAQjuf,KAAK,IAAIyuf,QAAQh+U,IAIhC,IAAgB,WAKd,GAJI+2S,GAA6B,QAAbqR,GAClB18P,EAAOuyR,2BAA2Bj+U,EAAKg2S,EAAYC,EAAeC,GAGhEa,GAAoC,iBAAbqR,EAAuB,CAChD,IAAI81B,EAAqB1B,GAA0Bx8U,EAAKg2S,EAAYC,EAAeC,GAAiB,GAEpGxqP,EAAOqpQ,gBAAgBxle,MAAK,WAC1B2uf,UATN,GAaA1wf,KAAK+vf,WAAWzre,IAAIkuJ,GACpBxyK,KAAKgwf,QAAQjuf,KAAK,IAAIyuf,QAAQh+U,OAE/B,CACD30K,IAAK,gBACL8C,MAAO,SAAuBk2N,GAC5B72N,KAAKsne,WAAWhjd,IAAI,IAAIkse,QAAQ35R,MAEjC,CACDh5N,IAAK,mBACL8C,MAAO,WACLX,KAAKsne,WAAa,IAAIn8Z,MAEvB,CACDttE,IAAK,gBACL8C,MAAO,WACL,IAjLA2N,EAiLIkwN,EAASx+N,KAETysD,EAAS,IAAIC,QAnLjBp+C,EAAI,IAAI2uB,KAAK,CAHX,kgDAICsvB,IAAIC,gBAAgBl+C,KAuNvB,OAnCAm+C,EAAOI,UAAY,SAAU5lD,GAC3B,IAAItM,EAAOsM,EAAEtM,KACTqI,EAAKrI,EAAKqI,GAId,GAFAw7N,EAAOyxR,sBAAsBzue,IAAIxe,GAAI,GAE/B,WAAYrI,EAAlB,CACA,IAAI8zf,EAAS9zf,EAAK8zf,OACdnjf,EAAO3Q,EAAK2Q,KACZwD,EAAQnU,EAAKmU,MACbC,EAASpU,EAAKoU,OAElByvN,EAAOq5P,WAAW,CAChB70d,GAAIA,EACJsI,KAAMsif,GAAc,MACpB+C,SAAU,CAAC,CACT/ye,SAAU,YACVpW,KAAM,CAAC,EAAG,EAAGsH,EAAOC,IACnB,CACD6O,SAAU,YACVpW,KAAM,CAAC,CACLgnf,QAAS,cACThnf,KAAM,CAAC,CACLgnf,QAAS,OACT7zf,KAAM,CAAC,CACL6zf,QAAS,cACTC,OAAQA,IAEVnjf,KAAMA,KAEP,EAAG,EAAGwD,EAAOC,SAKf09C,IAER,CACD5uD,IAAK,wBACL8C,MAAO,SAA+BqtD,EAAKw6Z,EAAYC,EAAeC,EAAiBghB,EAAe5me,GACpG,IAAI8tf,EAAQ5wf,KAAK6wf,cAAa,EAAO7ic,EAAKw6Z,EAAYC,EAAeC,EAAiBghB,EAAe5me,EAAQqmd,gBAC7Gnpd,KAAKune,gBAAgBxle,MAAK,WACxBwsD,qBAAqBqic,QAGxB,CACD/yf,IAAK,6BACL8C,MAAO,SAAoC6xK,EAAKg2S,EAAYC,EAAeC,GACzE,IAAIgoC,EAAqB1B,GAA0Bx8U,EAAKg2S,EAAYC,EAAeC,GAAiB,GAChGooC,EAxbV,SAAsCp8e,EAAI89J,EAAKg2S,EAAYC,EAAeC,GACxE,IAII3qb,EAJAn7B,EAAW,GAGXo7B,EAAY,GAFFx4B,OAAOwqB,oBAAoBwiJ,EAAIu+U,yBAAyB7xf,YAKtE,IACE,IAAIyyN,EAAQ,WACV,IAAItsN,EAAO04B,EAAMp9B,MAEjB,IACE,GAA4D,mBAAjD6xK,EAAIu+U,yBAAyB7xf,UAAUmG,GAChD,MAAO,WAGT,IAAIk9d,EAAiB,GAAM/vT,EAAIu+U,yBAAyB7xf,UAAWmG,GAAM,SAAU0mI,GACjF,OAAO,WAGL,IAFA,IAAI+wF,EAAS98N,KAEJqd,EAAOpc,UAAUmB,OAAQoF,EAAO,IAAIvF,MAAMob,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9V,EAAK8V,GAAQrc,UAAUqc,GAczB,OAXK,GAAUtd,KAAKgP,OAAQw5c,EAAYC,EAAeC,IACrD,IAAW,WACT,IAAI6mC,EAAaX,GAAcpnf,EAAMgrK,EAAKsqD,GAC1CpoN,EAAGooN,EAAO9tN,OAAQ,CAChB1D,KAAMsif,GAAc,MACpBhwe,SAAUvY,EACVmC,KAAM+nf,MAEP,GAGExjX,EAAS7pI,MAAMlC,KAAMwH,OAGhC5E,EAASb,KAAKwge,GACd,MAAOt7d,GACP,IAAIwof,EAAc,GAAWj9U,EAAIu+U,yBAAyB7xf,UAAWmG,EAAM,CACzEmc,IAAK,SAAa3Z,GAChB6M,EAAG1U,KAAKgP,OAAQ,CACd1D,KAAMsif,GAAc,MACpBhwe,SAAUvY,EACVmC,KAAM,CAACK,GACP4a,QAAQ,OAId7f,EAASb,KAAK0tf,KAIlB,IAAKzxd,EAAUyxB,MAAO1xB,EAAQC,EAAUkxB,KAAKrhC,MAChC8jM,IAIb,MAAO7jM,GACPkQ,EAAU/2B,EAAE6mB,GACZ,QACAkQ,EAAUlM,IAGZ,OAAO,WACLlvB,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,QAqXa8tf,CAA6Bhxf,KAAK61d,gBAAgBl3d,KAAKqB,MAAOwyK,EAAKg2S,EAAYC,EAAeC,GAC9GuoC,EAzPV,SAAyCv8e,EAAI89J,EAAKg2S,EAAYC,EAAeC,EAAiBH,GAC5F,IAAI3ld,EAAW,GAOf,OANAA,EAASb,KAAKG,MAAMU,EAAU,GAAmBysf,GAAiB78U,EAAI0+U,sBAAsBhyf,UAAW0uf,GAAcuD,MAAOz8e,EAAI8zc,EAAYC,EAAeC,EAAiBH,EAAQ/1S,UAE1I,IAA/BA,EAAI4+U,wBACbxuf,EAASb,KAAKG,MAAMU,EAAU,GAAmBysf,GAAiB78U,EAAI4+U,uBAAuBlyf,UAAW0uf,GAAcyD,OAAQ38e,EAAI8zc,EAAYC,EAAeC,EAAiBH,EAAQ/1S,KAGjL,WACL5vK,EAASjF,SAAQ,SAAUuF,GACzB,OAAOA,QA+OqBouf,CAAgCtxf,KAAK61d,gBAAgBl3d,KAAKqB,MAAOwyK,EAAKg2S,EAAYC,EAAeC,EAAiB1od,KAAKuod,QACnJvod,KAAKune,gBAAgBxle,MAAK,WACxB2uf,IACAI,IACAG,SAGH,CACDpzf,IAAK,WACL8C,MAAO,SAAkB4wf,GACvB,IAAIzuf,EAAU9C,KAAK8C,QACf8tf,EAAQ5wf,KAAK6wf,cAAa,EAA2B,QAArB/tf,EAAQ83d,SAAqB,EAAI93d,EAAQ83d,UAAY,EAAG93d,EAAQ0ld,WAAY1ld,EAAQ2ld,cAAe3ld,EAAQ4ld,gBAAiB5ld,EAAQ4me,cAAe5me,EAAQqmd,eAAgBooC,GAC/Mvxf,KAAKune,gBAAgBxle,MAAK,WACxBwsD,qBAAqBqic,QAGxB,CACD/yf,IAAK,eACL8C,MAAO,SAAsB6wf,EAAkBxjc,EAAKw6Z,EAAYC,EAAeC,EAAiBghB,EAAevgB,EAAgBooC,GAC7H,IAIIX,EAJA3xR,EAASj/N,KAETyxf,EAAuB,IAAOzjc,EAC9B0jc,EAAmB,EA4HvB,OADAd,EAAQ,IAhEkB,SAASe,EAAoB5pe,GAChDk3M,EAAO+wR,QAAQ5tf,SAIhBsvf,GAAoB3pe,EAAY2pe,EAAmBD,EACrDb,EAAQ,GAAwBe,IAIlCD,EAAmB3pe,EAlEL,SAAmBwpe,GACjC,GAAIA,EACF,MAAO,CAACA,GAGV,IAWI1yP,EAXA+yP,EAAgB,GAEhBC,EAAe,SAAsBv/e,GACvCA,EAAKy5C,iBAAiB,UAAUpuD,SAAQ,SAAUqR,GAC3C,GAAUA,EAAQw5c,EAAYC,EAAeC,IAChDkpC,EAAc7vf,KAAKiN,OAKrB4vP,EAAa,GAA2B3/B,EAAO+wR,SAGnD,IACE,IAAKpxP,EAAWnvM,MAAOovM,EAASD,EAAW1vM,KAAKrhC,MAAO,CACrD,IAEIike,EAFOjzP,EAAOl+P,MAECoxf,QAEfD,GACFD,EAAaC,EAAQlpf,WAGzB,MAAOklB,GACP8wO,EAAW33P,EAAE6mB,GACb,QACA8wO,EAAW9sO,IAGb,IACI28O,EADAD,EAAa,GAA2BvvC,EAAOqoQ,YAGnD,IACE,IAAK94N,EAAW/+M,MAAOg/M,EAASD,EAAWt/M,KAAKrhC,MAAO,CACrD,IAEIgpM,EAFQ43C,EAAO9tQ,MAEIoxf,QAEnBl7R,GACFg7R,EAAah7R,IAGjB,MAAO/oM,GACP0gP,EAAWvnQ,EAAE6mB,GACb,QACA0gP,EAAW18O,IAGb,OAAO8/d,EAcPI,CAAUT,GAAe5zf,SAAQ,SAAUqR,GACzC,GAAKiwN,EAAOspP,OAAOmC,QAAQ17c,GAA3B,CAIA,IAAIhM,EAAKi8N,EAAOspP,OAAOhE,MAAMv1c,GAE7B,IAAIiwN,EAAOgxR,sBAAsBxue,IAAIze,IAChCgM,EAAOF,OAAUE,EAAOD,OAA7B,CAIA,GAFAkwN,EAAOgxR,sBAAsBzue,IAAIxe,GAAI,IAEhCwuf,GAAoB,CAAC,QAAS,UAAUnze,SAASrP,EAAO88c,WAAY,CACvE,IAAI9sd,EAAUgQ,EAAOE,WAAWF,EAAO88c,YAQ/B,IANJxP,GAAe,CAACt9c,EAAS,iBAAkB,SAAUqld,GACvD,OAAOA,EAAG4tC,sBACT,OAAQ,SAAU3tC,GACnB,OAAOA,KACN,iBAAkB,SAAUY,GAC7B,OAAOA,EAAGkqC,0BAEVpwf,EAAQ8pC,MAAM9pC,EAAQoyT,kBAI1B9xE,kBAAkBtwO,GAAQzQ,MAAK,SAAUunI,GACvCw2U,GAAe,CAACr9O,EAAQ,SAAU,SAAUwuP,GAC1C,OAAOA,EAAGhha,QACT,iBAAkB,SAAUiha,GAC7B,OAAOA,EAAG5ga,aACT,OAAQ,SAAU6ga,GACnB,OAAOA,EAAG,CACR3qd,GAAIA,EACJ8iI,OAAQA,EACRh3H,MAAOE,EAAOF,MACdC,OAAQC,EAAOD,OACfo6c,eAAgBA,EAChBugB,cAAeA,GACd,CAAC5jW,UAEL9qH,OAAM,SAAUvY,GACjB,IAAgB,WACd,MAAMA,IADR,WAMC+uf,IACHZ,EAAQ,GAAwBe,SAK7Bf,IAER,CACD/yf,IAAK,oCACL8C,MAAO,WACL,IAAI0+N,EAASr/N,KAEb,IAAwB,WACtB,OAAOq/N,EAAO6yR,mCAGjB,CACDr0f,IAAK,uBACL8C,MAAO,WACL,IAAI6/N,EAASxgO,KAOb,IAL4B,SAASmyf,EAAsBpqe,GACzDy4M,EAAOovR,UAAUC,SAAW9ne,EAC5B,GAAwBoqe,QAK3B,CACDt0f,IAAK,8BACL8C,MAAO,WACL,IAAIigO,EAAS5gO,KAEbA,KAAK2vf,uBAAuBhyf,SAAQ,SAAUynE,EAAQp2D,GACpD,IAAIhM,EAAK49N,EAAO2nP,OAAOhE,MAAMv1c,GAE7B4xN,EAAOwxR,8BAA8Bpjf,EAAQhM,MAE/C,IAAwB,WACtB,OAAO49N,EAAOsxR,mCAGjB,CACDr0f,IAAK,gCACL8C,MAAO,SAAuCqO,EAAQhM,GACpD,IAAIhD,KAAKmlC,SAAUnlC,KAAKu0J,OAAxB,CAIA,IAAI89V,EAAiBryf,KAAK2vf,uBAAuBlue,IAAIzS,GACrD,GAAKqjf,IAA0B,IAARrvf,EAAvB,CACA,IAAIoiE,EAASitb,EAAep3e,KAAI,SAAUta,GAIxC,OAHWA,EAAM2K,KAhiCzB,SAAkC7K,EAAQ0tB,GAAY,GAAc,MAAV1tB,EAAgB,MAAO,GAAI,IAAkE5C,EAAK4J,EAAnEzC,EAEzF,SAAuCvE,EAAQ0tB,GAAY,GAAc,MAAV1tB,EAAgB,MAAO,GAAI,IAA2D5C,EAAK4J,EAA5DzC,EAAS,GAAQopB,EAAa5oB,OAAOC,KAAKhF,GAAqB,IAAKgH,EAAI,EAAGA,EAAI2mB,EAAWhsB,OAAQqF,IAAO5J,EAAMuwB,EAAW3mB,GAAQ0mB,EAASvxB,QAAQiB,IAAQ,IAAamH,EAAOnH,GAAO4C,EAAO5C,IAAQ,OAAOmH,EAFxM,CAA8BvE,EAAQ0tB,GAAuB,GAAI3oB,OAAO8oB,sBAAuB,CAAE,IAAIC,EAAmB/oB,OAAO8oB,sBAAsB7tB,GAAS,IAAKgH,EAAI,EAAGA,EAAI8mB,EAAiBnsB,OAAQqF,IAAO5J,EAAM0wB,EAAiB9mB,GAAQ0mB,EAASvxB,QAAQiB,IAAQ,GAAkB2H,OAAOtG,UAAUsvB,qBAAqB7qB,KAAKlD,EAAQ5C,KAAgBmH,EAAOnH,GAAO4C,EAAO5C,IAAU,OAAOmH,EAiiChd,CAAyBrE,EAAO,OAIzC2K,EAAO+mf,EAAe,GAAG/mf,KAC7BtL,KAAK63d,WAAW,CACd70d,GAAIA,EACJsI,KAAMA,EACNqlf,SAAUvrb,IAEZplE,KAAK2vf,uBAAuBp0T,OAAOvsL,QAniCyBy2G,GAAY,GAAkBN,EAAYjmH,UAAWumH,GAA2EjgH,OAAOqY,eAAesnG,EAAa,YAAa,CAAEI,UAAU,IAuiCrPmqY,EAnbwB,GAsb7B4C,GAAiB,CACnB73a,IAAK,CACHmgZ,SAAU,CACR5rd,OAAQ,GAEVm6c,eAAgB,CACd79c,KAAM,aACN6vD,QAAS,MAGbivU,OAAQ,CACNwwF,SAAU,CACR5rd,OAAQ,GAEVm6c,eAAgB,CACd79c,KAAM,aACN6vD,QAAS,KAGbuf,KAAM,CACJkgZ,SAAU,CACR5rd,OAAQ,GAEVm6c,eAAgB,CACd79c,KAAM,aACN6vD,QAAS,MAIX,GAAmB,eACnBo3b,GAA0B,KA+E1B36C,GA5E2B,WAC7B,IAYI46C,EAZA1vf,EAAU7B,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAE9EoR,EAAOvP,EAAQ4me,eAAiB,GAChC/1d,EAAQ,GAAetB,EAAM,GAC7Bogf,EAAiB9+e,EAAM,GACvB++e,EAAkB/+e,EAAM,GAExBg/e,EAAiB,CACnBx3b,QAASr4D,EAAQq4D,SAAW,SAC5B+0b,qBAAsBptf,EAAQotf,qBAC9BxmB,cAAe,CAAC+oB,EAAiBlkf,KAAKM,IAAI4jf,EAAgBF,IAA2BA,GAAyBG,EAAkBnkf,KAAKM,IAAI6jf,EAAiBH,IAA2BA,KAInLK,EAAiB,IAAIr4f,SAAQ,SAAUC,GACzC,OAAOg4f,EAAuBh4f,KAGhC,MAAO,CACL0J,KAAM,GACNguB,WAAY,WACV,IAAIipC,EAAUw3b,EAAex3b,QACzB+0b,EAAuByC,EAAezC,qBACtCxmB,EAAgBipB,EAAejpB,cACnC,OAAO,GAAc,CACnBwmB,qBAAsBA,EACtB3mC,cAAc,EACdkhB,iBAAkB,SAA0BooB,GAC1C,IAAInrB,EAAU,IAAIgoB,GAAc,GAAc,GAAc,GAAImD,GAA0B,GAAI,CAC5F3C,qBAAsBA,EACtBxmB,cAAeA,EACfhvT,aAAc,SAAsB5sJ,GAClC,IACuB,WAAjB,GAAQA,KACVA,EAAI25d,WAAY,GAElB,MAAOhlf,SAMb,OADA+vf,EAAqB9qB,GACdA,IAER4qB,GAAen3b,GAAW,WAAam3b,GAAeloH,SAE3D2lF,SAAU,SAAkBwhC,GAC1B,OAAO,GAAgC,SAAyB,SAASl1R,IAEvE,OAAO,SAAyB,SAAkBhuE,GAChD,OACE,OAAQA,EAASj9G,KAAOi9G,EAAStgI,MAC/B,KAAK,EAEH,OADAsgI,EAAStgI,KAAO,EACT6ke,EAET,KAAK,EACavkW,EAAS0mB,KACXg7S,SAASwhC,GAEzB,KAAK,EACL,IAAK,MACH,OAAOljW,EAAS79I,UAGrB6rN,MAlBE,MCxpCT,GAAY,CAAC,OAAQ,mBAQzB,SAAS,GAAmB9uM,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQp6N,EAAK8vB,GAAO,IAAM,IAAI+P,EAAOnQ,EAAI1vB,GAAK8vB,GAAUhtB,EAAQ+8B,EAAK/8B,MAAS,MAAO8B,GAAwB,YAAfhI,EAAOgI,GAAsBi7B,EAAK7P,KAAQrzB,EAAQmG,GAAiBpG,QAAQC,QAAQmG,GAAOpC,KAAKy5N,EAAOC,GAE7P,SAAS,GAAkBh1N,GAAM,OAAO,WAAc,IAAI8K,EAAO/N,KAAMwH,EAAOvG,UAAW,OAAO,IAAI1G,SAAQ,SAAUC,EAASC,GAAU,IAAI8yB,EAAMtqB,EAAGf,MAAM6L,EAAMvG,GAAO,SAASwwN,EAAMr3N,GAAS,GAAmB4sB,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,OAAQt3N,GAAU,SAASs3N,EAAOnqM,GAAO,GAAmBP,EAAK/yB,EAASC,EAAQu9N,EAAOC,EAAQ,QAASnqM,GAAQkqM,OAAMv6N,OAEjX,SAAS,GAAe2N,EAAK3D,GAAK,OAUlC,SAAyB2D,GAAO,GAAInJ,MAAMiD,QAAQkG,GAAM,OAAOA,EAVtB,CAAgBA,IAQzD,SAA+BA,EAAK3D,GAAK,IAAIy7F,EAAY,MAAP93F,EAAc,KAAyB,oBAAX/B,QAA0B+B,EAAI/B,OAAOC,WAAa8B,EAAI,cAAe,GAAU,MAAN83F,EAAJ,CAAwB,IAAkD4iF,EAAIO,EAAlDmyC,EAAO,GAAQ3yC,GAAK,EAAU3nF,GAAK,EAAmB,IAAM,IAAKgF,EAAKA,EAAGv/F,KAAKyH,KAAQy6K,GAAMC,EAAK5iF,EAAGn1E,QAAQF,QAAoB2qM,EAAKz2N,KAAK+jL,EAAGnlL,QAAY8G,GAAK+wN,EAAKp2N,SAAWqF,GAA3Do+K,GAAK,IAAoE,MAAO/3J,GAAOowE,GAAK,EAAMmoF,EAAKv4J,EAAO,QAAU,IAAW+3J,GAAsB,MAAhB3iF,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIhF,EAAI,MAAMmoF,GAAQ,OAAOmyC,GARzb,CAAsBptN,EAAK3D,IAI5F,SAAqC8a,EAAGmwM,GAAU,GAAKnwM,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGmwM,GAAS,IAAIxjK,EAAI1pD,OAAOtG,UAAUe,SAAS0D,KAAK4e,GAAGpd,MAAM,GAAI,GAAiE,MAAnD,WAAN+pD,GAAkB3sC,EAAEhZ,cAAa2lD,EAAI3sC,EAAEhZ,YAAYrF,MAAgB,QAANgrD,GAAqB,QAANA,EAAoBjtD,MAAM4sB,KAAKtM,GAAc,cAAN2sC,GAAqB,2CAA2ChmD,KAAKgmD,GAAW,GAAkB3sC,EAAGmwM,QAAzG,GAJ3M,CAA4BtnN,EAAK3D,IAEnI,WAA8B,MAAM,IAAIrH,UAAU,6IAFuF,GAMzI,SAAS,GAAkBgL,EAAK03F,IAAkB,MAAPA,GAAeA,EAAM13F,EAAIhJ,UAAQ0gG,EAAM13F,EAAIhJ,QAAQ,IAAK,IAAIqF,EAAI,EAAGinB,EAAO,IAAIzsB,MAAM6gG,GAAMr7F,EAAIq7F,EAAKr7F,IAAOinB,EAAKjnB,GAAK2D,EAAI3D,GAAM,OAAOinB,EAMhL,SAAS,GAAQhD,EAAQ0sM,GAAkB,IAAI3yN,EAAOD,OAAOC,KAAKimB,GAAS,GAAIlmB,OAAO8oB,sBAAuB,CAAE,IAAI8+G,EAAU5nI,OAAO8oB,sBAAsB5C,GAAS0sM,IAAmBhrF,EAAUA,EAAQ1nI,QAAO,SAAU4+I,GAAO,OAAO9+I,OAAOyqB,yBAAyBvE,EAAQ44H,GAAKj4H,eAAiB5mB,EAAK1D,KAAKG,MAAMuD,EAAM2nI,GAAY,OAAO3nI,EAE9U,SAAS,GAAcT,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAAS,MAAQQ,UAAUwG,GAAKxG,UAAUwG,GAAK,GAAIA,EAAI,EAAI,GAAQjC,OAAO/E,IAAS,GAAI9C,SAAQ,SAAUE,GAAO,GAAgBmH,EAAQnH,EAAK4C,EAAO5C,OAAY2H,OAAO01I,0BAA4B11I,OAAOy1H,iBAAiBj2H,EAAQQ,OAAO01I,0BAA0Bz6I,IAAW,GAAQ+E,OAAO/E,IAAS9C,SAAQ,SAAUE,GAAO2H,OAAOqY,eAAe7Y,EAAQnH,EAAK2H,OAAOyqB,yBAAyBxvB,EAAQ5C,OAAa,OAAOmH,EAEjf,SAAS,GAAgBoE,EAAKvL,EAAK8C,GAAiK,OAApJ9C,KAAOuL,EAAO5D,OAAOqY,eAAezU,EAAKvL,EAAK,CAAE8C,MAAOA,EAAO0rB,YAAY,EAAMi5F,cAAc,EAAMC,UAAU,IAAkBn8G,EAAIvL,GAAO8C,EAAgByI,EAO3M,IAAI,GAASmma,GACTujF,GAAW,GAAOlqf,SAClBmqf,GAAY,GAAOppf,UACnBqpf,GAAgB,eAChBC,GAAsB,SACtBC,GAAsB,kBACtBC,GAAuB,UACvBC,GAAa,eACbC,GAAoB,yBACpBC,GAAc,QACdC,GAAsB,uCACtBC,GAAgB,cAChBC,GAAmB,YACnBC,GAAa,OACbC,GAAuB,6BACvBC,GAAoB,aACpBC,GAAuB,mBACvBC,GAA0B,oBAQ1BC,GAAe,SAAsBz3f,GACvC,IAAIooJ,EAAOzjJ,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,CAC7Esnf,eAAe,GAGjB,IAAKjsf,EAAOyD,QACV,MAAM,IAAIyD,MAAM,gDAIlB,IAAIq8C,EAAS,KAEb,IAAKA,EACH,MAAM,IAAIr8C,MAAM,0CAGdlH,EAAO+vO,MAAQ7mO,OAAOC,KAAKnJ,EAAO+vO,MAAMjqO,QAC1C,KAAkBmmb,QAAQjsb,EAAO+vO,MAGnC,IAAIhF,EAAUulN,GAAgB,GAAc,CAC1Cnsb,OA3BsB,MA4BtB9E,IAAKg1a,MACJr0a,GAASooJ,GAEZ,OAAO,IAAInqJ,SAAQ,SAAUC,EAASC,GAEpC,IAAI+B,EAAUK,YAAW,WACvB,OAAOpC,EAAO,yDACb,KACCohR,EAAUh8N,EAAOp7B,GAAG,kBAAkB,SAAUG,EAAO7oB,GACzD,GAAI6oB,EAAMgvZ,WAAavsM,EAWvB,OAPAhmM,aAAa7kC,GACbq/Q,IAEI9/Q,GAA2C,iBAAxBA,EAAS4yK,YAA2B5yK,EAAS4yK,YAAc,KAAO5yK,EAAS4yK,WAAa,KAC7Gn0K,EAAQ6sO,GAGNtrO,GAA2C,iBAAxBA,EAAS4yK,YAAmD,IAAxB5yK,EAAS4yK,WAC3Dl0K,EAAO,uGAGZsB,GAA2C,iBAAxBA,EAAS4yK,YAAmD,MAAxB5yK,EAAS4yK,WAC3Dl0K,EAAO,sGAGTA,EAAO,mHAqDhB,GAA0C,oBAArBo2a,kBAAoCA,iBAe7D,SAASmjF,KACP,QAAI,iEAAiE9qf,KAAK6pf,GAAUnpf,YAWhF,aAAaV,KAAK6pf,GAAUnpf,YAAcmpf,GAAU7lQ,gBAAkB6lQ,GAAU7lQ,eAAiB,IAIhG+mQ,iBAWP,SAAS,GAAa9he,EAAgB+he,GACpC,OAAO,GAAc,GAAc,GAAc,GAAI/he,GAAiB+he,GAAkB,GAAI,CAC1F7nR,KAAM,GAAc,GAAc,GAAIl6M,EAAek6M,MAAO6nR,EAAgB7nR,MAC5E8nR,WAAY,WACVD,EAAgBC,YAAcD,EAAgBC,aAC9Chie,EAAegie,YAAchie,EAAegie,cAE9CC,YAAa,WACXF,EAAgBE,aAAeF,EAAgBE,cAC/Cjie,EAAeiie,aAAejie,EAAeiie,eAE/CC,gBAAiB,SAAyB15f,GACxCu5f,EAAgBG,iBAAmBH,EAAgBG,gBAAgB15f,GACnEw3B,EAAekie,iBAAmBlie,EAAekie,gBAAgB15f,IAEnE25f,cAAe,SAAuB7xf,GACpCyxf,EAAgBI,eAAiBJ,EAAgBI,cAAc7xf,GAC/D0vB,EAAemie,eAAiBnie,EAAemie,cAAc7xf,IAE/D8xf,gBAAiB,WACfL,EAAgBK,iBAAmBL,EAAgBK,kBACnDpie,EAAeoie,iBAAmBpie,EAAeoie,mBAEnDC,UAAW,GAAc,GAAc,GAAIrie,EAAeqie,WAAYN,EAAgBM,WACtFC,WAAY,GAAc,GAAc,GAAItie,EAAesie,YAAaP,EAAgBO,cAuB5F,SAASC,GAAgBt1e,EAAIb,GAQ3B,OAPA/Y,OAAOg5C,QAAQjgC,GAAY5gB,SAAQ,SAAU0U,GAC3C,IAAIsB,EAAQ,GAAetB,EAAM,GAC7BxU,EAAM8V,EAAM,GACZ/V,EAAM+V,EAAM,GAEhByL,EAAG4hL,eAAe,KAAMnjM,EAAKD,MAExBwhB,EAGT,IAAIu1e,GAAO,GA2CX,SAASC,GAAMpgf,GACb,IAAIqgf,EAAergf,EAAMqgf,aACrBC,EAAmBtgf,EAAMsgf,iBACzB9rR,EAASx0N,EAAMw0N,OACf6xB,EAAarmP,EAAMqmP,WACnBz7O,EAAK0ze,GAAShpf,cAAc,UAOhC,GANAsV,EAAG9T,KAAO,SACV8T,EAAGd,UAAY,gBACfc,EAAG21e,WAAa,QAChB31e,EAAG41e,UAAYF,GAAoBD,GAAgB7B,GACnD5ze,EAAG3L,YA/CL,WACE,IAAIwhf,EAEAz2e,EAAkB,SAAyBssB,GAC7C,OAAO,GAAOliC,SAAS4V,gBATb,6BASsCssB,IAG9CgB,EAAM4od,GAAgBl2e,EAAgB,OAAQ,CAChD1P,MAAO,GAAG3M,OAAOwyf,IACjB5lf,OAAQ,GAAG5M,OAAOwyf,IAClBO,QAAS,OAAO/yf,OAAOwyf,GAAM,KAAKxyf,OAAOwyf,IACzClna,KAAM,0CAEJ5/E,EAAI6mf,GAAgBl2e,EAAgB,KAAM,CAC5C22e,SAAU,sBAER9sf,EAAOqsf,GAAgBl2e,EAAgB,SAAiC,GAAvBy2e,EAAmB,GAAsC,YAAa,WAAY,GAAgBA,EAAkB,YAAa,WAAY,GAAgBA,EAAkB,IAAK,4+DAA6+DA,IACttEnpd,EAAIr4B,YAAY5F,GAAG4F,YAAYpL,GAC/B,IAAI+sf,EAAc52e,EAAgB,QAC9B62e,EAAqBX,GAAgBl2e,EAAgB,YAAa,CACpExb,GAAI,gBAEFsyf,EAAcZ,GAAgBl2e,EAAgB,QAAS,CACzD1P,MAAO,GAAG3M,OAAOwyf,IACjB5lf,OAAQ,GAAG5M,OAAOwyf,IAClBlna,KAAM,UAKR,OAHA4na,EAAmB5hf,YAAY6hf,GAC/BF,EAAY3hf,YAAY4hf,GACxBvpd,EAAIr4B,YAAY2hf,GAAa3hf,YAAY4hf,GAAoB5hf,YAAY6hf,GAClExpd,EAiBQypd,IAEXV,EAAc,CAChB,IAAIr5e,EAAQs3e,GAAShpf,cAAc,QACnC0R,EAAM/H,YAAYq/e,GAAS5nd,eAAe2pd,IAC1Cz1e,EAAG3L,YAAY+H,GAGjB,IAAIuI,EAvFN,SAA2B82O,GACzB,IAAI92O,EAAQ+ue,GAAShpf,cAAc,SAOnC,OANAia,EAAMg/B,YAAc,yrCAEhB83M,GACF92O,EAAM9Z,aAAa,QAAS4wP,GAGvB92O,EA+EKyxe,CAAkB36P,GAC9B,MAAO,CACLz7O,GAAIA,EACJq2e,YAAa,WACXzsR,EAAOv1N,YAAYsQ,GACnBilN,EAAOv1N,YAAY2L,IAErBs2e,cAAe,WACb1sR,EAAOhqN,YAAYI,GACnB4pN,EAAOhqN,YAAY+E,IAErB0kG,KAAM,WACJrpG,EAAG21e,WAAa,SAElBpsY,KAAM,WACJvpG,EAAG21e,WAAa,SAKtB,IAAIY,GAAS,uBACTC,GAAgB,CAClBC,WAAY,UACZxlY,WAAY,UACZylY,iBAAkB,QAClBC,iBAAkBJ,GAClBK,aAAc,UACdC,WAAY,UACZhxV,OAAQ,qCACRmkE,UAAW,0CACX99M,QAAS,oCACT4qe,kBAAmB,mBAEjBC,GAAe,CACjBN,WAAY,UACZxlY,WAAY,UACZylY,iBAAkB,QAClBC,iBAAkBJ,GAClBK,aAAc,UACdC,WAAY,UACZhxV,OAAQ,wCACRmkE,UAAW,0CACX99M,QAAS,oCACT4qe,kBAAmB,oBAGrB,SAASE,GAAsBl8R,GAC7B,MAAO,qBAAqB/3N,OAAO+3N,EAAM27R,WAAY,uBAAuB1zf,OAAO+3N,EAAM7pG,WAAY,8BAA8BluH,OAAO+3N,EAAM47R,iBAAkB,8BAA8B3zf,OAAO+3N,EAAM67R,iBAAkB,0BAA0B5zf,OAAO+3N,EAAM87R,aAAc,wBAAwB7zf,OAAO+3N,EAAM+7R,WAAY,mBAAmB9zf,OAAO+3N,EAAMj1D,OAAQ,uBAAuB9iK,OAAO+3N,EAAMkP,UAAW,oBAAoBjnO,OAAO+3N,EAAM5uM,QAAS,+BAA+BnpB,OAAO+3N,EAAMg8R,kBAAmB,SAOvgB,SAASG,GAAiBvjf,GACxB,IAAIwjf,EAAcxjf,EAAMwjf,YACpB9B,EAAY1hf,EAAM0hf,UAClBC,EAAa3hf,EAAM2hf,WACnB55P,EAAa/nP,EAAM+nP,WACnB92O,EAAQ+ue,GAAShpf,cAAc,SAOnC,OANAia,EAAMg/B,YAAc,2RAA2R5gD,OAAuB,WAAhBm0f,EAA2B,4BAA8B,GAAI,UAAUn0f,OAAOi0f,GAAsC,SAAhBE,EAAyB,GAAc,GAAc,GAAIH,IAAe3B,GAAa,GAAc,GAAc,GAAIoB,IAAgBnB,IAAc,WAAWtyf,OAAuB,WAAhBm0f,EAA2B,2DAA2Dn0f,OAAOi0f,GAAsB,GAAc,GAAc,GAAID,IAAe3B,IAAa,YAAc,GAAI,SAE5vB35P,GACF92O,EAAM9Z,aAAa,QAAS4wP,GAGvB92O,EAGT,IAAIwye,GAA2B,SAAkCpjf,GAC/D,IAAIklc,EAAsBllc,EAAMklc,oBAC5Bm+C,EAAsBrjf,EAAMqjf,oBAC5BC,EAA2Btjf,EAAMsjf,yBAiarC,OA/Z0B,WACxB,IAAIhhf,EAAQxU,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAC5Ey1f,EAAWjhf,EAAMzS,GACjBA,OAAkB,IAAb0zf,EAAsB,kBAAoBA,EAC/CC,EAAmBlhf,EAAMmhf,WACzBA,OAAkC,IAArBD,GAAqCA,EAClDE,EAAqBphf,EAAMqhf,aAC3BA,OAAsC,IAAvBD,GAAuCA,EACtDE,EAAwBthf,EAAMuhf,gBAC9BA,OAA4C,IAA1BD,GAA2CA,EAC7DE,EAAuBxhf,EAAMyhf,eAC7BA,OAA0C,IAAzBD,GAA0CA,EAC3DE,EAAkB1hf,EAAM2hf,UACxBA,OAAgC,IAApBD,GAAoCA,EAChDE,EAAiB5hf,EAAM6hf,SACvBA,OAA8B,IAAnBD,GAAmCA,EAC9CE,EAAwB9hf,EAAM+hf,iBAC9BA,OAA6C,IAA1BD,GAA0CA,EAC7DE,EAAsBhif,EAAMiif,cAC5BA,OAAwC,IAAxBD,EAAiC,CACnD3iY,MAAO,QACP5wH,KAAM,YACJuzf,EACAprR,EAAO52N,EAAM42N,KACbwuB,EAAaplP,EAAMolP,WACnB09M,EAAc9ic,EAAM8ic,YACpBo/C,EAAoBlif,EAAM6gf,YAC1BA,OAAoC,IAAtBqB,EAA+B,SAAWA,EACxDC,EAAmBnif,EAAMg/e,WACzBA,OAAkC,IAArBmD,EAA8B,GAAKA,EAChDC,EAAkBpif,EAAM++e,UACxBA,OAAgC,IAApBqD,EAA6B,GAAKA,EAC9CC,EAAwBrif,EAAMsif,yBAC9BA,OAAqD,IAA1BD,EAAmCjE,GAAuBiE,EACrFE,EAAwBvif,EAAMwif,kBAC9BA,OAA8C,IAA1BD,EAAmC/E,GAAsB+E,EAC7EE,EAAwBzif,EAAM0if,mBAC9BA,OAA+C,IAA1BD,EAAmC/E,GAAuB+E,EAC/EE,EAAmB3if,EAAM4if,WACzBA,OAAkC,IAArBD,EAA8B9E,GAAc8E,EACzDE,EAAwB7if,EAAM8if,iBAC9BA,OAA6C,IAA1BD,EAAmCjF,GAAoBiF,EAC1EE,EAAkB/if,EAAMgjf,UACxBA,OAAgC,IAApBD,EAA6BpF,GAAaoF,EACtDE,EAAwBjjf,EAAMkjf,gBAC9BA,OAA4C,IAA1BD,EAAmC9E,GAAoB8E,EACzEE,EAAqBnjf,EAAMojf,aAC3BA,OAAsC,IAAvBD,EAAgCpF,GAAgBoF,EAC/DE,EAAwBrjf,EAAMsjf,mBAC9BA,OAA+C,IAA1BD,EAAmCvF,GAAsBuF,EAC9EE,EAAkBvjf,EAAMwjf,UACxBA,OAAgC,IAApBD,EAA6BtF,GAAasF,EACtDE,EAAwBzjf,EAAM0jf,gBAC9BA,OAA4C,IAA1BD,EAAmCzF,GAAmByF,EACxEE,EAAwB3jf,EAAM4jf,4BAC9BA,QAAwD,IAA1BD,EAAmCtF,GAA0BsF,EAC3FE,GAAwB7jf,EAAM8jf,kBAC9BA,QAA8C,IAA1BD,GAAmCpG,GAAsBoG,GAC7EE,GAAwB/jf,EAAMgkf,mBAC9BA,QAA+C,IAA1BD,GAAmC7F,GAAuB6F,GAC/EE,GAAqBjkf,EAAMo/e,aAC3BA,QAAsC,IAAvB6E,GAAgC1G,GAAgB0G,GAC/DC,GAAwBlkf,EAAMq/e,iBAC9BA,QAA6C,IAA1B6E,GAAmC,GAAKA,GAC3DxF,GAAa1+e,EAAM0+e,WACnBC,GAAc3+e,EAAM2+e,YACpBC,GAAkB5+e,EAAM4+e,gBACxBC,GAAgB7+e,EAAM6+e,cACtBC,GAAkB9+e,EAAM8+e,gBAExBhqS,GAAW,CACbvnN,GAAIA,EACJ4zf,WAAYA,EACZE,aAAcA,EACdE,gBAAiBA,EACjBE,eAAgBA,EAChBE,UAAWA,EACXE,SAAUA,EACVE,iBAAkBA,EAClBE,cAAeA,EACfrrR,KAAMA,EACNwuB,WAAYA,EACZ09M,YAAaA,EACb+9C,YAAaA,EACb9B,UAAWA,EACXC,WAAYA,EACZI,aAAcA,GACdC,iBAAkBA,GAClBmD,kBAAmBA,EACnBsB,kBAAmBA,GACnBpB,mBAAoBA,EACpBM,UAAWA,EACXJ,WAAYA,EACZE,iBAAkBA,EAClBM,aAAcA,EACdE,mBAAoBA,EACpBE,UAAWA,EACXE,gBAAiBA,EACjBM,mBAAoBA,GACpBd,gBAAiBA,EACjBZ,yBAA0BA,EAC1BsB,4BAA6BA,GAC7BjF,YAAaA,GACbD,WAAYA,GACZG,cAAeA,GACfD,gBAAiBA,GACjBE,gBAAiBA,IAEfqF,GAAU,KACVC,GAAiB,GAKjBC,GAAgB,SAAuBh3f,GACzC,IAAK82f,GAAS,CACZ,IAAIzvf,EAAO2of,GAAShpf,cAAc,OAClCK,EAAKnH,GAAK+0D,OAAOj1D,EAAQE,IACzB8vf,GAAS/zd,KAAKtrB,YAAYtJ,IAC1Byvf,GAAUzvf,EAAK4vf,aAAa,CAC1BpkX,KAAM,UAGAliI,YAAY4if,GAAiBvzf,IAGvC,OAAO82f,IAGLI,GAAgC,WAClC,IAAI5mf,EAAQ,GAAgC,SAAyB,SAASipN,EAAQqpO,EAAiBljb,EAAQy3e,GAC7G,IAAIp6c,EAAQolI,EAAU2zR,EAAe5uB,EACrC,OAAO,SAAyB,SAAkB37R,GAChD,OACE,OAAQA,EAASj9G,KAAOi9G,EAAStgI,MAC/B,KAAK,EAIH,GAHA8xB,EAAS,OACTolI,EAAWplI,GAAUA,EAAOq9Y,qBAAqBwI,IAElC,CACbr3S,EAAStgI,KAAO,EAChB,MAGF,OAAOsgI,EAAS6mB,OAAO,SAAU+P,GAEnC,KAAK,EAGH,GAFA52B,EAASumF,GAAKpyN,GAAUA,IAEpB6rI,EAASumF,GAAI,CACfvmF,EAAStgI,KAAO,EAChB,MAIF,OADAsgI,EAAStgI,KAAO,EACTsqb,EAAoB4hD,EAAoB1hD,GAEjD,KAAK,EACHlqT,EAASumF,GAAKvmF,EAAS0mB,KAEzB,KAAK,EAIH,OAHA6jS,EAAgBvqT,EAASumF,GACzBo1M,EAAc4uB,IACd/4Z,GAAUA,EAAOkrY,eAAef,GACzB37R,EAAS6mB,OAAO,SAAU80Q,GAEnC,KAAK,GACL,IAAK,MACH,OAAO37R,EAAS79I,UAGrB6rN,OAGL,OAAO,SAA0BiC,EAAIgd,EAAKC,GACxC,OAAOnoO,EAAMlR,MAAMlC,KAAMiB,YA9CO,GAkDhCi5f,GAAoC,WACtC,IAAI1yd,EAAQ,GAAgC,SAAyB,SAASs2L,EAASh7N,GACrF,IAAIq3f,EAAoBC,EAAoBC,EAAqBC,EAAkBC,EAAuBC,EAE1G,OAAO,SAAyB,SAAmBz8R,GACjD,OACE,OAAQA,EAAU3sL,KAAO2sL,EAAUhwM,MACjC,KAAK,EAGH,OAFAose,EAAqBr3f,EAAQ00f,kBAAoBxD,KACjDj2R,EAAUhwM,KAAO,EACVxzB,QAAQoF,IAAI,CAACq6f,GAAiB,gBAAiBxD,EAAqB,4BAA6B2D,EAAqBH,GAAiB,qBAAsBvD,EAA0B,sCAAmCh5f,IAEnO,KAAK,EAMH,GALA28f,EAAqBr8R,EAAUhpD,KAC/BslV,EAAsB,GAAeD,EAAoB,GACzDE,EAAmBD,EAAoB,GACvCE,EAAwBF,EAAoB,GAExCC,EAAkB,CACpBv8R,EAAUhwM,KAAO,GACjB,MAKF,MADA,IAAe,SAAa,6GACtB,IAAIvqB,MAAM,kDAElB,KAAK,GAoBH,OAnBI22f,IAAuBI,GACzB,IAAe,SAAa,uFAG9BC,EAASF,EAAiBG,aAAa,CACrC33f,QAAS,GAAc,GAAc,GAAIA,GAAU,GAAI,CACrDsxf,YAAa,WACXoG,GAAUA,EAAO/yY,QACjB3kH,EAAQsxf,aAAetxf,EAAQsxf,eAEjCG,gBAAiB,WACfiG,GAAUA,EAAO/yY,QACjB3kH,EAAQyxf,iBAAmBzxf,EAAQyxf,qBAGvCgG,sBAAuBJ,EAAqBI,OAAwB98f,EACpEs2f,aAAcA,GACd/qR,OAAQ8wR,GAAch3f,KAEjBi7N,EAAU7oD,OAAO,SAAUslV,GAEpC,KAAK,GACL,IAAK,MACH,OAAOz8R,EAAUvtN,UAGtBstN,OAGL,OAAO,SAA8Bof,GACnC,OAAO11M,EAAMtlC,MAAMlC,KAAMiB,YA1DW,GA8DpCy5f,GAAY,SAAmBt7e,GACjC,IAAI80e,EAAkBjzf,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GACtF4qD,EAAgB,GAAa0+J,GAAU2pS,GACvCyG,EAAyB,iBAAPv7e,EAAkB0ze,GAAS93c,cAAc57B,GAAqC,mBAAxBA,EAAGlhB,iBAAkCkhB,EAAK,KAEtH,IAAKu7e,EAEH,MADA,IAAe,SAAa,iDACtB,IAAIn3f,MAAM,sCAGlB,IAAIg3f,EAAS,KAET5md,EAA2B,WAC7B,IAAIjM,EAAQ,GAAgC,SAAyB,SAASw2L,IAC5E,OAAO,SAAyB,SAAmBC,GACjD,OACE,OAAQA,EAAUhtL,KAAOgtL,EAAUrwM,MACjC,KAAK,EACH,GAAIyse,EAAQ,CACVp8R,EAAUrwM,KAAO,EACjB,MAIF,OADAqwM,EAAUrwM,KAAO,EACVmse,GAAqB,GAAc,GAAc,GAAIruc,GAAgB,GAAI,CAC9E0oc,gBAAiB,WACfiG,GAAUA,EAAO9E,gBACjB7pc,EAAc0oc,iBAAmB1oc,EAAc0oc,sBAIrD,KAAK,EACHiG,EAASp8R,EAAUrpD,KAErB,KAAK,EACHylV,EAAO/E,cACP+E,EAAOr+f,OAET,KAAK,EACL,IAAK,MACH,OAAOiiO,EAAU5tN,UAGtB2tN,OAGL,OAAO,WACL,OAAOx2L,EAAMzlC,MAAMlC,KAAMiB,YAnCE,GAuC/B05f,EAASz8f,iBAAiB,QAAS01C,GAEnC,IAAI49N,EAAc,SAASA,IACzBqoP,GAAiBA,GAAen0f,QAAO,SAAUmT,GAC/C,OAAOA,IAAQ24P,KAEjBgpP,GAAUA,EAAO9E,gBACjB8E,EAAS,KACTG,EAASp2e,oBAAoB,QAASqvB,IAKxC,OAFAimd,GAAe93f,KAAKyvQ,GAEbA,GAGLopP,GAAe,WACjB,IAAI1G,EAAkBjzf,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GACtF4qD,EAAgB,GAAa0+J,GAAU2pS,GAEvClrR,EAAS8wR,GAAcjuc,GAEvBgvc,EAAQjG,GAAM,CAChBC,aAAchpc,EAAcgpc,aAC5BC,iBAAkBjpc,EAAcipc,iBAChC9rR,OAAQA,EACR6xB,WAAYA,IAed,OAZA6/P,GAAUG,EAAMz7e,GAAI,GAAc,GAAc,GAAIysC,GAAgB,GAAI,CACtEsoc,WAAY,WACV0G,EAAMlyY,QAERyrY,YAAa,WACXyG,EAAMpyY,QAER8rY,gBAAiB,WACfsG,EAAMpyY,WAIHoyY,GAGT,MAAO,CACL32f,KAAM,WACNymb,UAAW,WACJ,MAAgBpgO,GAASqsS,aAIF,YAAxB9D,GAASp2f,WACXo2f,GAAS50f,iBAAiB,oBAAoB,WAC5C,OAAO08f,KAAenF,iBAGxBmF,KAAenF,gBASnBqF,SAAUJ,GAMVK,aAAc,WACZ,IAAI7G,EAAkBjzf,UAAUmB,OAAS,QAAsB3E,IAAjBwD,UAAU,GAAmBA,UAAU,GAAK,GAEtF45f,EAAQD,GAAa,GAAarwS,GAAU2pS,IAGhD,OADA2G,EAAMpF,cACCoF,GAOTG,WAAY,WACV,IAAIh8R,EAAa/9N,UACjB,OAAO,GAAgC,SAAyB,SAASw9N,IACvE,IAAIy1R,EACJ,OAAO,SAAyB,SAAmBx1R,GACjD,OACE,OAAQA,EAAUttL,KAAOstL,EAAU3wM,MACjC,KAAK,EAEH,OADAmme,EAAkBl1R,EAAW58N,OAAS,QAAuB3E,IAAlBuhO,EAAW,GAAmBA,EAAW,GAAK,GAClFN,EAAUxpD,OAAO,SAAUglV,GAAqB,GAAa3vS,GAAU2pS,KAEhF,KAAK,EACL,IAAK,MACH,OAAOx1R,EAAUluN,UAGtBiuN,MAdE,IAqBTz1N,OAAQ,WACF4wf,KACFA,GAAQ7gD,eAAiB6gD,GAAQ7gD,cAAc/vc,SAC/C4wf,GAAU,MAIZC,GAAel8f,SAAQ,SAAUkb,GAC/B,OAAOA,OAGTghf,GAAiB,OAYzB,SAASoB,KACP,IAAIp7c,EAAS,KACb,OAAOA,GAAUA,EAAOq9Y,qBAAqB,YAG/C,IAAIhuY,GACAgsc,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAAM,GACNC,GAAM,GACNrhc,GAAM,oEACNshc,GAAMz5f,MAAMiD,QAEhB,SAASy2f,GAAIzsc,EAAGviD,GACd,IAAK,IAAIwiD,KAAKxiD,EACZuiD,EAAEC,GAAKxiD,EAAEwiD,GAGX,OAAOD,EAGT,SAAS0sc,GAAI1sc,GACX,IAAIviD,EAAIuiD,EAAEnwC,WACVpS,GAAKA,EAAEqS,YAAYkwC,GAGrB,SAAS2sc,GAAIlvf,EAAGwiD,EAAG7gD,GACjB,IAAI7G,EACA8a,EACAjT,EACAwiB,EAAI,GAER,IAAKxiB,KAAK6/C,EACR,OAAS7/C,EAAI7H,EAAI0nD,EAAE7/C,GAAK,OAASA,EAAIiT,EAAI4sC,EAAE7/C,GAAKwiB,EAAExiB,GAAK6/C,EAAE7/C,GAG3D,GAAIrO,UAAUmB,OAAS,IAAM0vB,EAAEnT,SAAW1d,UAAUmB,OAAS,EAAI8sD,GAAEvrD,KAAK1C,UAAW,GAAKqN,GAAI,mBAAqB3B,GAAK,MAAQA,EAAEmvf,aAAc,IAAKxsf,KAAK3C,EAAEmvf,kBACxJ,IAAWhqe,EAAExiB,KAAOwiB,EAAExiB,GAAK3C,EAAEmvf,aAAaxsf,IAE5C,OAAOysf,GAAIpvf,EAAGmlB,EAAGrqB,EAAG8a,EAAG,MAGzB,SAASw5e,GAAI7sc,EAAG5gD,EAAG7G,EAAG8a,EAAGjT,GACvB,IAAIwiB,EAAI,CACNxmB,KAAM4jD,EACN38C,MAAOjE,EACPzQ,IAAK4J,EACLsL,IAAKwP,EACLy5e,IAAK,KACLC,GAAI,KACJC,IAAK,EACLC,IAAK,KACLC,SAAK,EACLC,IAAK,KACL9yf,iBAAa,EACb+yf,IAAK,MAAQhtf,IAAM6rf,GAAM7rf,EACzBitf,KAAM,EACNC,IAAK,GAEP,OAAO,MAAQltf,GAAK,MAAQ4rf,GAAIp9U,OAASo9U,GAAIp9U,MAAMhsJ,GAAIA,EAGzD,SAAS2qe,GAAIvtc,GACX,OAAOA,EAAEvwC,SAGX,SAAS+9e,GAAIxtc,EAAGviD,GACd3M,KAAKuS,MAAQ28C,EAAGlvD,KAAKhB,QAAU2N,EAGjC,SAAS2jD,GAAIpB,EAAGviD,GACd,GAAI,MAAQA,EAAG,OAAOuiD,EAAE+sc,GAAK3rc,GAAIpB,EAAE+sc,GAAI/sc,EAAEqtc,IAAM,GAAK,KAEpD,IAAK,IAAIptc,EAAGxiD,EAAIuiD,EAAE8sc,IAAI55f,OAAQuK,IAC5B,GAAI,OAASwiD,EAAID,EAAE8sc,IAAIrvf,KAAO,MAAQwiD,EAAEgtc,IAAK,OAAOhtc,EAAEgtc,IAGxD,MAAO,mBAAqBjtc,EAAE5jD,KAAOglD,GAAIpB,GAAK,KAGhD,SAASytc,GAAIztc,EAAGC,EAAG7gD,GACjB,IAAI7G,EACA8a,EAAI2sC,EAAEotc,IACNhtf,EAAIiT,EAAE45e,IACNrqe,EAAIo9B,EAAE0tc,IACV,GAAI9qe,EAAG,OAAQrqB,EAAIk0f,GAAI,GAAIp5e,IAAI+5e,IAAM/5e,EAAE+5e,IAAM,EAAGpB,GAAIp9U,OAASo9U,GAAIp9U,MAAMr2K,GAAI+oD,GAAE1+B,EAAGrqB,EAAG8a,EAAG2sC,EAAE2tc,SAAK,IAAW/qe,EAAE+0b,gBAAiB,GAAKtkc,EAAEi6e,IAAM,CAACltf,GAAK,KAAM6/C,EAAG,MAAQ7/C,EAAIghD,GAAI/tC,GAAKjT,KAAM,GAAKiT,EAAEi6e,KAAMluf,GAAI7G,EAAEw0f,GAAGD,IAAIv0f,EAAE80f,KAAO90f,EAAGA,EAAE20f,SAAM,EAAQ30f,EAAE00f,KAAO7sf,GAAKwtf,GAAIr1f,GAAIA,EAGhQ,SAASq1f,GAAI5tc,GACX,IAAIviD,EAAGwiD,EAEP,GAAI,OAASD,EAAIA,EAAE+sc,KAAO,MAAQ/sc,EAAEmtc,IAAK,CACvC,IAAKntc,EAAEitc,IAAMjtc,EAAEmtc,IAAIrye,KAAO,KAAMrd,EAAI,EAAGA,EAAIuiD,EAAE8sc,IAAI55f,OAAQuK,IACvD,GAAI,OAASwiD,EAAID,EAAE8sc,IAAIrvf,KAAO,MAAQwiD,EAAEgtc,IAAK,CAC3Cjtc,EAAEitc,IAAMjtc,EAAEmtc,IAAIrye,KAAOmlC,EAAEgtc,IACvB,MAIJ,OAAOW,GAAI5tc,IAIf,SAAS6tc,GAAI7tc,KACTA,EAAEktc,MAAQltc,EAAEktc,KAAM,IAAOhB,GAAIr5f,KAAKmtD,KAAO8tc,GAAIC,OAAS5B,KAAQH,GAAIgC,sBAAwB7B,GAAMH,GAAIgC,oBAAsB5B,IAAK0B,IAGnI,SAASA,KACP,IAAI9tc,EACAC,EACA7gD,EACAiU,EAAI,GACJjT,EAAI,GAER,IAAK8rf,GAAIvye,KAAK0ye,IAAMrsc,EAAIksc,GAAI/4f,SAC1B6sD,EAAEktc,MAAQ9tf,EAAI8sf,GAAIh5f,OAAQ+sD,EAAIwtc,GAAIztc,EAAG3sC,EAAGjT,IAAM6/C,EAAG,IAAM7gD,GAAK8sf,GAAIh5f,OAASkM,GAAK6uf,GAAI56e,EAAG4sC,EAAG7/C,GAAIA,EAAElN,OAASmgB,EAAEngB,OAAS,EAAG+sD,OAAI,EAAQisc,GAAIvye,KAAK0ye,KAAQpsc,GAAK+rc,GAAImB,KAAOnB,GAAImB,IAAIltc,EAAGssc,KAG/Ktsc,GAAKguc,GAAI56e,EAAG4sC,EAAG7/C,GAAI0tf,GAAIC,IAAM,EAG/B,SAASG,GAAIluc,EAAGviD,EAAGwiD,EAAG7gD,EAAG7G,EAAG8a,EAAGjT,EAAGwiB,EAAG7qB,EAAGmG,EAAGlK,GACzC,IAAI2E,EACA0I,EACAm7B,EACAujB,EACAv9C,EACA7D,EAAIS,GAAKA,EAAE0tf,KAAOP,GAClBpuf,EAAIV,EAAEvK,OAEV,IAAK+sD,EAAEitc,IAAMn1f,EAOf,SAAWioD,EAAGviD,EAAGwiD,GACf,IAAI7gD,EACA7G,EACA8a,EACAjT,EACAwiB,EACA7qB,EAAI0F,EAAEvK,OACN1B,EAAIyuD,EAAE/sD,OACNqtD,EAAI/uD,EACJ0M,EAAI,EAER,IAAK8hD,EAAE8sc,IAAM,GAAI1tf,EAAI,EAAGA,EAAIrH,EAAGqH,IAC7B,OAAS7G,EAAIynD,EAAE8sc,IAAI1tf,GAAK,OAAS7G,EAAIkF,EAAE2B,KAAO,kBAAoB7G,GAAK,mBAAqBA,EAAI,KAAO,iBAAmBA,GAAK,iBAAmBA,GAAK,iBAAmBA,GAAKA,EAAE8B,aAAewuD,OAASgkc,GAAI,KAAMt0f,EAAG,KAAM,KAAMA,GAAKi0f,GAAIj0f,GAAKs0f,GAAIU,GAAK,CACvP99e,SAAUlX,GACT,KAAM,KAAM,WAAQ,IAAWA,EAAE8B,aAAe9B,EAAEy0f,IAAM,EAAIH,GAAIt0f,EAAE6D,KAAM7D,EAAE8K,MAAO9K,EAAE5J,IAAK4J,EAAEsL,IAAMtL,EAAEsL,IAAM,KAAMtL,EAAE60f,KAAO70f,IAAMA,EAAEw0f,GAAK/sc,EAAGznD,EAAEy0f,IAAMhtc,EAAEgtc,IAAM,EAAGpqe,EAAIs+B,GAAE3oD,EAAG0nD,EAAG7/C,EAAIhB,EAAIlB,EAAGqiD,GAAIhoD,EAAE80f,IAAMzqe,EAAGvP,EAAI,MAAO,IAAMuP,IAAM29B,KAAMltC,EAAI4sC,EAAEr9B,MAAQvP,EAAEi6e,KAAO,SAAU,MAAQj6e,GAAK,OAASA,EAAE+5e,MAAQ,GAAKxqe,GAAK1kB,IAAK,mBAAqB3F,EAAE6D,OAAS7D,EAAE+0f,KAAO,QAAU1qe,IAAMxiB,IAAMwiB,IAAMxiB,EAAI,EAAIlC,IAAM0kB,EAAIxiB,EAAImgD,EAAIxoD,EAAIqI,EAAIlC,GAAK0kB,EAAIxiB,EAAIlC,IAAMA,EAAI0kB,EAAIxiB,GAAKwiB,GAAKxiB,EAAI,EAAIwiB,EAAIxiB,EAAI,EAAGwiB,IAAMxjB,EAAIlB,IAAM3F,EAAE+0f,KAAO,UAAYj6e,EAAI4sC,EAAE7gD,KAAO,MAAQiU,EAAE1kB,KAAO0kB,EAAE45e,MAAQ55e,EAAE45e,KAAOjtc,EAAEktc,MAAQltc,EAAEktc,IAAM9rc,GAAI/tC,IAAKqtC,GAAErtC,EAAGA,GAAG,GAAK4sC,EAAE7gD,GAAK,KAAMmhD,KAG5lB,GAAIA,EAAG,IAAKnhD,EAAI,EAAGA,EAAI5N,EAAG4N,IACxB,OAASiU,EAAI4sC,EAAE7gD,KAAO,IAAM,OAASiU,EAAEi6e,OAASj6e,EAAE45e,KAAOjtc,EAAEktc,MAAQltc,EAAEktc,IAAM9rc,GAAI/tC,IAAKqtC,GAAErtC,EAAGA,IAzB3EstC,CAAEV,EAAGxiD,EAAGkB,GAAI5G,EAAIkoD,EAAEitc,IAAKv0f,EAAI,EAAGA,EAAIwF,EAAGxF,IACnD,OAAS6jC,EAAIyjB,EAAE6sc,IAAIn0f,KAAO,kBAAoB6jC,GAAK,mBAAqBA,IAAMn7B,GAAK,IAAMm7B,EAAE6wd,IAAMf,GAAM3tf,EAAE69B,EAAE6wd,MAAQf,GAAK9vd,EAAE6wd,IAAM10f,EAAG2oD,GAAEtB,EAAGxjB,EAAGn7B,EAAG9I,EAAG8a,EAAGjT,EAAGwiB,EAAG7qB,EAAGmG,EAAGlK,GAAI+rD,EAAIvjB,EAAEywd,IAAKzwd,EAAE34B,KAAOxC,EAAEwC,KAAO24B,EAAE34B,MAAQxC,EAAEwC,KAAOk9C,GAAE1/C,EAAEwC,IAAK,KAAM24B,GAAIxoC,EAAEnB,KAAK2pC,EAAE34B,IAAK24B,EAAE2wd,KAAOptc,EAAGvjB,IAAK,MAAQh6B,GAAK,MAAQu9C,IAAMv9C,EAAIu9C,GAAI,MAAQvjB,EAAE8wd,KAAOjsf,EAAEyrf,MAAQtwd,EAAEswd,IAAM/0f,EAAI,GAAEykC,EAAGzkC,EAAGioD,GAAK,mBAAqBxjB,EAAEpgC,WAAQ,IAAWogC,EAAE0wd,IAAMn1f,EAAIykC,EAAE0wd,IAAMntc,IAAMhoD,EAAIgoD,EAAE5lC,aAAcqiB,EAAE0wd,SAAM,EAAQ1wd,EAAE8wd,MAAQ,QAGjdrtc,EAAEitc,IAAMn1f,EAAGkoD,EAAEgtc,IAAMzqf,EAyBrB,SAAS,GAAEw9C,EAAGviD,EAAGwiD,GACf,IAAI7gD,EAAG7G,EAEP,GAAI,mBAAqBynD,EAAE5jD,KAAM,CAC/B,IAAKgD,EAAI4gD,EAAE8sc,IAAKv0f,EAAI,EAAG6G,GAAK7G,EAAI6G,EAAElM,OAAQqF,IACxC6G,EAAE7G,KAAO6G,EAAE7G,GAAGw0f,GAAK/sc,EAAGviD,EAAI,GAAE2B,EAAE7G,GAAIkF,EAAGwiD,IAGvC,OAAOxiD,EAGTuiD,EAAEitc,KAAOxvf,IAAMwiD,EAAEvwC,aAAaswC,EAAEitc,IAAKxvf,GAAK,MAAOA,EAAIuiD,EAAEitc,KAEvD,GACExvf,EAAIA,GAAKA,EAAE0c,kBACJ,MAAQ1c,GAAK,IAAMA,EAAEioD,UAE9B,OAAOjoD,EAGT,SAASyjD,GAAElB,EAAGviD,EAAGwiD,EAAG7gD,GAClB,IAAI7G,EAAIynD,EAAErxD,IACN0kB,EAAI2sC,EAAE5jD,KACNgE,EAAI6/C,EAAI,EACRr9B,EAAIq9B,EAAI,EACRloD,EAAI0F,EAAEwiD,GACV,GAAI,OAASloD,GAAKA,GAAKQ,GAAKR,EAAEpJ,KAAO0kB,IAAMtb,EAAEqE,KAAM,OAAO6jD,EAC1D,GAAI7gD,GAAK,MAAQrH,GAAK,IAAM,OAASA,EAAEu1f,KAAO,EAAI,GAAI,KAAOltf,GAAK,GAAKwiB,EAAInlB,EAAEvK,QAAS,CACpF,GAAIkN,GAAK,EAAG,CACV,IAAKrI,EAAI0F,EAAE2C,KAAO,IAAM,OAASrI,EAAEu1f,MAAQ/0f,GAAKR,EAAEpJ,KAAO0kB,IAAMtb,EAAEqE,KAAM,OAAOgE,EAC9EA,IAGF,GAAIwiB,EAAInlB,EAAEvK,OAAQ,CAChB,IAAK6E,EAAI0F,EAAEmlB,KAAO,IAAM,OAAS7qB,EAAEu1f,MAAQ/0f,GAAKR,EAAEpJ,KAAO0kB,IAAMtb,EAAEqE,KAAM,OAAOwmB,EAC9EA,KAGJ,OAAQ,EAGV,SAASure,GAAInuc,EAAGviD,EAAGwiD,GACjB,MAAQxiD,EAAE,GAAKuiD,EAAE21G,YAAYl4J,EAAG,MAAQwiD,EAAI,GAAKA,GAAKD,EAAEviD,GAAK,MAAQwiD,EAAI,GAAK,iBAAmBA,GAAKiL,GAAIlxD,KAAKyD,GAAKwiD,EAAIA,EAAI,KAG9H,SAASmuc,GAAIpuc,EAAGviD,EAAGwiD,EAAG7gD,EAAG7G,GACvB,IAAI8a,EAEJ2sC,EAAG,GAAI,UAAYviD,EACjB,GAAI,iBAAmBwiD,EAAGD,EAAEnrC,MAAMC,QAAUmrC,MAAO,CACjD,GAAI,iBAAmB7gD,IAAM4gD,EAAEnrC,MAAMC,QAAU1V,EAAI,IAAKA,EAAG,IAAK3B,KAAK2B,EACnE6gD,GAAKxiD,KAAKwiD,GAAKkuc,GAAInuc,EAAEnrC,MAAOpX,EAAG,IAEjC,GAAIwiD,EAAG,IAAKxiD,KAAKwiD,EACf7gD,GAAK6gD,EAAExiD,KAAO2B,EAAE3B,IAAM0wf,GAAInuc,EAAEnrC,MAAOpX,EAAGwiD,EAAExiD,SAGvC,GAAI,MAAQA,EAAE,IAAM,MAAQA,EAAE,GAAI4V,EAAI5V,KAAOA,EAAIA,EAAEhK,QAAQ,8BAA+B,OAAQgK,EAAIA,EAAE7O,gBAAiBoxD,EAAIviD,EAAE7O,cAAcqH,MAAM,GAAKwH,EAAExH,MAAM,GAAI+pD,EAAEviD,IAAMuiD,EAAEviD,EAAI,IAAKuiD,EAAEviD,EAAEA,EAAI4V,GAAK4sC,EAAGA,EAAI7gD,EAAI6gD,EAAEA,EAAI7gD,EAAE6gD,GAAKA,EAAEA,EAAIzmD,KAAKO,MAAOimD,EAAEhxD,iBAAiByO,EAAG4V,EAAIsuC,GAAI0sc,GAAKh7e,IAAM2sC,EAAE3qC,oBAAoB5X,EAAG4V,EAAIsuC,GAAI0sc,GAAKh7e,OAAQ,CAC1U,GAAI9a,EAAGkF,EAAIA,EAAEhK,QAAQ,cAAe,KAAKA,QAAQ,SAAU,UAAU,GAAI,UAAYgK,GAAK,WAAaA,GAAK,SAAWA,GAAK,SAAWA,GAAK,SAAWA,GAAK,aAAeA,GAAK,aAAeA,GAAK,YAAcA,GAAK,YAAcA,GAAK,SAAWA,GAAKA,KAAKuiD,EAAG,IAChQA,EAAEviD,GAAK,MAAQwiD,EAAI,GAAKA,EACxB,MAAMD,EACN,MAAOA,IACT,mBAAqBC,IAAM,MAAQA,IAAK,IAAOA,GAAK,MAAQxiD,EAAE,GAAKuiD,EAAEliB,gBAAgBrgC,GAAKuiD,EAAEjlD,aAAa0C,EAAGwiD,KAIhH,SAASouc,GAAIruc,GACX,GAAIlvD,KAAK2M,EAAG,CACV,IAAIwiD,EAAInvD,KAAK2M,EAAEuiD,EAAE5jD,MAAO,GAExB,GAAI4jD,EAAE5gD,GACJ,GAAI4gD,EAAE5gD,GAAK6gD,EAAEA,EAAG,YACXD,EAAE5gD,EAAI5F,KAAKO,MAElB,OAAOkmD,EAAE+rc,GAAIt2e,MAAQs2e,GAAIt2e,MAAMsqC,GAAKA,IAIxC,SAAS2B,GAAE3B,GACT,GAAIlvD,KAAK2M,EAAG,OAAO3M,KAAK2M,EAAEuiD,EAAE5jD,MAAO,GAAI4vf,GAAIt2e,MAAQs2e,GAAIt2e,MAAMsqC,GAAKA,GAGpE,SAASsB,GAAEtB,EAAGC,EAAG7gD,EAAG7G,EAAG8a,EAAGjT,EAAGwiB,EAAG7qB,EAAGvG,EAAG+uD,GACpC,IAAIriD,EACAmD,EACAm7B,EACAujB,EACAv9C,EACA09C,EACAe,EACAd,EACA5jB,EACAsjB,EACAc,EACAo2E,EACAr1E,EACAR,EACAL,EACAU,EAAItB,EAAE7jD,KAEV,QAAI,IAAW6jD,EAAE5lD,YAAa,OAAO,KACrC,IAAM+E,EAAEkuf,MAAQ97f,KAAO,GAAK4N,EAAEkuf,KAAMltf,EAAI,CAACrI,EAAIkoD,EAAEgtc,IAAM7tf,EAAE6tf,OAAQ/uf,EAAI8tf,GAAIgB,MAAQ9uf,EAAE+hD,GAEjFD,EAAG,GAAI,mBAAqBuB,EAAG,IAC7B,GAAIpB,EAAIF,EAAE58C,MAAOk5B,GAAKr+B,EAAIqjD,EAAEs+b,cAAgBtnf,EAAE2F,EAAEivf,KAAMttc,EAAI3hD,EAAIq+B,EAAIA,EAAEl5B,MAAM5R,MAAQyM,EAAE6uf,GAAKx0f,EAAG6G,EAAE+tf,IAAMlsc,GAAK5/C,EAAI4+C,EAAEktc,IAAM/tf,EAAE+tf,KAAKJ,GAAK1rf,EAAEitf,KAAO,cAAe/sc,GAAKA,EAAEvxD,UAAUygI,OAASxwE,EAAEktc,IAAM9rf,EAAI,IAAIkgD,EAAEpB,EAAGN,IAAMI,EAAEktc,IAAM9rf,EAAI,IAAImsf,GAAIrtc,EAAGN,GAAIx+C,EAAEhH,YAAcknD,EAAGlgD,EAAEovH,OAAS89X,IAAMhyd,GAAKA,EAAE5yB,IAAItI,GAAIA,EAAEgC,MAAQ88C,EAAG9+C,EAAEoM,QAAUpM,EAAEoM,MAAQ,IAAKpM,EAAEvR,QAAU+vD,EAAGx+C,EAAEssf,IAAMp1f,EAAGikC,EAAIn7B,EAAE6rf,KAAM,EAAI7rf,EAAEmtf,IAAM,GAAIntf,EAAEotf,IAAM,IAAK,MAAQptf,EAAEqtf,MAAQrtf,EAAEqtf,IAAMrtf,EAAEoM,OAAQ,MAAQ8zC,EAAEotc,2BAA6Bttf,EAAEqtf,KAAOrtf,EAAEoM,QAAUpM,EAAEqtf,IAAMjC,GAAI,GAAIprf,EAAEqtf,MAAOjC,GAAIprf,EAAEqtf,IAAKntc,EAAEotc,yBAAyBxuc,EAAG9+C,EAAEqtf,OAAQ3uc,EAAI1+C,EAAEgC,MAAOb,EAAInB,EAAEoM,MAAOpM,EAAE+rf,IAAMntc,EAAGzjB,EAAG,MAAQ+kB,EAAEotc,0BAA4B,MAAQttf,EAAEutf,oBAAsBvtf,EAAEutf,qBAAsB,MAAQvtf,EAAEwtf,mBAAqBxtf,EAAEmtf,IAAI37f,KAAKwO,EAAEwtf,uBAAwB,CAC3vB,GAAI,MAAQttc,EAAEotc,0BAA4Bxuc,IAAMJ,GAAK,MAAQ1+C,EAAEytf,2BAA6Bztf,EAAEytf,0BAA0B3uc,EAAGN,IAAKx+C,EAAE4rf,MAAQ,MAAQ5rf,EAAE0tf,wBAAyB,IAAO1tf,EAAE0tf,sBAAsB5uc,EAAG9+C,EAAEqtf,IAAK7uc,IAAMI,EAAEmtc,MAAQhuf,EAAEguf,KAAM,CAC5O,IAAKntc,EAAEmtc,MAAQhuf,EAAEguf,MAAQ/rf,EAAEgC,MAAQ88C,EAAG9+C,EAAEoM,MAAQpM,EAAEqtf,IAAKrtf,EAAE6rf,KAAM,GAAKjtc,EAAEgtc,IAAM7tf,EAAE6tf,IAAKhtc,EAAE6sc,IAAM1tf,EAAE0tf,IAAK7sc,EAAE6sc,IAAIr+f,SAAQ,SAAUuxD,GACxHA,IAAMA,EAAE+sc,GAAK9sc,MACXU,EAAI,EAAGA,EAAIt/C,EAAEotf,IAAIv7f,OAAQytD,IAC3Bt/C,EAAEmtf,IAAI37f,KAAKwO,EAAEotf,IAAI9tc,IAGnBt/C,EAAEotf,IAAM,GAAIptf,EAAEmtf,IAAIt7f,QAAU0vB,EAAE/vB,KAAKwO,GACnC,MAAM2+C,EAGR,MAAQ3+C,EAAE2tf,qBAAuB3tf,EAAE2tf,oBAAoB7uc,EAAG9+C,EAAEqtf,IAAK7uc,GAAI,MAAQx+C,EAAE4tf,oBAAsB5tf,EAAEmtf,IAAI37f,MAAK,WAC9GwO,EAAE4tf,mBAAmBlvc,EAAGv9C,EAAG09C,MAI/B,GAAI7+C,EAAEvR,QAAU+vD,EAAGx+C,EAAEgC,MAAQ88C,EAAG9+C,EAAEqsf,IAAM1tc,EAAG3+C,EAAE4rf,KAAM,EAAIl2X,EAAIi1X,GAAI+B,IAAKrsc,EAAI,EAAG,cAAeH,GAAKA,EAAEvxD,UAAUygI,OAAQ,CACjH,IAAKpvH,EAAEoM,MAAQpM,EAAEqtf,IAAKrtf,EAAE6rf,KAAM,EAAIn2X,GAAKA,EAAE92E,GAAI/hD,EAAImD,EAAEovH,OAAOpvH,EAAEgC,MAAOhC,EAAEoM,MAAOpM,EAAEvR,SAAUoxD,EAAI,EAAGA,EAAI7/C,EAAEotf,IAAIv7f,OAAQguD,IAC/G7/C,EAAEmtf,IAAI37f,KAAKwO,EAAEotf,IAAIvtc,IAGnB7/C,EAAEotf,IAAM,QACH,GACLptf,EAAE6rf,KAAM,EAAIn2X,GAAKA,EAAE92E,GAAI/hD,EAAImD,EAAEovH,OAAOpvH,EAAEgC,MAAOhC,EAAEoM,MAAOpM,EAAEvR,SAAUuR,EAAEoM,MAAQpM,EAAEqtf,UACvErtf,EAAE6rf,OAASxrc,EAAI,IAExBrgD,EAAEoM,MAAQpM,EAAEqtf,IAAK,MAAQrtf,EAAE6tf,kBAAoB32f,EAAIk0f,GAAIA,GAAI,GAAIl0f,GAAI8I,EAAE6tf,oBAAqB1yd,GAAK,MAAQn7B,EAAE8tf,0BAA4Bjvc,EAAI7+C,EAAE8tf,wBAAwBpvc,EAAGv9C,IAAK0rf,GAAIluc,EAAGwsc,GAAI3rc,EAAI,MAAQ3iD,GAAKA,EAAE9B,OAASmxf,IAAO,MAAQrvf,EAAEvP,IAAMuP,EAAEmF,MAAMoM,SAAWvR,GAAK2iD,EAAI,CAACA,GAAIZ,EAAG7gD,EAAG7G,EAAG8a,EAAGjT,EAAGwiB,EAAG7qB,EAAGvG,EAAG+uD,GAAIl/C,EAAEyZ,KAAOmlC,EAAEgtc,IAAKhtc,EAAEqtc,MAAQ,IAAKjsf,EAAEmtf,IAAIt7f,QAAU0vB,EAAE/vB,KAAKwO,GAAI4/C,IAAM5/C,EAAEitf,IAAMjtf,EAAE0rf,GAAK,MACrX,MAAO/sc,GACPC,EAAEmtc,IAAM,KAAM57f,GAAK,MAAQ4O,GAAK6/C,EAAEgtc,IAAMl1f,EAAGkoD,EAAEqtc,KAAO97f,EAAI,IAAM,GAAI4O,EAAEA,EAAE1S,QAAQqK,IAAM,OAASkoD,EAAEgtc,IAAM7tf,EAAE6tf,IAAKhtc,EAAE6sc,IAAM1tf,EAAE0tf,KAAMd,GAAIiB,IAAIjtc,EAAGC,EAAG7gD,QACrI,MAAQgB,GAAK6/C,EAAEmtc,MAAQhuf,EAAEguf,KAAOntc,EAAE6sc,IAAM1tf,EAAE0tf,IAAK7sc,EAAEgtc,IAAM7tf,EAAE6tf,KAAOhtc,EAAEgtc,IAAMmC,GAAIhwf,EAAE6tf,IAAKhtc,EAAG7gD,EAAG7G,EAAG8a,EAAGjT,EAAGwiB,EAAGpxB,EAAG+uD,IAE9GriD,EAAI8tf,GAAIqD,SAAWnxf,EAAE+hD,GAGxB,SAASguc,GAAIjuc,EAAGC,EAAG7gD,GACjB,IAAK,IAAI7G,EAAI,EAAGA,EAAI6G,EAAElM,OAAQqF,IAC5BwoD,GAAE3hD,EAAE7G,GAAI6G,IAAI7G,GAAI6G,IAAI7G,IAGtByzf,GAAImB,KAAOnB,GAAImB,IAAIltc,EAAGD,GAAIA,EAAE90C,MAAK,SAAU+0C,GACzC,IACED,EAAIC,EAAEuuc,IAAKvuc,EAAEuuc,IAAM,GAAIxuc,EAAE90C,MAAK,SAAU80C,GACtCA,EAAEvrD,KAAKwrD,MAET,MAAOD,GACPgsc,GAAIiB,IAAIjtc,EAAGC,EAAEmtc,SAKnB,SAASgC,GAAI3xf,EAAGwiD,EAAG7gD,EAAG7G,EAAG8a,EAAGjT,EAAGwiB,EAAG7qB,EAAGwoD,GACnC,IAAIriD,EACAvF,EACA6jC,EACAujB,EACAv9C,EACA7D,EACAR,EACA8iD,EAAI7hD,EAAEiE,MACN88C,EAAIF,EAAE58C,MACNk5B,EAAI0jB,EAAE7jD,KAEV,GAAI,QAAUmgC,IAAMlpB,GAAI,GAAK,MAAQjT,EAAG,IAAKlC,EAAI,EAAGA,EAAIkC,EAAElN,OAAQgL,IAChE,IAAKsE,EAAIpC,EAAElC,KAAO,iBAAkBsE,KAAO+5B,IAAMA,EAAI/5B,EAAE8sf,YAAc/yd,EAAI,IAAM/5B,EAAEkjD,UAAW,CAC1FjoD,EAAI+E,EAAGpC,EAAElC,GAAK,KACd,MAIJ,GAAI,MAAQT,EAAG,CACb,GAAI,OAAS8+B,EAAG,OAAO7iC,SAASsiC,eAAemkB,GAC/C1iD,EAAI4V,EAAI3Z,SAAS4V,gBAAgB,6BAA8BitB,GAAK7iC,SAASkB,cAAc2hC,EAAG4jB,EAAEx5C,IAAMw5C,GAAI//C,EAAI,KAAMrI,GAAI,EAG1H,GAAI,OAASwkC,EAAG0kB,IAAMd,GAAKpoD,GAAK0F,EAAEhS,OAAS00D,IAAM1iD,EAAEhS,KAAO00D,OAAQ,CAChE,GAAI//C,EAAIA,GAAK4/C,GAAEvrD,KAAKgJ,EAAE0S,YAAa8wC,EAAI7hD,EAAEiE,OAASipf,IAAMv0f,GAAK,MAAQqI,EAAG,IAAK6gD,EAAI,GAAI/iD,EAAI,EAAGA,EAAIT,EAAE4R,WAAWnc,OAAQgL,IACnH+iD,GAAGz+C,EAAI/E,EAAE4R,WAAWnR,IAAIlJ,MAAQwN,EAAE/Q,MAGpC,IAAKyM,KAAK+iD,EACRz+C,EAAIy+C,EAAE/iD,GAAI,YAAcA,IAAM,2BAA6BA,EAAIs+B,EAAIh6B,EAAI,QAAUtE,GAAKA,KAAKiiD,GAAKiuc,GAAI3wf,EAAGS,EAAG,KAAMsE,EAAG6Q,IAGrH,IAAKnV,KAAKiiD,EACR39C,EAAI29C,EAAEjiD,GAAI,YAAcA,EAAI6hD,EAAIv9C,EAAI,2BAA6BtE,EAAIvF,EAAI6J,EAAI,SAAWtE,EAAIS,EAAI6D,EAAI,WAAatE,EAAIC,EAAIqE,EAAI,QAAUtE,GAAKnG,GAAK,mBAAqByK,GAAKy+C,EAAE/iD,KAAOsE,GAAK4rf,GAAI3wf,EAAGS,EAAGsE,EAAGy+C,EAAE/iD,GAAImV,GAG9M,GAAI1a,EAAGZ,GAAKykC,IAAM7jC,EAAE42f,SAAW/yd,EAAE+yd,QAAU52f,EAAE42f,SAAW9xf,EAAEigC,aAAejgC,EAAEigC,UAAY/kC,EAAE42f,QAAStvc,EAAE6sc,IAAM,QAAQ,GAAItwd,IAAM/+B,EAAEigC,UAAY,IAAKwwd,GAAIzwf,EAAG+uf,GAAIzsc,GAAKA,EAAI,CAACA,GAAIE,EAAG7gD,EAAG7G,EAAG8a,GAAK,kBAAoBkpB,EAAGn8B,EAAGwiB,EAAGxiB,EAAIA,EAAE,GAAKhB,EAAE0tf,KAAO1rc,GAAIhiD,EAAG,GAAIrH,EAAGwoD,GAAI,MAAQngD,EAAG,IAAKlC,EAAIkC,EAAElN,OAAQgL,KACrR,MAAQkC,EAAElC,IAAMwuf,GAAItsf,EAAElC,IAExBnG,IAAMmG,EAAI,aAAS,IAAWS,IAAMA,IAAMlB,EAAES,IAAM,aAAeq+B,IAAM59B,GAAK,WAAa49B,GAAK59B,IAAMsiD,EAAE/iD,KAAOkwf,GAAI3wf,EAAGS,EAAGS,EAAGsiD,EAAE/iD,IAAI,GAAKA,EAAI,eAAW,IAAWC,GAAKA,IAAMV,EAAES,IAAMkwf,GAAI3wf,EAAGS,EAAGC,EAAG8iD,EAAE/iD,IAAI,IAEvM,OAAOT,EAGT,SAASsjD,GAAEf,EAAGC,EAAG7gD,GACf,IACE,mBAAqB4gD,EAAIA,EAAEC,GAAKD,EAAEl9B,QAAUm9B,EAC5C,MAAOD,GACPgsc,GAAIiB,IAAIjtc,EAAG5gD,IAIf,SAASshD,GAAEV,EAAGC,EAAG7gD,GACf,IAAI7G,EAAG8a,EAEP,GAAI24e,GAAIwD,SAAWxD,GAAIwD,QAAQxvc,IAAKznD,EAAIynD,EAAEn8C,OAAStL,EAAEuqB,SAAWvqB,EAAEuqB,UAAYk9B,EAAEitc,KAAOlsc,GAAExoD,EAAG,KAAM0nD,IAAK,OAAS1nD,EAAIynD,EAAEmtc,KAAM,CAC1H,GAAI50f,EAAEk3f,qBAAsB,IAC1Bl3f,EAAEk3f,uBACF,MAAOzvc,GACPgsc,GAAIiB,IAAIjtc,EAAGC,GAEb1nD,EAAEuiB,KAAOviB,EAAEm1f,IAAM,KAAM1tc,EAAEmtc,SAAM,EAGjC,GAAI50f,EAAIynD,EAAE8sc,IAAK,IAAKz5e,EAAI,EAAGA,EAAI9a,EAAErF,OAAQmgB,IACvC9a,EAAE8a,IAAMqtC,GAAEnoD,EAAE8a,GAAI4sC,EAAG7gD,GAAK,mBAAqB4gD,EAAE5jD,MAEjDgD,GAAK,MAAQ4gD,EAAEitc,KAAOP,GAAI1sc,EAAEitc,KAAMjtc,EAAE+sc,GAAK/sc,EAAEitc,IAAMjtc,EAAEktc,SAAM,EAG3D,SAASqB,GAAIvuc,EAAGviD,EAAGwiD,GACjB,OAAOnvD,KAAKuJ,YAAY2lD,EAAGC,GAQ7BD,GAAIusc,GAAIt2f,MAAO+1f,GAAM,CACnBiB,IAAK,SAAajtc,EAAGviD,EAAGwiD,EAAG7gD,GACzB,IAAK,IAAI7G,EAAG8a,EAAGjT,EAAG3C,EAAIA,EAAEsvf,IACtB,IAAKx0f,EAAIkF,EAAE0vf,OAAS50f,EAAEw0f,GAAI,IACxB,IAAK15e,EAAI9a,EAAE8B,cAAgB,MAAQgZ,EAAEq8e,2BAA6Bn3f,EAAEqiR,SAASvnQ,EAAEq8e,yBAAyB1vc,IAAK5/C,EAAI7H,EAAE20f,KAAM,MAAQ30f,EAAEo3f,oBAAsBp3f,EAAEo3f,kBAAkB3vc,EAAG5gD,GAAK,IAAKgB,EAAI7H,EAAE20f,KAAM9sf,EAAG,OAAO7H,EAAE+1f,IAAM/1f,EACxN,MAAOkF,GACPuiD,EAAIviD,EAIR,MAAMuiD,IAEPisc,GAAM,EAAGuB,GAAIx9f,UAAU4qR,SAAW,SAAU56N,EAAGviD,GAChD,IAAIwiD,EACJA,EAAI,MAAQnvD,KAAK49f,KAAO59f,KAAK49f,MAAQ59f,KAAK2c,MAAQ3c,KAAK49f,IAAM59f,KAAK49f,IAAMjC,GAAI,GAAI37f,KAAK2c,OAAQ,mBAAqBuyC,IAAMA,EAAIA,EAAEysc,GAAI,GAAIxsc,GAAInvD,KAAKuS,QAAS28C,GAAKysc,GAAIxsc,EAAGD,GAAI,MAAQA,GAAKlvD,KAAKs8f,MAAQ3vf,GAAK3M,KAAK29f,IAAI57f,KAAK4K,GAAIowf,GAAI/8f,QAC5N08f,GAAIx9f,UAAUgrN,YAAc,SAAUh7J,GACvClvD,KAAKs8f,MAAQt8f,KAAKm8f,KAAM,EAAIjtc,GAAKlvD,KAAK09f,IAAI37f,KAAKmtD,GAAI6tc,GAAI/8f,QACtD08f,GAAIx9f,UAAUygI,OAAS88X,GAAKrB,GAAM,GAAIE,GAAM,mBAAqB/ggB,QAAUA,QAAQ2E,UAAUX,KAAKI,KAAKpE,QAAQC,WAAaqC,WAAY0+f,GAAM,SAAarsc,EAAGviD,GAC/J,OAAOuiD,EAAEotc,IAAIJ,IAAMvvf,EAAE2vf,IAAIJ,KACxBc,GAAIC,IAAM,EACb,IAAI,GACA,GACA9tc,GACA,GACA5sC,GAAI,EACJuP,GAAI,GACJpxB,GAAI,GACJ,GAAIw6f,GACJ9tf,GAAI,GAAE8uf,IACNr0f,GAAI,GAAEo1f,IACNtwf,GAAI,GAAE4xf,OACNnvc,GAAI,GAAEitc,IACN5sc,GAAI,GAAEivc,QACNzvc,GAAI,GAAEgtc,GAEV,SAAS,GAAE/sc,EAAG5gD,GACZ,GAAEovf,KAAO,GAAEA,IAAI,GAAGxuc,EAAG3sC,IAAKjU,GAAIiU,GAAI,EAClC,IAAI4sC,EAAI,GAAE2vc,MAAQ,GAAEA,IAAM,CACxB7C,GAAI,GACJyB,IAAK,KAEP,OAAOxuc,GAAKC,EAAE8sc,GAAG75f,QAAU+sD,EAAE8sc,GAAGl6f,KAAK,CACnCg9f,IAAKr+f,KACHyuD,EAAE8sc,GAAG/sc,GAGX,SAAS3+C,GAAE2+C,GACT,OAAO3sC,GAAI,EAAG,GAAE+sC,GAAGJ,GAGrB,SAAS,GAAEA,EAAGC,EAAG1nD,GACf,IAAI8a,EAAI,GAAE,KAAK,GAEf,GAAIA,EAAEjU,EAAI4gD,GAAI3sC,EAAE85e,MAAQ95e,EAAE05e,GAAK,CAACx0f,EAAIA,EAAE0nD,GAAKG,QAAE,EAAQH,GAAI,SAAUD,GACjE,IAAI5gD,EAAIiU,EAAEy8e,IAAMz8e,EAAEy8e,IAAI,GAAKz8e,EAAE05e,GAAG,GAC5B3sf,EAAIiT,EAAEjU,EAAEA,EAAG4gD,GACf5gD,IAAMgB,IAAMiT,EAAEy8e,IAAM,CAAC1vf,EAAGiT,EAAE05e,GAAG,IAAK15e,EAAE85e,IAAIvyO,SAAS,OAC/CvnQ,EAAE85e,IAAM,IAAI,GAAEltc,GAAI,CACpB,IAAIr9B,EAAI,SAAWo9B,EAAG5gD,EAAGgB,GACvB,IAAKiT,EAAE85e,IAAIyC,IAAK,OAAO,EAEvB,IAAI3vc,EAAI5sC,EAAE85e,IAAIyC,IAAI7C,GAAGv2f,QAAO,SAAUwpD,GACpC,QAASA,EAAEmtc,OAGb,GAAIltc,EAAE/tB,OAAM,SAAU8tB,GACpB,OAAQA,EAAE8vc,OACR,OAAQt+f,GAAKA,EAAEiD,KAAK3D,KAAMkvD,EAAG5gD,EAAGgB,GACpC,IAAI7H,GAAI,EACR,OAAO0nD,EAAExxD,SAAQ,SAAUuxD,GACzB,GAAIA,EAAE8vc,IAAK,CACT,IAAI1wf,EAAI4gD,EAAE+sc,GAAG,GACb/sc,EAAE+sc,GAAK/sc,EAAE8vc,IAAK9vc,EAAE8vc,SAAM,EAAQ1wf,IAAM4gD,EAAE+sc,GAAG,KAAOx0f,GAAI,UAEjDA,GAAK8a,EAAE85e,IAAI9pf,QAAU28C,MAAQxuD,GAAKA,EAAEiD,KAAK3D,KAAMkvD,EAAG5gD,EAAGgB,KAG9D,GAAE6/C,GAAI,EACN,IAAIzuD,EAAI,GAAEu9f,sBACNh3f,EAAI,GAAEi3f,oBACV,GAAEA,oBAAsB,SAAUhvc,EAAG5gD,EAAGgB,GACtC,GAAItP,KAAKm8f,IAAK,CACZ,IAAIhtc,EAAIzuD,EACRA,OAAI,EAAQoxB,EAAEo9B,EAAG5gD,EAAGgB,GAAI5O,EAAIyuD,EAG9BloD,GAAKA,EAAEtD,KAAK3D,KAAMkvD,EAAG5gD,EAAGgB,IACvB,GAAE2uf,sBAAwBnse,EAG/B,OAAOvP,EAAEy8e,KAAOz8e,EAAE05e,GAQpB,SAASxrc,GAAEvB,EAAGC,GACZ,IAAI1nD,EAAI,GAAE,KAAK,IACd,GAAEm2f,KAAO7uc,GAAEtnD,EAAEq3f,IAAK3vc,KAAO1nD,EAAEw0f,GAAK/sc,EAAGznD,EAAEA,EAAI0nD,EAAG,GAAEuuc,IAAI37f,KAAK0F,IAqB1D,SAAS,GAAEynD,EAAG5/C,GACZ,IAAI6/C,EAAI,GAAE,KAAK,GACf,OAAOJ,GAAEI,EAAE2vc,IAAKxvf,IAAM6/C,EAAE4vc,IAAM7vc,IAAKC,EAAE1nD,EAAI6H,EAAG6/C,EAAEuuc,IAAMxuc,EAAGC,EAAE4vc,KAAO5vc,EAAE8sc,GAGpE,SAAS,GAAE/sc,EAAG5gD,GACZ,OAAOiU,GAAI,EAAG,IAAE,WACd,OAAO2sC,IACN5gD,GAsCL,SAAS,KACP,IAAK,IAAI4gD,EAAGA,EAAIp9B,GAAEzvB,SAChB,GAAI6sD,EAAE0tc,KAAO1tc,EAAE4vc,IAAK,IAClB5vc,EAAE4vc,IAAIpB,IAAI//f,QAAQ,IAAIuxD,EAAE4vc,IAAIpB,IAAI//f,QAAQ,IAAIuxD,EAAE4vc,IAAIpB,IAAM,GACxD,MAAOpvf,GACP4gD,EAAE4vc,IAAIpB,IAAM,GAAI,GAAEvB,IAAI7tf,EAAG4gD,EAAEotc,MAKjC,GAAEJ,IAAM,SAAUhtc,GAChB,GAAI,KAAM9hD,IAAKA,GAAE8hD,IAChB,GAAE+sc,GAAK,SAAU/sc,EAAG5gD,GACrBA,EAAE0tf,KAAO1tf,EAAE0tf,IAAIiD,MAAQ/vc,EAAE+vc,IAAM3wf,EAAE0tf,IAAIiD,KAAMhwc,IAAKA,GAAEC,EAAG5gD,IACpD,GAAE2uf,IAAM,SAAU/tc,GACnBrnD,IAAKA,GAAEqnD,GAAI,GAAI,EACf,IAAIznD,GAAK,GAAIynD,EAAEmtc,KAAKyC,IACpBr3f,IAAM0nD,KAAM,IAAK1nD,EAAEi2f,IAAM,GAAI,GAAEA,IAAM,GAAIj2f,EAAEw0f,GAAGt+f,SAAQ,SAAUuxD,GAC9DA,EAAE8vc,MAAQ9vc,EAAE+sc,GAAK/sc,EAAE8vc,KAAM9vc,EAAE6vc,IAAMr+f,GAAGwuD,EAAE8vc,IAAM9vc,EAAEznD,OAAI,OAC7CA,EAAEi2f,IAAI//f,QAAQ,IAAI8J,EAAEi2f,IAAI//f,QAAQ,IAAI8J,EAAEi2f,IAAM,GAAI,GAAI,IAAKvuc,GAAI,IACnE,GAAEovc,OAAS,SAAUrvc,GACtBviD,IAAKA,GAAEuiD,GACP,IAAI5gD,EAAI4gD,EAAEmtc,IACV/tf,GAAKA,EAAEwwf,MAAQxwf,EAAEwwf,IAAIpB,IAAIt7f,SAAW,IAAM0vB,GAAE/vB,KAAKuM,IAAM,KAAM,GAAEggD,yBAA2B,GAAI,GAAEA,wBAA0B,IAAG,KAAKhgD,EAAEwwf,IAAI7C,GAAGt+f,SAAQ,SAAUuxD,GAC3JA,EAAEznD,IAAMynD,EAAE4vc,IAAM5vc,EAAEznD,GAAIynD,EAAE6vc,MAAQr+f,KAAMwuD,EAAE+sc,GAAK/sc,EAAE6vc,KAAM7vc,EAAEznD,OAAI,EAAQynD,EAAE6vc,IAAMr+f,OACxEyuD,GAAI,GAAI,MACZ,GAAEktc,IAAM,SAAUntc,EAAG5gD,GACtBA,EAAE8L,MAAK,SAAU80C,GACf,IACEA,EAAEwuc,IAAI//f,QAAQ,IAAIuxD,EAAEwuc,IAAMxuc,EAAEwuc,IAAIh4f,QAAO,SAAUwpD,GAC/C,OAAQA,EAAE+sc,IAAM,GAAE/sc,MAEpB,MAAO5/C,GACPhB,EAAE8L,MAAK,SAAU80C,GACfA,EAAEwuc,MAAQxuc,EAAEwuc,IAAM,OAChBpvf,EAAI,GAAI,GAAE6tf,IAAI7sf,EAAG4/C,EAAEotc,SAEvBltc,IAAKA,GAAEF,EAAG5gD,IACb,GAAEowf,QAAU,SAAUxvc,GACvBO,IAAKA,GAAEP,GACP,IAAI5gD,EACAgB,EAAI4/C,EAAEmtc,IACV/sf,GAAKA,EAAEwvf,MAAQxvf,EAAEwvf,IAAI7C,GAAGt+f,SAAQ,SAAUuxD,GACxC,IACE,GAAEA,GACF,MAAOA,GACP5gD,EAAI4gD,MAEJ5/C,EAAEwvf,SAAM,EAAQxwf,GAAK,GAAE6tf,IAAI7tf,EAAGgB,EAAEgtf,OAEtC,IAAI,GAAI,mBAAqBhuc,sBAE7B,SAAS,GAAEY,GACT,IAAI5gD,EACAgB,EAAI,WACN+xB,aAAa8tB,GAAI,IAAKZ,qBAAqBjgD,GAAIzR,WAAWqyD,IAExDC,EAAItyD,WAAWyS,EAAG,KAEtB,KAAMhB,EAAIggD,sBAAsBh/C,IAGlC,SAAS,GAAE4/C,GACT,IAAI5gD,EAAI,GACJ6gD,EAAID,EAAEmtc,IACV,mBAAqBltc,IAAMD,EAAEmtc,SAAM,EAAQltc,KAAM,GAAI7gD,EAGvD,SAAS,GAAE4gD,GACT,IAAI5gD,EAAI,GACR4gD,EAAEmtc,IAAMntc,EAAE+sc,KAAM,GAAI3tf,EAGtB,SAASygD,GAAEG,EAAG5gD,GACZ,OAAQ4gD,GAAKA,EAAE9sD,SAAWkM,EAAElM,QAAUkM,EAAE8L,MAAK,SAAU9L,EAAGgB,GACxD,OAAOhB,IAAM4gD,EAAE5/C,MAInB,SAASggD,GAAEJ,EAAG5gD,GACZ,MAAO,mBAAqBA,EAAIA,EAAE4gD,GAAK5gD,EAGzC,IAAI,GAAQ,CACV43G,UAAW,KACXg5Y,YAAa,GACbC,WAzHF,SAAWjwc,GACT,IAAIC,EAAI,GAAEnwD,QAAQkwD,EAAEmtc,KAChB50f,EAAI,GAAE,KAAK,GACf,OAAOA,EAAE/G,EAAIwuD,EAAGC,GAAK,MAAQ1nD,EAAEw0f,KAAOx0f,EAAEw0f,IAAK,EAAI9sc,EAAEt2C,IAAI,KAAKs2C,EAAE58C,MAAM5R,OAASuuD,EAAE+sc,IAuH/EmD,cApHF,SAAWlwc,EAAG5gD,GACZ,GAAE8wf,eAAiB,GAAEA,cAAc9wf,EAAIA,EAAE4gD,GAAKA,IAoH9Cmwc,UAlKF,SAAWnwc,EAAGC,GACZ,IAAI1nD,EAAI,GAAE,KAAK,IACd,GAAEm2f,KAAO7uc,GAAEtnD,EAAEq3f,IAAK3vc,KAAO1nD,EAAEw0f,GAAK/sc,EAAGznD,EAAEA,EAAI0nD,EAAG,GAAE2vc,IAAIpB,IAAI37f,KAAK0F,KAiK5D63f,iBAlHF,SAAWpwc,GACT,IAAIC,EAAI,GAAE,KAAK,IACX1nD,EAAI8I,KACR,OAAO4+C,EAAE8sc,GAAK/sc,EAAG,GAAE2vc,oBAAsB,GAAEA,kBAAoB,SAAU3vc,EAAG5gD,GAC1E6gD,EAAE8sc,IAAM9sc,EAAE8sc,GAAG/sc,EAAG5gD,GAAI7G,EAAE,GAAGynD,KACvB,CAACznD,EAAE,GAAI,WACTA,EAAE,QAAG,MA6GP83f,MAzGF,WACE,IAAIrwc,EAAI,GAAE,KAAK,IAEf,IAAKA,EAAE+sc,GAAI,CACT,IAAK,IAAI9sc,EAAI,GAAEmtc,IAAK,OAASntc,IAAMA,EAAE8vc,KAAO,OAAS9vc,EAAE8sc,IACrD9sc,EAAIA,EAAE8sc,GAGR,IAAIx0f,EAAI0nD,EAAE8vc,MAAQ9vc,EAAE8vc,IAAM,CAAC,EAAG,IAC9B/vc,EAAE+sc,GAAK,IAAMx0f,EAAE,GAAK,IAAMA,EAAE,KAG9B,OAAOynD,EAAE+sc,IA8FTuD,oBAnJF,SAAWtwc,EAAG5gD,EAAGgB,GACfiT,GAAI,EAAGkuC,IAAE,WACP,MAAO,mBAAqBvB,GAAKA,EAAE5gD,KAAM,WACvC,OAAO4gD,EAAE,QACNA,GAAKA,EAAEl9B,QAAU1jB,IAAK,WACzB,OAAO4gD,EAAEl9B,QAAU,YAChB,IACJ,MAAQ1iB,EAAIA,EAAIA,EAAEnN,OAAO+sD,KA6I5Buwc,gBAAiBhvc,GACjBivc,QAAS,GACTC,WAAY,GACZC,OA/JF,SAAW1wc,GACT,OAAO3sC,GAAI,EAAG,IAAE,WACd,MAAO,CACLyP,QAASk9B,KAEV,KA2JH2wc,SAAUtvf,IA0BZ,IAAIuvf,GAAiB,gHAErB,SAASC,GAAaj4d,GACpB,IAAIhlC,EAAUglC,EAAOhlC,QACjBk9f,EAAW,IAAE,WACf,MAAO,CACLvB,QAxBAjgf,EAAkB,SAAyBssB,GAC7C,OAAOgod,GAASt0e,gBAPN,6BAO+BssB,IAGvCgB,EAAM4od,GAAgBl2e,EAAgB,OAAQ,CAChD1P,MAAO,KACPC,OAAQ,KACRmmf,QAAS,YACTzna,KAAM,YAEJplF,EAAOqsf,GAAgBl2e,EAAgB,QAAS,CAClDipC,UAAW,oBACXwH,EAAG,ygBAELnjB,EAAIr4B,YAAYpL,GACTyjC,GASkB6tF,WAzB3B,IACMn7G,EAIAstB,EAMAzjC,IAgBD,IACH,OAAOwzf,GAAI,KAAM,CACfj5U,MAAO,iBACPq9U,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAUy7f,GACVx7f,WAAY,KAEbxB,EAAQ21f,UAAW31f,EAAQg0f,aAAe+E,GAAI,IAAK,CACpDj5U,MAAO,aACP59K,OAAQ,SACRgF,KAAM,6BACNkkC,MAAO,oBACPuX,IAAK,sBACL06c,wBAAyBH,EACzBC,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAUy7f,GACVx7f,WAAY,MAEX,MAyBP,IAAI87f,GAAiB,wGAErB,SAASC,GAAoB7+d,EAAU3jC,GACrC,IAAI8C,EAAQ6gC,EAAS/f,IAAI5jB,GAEzB,MAAqB,iBAAV8C,EACFA,EAAMqG,OAGR,GAGT,SAASs5f,GAAK71d,GACZ,IAAI3nC,EAAU2nC,EAAO3nC,QACjBy9f,EAAe91d,EAAO81d,aACtBC,EAAc/1d,EAAO+1d,YACrBpM,EAAc3pd,EAAO2pd,YACrBqM,EAAWh2d,EAAOg2d,SAClBpM,EAAkB5pd,EAAO4pd,gBACzBC,EAAgB7pd,EAAO6pd,cACvB8C,EAAY3sd,EAAO2sd,UACnBE,EAAW7sd,EAAO6sd,SAClBoJ,EAAkBj2d,EAAOi2d,gBACzBr0R,EAAOvpO,EAAQupO,KACf0rR,EAA2Bj1f,EAAQi1f,yBACnCsB,EAA8Bv2f,EAAQu2f,4BACtCpB,EAAoBn1f,EAAQm1f,kBAC5BI,EAAav1f,EAAQu1f,WACrBE,EAAmBz1f,EAAQy1f,iBAC3BvB,EAAkBl0f,EAAQk0f,gBAC1BE,EAAiBp0f,EAAQo0f,eACzB2B,EAAe/1f,EAAQ+1f,aACvBE,EAAqBj2f,EAAQi2f,mBAC7BE,EAAYn2f,EAAQm2f,UACpBE,EAAkBr2f,EAAQq2f,gBAC1BI,EAAoBz2f,EAAQy2f,kBAC5BZ,EAAkB71f,EAAQ61f,gBAG1Bh6G,EAAM,GADDpuY,GAAE,MACkB,GACzB9N,EAAQk8Y,EAAI,GACZgiH,EAAWhiH,EAAI,GAGfiiH,EAAM,GADArwf,IAAE,GACkB,GAC1Bswf,EAAsBD,EAAI,GAC1BE,EAAyBF,EAAI,GAG7BG,EAA2BL,GAAmBA,EAAgBtmd,MAG9D4md,EAAM,GADAzwf,GAAE,MACkB,GAC1B0wf,EAAkBD,EAAI,GACtBE,EAAqBF,EAAI,GAEzBG,EAAoB,IAAE,SAAU1+f,GAClCy+f,EAAmBz+f,GACnBq+f,GAAuB,KACtB,IACCM,EAAuB,IAAE,SAAUzmgB,GACrC,IAAI0mgB,EA/ER,SAA0Bt0E,EAAUx6a,GAClC,IAAI+uf,EAAc,GAclB,OAZI/uf,EAAM2kf,iBAAmBnqE,EAAS7ob,MACpCo9f,EAAYv/f,KAAKwQ,EAAM0mf,WAGrB1mf,EAAMykf,kBAAoBjqE,EAASj4T,OACrCwsY,EAAYv/f,KAAKwQ,EAAM8lf,YAGpBtrE,EAAShtb,SACZuhgB,EAAYv/f,KAAKwQ,EAAMsmf,cAGlByI,EAgEeC,CAAiB5mgB,EAAM,CACzC09f,WAAYA,EACZrB,gBAAiBA,EACjBE,eAAgBA,EAChB2B,aAAcA,EACdI,UAAWA,IASb,OANIoI,EAAcj/f,OAAS,EACzBu+f,EAAS,kDAAkDx+f,OAAOk/f,EAAcr5f,KAAK,QAErF24f,EAAS,MAGqB,IAAzBU,EAAcj/f,SACpB,CAACi2f,EAAYrB,EAAiBE,EAAgB2B,EAAcI,IAC3DuI,EAAe,GAAgB,WACjC,IAAIvwd,EAAS,GAAgC,SAAyB,SAASiuL,EAASj4N,GACtF,IAAIu6B,EAAU4gY,EAAYzna,EAC1B,OAAO,SAAyB,SAAmBwkO,GACjD,OACE,OAAQA,EAAU/tL,KAAO+tL,EAAUpxM,MACjC,KAAK,EAIH,GAHAoxM,EAAU/tL,KAAO,EACjBnqC,EAAE0tC,iBAEE1tC,EAAEjC,kBAAkB0jI,gBAAiB,CACvCy2F,EAAUpxM,KAAO,EACjB,MAGF,OAAOoxM,EAAUjqD,OAAO,UAE1B,KAAK,EAGH,OAFA1zI,EAAW,IAAI30B,SAAS5F,EAAEjC,QAC1Bm6N,EAAUpxM,KAAO,EACV2ye,GAAmBG,EAAsBH,EAAgB//f,aAAUlD,EAE5E,KAAK,EASH,GARA2ka,EAAajjM,EAAUpqD,KACvBp6K,EAAO,CACLuJ,KAAMm8f,GAAoB7+d,EAAU,QACpCszF,MAAOurY,GAAoB7+d,EAAU,SACrCzhC,QAASsggB,GAAoB7+d,EAAU,WACvCg3Y,YAAapW,EAAa,CAACA,QAAc3ka,GAGvC2jgB,EAAqBzmgB,GAAO,CAC9BwkO,EAAUpxM,KAAO,GACjB,MAGF,OAAOoxM,EAAUjqD,OAAO,UAE1B,KAAK,GAGH,OAFAiqD,EAAU/tL,KAAO,GACjB+tL,EAAUpxM,KAAO,GACV0ye,EAAS,CACdv8f,KAAMvJ,EAAKuJ,KACX4wH,MAAOn6H,EAAKm6H,MACZ/0H,QAASpF,EAAKoF,QACdU,OA7lDa,SA8lDb4rO,KAAMA,GACL,CACDmsM,YAAa79a,EAAK69a,cAGtB,KAAK,GACH67E,EAAgB15f,GAChBwkO,EAAUpxM,KAAO,GACjB,MAEF,KAAK,GACHoxM,EAAU/tL,KAAO,GACjB+tL,EAAUyV,GAAKzV,EAAiB,MAAE,IAClC,IAAe,SAAaA,EAAUyV,IACtC+rR,EAASxhS,EAAUyV,IACnB0/Q,EAAcn1R,EAAUyV,IAE1B,KAAK,GACHzV,EAAUpxM,KAAO,GACjB,MAEF,KAAK,GACHoxM,EAAU/tL,KAAO,GACjB+tL,EAAUke,GAAKle,EAAiB,MAAE,GAEpC,KAAK,GACL,IAAK,MACH,OAAOA,EAAU3uN,UAGtB0uN,EAAU,KAAM,CAAC,CAAC,EAAG,IAAK,CAAC,GAAI,UAGpC,OAAO,SAAUoe,GACf,OAAOrsM,EAAO/uC,MAAMlC,KAAMiB,YAhFK,GAkF9B,CAACy/f,GAAmBG,EAAqBxM,EAAiBC,IAC/D,OAAOuH,GAAI,OAAQ,CACjBj5U,MAAO,OACP69U,SAAUe,EACVvB,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,MAEby8f,GAA4BF,EAAsBhF,GAAIkF,EAA0B,CACjF16P,QAAS86P,EACTlB,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,OAEX,KAAMu3f,GAAI,MAAO,CACpBj5U,MAAO,cACP,wBAAwB,EACxBq9U,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,MAEbu3f,GAAI,MAAO,CACZj5U,MAAO,YACPq9U,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,MAEb7B,EAAQo5f,GAAI,MAAO,CACpBj5U,MAAO,wBACPq9U,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,MAEb7B,GAAS,KAAM60f,EAAWuE,GAAI,QAAS,CACxC39Y,IAAK,OACL0kE,MAAO,cACPq9U,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,MAEbu3f,GAAI4F,GAAW,CAChBjmf,MAAOy9e,EACPN,gBAAiBA,EACjB+I,WAAYxK,EACZ+I,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,OAEZu3f,GAAI,QAAS,CACfj5U,MAAO,cACP/2J,aAAc20e,EACdx9f,GAAI,OACJkB,KAAM,OACNmjE,YAAa8xb,EACb9me,SAAU6ke,EACV5rf,KAAM,OACN20f,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,QAEVu3f,GAAI,QAAS,CACjB,eAAe,EACfl7f,MAAO6/f,EACPt8f,KAAM,OACNoH,KAAM,SACN20f,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,OAEZ8yf,EAAYyE,GAAI,QAAS,CAC3B39Y,IAAK,QACL0kE,MAAO,cACPq9U,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,MAEbu3f,GAAI4F,GAAW,CAChBjmf,MAAO68e,EACPM,gBAAiBA,EACjB+I,WAAY1K,EACZiJ,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,OAEZu3f,GAAI,QAAS,CACfj5U,MAAO,cACP/2J,aAAc00e,EACdv9f,GAAI,QACJkB,KAAM,QACNmjE,YAAakxb,EACblme,SAAU2ke,EACV1rf,KAAM,QACN20f,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,QAEVu3f,GAAI,QAAS,CACjB,eAAe,EACfl7f,MAAO4/f,EACPr8f,KAAM,QACNoH,KAAM,SACN20f,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,OAEZu3f,GAAI,QAAS,CACf39Y,IAAK,UACL0kE,MAAO,cACPq9U,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,MAEbu3f,GAAI4F,GAAW,CAChBjmf,MAAOq9e,EACPF,gBAAiBA,EACjB+I,YAAY,EACZzB,OAAQjggB,KACRkggB,SAAU,CACR77f,SAAU+7f,GACV97f,WAAY,OAEZu3f,GAAI,WAAY,CAClBhhK,WAAW,EACXj4K,MAAO,oCACP5/K,GAAI,UACJkB,KAAM,UACNmjE,YAAa0xb,EACb1me,UAAU,EACVsL,KAAM,EACNs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","sources":["webpack://wiq-front-end/./node_modules/@babel/runtime/regenerator/index.js","webpack://wiq-front-end/./node_modules/axios/index.js","webpack://wiq-front-end/./node_modules/axios/lib/adapters/xhr.js","webpack://wiq-front-end/./node_modules/axios/lib/axios.js","webpack://wiq-front-end/./node_modules/axios/lib/cancel/Cancel.js","webpack://wiq-front-end/./node_modules/axios/lib/cancel/CancelToken.js","webpack://wiq-front-end/./node_modules/axios/lib/cancel/isCancel.js","webpack://wiq-front-end/./node_modules/axios/lib/core/Axios.js","webpack://wiq-front-end/./node_modules/axios/lib/core/InterceptorManager.js","webpack://wiq-front-end/./node_modules/axios/lib/core/buildFullPath.js","webpack://wiq-front-end/./node_modules/axios/lib/core/createError.js","webpack://wiq-front-end/./node_modules/axios/lib/core/dispatchRequest.js","webpack://wiq-front-end/./node_modules/axios/lib/core/enhanceError.js","webpack://wiq-front-end/./node_modules/axios/lib/core/mergeConfig.js","webpack://wiq-front-end/./node_modules/axios/lib/core/settle.js","webpack://wiq-front-end/./node_modules/axios/lib/core/transformData.js","webpack://wiq-front-end/./node_modules/axios/lib/defaults.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/bind.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/buildURL.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/combineURLs.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/cookies.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/spread.js","webpack://wiq-front-end/./node_modules/axios/lib/helpers/validator.js","webpack://wiq-front-end/./node_modules/axios/lib/utils.js","webpack://wiq-front-end/./node_modules/jquery/dist/jquery-exposed.js","webpack://wiq-front-end/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://wiq-front-end/./node_modules/filepond-plugin-file-poster/dist/filepond-plugin-file-poster.js","webpack://wiq-front-end/./node_modules/filepond-plugin-file-validate-size/dist/filepond-plugin-file-validate-size.js","webpack://wiq-front-end/./node_modules/filepond-plugin-file-validate-type/dist/filepond-plugin-file-validate-type.js","webpack://wiq-front-end/./node_modules/filepond/dist/filepond.js","webpack://wiq-front-end/./node_modules/heic2any/dist/heic2any.js","webpack://wiq-front-end/./node_modules/lodash/lodash.js","webpack://wiq-front-end/./node_modules/moment-timezone/index.js","webpack://wiq-front-end/./node_modules/moment-timezone/moment-timezone.js","webpack://wiq-front-end/./node_modules/moment/locale/en-au.js","webpack://wiq-front-end/./node_modules/moment/locale/en-ca.js","webpack://wiq-front-end/./node_modules/moment/locale/en-gb.js","webpack://wiq-front-end/./node_modules/moment/locale/en-ie.js","webpack://wiq-front-end/./node_modules/moment/locale/en-il.js","webpack://wiq-front-end/./node_modules/moment/locale/en-in.js","webpack://wiq-front-end/./node_modules/moment/locale/en-nz.js","webpack://wiq-front-end/./node_modules/moment/locale/en-sg.js","webpack://wiq-front-end/./node_modules/moment/moment.js","webpack://wiq-front-end/./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack://wiq-front-end/./node_modules/toastr/build/toastr.min.js","webpack://wiq-front-end/./node_modules/vue-the-mask/dist/vue-the-mask.js","webpack://wiq-front-end/./node_modules/core-js/internals/a-callable.js","webpack://wiq-front-end/./node_modules/core-js/internals/a-constructor.js","webpack://wiq-front-end/./node_modules/core-js/internals/a-possible-prototype.js","webpack://wiq-front-end/./node_modules/core-js/internals/add-to-unscopables.js","webpack://wiq-front-end/./node_modules/core-js/internals/advance-string-index.js","webpack://wiq-front-end/./node_modules/core-js/internals/an-instance.js","webpack://wiq-front-end/./node_modules/core-js/internals/an-object.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-for-each.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-from.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-includes.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-iteration.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-method-is-strict.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-slice-simple.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-slice.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-species-constructor.js","webpack://wiq-front-end/./node_modules/core-js/internals/array-species-create.js","webpack://wiq-front-end/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://wiq-front-end/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://wiq-front-end/./node_modules/core-js/internals/classof-raw.js","webpack://wiq-front-end/./node_modules/core-js/internals/classof.js","webpack://wiq-front-end/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://wiq-front-end/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://wiq-front-end/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://wiq-front-end/./node_modules/core-js/internals/create-html.js","webpack://wiq-front-end/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://wiq-front-end/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://wiq-front-end/./node_modules/core-js/internals/create-property-descriptor.js","webpack://wiq-front-end/./node_modules/core-js/internals/create-property.js","webpack://wiq-front-end/./node_modules/core-js/internals/define-iterator.js","webpack://wiq-front-end/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://wiq-front-end/./node_modules/core-js/internals/descriptors.js","webpack://wiq-front-end/./node_modules/core-js/internals/document-create-element.js","webpack://wiq-front-end/./node_modules/core-js/internals/dom-iterables.js","webpack://wiq-front-end/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://wiq-front-end/./node_modules/core-js/internals/engine-is-browser.js","webpack://wiq-front-end/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://wiq-front-end/./node_modules/core-js/internals/engine-is-ios.js","webpack://wiq-front-end/./node_modules/core-js/internals/engine-is-node.js","webpack://wiq-front-end/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://wiq-front-end/./node_modules/core-js/internals/engine-user-agent.js","webpack://wiq-front-end/./node_modules/core-js/internals/engine-v8-version.js","webpack://wiq-front-end/./node_modules/core-js/internals/enum-bug-keys.js","webpack://wiq-front-end/./node_modules/core-js/internals/export.js","webpack://wiq-front-end/./node_modules/core-js/internals/fails.js","webpack://wiq-front-end/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://wiq-front-end/./node_modules/core-js/internals/flatten-into-array.js","webpack://wiq-front-end/./node_modules/core-js/internals/function-apply.js","webpack://wiq-front-end/./node_modules/core-js/internals/function-bind-context.js","webpack://wiq-front-end/./node_modules/core-js/internals/function-bind-native.js","webpack://wiq-front-end/./node_modules/core-js/internals/function-call.js","webpack://wiq-front-end/./node_modules/core-js/internals/function-name.js","webpack://wiq-front-end/./node_modules/core-js/internals/function-uncurry-this.js","webpack://wiq-front-end/./node_modules/core-js/internals/get-built-in.js","webpack://wiq-front-end/./node_modules/core-js/internals/get-iterator-method.js","webpack://wiq-front-end/./node_modules/core-js/internals/get-iterator.js","webpack://wiq-front-end/./node_modules/core-js/internals/get-method.js","webpack://wiq-front-end/./node_modules/core-js/internals/get-substitution.js","webpack://wiq-front-end/./node_modules/core-js/internals/global.js","webpack://wiq-front-end/./node_modules/core-js/internals/has-own-property.js","webpack://wiq-front-end/./node_modules/core-js/internals/hidden-keys.js","webpack://wiq-front-end/./node_modules/core-js/internals/host-report-errors.js","webpack://wiq-front-end/./node_modules/core-js/internals/html.js","webpack://wiq-front-end/./node_modules/core-js/internals/ie8-dom-define.js","webpack://wiq-front-end/./node_modules/core-js/internals/indexed-object.js","webpack://wiq-front-end/./node_modules/core-js/internals/inherit-if-required.js","webpack://wiq-front-end/./node_modules/core-js/internals/inspect-source.js","webpack://wiq-front-end/./node_modules/core-js/internals/internal-state.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-array.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-callable.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-constructor.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-forced.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-object.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-pure.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-regexp.js","webpack://wiq-front-end/./node_modules/core-js/internals/is-symbol.js","webpack://wiq-front-end/./node_modules/core-js/internals/iterate.js","webpack://wiq-front-end/./node_modules/core-js/internals/iterator-close.js","webpack://wiq-front-end/./node_modules/core-js/internals/iterators-core.js","webpack://wiq-front-end/./node_modules/core-js/internals/iterators.js","webpack://wiq-front-end/./node_modules/core-js/internals/length-of-array-like.js","webpack://wiq-front-end/./node_modules/core-js/internals/microtask.js","webpack://wiq-front-end/./node_modules/core-js/internals/native-promise-constructor.js","webpack://wiq-front-end/./node_modules/core-js/internals/native-symbol.js","webpack://wiq-front-end/./node_modules/core-js/internals/native-weak-map.js","webpack://wiq-front-end/./node_modules/core-js/internals/new-promise-capability.js","webpack://wiq-front-end/./node_modules/core-js/internals/not-a-regexp.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-create.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-define-properties.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-define-property.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-keys-internal.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-keys.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://wiq-front-end/./node_modules/core-js/internals/object-to-string.js","webpack://wiq-front-end/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://wiq-front-end/./node_modules/core-js/internals/own-keys.js","webpack://wiq-front-end/./node_modules/core-js/internals/path.js","webpack://wiq-front-end/./node_modules/core-js/internals/perform.js","webpack://wiq-front-end/./node_modules/core-js/internals/promise-resolve.js","webpack://wiq-front-end/./node_modules/core-js/internals/queue.js","webpack://wiq-front-end/./node_modules/core-js/internals/redefine-all.js","webpack://wiq-front-end/./node_modules/core-js/internals/redefine.js","webpack://wiq-front-end/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://wiq-front-end/./node_modules/core-js/internals/regexp-exec.js","webpack://wiq-front-end/./node_modules/core-js/internals/regexp-flags.js","webpack://wiq-front-end/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://wiq-front-end/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://wiq-front-end/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://wiq-front-end/./node_modules/core-js/internals/require-object-coercible.js","webpack://wiq-front-end/./node_modules/core-js/internals/same-value.js","webpack://wiq-front-end/./node_modules/core-js/internals/set-global.js","webpack://wiq-front-end/./node_modules/core-js/internals/set-species.js","webpack://wiq-front-end/./node_modules/core-js/internals/set-to-string-tag.js","webpack://wiq-front-end/./node_modules/core-js/internals/shared-key.js","webpack://wiq-front-end/./node_modules/core-js/internals/shared-store.js","webpack://wiq-front-end/./node_modules/core-js/internals/shared.js","webpack://wiq-front-end/./node_modules/core-js/internals/species-constructor.js","webpack://wiq-front-end/./node_modules/core-js/internals/string-html-forced.js","webpack://wiq-front-end/./node_modules/core-js/internals/string-multibyte.js","webpack://wiq-front-end/./node_modules/core-js/internals/string-trim.js","webpack://wiq-front-end/./node_modules/core-js/internals/task.js","webpack://wiq-front-end/./node_modules/core-js/internals/this-number-value.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-absolute-index.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-indexed-object.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-length.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-object.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-primitive.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-property-key.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-string-tag-support.js","webpack://wiq-front-end/./node_modules/core-js/internals/to-string.js","webpack://wiq-front-end/./node_modules/core-js/internals/try-to-string.js","webpack://wiq-front-end/./node_modules/core-js/internals/uid.js","webpack://wiq-front-end/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://wiq-front-end/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://wiq-front-end/./node_modules/core-js/internals/validate-arguments-length.js","webpack://wiq-front-end/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://wiq-front-end/./node_modules/core-js/internals/well-known-symbol.js","webpack://wiq-front-end/./node_modules/core-js/internals/whitespaces.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.concat.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.filter.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.find-index.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.find.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.flat-map.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.from.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.includes.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.iterator.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.join.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.map.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.slice.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.splice.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.function.name.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.json.stringify.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.number.constructor.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.object.keys.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.object.to-string.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.promise.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.regexp.exec.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.regexp.sticky.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.regexp.test.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.string.includes.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.string.iterator.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.string.link.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.string.match.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.string.replace.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.string.search.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.string.split.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.symbol.description.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://wiq-front-end/./node_modules/core-js/modules/es.symbol.js","webpack://wiq-front-end/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://wiq-front-end/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://wiq-front-end/./node_modules/jquery/dist/jquery.js","webpack://wiq-front-end//tmp/build_f6120820/node_modules/moment/locale|sync|/en/","webpack://wiq-front-end/./node_modules/regenerator-runtime/runtime.js","webpack://wiq-front-end/webpack/bootstrap","webpack://wiq-front-end/webpack/runtime/amd define","webpack://wiq-front-end/webpack/runtime/amd options","webpack://wiq-front-end/webpack/runtime/compat get default export","webpack://wiq-front-end/webpack/runtime/define property getters","webpack://wiq-front-end/webpack/runtime/global","webpack://wiq-front-end/webpack/runtime/hasOwnProperty shorthand","webpack://wiq-front-end/webpack/runtime/make namespace object","webpack://wiq-front-end/webpack/runtime/node module decorator","webpack://wiq-front-end/./node_modules/vue/dist/vue.esm.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/enums.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/math.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/createPopper.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/within.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://wiq-front-end/./node_modules/vue-resize/dist/vue-resize.esm.js","webpack://wiq-front-end/./node_modules/@popperjs/core/lib/popper.js","webpack://wiq-front-end/./node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack://wiq-front-end/./app/packs/shared/team_api_service.js","webpack://wiq-front-end/./app/packs/shared/accessibility_helper.js","webpack://wiq-front-end/./node_modules/spin.js/spin.js","webpack://wiq-front-end/./node_modules/ladda/js/ladda.js","webpack://wiq-front-end/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://wiq-front-end/./app/packs/shared/ladda_button.vue","webpack://wiq-front-end/app/packs/shared/ladda_button.vue","webpack://wiq-front-end/./app/packs/shared/ladda_button.vue?6762","webpack://wiq-front-end/./app/packs/kiosk/device-setup.vue","webpack://wiq-front-end/app/packs/kiosk/device-setup.vue","webpack://wiq-front-end/./app/packs/kiosk/device-setup.vue?5428","webpack://wiq-front-end/./app/packs/kiosk/profile-photo-placeholder.vue","webpack://wiq-front-end/app/packs/kiosk/profile-photo-placeholder.vue","webpack://wiq-front-end/./app/packs/kiosk/profile-photo-placeholder.vue?82b4","webpack://wiq-front-end/./app/packs/shared/tag.vue","webpack://wiq-front-end/app/packs/shared/tag.vue","webpack://wiq-front-end/./app/packs/shared/tag.vue?ed30","webpack://wiq-front-end/./app/packs/shared/taggable_mix.js","webpack://wiq-front-end/./app/packs/kiosk/paginated-check-ins.vue","webpack://wiq-front-end/app/packs/kiosk/paginated-check-ins.vue","webpack://wiq-front-end/./app/packs/kiosk/paginated-check-ins.vue?8768","webpack://wiq-front-end/./app/packs/wrestling/vue/spinner.vue","webpack://wiq-front-end/app/packs/wrestling/vue/spinner.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/spinner.vue?3f2a","webpack://wiq-front-end/./app/packs/wrestling/vue/mixins/parameter_history_mix.js","webpack://wiq-front-end/app/packs/shared/search.vue","webpack://wiq-front-end/./app/packs/shared/search.vue","webpack://wiq-front-end/./app/packs/shared/search.vue?b46d","webpack://wiq-front-end/./app/packs/shared/search.vue?8086","webpack://wiq-front-end/./app/packs/shared/wrestler_kiosk_result.vue","webpack://wiq-front-end/app/packs/shared/wrestler_kiosk_result.vue","webpack://wiq-front-end/./app/packs/shared/wrestler_kiosk_result.vue?3d50","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_address_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_address_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_address_question.vue?dd3b","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_date_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_date_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_date_question.vue?4095","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_email_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_email_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_email_question.vue?8bbc","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_phone_number_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_phone_number_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_phone_number_question.vue?cacf","webpack://wiq-front-end/./node_modules/@pqina/filepond-plugin-image-editor/dist/FilePondPluginImageEditor.js","webpack://wiq-front-end/./node_modules/@pqina/pintura/pintura.js","webpack://wiq-front-end/./node_modules/rsvp/dist/rsvp.es.js","webpack://wiq-front-end/app/packs/wrestling/vue/pintura_photo_uploader.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/pintura_photo_uploader.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/pintura_photo_uploader.vue?3337","webpack://wiq-front-end/./app/packs/wrestling/vue/pintura_photo_uploader.vue?e8e9","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_photo_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_photo_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_photo_question.vue?9cab","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_short_text_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_short_text_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_short_text_question.vue?3f2b","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_single_select_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_single_select_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_single_select_question.vue?9261","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_multi_select_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_multi_select_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_multi_select_question.vue?007c","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_yes_no_question.vue","webpack://wiq-front-end/app/packs/wrestling/vue/reg_questions/reg_yes_no_question.vue","webpack://wiq-front-end/./app/packs/wrestling/vue/reg_questions/reg_yes_no_question.vue?ba53","webpack://wiq-front-end/./app/packs/wrestling/vue/mixins/funnel_mix.js","webpack://wiq-front-end/app/packs/shared/registration_info_form.vue","webpack://wiq-front-end/./app/packs/shared/registration_info_form.vue","webpack://wiq-front-end/./app/packs/shared/registration_info_form.vue?ad71","webpack://wiq-front-end/./app/packs/shared/registration_info_form.vue?1b04","webpack://wiq-front-end/./app/packs/kiosk/kiosk-form.vue","webpack://wiq-front-end/app/packs/kiosk/kiosk-form.vue","webpack://wiq-front-end/./app/packs/kiosk/kiosk-form.vue?6dce","webpack://wiq-front-end/app/packs/kiosk/kiosk-app.vue","webpack://wiq-front-end/./app/packs/kiosk/kiosk-app.vue","webpack://wiq-front-end/./app/packs/kiosk/kiosk-app.vue?6b84","webpack://wiq-front-end/./app/packs/kiosk/kiosk-app.vue?888c","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/version.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/semanticAttributes.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/is.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/worldwide.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/browser.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/debug-build.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/logger.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/string.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/object.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/misc.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/propagationContext.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/time.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/session.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/spanOnScope.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/scope.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/carrier.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/defaultScopes.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/asyncContext/index.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/currentScopes.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/breadcrumbs.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/constants.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/debug-build.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/memo.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/stacktrace.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/syncpromise.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/normalize.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/eventProcessors.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/baggage.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/hasTracingEnabled.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/tracing.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metrics/metric-summary.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/spanstatus.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/spanUtils.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/prepareEvent.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/exports.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integration.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/instrument/handlers.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/instrument/globalError.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/instrument/globalUnhandledRejection.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/errors.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/hubextensions.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/instrument/console.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/severity.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/captureconsole.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/feedback.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/handleCallbackErrors.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/dsn.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/envelope.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/envelope.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/measurement.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/utils.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/sentrySpan.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/logSpans.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/trace.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/sampling.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/error.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/promisebuffer.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/ratelimit.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/transports/base.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/debug.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/dedupe.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/extraerrordata.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/functiontostring.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/getCurrentHubShim.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/inboundfilters.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/api.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/transports/multiplexed.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metadata.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/metadata.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/parameterize.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/path.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/rewriteframes.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/sessiontiming.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/sdk.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/third-party-errors-filter.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/integrations/zoderrors.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/helpers.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/baseclient.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/clientreport.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/debug-build.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/eventbuilder.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/userfeedback.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/client.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/env.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/supports.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/types.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/transports/fetch.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/stack-parsers.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/vendor/supportsHistory.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/instrument/fetch.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/breadcrumb-log-level.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/url.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/aggregate-errors.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/linkederrors.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/sdk.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/utils/lazyLoadIntegration.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/reportingobserver.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/utils/isSentryRequestUrl.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/httpclient.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/integrations/contextlines.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/buildPolyfills/_optionalChain.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/isBrowser.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/node.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onFCP.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getCLS.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getFID.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getINP.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getLCP.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onTTFB.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/instrument.js","webpack://wiq-front-end/./node_modules/@sentry-internal/replay/build/npm/esm/index.js","webpack://wiq-front-end/./node_modules/@sentry/utils/build/esm/buildPolyfills/_nullishCoalesce.js","webpack://wiq-front-end/./node_modules/@sentry-internal/replay-canvas/build/npm/esm/index.js","webpack://wiq-front-end/./node_modules/@sentry-internal/feedback/build/npm/esm/index.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/feedbackAsync.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/feedbackSync.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metrics/constants.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metrics/exports.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metrics/utils.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metrics/instance.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metrics/browser-aggregator.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/metrics/envelope.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/metrics.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/fetch.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/tracing/request.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/utils.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/cls.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/browserMetrics.js","webpack://wiq-front-end/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/inp.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/tracing/idleSpan.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/tracing/backgroundtab.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/tracing/browserTracingIntegration.js","webpack://wiq-front-end/./node_modules/@sentry/core/build/esm/transports/offline.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/transports/offline.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/profiling/utils.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/profiling/startProfileForSpan.js","webpack://wiq-front-end/./node_modules/@sentry/browser/build/npm/esm/profiling/integration.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/constants.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/debug-build.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/vendor/components.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/errorhandler.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/tracing.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/integration.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/sdk.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/router.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/browserTracingIntegration.js","webpack://wiq-front-end/./node_modules/@sentry/vue/build/esm/pinia.js","webpack://wiq-front-end/./app/packs/shared/sentry_config.js","webpack://wiq-front-end/./app/packs/kiosk/index.js","webpack://wiq-front-end/./app/packs/kiosk/config/axios_setup.js"],"sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n } // filter out skipped interceptors\n\n\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('./../defaults');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nmodule.exports = function isAxiosError(payload) {\n return _typeof(payload) === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar pkg = require('./../../package.json');\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return _typeof(thing) === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\n\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n\n return false;\n}\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\n\n\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (_typeof(options) !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && _typeof(val) === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (_typeof(obj) !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","var ___EXPOSE_LOADER_IMPORT___ = require(\"-!./jquery.js\");\n\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(\"../../expose-loader/dist/runtime/getGlobalThis.js\");\n\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] = ___EXPOSE_LOADER_IMPORT___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] = ___EXPOSE_LOADER_IMPORT___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"jquery\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"jquery\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;","\"use strict\"; // eslint-disable-next-line func-names\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nmodule.exports = function () {\n if ((typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) === \"object\") {\n return globalThis;\n }\n\n var g;\n\n try {\n // This works if eval is allowed (see CSP)\n // eslint-disable-next-line no-new-func\n g = this || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") {\n return window;\n } // This works if the self reference is available\n\n\n if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === \"object\") {\n return self;\n } // This works if the global reference is available\n\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n }\n\n return g;\n}();","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * FilePondPluginFilePoster 2.5.1\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.FilePondPluginFilePoster = factory());\n})(this, function () {\n 'use strict';\n\n var IMAGE_SCALE_SPRING_PROPS = {\n type: 'spring',\n stiffness: 0.5,\n damping: 0.45,\n mass: 10\n };\n\n var createPosterView = function createPosterView(_) {\n return _.utils.createView({\n name: 'file-poster',\n tag: 'div',\n ignoreRect: true,\n create: function create(_ref) {\n var root = _ref.root;\n root.ref.image = document.createElement('img');\n root.element.appendChild(root.ref.image);\n },\n write: _.utils.createRoute({\n DID_FILE_POSTER_LOAD: function DID_FILE_POSTER_LOAD(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n var id = props.id; // get item\n\n var item = root.query('GET_ITEM', {\n id: props.id\n });\n if (!item) return; // get poster\n\n var poster = item.getMetadata('poster');\n root.ref.image.src = poster; // let others know of our fabulous achievement (so the image can be faded in)\n\n root.dispatch('DID_FILE_POSTER_DRAW', {\n id: id\n });\n }\n }),\n mixins: {\n styles: ['scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: IMAGE_SCALE_SPRING_PROPS,\n scaleY: IMAGE_SCALE_SPRING_PROPS,\n opacity: {\n type: 'tween',\n duration: 750\n }\n }\n }\n });\n };\n\n var applyTemplate = function applyTemplate(source, target) {\n // copy width and height\n target.width = source.width;\n target.height = source.height; // draw the template\n\n var ctx = target.getContext('2d');\n ctx.drawImage(source, 0, 0);\n };\n\n var createPosterOverlayView = function createPosterOverlayView(fpAPI) {\n return fpAPI.utils.createView({\n name: 'file-poster-overlay',\n tag: 'canvas',\n ignoreRect: true,\n create: function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n applyTemplate(props.template, root.element);\n },\n mixins: {\n styles: ['opacity'],\n animations: {\n opacity: {\n type: 'spring',\n mass: 25\n }\n }\n }\n });\n };\n\n var getImageSize = function getImageSize(url, cb) {\n var image = new Image();\n\n image.onload = function () {\n var width = image.naturalWidth;\n var height = image.naturalHeight;\n image = null;\n cb(width, height);\n };\n\n image.src = url;\n };\n\n var easeInOutSine = function easeInOutSine(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n };\n\n var addGradientSteps = function addGradientSteps(gradient, color) {\n var alpha = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var easeFn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : easeInOutSine;\n var steps = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 10;\n var offset = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var range = 1 - offset;\n var rgb = color.join(',');\n\n for (var i = 0; i <= steps; i++) {\n var p = i / steps;\n var stop = offset + range * p;\n gradient.addColorStop(stop, 'rgba('.concat(rgb, ', ').concat(easeFn(p) * alpha, ')'));\n }\n };\n\n var MAX_WIDTH = 10;\n var MAX_HEIGHT = 10;\n\n var calculateAverageColor = function calculateAverageColor(image) {\n var scalar = Math.min(MAX_WIDTH / image.width, MAX_HEIGHT / image.height);\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var width = canvas.width = Math.ceil(image.width * scalar);\n var height = canvas.height = Math.ceil(image.height * scalar);\n ctx.drawImage(image, 0, 0, width, height);\n var data = null;\n\n try {\n data = ctx.getImageData(0, 0, width, height).data;\n } catch (e) {\n return null;\n }\n\n var l = data.length;\n var r = 0;\n var g = 0;\n var b = 0;\n var i = 0;\n\n for (; i < l; i += 4) {\n r += data[i] * data[i];\n g += data[i + 1] * data[i + 1];\n b += data[i + 2] * data[i + 2];\n }\n\n r = averageColor(r, l);\n g = averageColor(g, l);\n b = averageColor(b, l);\n return {\n r: r,\n g: g,\n b: b\n };\n };\n\n var averageColor = function averageColor(c, l) {\n return Math.floor(Math.sqrt(c / (l / 4)));\n };\n\n var drawTemplate = function drawTemplate(canvas, width, height, color, alphaTarget) {\n canvas.width = width;\n canvas.height = height;\n var ctx = canvas.getContext('2d');\n var horizontalCenter = width * 0.5;\n var grad = ctx.createRadialGradient(horizontalCenter, height + 110, height - 100, horizontalCenter, height + 110, height + 100);\n addGradientSteps(grad, color, alphaTarget, undefined, 8, 0.4);\n ctx.save();\n ctx.translate(-width * 0.5, 0);\n ctx.scale(2, 1);\n ctx.fillStyle = grad;\n ctx.fillRect(0, 0, width, height);\n ctx.restore();\n };\n\n var hasNavigator = typeof navigator !== 'undefined';\n var width = 500;\n var height = 200;\n var overlayTemplateShadow = hasNavigator && document.createElement('canvas');\n var overlayTemplateError = hasNavigator && document.createElement('canvas');\n var overlayTemplateSuccess = hasNavigator && document.createElement('canvas');\n var itemShadowColor = [40, 40, 40];\n var itemErrorColor = [196, 78, 71];\n var itemSuccessColor = [54, 151, 99];\n\n if (hasNavigator) {\n drawTemplate(overlayTemplateShadow, width, height, itemShadowColor, 0.85);\n drawTemplate(overlayTemplateError, width, height, itemErrorColor, 1);\n drawTemplate(overlayTemplateSuccess, width, height, itemSuccessColor, 1);\n }\n\n var loadImage = function loadImage(url, crossOriginValue) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n if (typeof crossOrigin === 'string') {\n img.crossOrigin = crossOriginValue;\n }\n\n img.onload = function () {\n resolve(img);\n };\n\n img.onerror = function (e) {\n reject(e);\n };\n\n img.src = url;\n });\n };\n\n var createPosterWrapperView = function createPosterWrapperView(_) {\n // create overlay view\n var overlay = createPosterOverlayView(_);\n /**\n * Write handler for when preview container has been created\n */\n\n var didCreatePreviewContainer = function didCreatePreviewContainer(_ref) {\n var root = _ref.root,\n props = _ref.props;\n var id = props.id; // we need to get the file data to determine the eventual image size\n\n var item = root.query('GET_ITEM', id);\n if (!item) return; // get url to file\n\n var fileURL = item.getMetadata('poster'); // image is now ready\n\n var previewImageLoaded = function previewImageLoaded(data) {\n // calculate average image color, is in try catch to circumvent any cors errors\n var averageColor = root.query('GET_FILE_POSTER_CALCULATE_AVERAGE_IMAGE_COLOR') ? calculateAverageColor(data) : null;\n item.setMetadata('color', averageColor, true); // the preview is now ready to be drawn\n\n root.dispatch('DID_FILE_POSTER_LOAD', {\n id: id,\n data: data\n });\n }; // determine image size of this item\n\n\n getImageSize(fileURL, function (width, height) {\n // we can now scale the panel to the final size\n root.dispatch('DID_FILE_POSTER_CALCULATE_SIZE', {\n id: id,\n width: width,\n height: height\n }); // create fallback preview\n\n loadImage(fileURL, root.query('GET_FILE_POSTER_CROSS_ORIGIN_ATTRIBUTE_VALUE')).then(previewImageLoaded);\n });\n };\n /**\n * Write handler for when the preview has been loaded\n */\n\n\n var didLoadPreview = function didLoadPreview(_ref2) {\n var root = _ref2.root;\n root.ref.overlayShadow.opacity = 1;\n };\n /**\n * Write handler for when the preview image is ready to be animated\n */\n\n\n var didDrawPreview = function didDrawPreview(_ref3) {\n var root = _ref3.root;\n var image = root.ref.image; // reveal image\n\n image.scaleX = 1.0;\n image.scaleY = 1.0;\n image.opacity = 1;\n };\n /**\n * Write handler for when the preview has been loaded\n */\n\n\n var restoreOverlay = function restoreOverlay(_ref4) {\n var root = _ref4.root;\n root.ref.overlayShadow.opacity = 1;\n root.ref.overlayError.opacity = 0;\n root.ref.overlaySuccess.opacity = 0;\n };\n\n var didThrowError = function didThrowError(_ref5) {\n var root = _ref5.root;\n root.ref.overlayShadow.opacity = 0.25;\n root.ref.overlayError.opacity = 1;\n };\n\n var didCompleteProcessing = function didCompleteProcessing(_ref6) {\n var root = _ref6.root;\n root.ref.overlayShadow.opacity = 0.25;\n root.ref.overlaySuccess.opacity = 1;\n };\n /**\n * Constructor\n */\n\n\n var create = function create(_ref7) {\n var root = _ref7.root,\n props = _ref7.props; // test if colors aren't default item overlay colors\n\n var itemShadowColorProp = root.query('GET_FILE_POSTER_ITEM_OVERLAY_SHADOW_COLOR');\n var itemErrorColorProp = root.query('GET_FILE_POSTER_ITEM_OVERLAY_ERROR_COLOR');\n var itemSuccessColorProp = root.query('GET_FILE_POSTER_ITEM_OVERLAY_SUCCESS_COLOR');\n\n if (itemShadowColorProp && itemShadowColorProp !== itemShadowColor) {\n itemShadowColor = itemShadowColorProp;\n drawTemplate(overlayTemplateShadow, width, height, itemShadowColor, 0.85);\n }\n\n if (itemErrorColorProp && itemErrorColorProp !== itemErrorColor) {\n itemErrorColor = itemErrorColorProp;\n drawTemplate(overlayTemplateError, width, height, itemErrorColor, 1);\n }\n\n if (itemSuccessColorProp && itemSuccessColorProp !== itemSuccessColor) {\n itemSuccessColor = itemSuccessColorProp;\n drawTemplate(overlayTemplateSuccess, width, height, itemSuccessColor, 1);\n } // image view\n\n\n var image = createPosterView(_); // append image presenter\n\n root.ref.image = root.appendChildView(root.createChildView(image, {\n id: props.id,\n scaleX: 1.25,\n scaleY: 1.25,\n opacity: 0\n })); // image overlays\n\n root.ref.overlayShadow = root.appendChildView(root.createChildView(overlay, {\n template: overlayTemplateShadow,\n opacity: 0\n }));\n root.ref.overlaySuccess = root.appendChildView(root.createChildView(overlay, {\n template: overlayTemplateSuccess,\n opacity: 0\n }));\n root.ref.overlayError = root.appendChildView(root.createChildView(overlay, {\n template: overlayTemplateError,\n opacity: 0\n }));\n };\n\n return _.utils.createView({\n name: 'file-poster-wrapper',\n create: create,\n write: _.utils.createRoute({\n // image preview stated\n DID_FILE_POSTER_LOAD: didLoadPreview,\n DID_FILE_POSTER_DRAW: didDrawPreview,\n DID_FILE_POSTER_CONTAINER_CREATE: didCreatePreviewContainer,\n // file states\n DID_THROW_ITEM_LOAD_ERROR: didThrowError,\n DID_THROW_ITEM_PROCESSING_ERROR: didThrowError,\n DID_THROW_ITEM_INVALID: didThrowError,\n DID_COMPLETE_ITEM_PROCESSING: didCompleteProcessing,\n DID_START_ITEM_PROCESSING: restoreOverlay,\n DID_REVERT_ITEM_PROCESSING: restoreOverlay\n })\n });\n };\n /**\n * File Poster Plugin\n */\n\n\n var plugin = function plugin(fpAPI) {\n var addFilter = fpAPI.addFilter,\n utils = fpAPI.utils;\n var Type = utils.Type,\n createRoute = utils.createRoute; // filePosterView\n\n var filePosterView = createPosterWrapperView(fpAPI); // called for each view that is created right after the 'create' method\n\n addFilter('CREATE_VIEW', function (viewAPI) {\n // get reference to created view\n var is = viewAPI.is,\n view = viewAPI.view,\n query = viewAPI.query; // only hook up to item view and only if is enabled for this cropper\n\n if (!is('file') || !query('GET_ALLOW_FILE_POSTER')) return; // create the file poster plugin, but only do so if the item is an image\n\n var didLoadItem = function didLoadItem(_ref) {\n var root = _ref.root,\n props = _ref.props;\n updateItemPoster(root, props);\n };\n\n var didUpdateItemMetadata = function didUpdateItemMetadata(_ref2) {\n var root = _ref2.root,\n props = _ref2.props,\n action = _ref2.action;\n if (!/poster/.test(action.change.key)) return;\n updateItemPoster(root, props);\n };\n\n var updateItemPoster = function updateItemPoster(root, props) {\n var id = props.id;\n var item = query('GET_ITEM', id); // item could theoretically have been removed in the mean time\n\n if (!item || !item.getMetadata('poster') || item.archived) return; // don't update if is the same poster\n\n if (root.ref.previousPoster === item.getMetadata('poster')) return;\n root.ref.previousPoster = item.getMetadata('poster'); // test if is filtered\n\n if (!query('GET_FILE_POSTER_FILTER_ITEM')(item)) return;\n\n if (root.ref.filePoster) {\n view.removeChildView(root.ref.filePoster);\n } // set preview view\n\n\n root.ref.filePoster = view.appendChildView(view.createChildView(filePosterView, {\n id: id\n })); // now ready\n\n root.dispatch('DID_FILE_POSTER_CONTAINER_CREATE', {\n id: id\n });\n };\n\n var didCalculatePreviewSize = function didCalculatePreviewSize(_ref3) {\n var root = _ref3.root,\n action = _ref3.action; // no poster set\n\n if (!root.ref.filePoster) return; // remember dimensions\n\n root.ref.imageWidth = action.width;\n root.ref.imageHeight = action.height;\n root.ref.shouldUpdatePanelHeight = true;\n root.dispatch('KICK');\n };\n\n var getPosterHeight = function getPosterHeight(_ref4) {\n var root = _ref4.root;\n var fixedPosterHeight = root.query('GET_FILE_POSTER_HEIGHT'); // if fixed height: return fixed immediately\n\n if (fixedPosterHeight) {\n return fixedPosterHeight;\n }\n\n var minPosterHeight = root.query('GET_FILE_POSTER_MIN_HEIGHT');\n var maxPosterHeight = root.query('GET_FILE_POSTER_MAX_HEIGHT'); // if natural height is smaller than minHeight: return min height\n\n if (minPosterHeight && root.ref.imageHeight < minPosterHeight) {\n return minPosterHeight;\n }\n\n var height = root.rect.element.width * (root.ref.imageHeight / root.ref.imageWidth);\n\n if (minPosterHeight && height < minPosterHeight) {\n return minPosterHeight;\n }\n\n if (maxPosterHeight && height > maxPosterHeight) {\n return maxPosterHeight;\n }\n\n return height;\n }; // start writing\n\n\n view.registerWriter(createRoute({\n DID_LOAD_ITEM: didLoadItem,\n DID_FILE_POSTER_CALCULATE_SIZE: didCalculatePreviewSize,\n DID_UPDATE_ITEM_METADATA: didUpdateItemMetadata\n }, function (_ref5) {\n var root = _ref5.root,\n props = _ref5.props; // don't run without poster\n\n if (!root.ref.filePoster) return; // don't do anything while hidden\n\n if (root.rect.element.hidden) return; // should we redraw\n\n if (root.ref.shouldUpdatePanelHeight) {\n // time to resize the parent panel\n root.dispatch('DID_UPDATE_PANEL_HEIGHT', {\n id: props.id,\n height: getPosterHeight({\n root: root\n })\n }); // done!\n\n root.ref.shouldUpdatePanelHeight = false;\n }\n }));\n }); // expose plugin\n\n return {\n options: {\n // Enable or disable file poster\n allowFilePoster: [true, Type.BOOLEAN],\n // Fixed preview height\n filePosterHeight: [null, Type.INT],\n // Min image height\n filePosterMinHeight: [null, Type.INT],\n // Max image height\n filePosterMaxHeight: [null, Type.INT],\n // filters file items to determine which are shown as poster\n filePosterFilterItem: [function () {\n return true;\n }, Type.FUNCTION],\n // Enables or disables reading average image color\n filePosterCalculateAverageImageColor: [false, Type.BOOLEAN],\n // Allows setting the value of the CORS attribute (null is don't set attribute)\n filePosterCrossOriginAttributeValue: ['Anonymous', Type.STRING],\n // Colors used for item overlay gradient\n filePosterItemOverlayShadowColor: [null, Type.ARRAY],\n filePosterItemOverlayErrorColor: [null, Type.ARRAY],\n filePosterItemOverlaySuccessColor: [null, Type.ARRAY]\n }\n };\n }; // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\n\n\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\n if (isBrowser) {\n document.dispatchEvent(new CustomEvent('FilePond:pluginloaded', {\n detail: plugin\n }));\n }\n\n return plugin;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * FilePondPluginFileValidateSize 2.2.8\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.FilePondPluginFileValidateSize = factory());\n})(this, function () {\n 'use strict';\n\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils; // get quick reference to Type utils\n\n var Type = utils.Type,\n replaceInString = utils.replaceInString,\n toNaturalFileSize = utils.toNaturalFileSize; // filtering if an item is allowed in hopper\n\n addFilter('ALLOW_HOPPER_ITEM', function (file, _ref2) {\n var query = _ref2.query;\n\n if (!query('GET_ALLOW_FILE_SIZE_VALIDATION')) {\n return true;\n }\n\n var sizeMax = query('GET_MAX_FILE_SIZE');\n\n if (sizeMax !== null && file.size > sizeMax) {\n return false;\n }\n\n var sizeMin = query('GET_MIN_FILE_SIZE');\n\n if (sizeMin !== null && file.size < sizeMin) {\n return false;\n }\n\n return true;\n }); // called for each file that is loaded\n // right before it is set to the item state\n // should return a promise\n\n addFilter('LOAD_FILE', function (file, _ref3) {\n var query = _ref3.query;\n return new Promise(function (resolve, reject) {\n // if not allowed, all fine, exit\n if (!query('GET_ALLOW_FILE_SIZE_VALIDATION')) {\n return resolve(file);\n } // check if file should be filtered\n\n\n var fileFilter = query('GET_FILE_VALIDATE_SIZE_FILTER');\n\n if (fileFilter && !fileFilter(file)) {\n return resolve(file);\n } // reject or resolve based on file size\n\n\n var sizeMax = query('GET_MAX_FILE_SIZE');\n\n if (sizeMax !== null && file.size > sizeMax) {\n reject({\n status: {\n main: query('GET_LABEL_MAX_FILE_SIZE_EXCEEDED'),\n sub: replaceInString(query('GET_LABEL_MAX_FILE_SIZE'), {\n filesize: toNaturalFileSize(sizeMax, '.', query('GET_FILE_SIZE_BASE'), query('GET_FILE_SIZE_LABELS', query))\n })\n }\n });\n return;\n } // reject or resolve based on file size\n\n\n var sizeMin = query('GET_MIN_FILE_SIZE');\n\n if (sizeMin !== null && file.size < sizeMin) {\n reject({\n status: {\n main: query('GET_LABEL_MIN_FILE_SIZE_EXCEEDED'),\n sub: replaceInString(query('GET_LABEL_MIN_FILE_SIZE'), {\n filesize: toNaturalFileSize(sizeMin, '.', query('GET_FILE_SIZE_BASE'), query('GET_FILE_SIZE_LABELS', query))\n })\n }\n });\n return;\n } // returns the current option value\n\n\n var totalSizeMax = query('GET_MAX_TOTAL_FILE_SIZE');\n\n if (totalSizeMax !== null) {\n // get the current total file size\n var currentTotalSize = query('GET_ACTIVE_ITEMS').reduce(function (total, item) {\n return total + item.fileSize;\n }, 0); // get the size of the new file\n\n if (currentTotalSize > totalSizeMax) {\n reject({\n status: {\n main: query('GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED'),\n sub: replaceInString(query('GET_LABEL_MAX_TOTAL_FILE_SIZE'), {\n filesize: toNaturalFileSize(totalSizeMax, '.', query('GET_FILE_SIZE_BASE'), query('GET_FILE_SIZE_LABELS', query))\n })\n }\n });\n return;\n }\n } // file is fine, let's pass it back\n\n\n resolve(file);\n });\n });\n return {\n options: {\n // Enable or disable file type validation\n allowFileSizeValidation: [true, Type.BOOLEAN],\n // Max individual file size in bytes\n maxFileSize: [null, Type.INT],\n // Min individual file size in bytes\n minFileSize: [null, Type.INT],\n // Max total file size in bytes\n maxTotalFileSize: [null, Type.INT],\n // Filter the files that need to be validated for size\n fileValidateSizeFilter: [null, Type.FUNCTION],\n // error labels\n labelMinFileSizeExceeded: ['File is too small', Type.STRING],\n labelMinFileSize: ['Minimum file size is {filesize}', Type.STRING],\n labelMaxFileSizeExceeded: ['File is too large', Type.STRING],\n labelMaxFileSize: ['Maximum file size is {filesize}', Type.STRING],\n labelMaxTotalFileSizeExceeded: ['Maximum total size exceeded', Type.STRING],\n labelMaxTotalFileSize: ['Maximum total file size is {filesize}', Type.STRING]\n }\n };\n }; // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\n\n\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\n if (isBrowser) {\n document.dispatchEvent(new CustomEvent('FilePond:pluginloaded', {\n detail: plugin\n }));\n }\n\n return plugin;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * FilePondPluginFileValidateType 1.2.8\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.FilePondPluginFileValidateType = factory());\n})(this, function () {\n 'use strict';\n\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils; // get quick reference to Type utils\n\n var Type = utils.Type,\n isString = utils.isString,\n replaceInString = utils.replaceInString,\n guesstimateMimeType = utils.guesstimateMimeType,\n getExtensionFromFilename = utils.getExtensionFromFilename,\n getFilenameFromURL = utils.getFilenameFromURL;\n\n var mimeTypeMatchesWildCard = function mimeTypeMatchesWildCard(mimeType, wildcard) {\n var mimeTypeGroup = (/^[^/]+/.exec(mimeType) || []).pop(); // image/png -> image\n\n var wildcardGroup = wildcard.slice(0, -2); // image/* -> image\n\n return mimeTypeGroup === wildcardGroup;\n };\n\n var isValidMimeType = function isValidMimeType(acceptedTypes, userInputType) {\n return acceptedTypes.some(function (acceptedType) {\n // accepted is wildcard mime type\n if (/\\*$/.test(acceptedType)) {\n return mimeTypeMatchesWildCard(userInputType, acceptedType);\n } // is normal mime type\n\n\n return acceptedType === userInputType;\n });\n };\n\n var getItemType = function getItemType(item) {\n // if the item is a url we guess the mime type by the extension\n var type = '';\n\n if (isString(item)) {\n var filename = getFilenameFromURL(item);\n var extension = getExtensionFromFilename(filename);\n\n if (extension) {\n type = guesstimateMimeType(extension);\n }\n } else {\n type = item.type;\n }\n\n return type;\n };\n\n var validateFile = function validateFile(item, acceptedFileTypes, typeDetector) {\n // no types defined, everything is allowed \\o/\n if (acceptedFileTypes.length === 0) {\n return true;\n } // gets the item type\n\n\n var type = getItemType(item); // no type detector, test now\n\n if (!typeDetector) {\n return isValidMimeType(acceptedFileTypes, type);\n } // use type detector\n\n\n return new Promise(function (resolve, reject) {\n typeDetector(item, type).then(function (detectedType) {\n if (isValidMimeType(acceptedFileTypes, detectedType)) {\n resolve();\n } else {\n reject();\n }\n }).catch(reject);\n });\n };\n\n var applyMimeTypeMap = function applyMimeTypeMap(map) {\n return function (acceptedFileType) {\n return map[acceptedFileType] === null ? false : map[acceptedFileType] || acceptedFileType;\n };\n }; // setup attribute mapping for accept\n\n\n addFilter('SET_ATTRIBUTE_TO_OPTION_MAP', function (map) {\n return Object.assign(map, {\n accept: 'acceptedFileTypes'\n });\n }); // filtering if an item is allowed in hopper\n\n addFilter('ALLOW_HOPPER_ITEM', function (file, _ref2) {\n var query = _ref2.query; // if we are not doing file type validation exit\n\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\n return true;\n } // we validate the file against the accepted file types\n\n\n return validateFile(file, query('GET_ACCEPTED_FILE_TYPES'));\n }); // called for each file that is loaded\n // right before it is set to the item state\n // should return a promise\n\n addFilter('LOAD_FILE', function (file, _ref3) {\n var query = _ref3.query;\n return new Promise(function (resolve, reject) {\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\n resolve(file);\n return;\n }\n\n var acceptedFileTypes = query('GET_ACCEPTED_FILE_TYPES'); // custom type detector method\n\n var typeDetector = query('GET_FILE_VALIDATE_TYPE_DETECT_TYPE'); // if invalid, exit here\n\n var validationResult = validateFile(file, acceptedFileTypes, typeDetector);\n\n var handleRejection = function handleRejection() {\n var acceptedFileTypesMapped = acceptedFileTypes.map(applyMimeTypeMap(query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP'))).filter(function (label) {\n return label !== false;\n });\n var acceptedFileTypesMapped_unique = acceptedFileTypesMapped.filter(function (item, index) {\n return acceptedFileTypesMapped.indexOf(item) === index;\n });\n reject({\n status: {\n main: query('GET_LABEL_FILE_TYPE_NOT_ALLOWED'),\n sub: replaceInString(query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES'), {\n allTypes: acceptedFileTypesMapped_unique.join(', '),\n allButLastType: acceptedFileTypesMapped_unique.slice(0, -1).join(', '),\n lastType: acceptedFileTypesMapped_unique[acceptedFileTypesMapped.length - 1]\n })\n }\n });\n }; // has returned new filename immidiately\n\n\n if (typeof validationResult === 'boolean') {\n if (!validationResult) {\n return handleRejection();\n }\n\n return resolve(file);\n } // is promise\n\n\n validationResult.then(function () {\n resolve(file);\n }).catch(handleRejection);\n });\n }); // expose plugin\n\n return {\n // default options\n options: {\n // Enable or disable file type validation\n allowFileTypeValidation: [true, Type.BOOLEAN],\n // What file types to accept\n acceptedFileTypes: [[], Type.ARRAY],\n // - must be comma separated\n // - mime types: image/png, image/jpeg, image/gif\n // - extensions: .png, .jpg, .jpeg ( not enabled yet )\n // - wildcards: image/*\n // label to show when a type is not allowed\n labelFileTypeNotAllowed: ['File is of invalid type', Type.STRING],\n // nicer label\n fileValidateTypeLabelExpectedTypes: ['Expects {allButLastType} or {lastType}', Type.STRING],\n // map mime types to extensions\n fileValidateTypeLabelExpectedTypesMap: [{}, Type.OBJECT],\n // Custom function to detect type of file\n fileValidateTypeDetectType: [null, Type.FUNCTION]\n }\n };\n }; // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\n\n\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\n if (isBrowser) {\n document.dispatchEvent(new CustomEvent('FilePond:pluginloaded', {\n detail: plugin\n }));\n }\n\n return plugin;\n});","function _typeof2(obj) { \"@babel/helpers - typeof\"; return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof2(obj); }\n\n/*!\n * FilePond 4.31.1\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.FilePond = {}));\n})(this, function (exports) {\n 'use strict';\n\n var isNode = function isNode(value) {\n return value instanceof HTMLElement;\n };\n\n var createStore = function createStore(initialState) {\n var queries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var actions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; // internal state\n\n var state = Object.assign({}, initialState); // contains all actions for next frame, is clear when actions are requested\n\n var actionQueue = [];\n var dispatchQueue = []; // returns a duplicate of the current state\n\n var getState = function getState() {\n return Object.assign({}, state);\n }; // returns a duplicate of the actions array and clears the actions array\n\n\n var processActionQueue = function processActionQueue() {\n // create copy of actions queue\n var queue = [].concat(actionQueue); // clear actions queue (we don't want no double actions)\n\n actionQueue.length = 0;\n return queue;\n }; // processes actions that might block the main UI thread\n\n\n var processDispatchQueue = function processDispatchQueue() {\n // create copy of actions queue\n var queue = [].concat(dispatchQueue); // clear actions queue (we don't want no double actions)\n\n dispatchQueue.length = 0; // now dispatch these actions\n\n queue.forEach(function (_ref) {\n var type = _ref.type,\n data = _ref.data;\n dispatch(type, data);\n });\n }; // adds a new action, calls its handler and\n\n\n var dispatch = function dispatch(type, data, isBlocking) {\n // is blocking action (should never block if document is hidden)\n if (isBlocking && !document.hidden) {\n dispatchQueue.push({\n type: type,\n data: data\n });\n return;\n } // if this action has a handler, handle the action\n\n\n if (actionHandlers[type]) {\n actionHandlers[type](data);\n } // now add action\n\n\n actionQueue.push({\n type: type,\n data: data\n });\n };\n\n var query = function query(str) {\n var _queryHandles;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return queryHandles[str] ? (_queryHandles = queryHandles)[str].apply(_queryHandles, args) : null;\n };\n\n var api = {\n getState: getState,\n processActionQueue: processActionQueue,\n processDispatchQueue: processDispatchQueue,\n dispatch: dispatch,\n query: query\n };\n var queryHandles = {};\n queries.forEach(function (query) {\n queryHandles = Object.assign({}, query(state), {}, queryHandles);\n });\n var actionHandlers = {};\n actions.forEach(function (action) {\n actionHandlers = Object.assign({}, action(dispatch, query, state), {}, actionHandlers);\n });\n return api;\n };\n\n var defineProperty = function defineProperty(obj, property, definition) {\n if (typeof definition === 'function') {\n obj[property] = definition;\n return;\n }\n\n Object.defineProperty(obj, property, Object.assign({}, definition));\n };\n\n var forin = function forin(obj, cb) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n\n cb(key, obj[key]);\n }\n };\n\n var createObject = function createObject(definition) {\n var obj = {};\n forin(definition, function (property) {\n defineProperty(obj, property, definition[property]);\n });\n return obj;\n };\n\n var attr = function attr(node, name) {\n var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (value === null) {\n return node.getAttribute(name) || node.hasAttribute(name);\n }\n\n node.setAttribute(name, value);\n };\n\n var ns = 'http://www.w3.org/2000/svg';\n var svgElements = ['svg', 'path']; // only svg elements used\n\n var isSVGElement = function isSVGElement(tag) {\n return svgElements.includes(tag);\n };\n\n var createElement = function createElement(tag, className) {\n var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (_typeof2(className) === 'object') {\n attributes = className;\n className = null;\n }\n\n var element = isSVGElement(tag) ? document.createElementNS(ns, tag) : document.createElement(tag);\n\n if (className) {\n if (isSVGElement(tag)) {\n attr(element, 'class', className);\n } else {\n element.className = className;\n }\n }\n\n forin(attributes, function (name, value) {\n attr(element, name, value);\n });\n return element;\n };\n\n var appendChild = function appendChild(parent) {\n return function (child, index) {\n if (typeof index !== 'undefined' && parent.children[index]) {\n parent.insertBefore(child, parent.children[index]);\n } else {\n parent.appendChild(child);\n }\n };\n };\n\n var appendChildView = function appendChildView(parent, childViews) {\n return function (view, index) {\n if (typeof index !== 'undefined') {\n childViews.splice(index, 0, view);\n } else {\n childViews.push(view);\n }\n\n return view;\n };\n };\n\n var removeChildView = function removeChildView(parent, childViews) {\n return function (view) {\n // remove from child views\n childViews.splice(childViews.indexOf(view), 1); // remove the element\n\n if (view.element.parentNode) {\n parent.removeChild(view.element);\n }\n\n return view;\n };\n };\n\n var IS_BROWSER = function () {\n return typeof window !== 'undefined' && typeof window.document !== 'undefined';\n }();\n\n var isBrowser = function isBrowser() {\n return IS_BROWSER;\n };\n\n var testElement = isBrowser() ? createElement('svg') : {};\n var getChildCount = 'children' in testElement ? function (el) {\n return el.children.length;\n } : function (el) {\n return el.childNodes.length;\n };\n\n var getViewRect = function getViewRect(elementRect, childViews, offset, scale) {\n var left = offset[0] || elementRect.left;\n var top = offset[1] || elementRect.top;\n var right = left + elementRect.width;\n var bottom = top + elementRect.height * (scale[1] || 1);\n var rect = {\n // the rectangle of the element itself\n element: Object.assign({}, elementRect),\n // the rectangle of the element expanded to contain its children, does not include any margins\n inner: {\n left: elementRect.left,\n top: elementRect.top,\n right: elementRect.right,\n bottom: elementRect.bottom\n },\n // the rectangle of the element expanded to contain its children including own margin and child margins\n // margins will be added after we've recalculated the size\n outer: {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n }\n }; // expand rect to fit all child rectangles\n\n childViews.filter(function (childView) {\n return !childView.isRectIgnored();\n }).map(function (childView) {\n return childView.rect;\n }).forEach(function (childViewRect) {\n expandRect(rect.inner, Object.assign({}, childViewRect.inner));\n expandRect(rect.outer, Object.assign({}, childViewRect.outer));\n }); // calculate inner width and height\n\n calculateRectSize(rect.inner); // append additional margin (top and left margins are included in top and left automatically)\n\n rect.outer.bottom += rect.element.marginBottom;\n rect.outer.right += rect.element.marginRight; // calculate outer width and height\n\n calculateRectSize(rect.outer);\n return rect;\n };\n\n var expandRect = function expandRect(parent, child) {\n // adjust for parent offset\n child.top += parent.top;\n child.right += parent.left;\n child.bottom += parent.top;\n child.left += parent.left;\n\n if (child.bottom > parent.bottom) {\n parent.bottom = child.bottom;\n }\n\n if (child.right > parent.right) {\n parent.right = child.right;\n }\n };\n\n var calculateRectSize = function calculateRectSize(rect) {\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n };\n\n var isNumber = function isNumber(value) {\n return typeof value === 'number';\n };\n /**\n * Determines if position is at destination\n * @param position\n * @param destination\n * @param velocity\n * @param errorMargin\n * @returns {boolean}\n */\n\n\n var thereYet = function thereYet(position, destination, velocity) {\n var errorMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.001;\n return Math.abs(position - destination) < errorMargin && Math.abs(velocity) < errorMargin;\n };\n /**\n * Spring animation\n */\n\n\n var spring = // default options\n function spring() // method definition\n {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$stiffness = _ref.stiffness,\n stiffness = _ref$stiffness === void 0 ? 0.5 : _ref$stiffness,\n _ref$damping = _ref.damping,\n damping = _ref$damping === void 0 ? 0.75 : _ref$damping,\n _ref$mass = _ref.mass,\n mass = _ref$mass === void 0 ? 10 : _ref$mass;\n\n var target = null;\n var position = null;\n var velocity = 0;\n var resting = false; // updates spring state\n\n var interpolate = function interpolate(ts, skipToEndState) {\n // in rest, don't animate\n if (resting) return; // need at least a target or position to do springy things\n\n if (!(isNumber(target) && isNumber(position))) {\n resting = true;\n velocity = 0;\n return;\n } // calculate spring force\n\n\n var f = -(position - target) * stiffness; // update velocity by adding force based on mass\n\n velocity += f / mass; // update position by adding velocity\n\n position += velocity; // slow down based on amount of damping\n\n velocity *= damping; // we've arrived if we're near target and our velocity is near zero\n\n if (thereYet(position, target, velocity) || skipToEndState) {\n position = target;\n velocity = 0;\n resting = true; // we done\n\n api.onupdate(position);\n api.oncomplete(position);\n } else {\n // progress update\n api.onupdate(position);\n }\n };\n /**\n * Set new target value\n * @param value\n */\n\n\n var setTarget = function setTarget(value) {\n // if currently has no position, set target and position to this value\n if (isNumber(value) && !isNumber(position)) {\n position = value;\n } // next target value will not be animated to\n\n\n if (target === null) {\n target = value;\n position = value;\n } // let start moving to target\n\n\n target = value; // already at target\n\n if (position === target || typeof target === 'undefined') {\n // now resting as target is current position, stop moving\n resting = true;\n velocity = 0; // done!\n\n api.onupdate(position);\n api.oncomplete(position);\n return;\n }\n\n resting = false;\n }; // need 'api' to call onupdate callback\n\n\n var api = createObject({\n interpolate: interpolate,\n target: {\n set: setTarget,\n get: function get() {\n return target;\n }\n },\n resting: {\n get: function get() {\n return resting;\n }\n },\n onupdate: function onupdate(value) {},\n oncomplete: function oncomplete(value) {}\n });\n return api;\n };\n\n var easeLinear = function easeLinear(t) {\n return t;\n };\n\n var easeInOutQuad = function easeInOutQuad(t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n };\n\n var tween = // default values\n function tween() // method definition\n {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 500 : _ref$duration,\n _ref$easing = _ref.easing,\n easing = _ref$easing === void 0 ? easeInOutQuad : _ref$easing,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay;\n\n var start = null;\n var t;\n var p;\n var resting = true;\n var reverse = false;\n var target = null;\n\n var interpolate = function interpolate(ts, skipToEndState) {\n if (resting || target === null) return;\n\n if (start === null) {\n start = ts;\n }\n\n if (ts - start < delay) return;\n t = ts - start - delay;\n\n if (t >= duration || skipToEndState) {\n t = 1;\n p = reverse ? 0 : 1;\n api.onupdate(p * target);\n api.oncomplete(p * target);\n resting = true;\n } else {\n p = t / duration;\n api.onupdate((t >= 0 ? easing(reverse ? 1 - p : p) : 0) * target);\n }\n }; // need 'api' to call onupdate callback\n\n\n var api = createObject({\n interpolate: interpolate,\n target: {\n get: function get() {\n return reverse ? 0 : target;\n },\n set: function set(value) {\n // is initial value\n if (target === null) {\n target = value;\n api.onupdate(value);\n api.oncomplete(value);\n return;\n } // want to tween to a smaller value and have a current value\n\n\n if (value < target) {\n target = 1;\n reverse = true;\n } else {\n // not tweening to a smaller value\n reverse = false;\n target = value;\n } // let's go!\n\n\n resting = false;\n start = null;\n }\n },\n resting: {\n get: function get() {\n return resting;\n }\n },\n onupdate: function onupdate(value) {},\n oncomplete: function oncomplete(value) {}\n });\n return api;\n };\n\n var animator = {\n spring: spring,\n tween: tween\n };\n /*\n { type: 'spring', stiffness: .5, damping: .75, mass: 10 };\n { translation: { type: 'spring', ... }, ... }\n { translation: { x: { type: 'spring', ... } } }\n */\n\n var createAnimator = function createAnimator(definition, category, property) {\n // default is single definition\n // we check if transform is set, if so, we check if property is set\n var def = definition[category] && _typeof2(definition[category][property]) === 'object' ? definition[category][property] : definition[category] || definition;\n var type = typeof def === 'string' ? def : def.type;\n var props = _typeof2(def) === 'object' ? Object.assign({}, def) : {};\n return animator[type] ? animator[type](props) : null;\n };\n\n var addGetSet = function addGetSet(keys, obj, props) {\n var overwrite = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n obj = Array.isArray(obj) ? obj : [obj];\n obj.forEach(function (o) {\n keys.forEach(function (key) {\n var name = key;\n\n var getter = function getter() {\n return props[key];\n };\n\n var setter = function setter(value) {\n return props[key] = value;\n };\n\n if (_typeof2(key) === 'object') {\n name = key.key;\n getter = key.getter || getter;\n setter = key.setter || setter;\n }\n\n if (o[name] && !overwrite) {\n return;\n }\n\n o[name] = {\n get: getter,\n set: setter\n };\n });\n });\n }; // add to state,\n // add getters and setters to internal and external api (if not set)\n // setup animators\n\n\n var animations = function animations(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI; // initial properties\n\n var initialProps = Object.assign({}, viewProps); // list of all active animations\n\n var animations = []; // setup animators\n\n forin(mixinConfig, function (property, animation) {\n var animator = createAnimator(animation);\n\n if (!animator) {\n return;\n } // when the animator updates, update the view state value\n\n\n animator.onupdate = function (value) {\n viewProps[property] = value;\n }; // set animator target\n\n\n animator.target = initialProps[property]; // when value is set, set the animator target value\n\n var prop = {\n key: property,\n setter: function setter(value) {\n // if already at target, we done!\n if (animator.target === value) {\n return;\n }\n\n animator.target = value;\n },\n getter: function getter() {\n return viewProps[property];\n }\n }; // add getters and setters\n\n addGetSet([prop], [viewInternalAPI, viewExternalAPI], viewProps, true); // add it to the list for easy updating from the _write method\n\n animations.push(animator);\n }); // expose internal write api\n\n return {\n write: function write(ts) {\n var skipToEndState = document.hidden;\n var resting = true;\n animations.forEach(function (animation) {\n if (!animation.resting) resting = false;\n animation.interpolate(ts, skipToEndState);\n });\n return resting;\n },\n destroy: function destroy() {}\n };\n };\n\n var addEvent = function addEvent(element) {\n return function (type, fn) {\n element.addEventListener(type, fn);\n };\n };\n\n var removeEvent = function removeEvent(element) {\n return function (type, fn) {\n element.removeEventListener(type, fn);\n };\n }; // mixin\n\n\n var listeners = function listeners(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI,\n viewState = _ref.viewState,\n view = _ref.view;\n var events = [];\n var add = addEvent(view.element);\n var remove = removeEvent(view.element);\n\n viewExternalAPI.on = function (type, fn) {\n events.push({\n type: type,\n fn: fn\n });\n add(type, fn);\n };\n\n viewExternalAPI.off = function (type, fn) {\n events.splice(events.findIndex(function (event) {\n return event.type === type && event.fn === fn;\n }), 1);\n remove(type, fn);\n };\n\n return {\n write: function write() {\n // not busy\n return true;\n },\n destroy: function destroy() {\n events.forEach(function (event) {\n remove(event.type, event.fn);\n });\n }\n };\n }; // add to external api and link to props\n\n\n var apis = function apis(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewExternalAPI = _ref.viewExternalAPI;\n addGetSet(mixinConfig, viewExternalAPI, viewProps);\n };\n\n var isDefined = function isDefined(value) {\n return value != null;\n }; // add to state,\n // add getters and setters to internal and external api (if not set)\n // set initial state based on props in viewProps\n // apply as transforms each frame\n\n\n var defaults = {\n opacity: 1,\n scaleX: 1,\n scaleY: 1,\n translateX: 0,\n translateY: 0,\n rotateX: 0,\n rotateY: 0,\n rotateZ: 0,\n originX: 0,\n originY: 0\n };\n\n var styles = function styles(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI,\n view = _ref.view; // initial props\n\n var initialProps = Object.assign({}, viewProps); // current props\n\n var currentProps = {}; // we will add those properties to the external API and link them to the viewState\n\n addGetSet(mixinConfig, [viewInternalAPI, viewExternalAPI], viewProps); // override rect on internal and external rect getter so it takes in account transforms\n\n var getOffset = function getOffset() {\n return [viewProps['translateX'] || 0, viewProps['translateY'] || 0];\n };\n\n var getScale = function getScale() {\n return [viewProps['scaleX'] || 0, viewProps['scaleY'] || 0];\n };\n\n var getRect = function getRect() {\n return view.rect ? getViewRect(view.rect, view.childViews, getOffset(), getScale()) : null;\n };\n\n viewInternalAPI.rect = {\n get: getRect\n };\n viewExternalAPI.rect = {\n get: getRect\n }; // apply view props\n\n mixinConfig.forEach(function (key) {\n viewProps[key] = typeof initialProps[key] === 'undefined' ? defaults[key] : initialProps[key];\n }); // expose api\n\n return {\n write: function write() {\n // see if props have changed\n if (!propsHaveChanged(currentProps, viewProps)) {\n return;\n } // moves element to correct position on screen\n\n\n applyStyles(view.element, viewProps); // store new transforms\n\n Object.assign(currentProps, Object.assign({}, viewProps)); // no longer busy\n\n return true;\n },\n destroy: function destroy() {}\n };\n };\n\n var propsHaveChanged = function propsHaveChanged(currentProps, newProps) {\n // different amount of keys\n if (Object.keys(currentProps).length !== Object.keys(newProps).length) {\n return true;\n } // lets analyze the individual props\n\n\n for (var prop in newProps) {\n if (newProps[prop] !== currentProps[prop]) {\n return true;\n }\n }\n\n return false;\n };\n\n var applyStyles = function applyStyles(element, _ref2) {\n var opacity = _ref2.opacity,\n perspective = _ref2.perspective,\n translateX = _ref2.translateX,\n translateY = _ref2.translateY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n rotateX = _ref2.rotateX,\n rotateY = _ref2.rotateY,\n rotateZ = _ref2.rotateZ,\n originX = _ref2.originX,\n originY = _ref2.originY,\n width = _ref2.width,\n height = _ref2.height;\n var transforms = '';\n var styles = ''; // handle transform origin\n\n if (isDefined(originX) || isDefined(originY)) {\n styles += 'transform-origin: ' + (originX || 0) + 'px ' + (originY || 0) + 'px;';\n } // transform order is relevant\n // 0. perspective\n\n\n if (isDefined(perspective)) {\n transforms += 'perspective(' + perspective + 'px) ';\n } // 1. translate\n\n\n if (isDefined(translateX) || isDefined(translateY)) {\n transforms += 'translate3d(' + (translateX || 0) + 'px, ' + (translateY || 0) + 'px, 0) ';\n } // 2. scale\n\n\n if (isDefined(scaleX) || isDefined(scaleY)) {\n transforms += 'scale3d(' + (isDefined(scaleX) ? scaleX : 1) + ', ' + (isDefined(scaleY) ? scaleY : 1) + ', 1) ';\n } // 3. rotate\n\n\n if (isDefined(rotateZ)) {\n transforms += 'rotateZ(' + rotateZ + 'rad) ';\n }\n\n if (isDefined(rotateX)) {\n transforms += 'rotateX(' + rotateX + 'rad) ';\n }\n\n if (isDefined(rotateY)) {\n transforms += 'rotateY(' + rotateY + 'rad) ';\n } // add transforms\n\n\n if (transforms.length) {\n styles += 'transform:' + transforms + ';';\n } // add opacity\n\n\n if (isDefined(opacity)) {\n styles += 'opacity:' + opacity + ';'; // if we reach zero, we make the element inaccessible\n\n if (opacity === 0) {\n styles += 'visibility:hidden;';\n } // if we're below 100% opacity this element can't be clicked\n\n\n if (opacity < 1) {\n styles += 'pointer-events:none;';\n }\n } // add height\n\n\n if (isDefined(height)) {\n styles += 'height:' + height + 'px;';\n } // add width\n\n\n if (isDefined(width)) {\n styles += 'width:' + width + 'px;';\n } // apply styles\n\n\n var elementCurrentStyle = element.elementCurrentStyle || ''; // if new styles does not match current styles, lets update!\n\n if (styles.length !== elementCurrentStyle.length || styles !== elementCurrentStyle) {\n element.style.cssText = styles; // store current styles so we can compare them to new styles later on\n // _not_ getting the style value is faster\n\n element.elementCurrentStyle = styles;\n }\n };\n\n var Mixins = {\n styles: styles,\n listeners: listeners,\n animations: animations,\n apis: apis\n };\n\n var updateRect = function updateRect() {\n var rect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!element.layoutCalculated) {\n rect.paddingTop = parseInt(style.paddingTop, 10) || 0;\n rect.marginTop = parseInt(style.marginTop, 10) || 0;\n rect.marginRight = parseInt(style.marginRight, 10) || 0;\n rect.marginBottom = parseInt(style.marginBottom, 10) || 0;\n rect.marginLeft = parseInt(style.marginLeft, 10) || 0;\n element.layoutCalculated = true;\n }\n\n rect.left = element.offsetLeft || 0;\n rect.top = element.offsetTop || 0;\n rect.width = element.offsetWidth || 0;\n rect.height = element.offsetHeight || 0;\n rect.right = rect.left + rect.width;\n rect.bottom = rect.top + rect.height;\n rect.scrollTop = element.scrollTop;\n rect.hidden = element.offsetParent === null;\n return rect;\n };\n\n var createView = // default view definition\n function createView() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$tag = _ref.tag,\n tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? null : _ref$name,\n _ref$attributes = _ref.attributes,\n attributes = _ref$attributes === void 0 ? {} : _ref$attributes,\n _ref$read = _ref.read,\n read = _ref$read === void 0 ? function () {} : _ref$read,\n _ref$write = _ref.write,\n write = _ref$write === void 0 ? function () {} : _ref$write,\n _ref$create = _ref.create,\n create = _ref$create === void 0 ? function () {} : _ref$create,\n _ref$destroy = _ref.destroy,\n destroy = _ref$destroy === void 0 ? function () {} : _ref$destroy,\n _ref$filterFrameActio = _ref.filterFrameActionsForChild,\n filterFrameActionsForChild = _ref$filterFrameActio === void 0 ? function (child, actions) {\n return actions;\n } : _ref$filterFrameActio,\n _ref$didCreateView = _ref.didCreateView,\n didCreateView = _ref$didCreateView === void 0 ? function () {} : _ref$didCreateView,\n _ref$didWriteView = _ref.didWriteView,\n didWriteView = _ref$didWriteView === void 0 ? function () {} : _ref$didWriteView,\n _ref$ignoreRect = _ref.ignoreRect,\n ignoreRect = _ref$ignoreRect === void 0 ? false : _ref$ignoreRect,\n _ref$ignoreRectUpdate = _ref.ignoreRectUpdate,\n ignoreRectUpdate = _ref$ignoreRectUpdate === void 0 ? false : _ref$ignoreRectUpdate,\n _ref$mixins = _ref.mixins,\n mixins = _ref$mixins === void 0 ? [] : _ref$mixins;\n\n return function ( // each view requires reference to store\n store) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // root element should not be changed\n\n var element = createElement(tag, 'filepond--' + name, attributes); // style reference should also not be changed\n\n var style = window.getComputedStyle(element, null); // element rectangle\n\n var rect = updateRect();\n var frameRect = null; // rest state\n\n var isResting = false; // pretty self explanatory\n\n var childViews = []; // loaded mixins\n\n var activeMixins = []; // references to created children\n\n var ref = {}; // state used for each instance\n\n var state = {}; // list of writers that will be called to update this view\n\n var writers = [write // default writer\n ];\n var readers = [read // default reader\n ];\n var destroyers = [destroy // default destroy\n ]; // core view methods\n\n var getElement = function getElement() {\n return element;\n };\n\n var getChildViews = function getChildViews() {\n return childViews.concat();\n };\n\n var getReference = function getReference() {\n return ref;\n };\n\n var createChildView = function createChildView(store) {\n return function (view, props) {\n return view(store, props);\n };\n };\n\n var getRect = function getRect() {\n if (frameRect) {\n return frameRect;\n }\n\n frameRect = getViewRect(rect, childViews, [0, 0], [1, 1]);\n return frameRect;\n };\n\n var getStyle = function getStyle() {\n return style;\n };\n /**\n * Read data from DOM\n * @private\n */\n\n\n var _read = function _read() {\n frameRect = null; // read child views\n\n childViews.forEach(function (child) {\n return child._read();\n });\n var shouldUpdate = !(ignoreRectUpdate && rect.width && rect.height);\n\n if (shouldUpdate) {\n updateRect(rect, element, style);\n } // readers\n\n\n var api = {\n root: internalAPI,\n props: props,\n rect: rect\n };\n readers.forEach(function (reader) {\n return reader(api);\n });\n };\n /**\n * Write data to DOM\n * @private\n */\n\n\n var _write = function _write(ts, frameActions, shouldOptimize) {\n // if no actions, we assume that the view is resting\n var resting = frameActions.length === 0; // writers\n\n writers.forEach(function (writer) {\n var writerResting = writer({\n props: props,\n root: internalAPI,\n actions: frameActions,\n timestamp: ts,\n shouldOptimize: shouldOptimize\n });\n\n if (writerResting === false) {\n resting = false;\n }\n }); // run mixins\n\n activeMixins.forEach(function (mixin) {\n // if one of the mixins is still busy after write operation, we are not resting\n var mixinResting = mixin.write(ts);\n\n if (mixinResting === false) {\n resting = false;\n }\n }); // updates child views that are currently attached to the DOM\n\n childViews.filter(function (child) {\n return !!child.element.parentNode;\n }).forEach(function (child) {\n // if a child view is not resting, we are not resting\n var childResting = child._write(ts, filterFrameActionsForChild(child, frameActions), shouldOptimize);\n\n if (!childResting) {\n resting = false;\n }\n }); // append new elements to DOM and update those\n\n childViews //.filter(child => !child.element.parentNode)\n .forEach(function (child, index) {\n // skip\n if (child.element.parentNode) {\n return;\n } // append to DOM\n\n\n internalAPI.appendChild(child.element, index); // call read (need to know the size of these elements)\n\n child._read(); // re-call write\n\n\n child._write(ts, filterFrameActionsForChild(child, frameActions), shouldOptimize); // we just added somthing to the dom, no rest\n\n\n resting = false;\n }); // update resting state\n\n isResting = resting;\n didWriteView({\n props: props,\n root: internalAPI,\n actions: frameActions,\n timestamp: ts\n }); // let parent know if we are resting\n\n return resting;\n };\n\n var _destroy = function _destroy() {\n activeMixins.forEach(function (mixin) {\n return mixin.destroy();\n });\n destroyers.forEach(function (destroyer) {\n destroyer({\n root: internalAPI,\n props: props\n });\n });\n childViews.forEach(function (child) {\n return child._destroy();\n });\n }; // sharedAPI\n\n\n var sharedAPIDefinition = {\n element: {\n get: getElement\n },\n style: {\n get: getStyle\n },\n childViews: {\n get: getChildViews\n }\n }; // private API definition\n\n var internalAPIDefinition = Object.assign({}, sharedAPIDefinition, {\n rect: {\n get: getRect\n },\n // access to custom children references\n ref: {\n get: getReference\n },\n // dom modifiers\n is: function is(needle) {\n return name === needle;\n },\n appendChild: appendChild(element),\n createChildView: createChildView(store),\n linkView: function linkView(view) {\n childViews.push(view);\n return view;\n },\n unlinkView: function unlinkView(view) {\n childViews.splice(childViews.indexOf(view), 1);\n },\n appendChildView: appendChildView(element, childViews),\n removeChildView: removeChildView(element, childViews),\n registerWriter: function registerWriter(writer) {\n return writers.push(writer);\n },\n registerReader: function registerReader(reader) {\n return readers.push(reader);\n },\n registerDestroyer: function registerDestroyer(destroyer) {\n return destroyers.push(destroyer);\n },\n invalidateLayout: function invalidateLayout() {\n return element.layoutCalculated = false;\n },\n // access to data store\n dispatch: store.dispatch,\n query: store.query\n }); // public view API methods\n\n var externalAPIDefinition = {\n element: {\n get: getElement\n },\n childViews: {\n get: getChildViews\n },\n rect: {\n get: getRect\n },\n resting: {\n get: function get() {\n return isResting;\n }\n },\n isRectIgnored: function isRectIgnored() {\n return ignoreRect;\n },\n _read: _read,\n _write: _write,\n _destroy: _destroy\n }; // mixin API methods\n\n var mixinAPIDefinition = Object.assign({}, sharedAPIDefinition, {\n rect: {\n get: function get() {\n return rect;\n }\n }\n }); // add mixin functionality\n\n Object.keys(mixins).sort(function (a, b) {\n // move styles to the back of the mixin list (so adjustments of other mixins are applied to the props correctly)\n if (a === 'styles') {\n return 1;\n } else if (b === 'styles') {\n return -1;\n }\n\n return 0;\n }).forEach(function (key) {\n var mixinAPI = Mixins[key]({\n mixinConfig: mixins[key],\n viewProps: props,\n viewState: state,\n viewInternalAPI: internalAPIDefinition,\n viewExternalAPI: externalAPIDefinition,\n view: createObject(mixinAPIDefinition)\n });\n\n if (mixinAPI) {\n activeMixins.push(mixinAPI);\n }\n }); // construct private api\n\n var internalAPI = createObject(internalAPIDefinition); // create the view\n\n create({\n root: internalAPI,\n props: props\n }); // append created child views to root node\n\n var childCount = getChildCount(element); // need to know the current child count so appending happens in correct order\n\n childViews.forEach(function (child, index) {\n internalAPI.appendChild(child.element, childCount + index);\n }); // call did create\n\n didCreateView(internalAPI); // expose public api\n\n return createObject(externalAPIDefinition);\n };\n };\n\n var createPainter = function createPainter(read, write) {\n var fps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;\n var name = '__framePainter'; // set global painter\n\n if (window[name]) {\n window[name].readers.push(read);\n window[name].writers.push(write);\n return;\n }\n\n window[name] = {\n readers: [read],\n writers: [write]\n };\n var painter = window[name];\n var interval = 1000 / fps;\n var last = null;\n var id = null;\n var requestTick = null;\n var cancelTick = null;\n\n var setTimerType = function setTimerType() {\n if (document.hidden) {\n requestTick = function requestTick() {\n return window.setTimeout(function () {\n return tick(performance.now());\n }, interval);\n };\n\n cancelTick = function cancelTick() {\n return window.clearTimeout(id);\n };\n } else {\n requestTick = function requestTick() {\n return window.requestAnimationFrame(tick);\n };\n\n cancelTick = function cancelTick() {\n return window.cancelAnimationFrame(id);\n };\n }\n };\n\n document.addEventListener('visibilitychange', function () {\n if (cancelTick) cancelTick();\n setTimerType();\n tick(performance.now());\n });\n\n var tick = function tick(ts) {\n // queue next tick\n id = requestTick(tick); // limit fps\n\n if (!last) {\n last = ts;\n }\n\n var delta = ts - last;\n\n if (delta <= interval) {\n // skip frame\n return;\n } // align next frame\n\n\n last = ts - delta % interval; // update view\n\n painter.readers.forEach(function (read) {\n return read();\n });\n painter.writers.forEach(function (write) {\n return write(ts);\n });\n };\n\n setTimerType();\n tick(performance.now());\n return {\n pause: function pause() {\n cancelTick(id);\n }\n };\n };\n\n var createRoute = function createRoute(routes, fn) {\n return function (_ref) {\n var root = _ref.root,\n props = _ref.props,\n _ref$actions = _ref.actions,\n actions = _ref$actions === void 0 ? [] : _ref$actions,\n timestamp = _ref.timestamp,\n shouldOptimize = _ref.shouldOptimize;\n actions.filter(function (action) {\n return routes[action.type];\n }).forEach(function (action) {\n return routes[action.type]({\n root: root,\n props: props,\n action: action.data,\n timestamp: timestamp,\n shouldOptimize: shouldOptimize\n });\n });\n\n if (fn) {\n fn({\n root: root,\n props: props,\n actions: actions,\n timestamp: timestamp,\n shouldOptimize: shouldOptimize\n });\n }\n };\n };\n\n var insertBefore = function insertBefore(newNode, referenceNode) {\n return referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n var insertAfter = function insertAfter(newNode, referenceNode) {\n return referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n\n var isArray = function isArray(value) {\n return Array.isArray(value);\n };\n\n var isEmpty = function isEmpty(value) {\n return value == null;\n };\n\n var trim = function trim(str) {\n return str.trim();\n };\n\n var toString = function toString(value) {\n return '' + value;\n };\n\n var toArray = function toArray(value) {\n var splitter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\n\n if (isEmpty(value)) {\n return [];\n }\n\n if (isArray(value)) {\n return value;\n }\n\n return toString(value).split(splitter).map(trim).filter(function (str) {\n return str.length;\n });\n };\n\n var isBoolean = function isBoolean(value) {\n return typeof value === 'boolean';\n };\n\n var toBoolean = function toBoolean(value) {\n return isBoolean(value) ? value : value === 'true';\n };\n\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var toNumber = function toNumber(value) {\n return isNumber(value) ? value : isString(value) ? toString(value).replace(/[a-z]+/gi, '') : 0;\n };\n\n var toInt = function toInt(value) {\n return parseInt(toNumber(value), 10);\n };\n\n var toFloat = function toFloat(value) {\n return parseFloat(toNumber(value));\n };\n\n var isInt = function isInt(value) {\n return isNumber(value) && isFinite(value) && Math.floor(value) === value;\n };\n\n var toBytes = function toBytes(value) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000; // is in bytes\n\n if (isInt(value)) {\n return value;\n } // is natural file size\n\n\n var naturalFileSize = toString(value).trim(); // if is value in megabytes\n\n if (/MB$/i.test(naturalFileSize)) {\n naturalFileSize = naturalFileSize.replace(/MB$i/, '').trim();\n return toInt(naturalFileSize) * base * base;\n } // if is value in kilobytes\n\n\n if (/KB/i.test(naturalFileSize)) {\n naturalFileSize = naturalFileSize.replace(/KB$i/, '').trim();\n return toInt(naturalFileSize) * base;\n }\n\n return toInt(naturalFileSize);\n };\n\n var isFunction = function isFunction(value) {\n return typeof value === 'function';\n };\n\n var toFunctionReference = function toFunctionReference(string) {\n var ref = self;\n var levels = string.split('.');\n var level = null;\n\n while (level = levels.shift()) {\n ref = ref[level];\n\n if (!ref) {\n return null;\n }\n }\n\n return ref;\n };\n\n var methods = {\n process: 'POST',\n patch: 'PATCH',\n revert: 'DELETE',\n fetch: 'GET',\n restore: 'GET',\n load: 'GET'\n };\n\n var createServerAPI = function createServerAPI(outline) {\n var api = {};\n api.url = isString(outline) ? outline : outline.url || '';\n api.timeout = outline.timeout ? parseInt(outline.timeout, 10) : 0;\n api.headers = outline.headers ? outline.headers : {};\n forin(methods, function (key) {\n api[key] = createAction(key, outline[key], methods[key], api.timeout, api.headers);\n }); // remove process if no url or process on outline\n\n api.process = outline.process || isString(outline) || outline.url ? api.process : null; // special treatment for remove\n\n api.remove = outline.remove || null; // remove generic headers from api object\n\n delete api.headers;\n return api;\n };\n\n var createAction = function createAction(name, outline, method, timeout, headers) {\n // is explicitely set to null so disable\n if (outline === null) {\n return null;\n } // if is custom function, done! Dev handles everything.\n\n\n if (typeof outline === 'function') {\n return outline;\n } // build action object\n\n\n var action = {\n url: method === 'GET' || method === 'PATCH' ? '?' + name + '=' : '',\n method: method,\n headers: headers,\n withCredentials: false,\n timeout: timeout,\n onload: null,\n ondata: null,\n onerror: null\n }; // is a single url\n\n if (isString(outline)) {\n action.url = outline;\n return action;\n } // overwrite\n\n\n Object.assign(action, outline); // see if should reformat headers;\n\n if (isString(action.headers)) {\n var parts = action.headers.split(/:(.+)/);\n action.headers = {\n header: parts[0],\n value: parts[1]\n };\n } // if is bool withCredentials\n\n\n action.withCredentials = toBoolean(action.withCredentials);\n return action;\n };\n\n var toServerAPI = function toServerAPI(value) {\n return createServerAPI(value);\n };\n\n var isNull = function isNull(value) {\n return value === null;\n };\n\n var isObject = function isObject(value) {\n return _typeof2(value) === 'object' && value !== null;\n };\n\n var isAPI = function isAPI(value) {\n return isObject(value) && isString(value.url) && isObject(value.process) && isObject(value.revert) && isObject(value.restore) && isObject(value.fetch);\n };\n\n var getType = function getType(value) {\n if (isArray(value)) {\n return 'array';\n }\n\n if (isNull(value)) {\n return 'null';\n }\n\n if (isInt(value)) {\n return 'int';\n }\n\n if (/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(value)) {\n return 'bytes';\n }\n\n if (isAPI(value)) {\n return 'api';\n }\n\n return _typeof2(value);\n };\n\n var replaceSingleQuotes = function replaceSingleQuotes(str) {\n return str.replace(/{\\s*'/g, '{\"').replace(/'\\s*}/g, '\"}').replace(/'\\s*:/g, '\":').replace(/:\\s*'/g, ':\"').replace(/,\\s*'/g, ',\"').replace(/'\\s*,/g, '\",');\n };\n\n var conversionTable = {\n array: toArray,\n boolean: toBoolean,\n int: function int(value) {\n return getType(value) === 'bytes' ? toBytes(value) : toInt(value);\n },\n number: toFloat,\n float: toFloat,\n bytes: toBytes,\n string: function string(value) {\n return isFunction(value) ? value : toString(value);\n },\n function: function _function(value) {\n return toFunctionReference(value);\n },\n serverapi: toServerAPI,\n object: function object(value) {\n try {\n return JSON.parse(replaceSingleQuotes(value));\n } catch (e) {\n return null;\n }\n }\n };\n\n var convertTo = function convertTo(value, type) {\n return conversionTable[type](value);\n };\n\n var getValueByType = function getValueByType(newValue, defaultValue, valueType) {\n // can always assign default value\n if (newValue === defaultValue) {\n return newValue;\n } // get the type of the new value\n\n\n var newValueType = getType(newValue); // is valid type?\n\n if (newValueType !== valueType) {\n // is string input, let's attempt to convert\n var convertedValue = convertTo(newValue, valueType); // what is the type now\n\n newValueType = getType(convertedValue); // no valid conversions found\n\n if (convertedValue === null) {\n throw 'Trying to assign value with incorrect type to \"' + option + '\", allowed type: \"' + valueType + '\"';\n } else {\n newValue = convertedValue;\n }\n } // assign new value\n\n\n return newValue;\n };\n\n var createOption = function createOption(defaultValue, valueType) {\n var currentValue = defaultValue;\n return {\n enumerable: true,\n get: function get() {\n return currentValue;\n },\n set: function set(newValue) {\n currentValue = getValueByType(newValue, defaultValue, valueType);\n }\n };\n };\n\n var createOptions = function createOptions(options) {\n var obj = {};\n forin(options, function (prop) {\n var optionDefinition = options[prop];\n obj[prop] = createOption(optionDefinition[0], optionDefinition[1]);\n });\n return createObject(obj);\n };\n\n var createInitialState = function createInitialState(options) {\n return {\n // model\n items: [],\n // timeout used for calling update items\n listUpdateTimeout: null,\n // timeout used for stacking metadata updates\n itemUpdateTimeout: null,\n // queue of items waiting to be processed\n processingQueue: [],\n // options\n options: createOptions(options)\n };\n };\n\n var fromCamels = function fromCamels(string) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\n return string.split(/(?=[A-Z])/).map(function (part) {\n return part.toLowerCase();\n }).join(separator);\n };\n\n var createOptionAPI = function createOptionAPI(store, options) {\n var obj = {};\n forin(options, function (key) {\n obj[key] = {\n get: function get() {\n return store.getState().options[key];\n },\n set: function set(value) {\n store.dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\n value: value\n });\n }\n };\n });\n return obj;\n };\n\n var createOptionActions = function createOptionActions(options) {\n return function (dispatch, query, state) {\n var obj = {};\n forin(options, function (key) {\n var name = fromCamels(key, '_').toUpperCase();\n\n obj['SET_' + name] = function (action) {\n try {\n state.options[key] = action.value;\n } catch (e) {} // nope, failed\n // we successfully set the value of this option\n\n\n dispatch('DID_SET_' + name, {\n value: state.options[key]\n });\n };\n });\n return obj;\n };\n };\n\n var createOptionQueries = function createOptionQueries(options) {\n return function (state) {\n var obj = {};\n forin(options, function (key) {\n obj['GET_' + fromCamels(key, '_').toUpperCase()] = function (action) {\n return state.options[key];\n };\n });\n return obj;\n };\n };\n\n var InteractionMethod = {\n API: 1,\n DROP: 2,\n BROWSE: 3,\n PASTE: 4,\n NONE: 5\n };\n\n var getUniqueId = function getUniqueId() {\n return Math.random().toString(36).substring(2, 11);\n };\n\n function _typeof(obj) {\n if (typeof Symbol === 'function' && _typeof2(Symbol.iterator) === 'symbol') {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n }\n\n var REACT_ELEMENT_TYPE;\n\n function _jsx(type, props, key, children) {\n if (!REACT_ELEMENT_TYPE) {\n REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n }\n\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n\n if (!props && childrenLength !== 0) {\n props = {\n children: void 0\n };\n }\n\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = new Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n\n props.children = childArray;\n }\n\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : '' + key,\n ref: null,\n props: props,\n _owner: null\n };\n }\n\n function _asyncIterator(iterable) {\n var method;\n\n if (typeof Symbol !== 'undefined') {\n if (Symbol.asyncIterator) {\n method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n\n if (Symbol.iterator) {\n method = iterable[Symbol.iterator];\n if (method != null) return method.call(iterable);\n }\n }\n\n throw new TypeError('Object is not async iterable');\n }\n\n function _AwaitValue(value) {\n this.wrapped = value;\n }\n\n function _AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof _AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {\n if (wrappedAwait) {\n resume('next', arg);\n return;\n }\n\n settle(result.done ? 'return' : 'normal', arg);\n }, function (err) {\n resume('throw', err);\n });\n } catch (err) {\n settle('throw', err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case 'return':\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case 'throw':\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== 'function') {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === 'function' && Symbol.asyncIterator) {\n _AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n _AsyncGenerator.prototype.next = function (arg) {\n return this._invoke('next', arg);\n };\n\n _AsyncGenerator.prototype.throw = function (arg) {\n return this._invoke('throw', arg);\n };\n\n _AsyncGenerator.prototype.return = function (arg) {\n return this._invoke('return', arg);\n };\n\n function _wrapAsyncGenerator(fn) {\n return function () {\n return new _AsyncGenerator(fn.apply(this, arguments));\n };\n }\n\n function _awaitAsyncGenerator(value) {\n return new _AwaitValue(value);\n }\n\n function _asyncGeneratorDelegate(inner, awaitWrap) {\n var iter = {},\n waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) {\n resolve(inner[key](value));\n });\n return {\n done: false,\n value: awaitWrap(value)\n };\n }\n\n if (typeof Symbol === 'function' && Symbol.iterator) {\n iter[Symbol.iterator] = function () {\n return this;\n };\n }\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump('next', value);\n };\n\n if (typeof inner.throw === 'function') {\n iter.throw = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n\n return pump('throw', value);\n };\n }\n\n if (typeof inner.return === 'function') {\n iter.return = function (value) {\n return pump('return', value);\n };\n }\n\n return iter;\n }\n\n function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n }\n\n function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'next', value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'throw', err);\n }\n\n _next(undefined);\n });\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineEnumerableProperties(obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if ('value' in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n\n if (Object.getOwnPropertySymbols) {\n var objectSymbols = Object.getOwnPropertySymbols(descs);\n\n for (var i = 0; i < objectSymbols.length; i++) {\n var sym = objectSymbols[i];\n var desc = descs[sym];\n desc.configurable = desc.enumerable = true;\n if ('value' in desc) desc.writable = true;\n Object.defineProperty(obj, sym, desc);\n }\n }\n\n return obj;\n }\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function');\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function isNativeReflectConstruct() {\n if (typeof Reflect === 'undefined' || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === 'function') return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf('[native code]') !== -1;\n }\n\n function _wrapNativeSuper(Class) {\n var _cache = typeof Map === 'function' ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== 'function') {\n throw new TypeError('Super expression must either be null or a function');\n }\n\n if (typeof _cache !== 'undefined') {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n }\n\n function _instanceof(left, right) {\n if (right != null && typeof Symbol !== 'undefined' && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n }\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n }\n\n function _newArrowCheck(innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError('Cannot instantiate an arrow function');\n }\n }\n\n function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError('Cannot destructure undefined');\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof2(call) === 'object' || typeof call === 'function')) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== 'undefined' && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function set(target, property, value, receiver) {\n if (typeof Reflect !== 'undefined' && Reflect.set) {\n set = Reflect.set;\n } else {\n set = function set(target, property, value, receiver) {\n var base = _superPropBase(target, property);\n\n var desc;\n\n if (base) {\n desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.set) {\n desc.set.call(receiver, value);\n return true;\n } else if (!desc.writable) {\n return false;\n }\n }\n\n desc = Object.getOwnPropertyDescriptor(receiver, property);\n\n if (desc) {\n if (!desc.writable) {\n return false;\n }\n\n desc.value = value;\n Object.defineProperty(receiver, property, desc);\n } else {\n _defineProperty(receiver, property, value);\n }\n\n return true;\n };\n }\n\n return set(target, property, value, receiver);\n }\n\n function _set(target, property, value, receiver, isStrict) {\n var s = set(target, property, value, receiver || target);\n\n if (!s && isStrict) {\n throw new Error('failed to set property');\n }\n\n return value;\n }\n\n function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n }\n\n function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n }\n\n function _temporalRef(val, name) {\n if (val === _temporalUndefined) {\n throw new ReferenceError(name + ' is not defined - temporal dead zone');\n } else {\n return val;\n }\n }\n\n function _readOnlyError(name) {\n throw new Error('\"' + name + '\" is read-only');\n }\n\n function _classNameTDZError(name) {\n throw new Error('Class \"' + name + '\" cannot be referenced in computed property keys.');\n }\n\n var _temporalUndefined = {};\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _slicedToArrayLoose(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimitLoose(arr, i) || _nonIterableRest();\n }\n\n function _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === '[object Arguments]') return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i['return'] != null) _i['return']();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _iterableToArrayLimitLoose(arr, i) {\n var _arr = [];\n\n for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n _arr.push(_step.value);\n\n if (i && _arr.length === i) break;\n }\n\n return _arr;\n }\n\n function _nonIterableSpread() {\n throw new TypeError('Invalid attempt to spread non-iterable instance');\n }\n\n function _nonIterableRest() {\n throw new TypeError('Invalid attempt to destructure non-iterable instance');\n }\n\n function _skipFirstGeneratorNext(fn) {\n return function () {\n var it = fn.apply(this, arguments);\n it.next();\n return it;\n };\n }\n\n function _toPrimitive(input, hint) {\n if (_typeof2(input) !== 'object' || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || 'default');\n if (_typeof2(res) !== 'object') return res;\n throw new TypeError('@@toPrimitive must return a primitive value.');\n }\n\n return (hint === 'string' ? String : Number)(input);\n }\n\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, 'string');\n\n return _typeof2(key) === 'symbol' ? key : String(key);\n }\n\n function _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and set to use loose mode. ' + 'To use proposal-class-properties in spec mode with decorators, wait for ' + 'the next major version of decorators in stage 2.');\n }\n\n function _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n }\n\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object.keys(descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n\n return desc;\n }\n\n var id = 0;\n\n function _classPrivateFieldLooseKey(name) {\n return '__private_' + id++ + '_' + name;\n }\n\n function _classPrivateFieldLooseBase(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError('attempted to use private field on non-instance');\n }\n\n return receiver;\n }\n\n function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = privateMap.get(receiver);\n\n if (!descriptor) {\n throw new TypeError('attempted to get private field on non-instance');\n }\n\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n\n return descriptor.value;\n }\n\n function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = privateMap.get(receiver);\n\n if (!descriptor) {\n throw new TypeError('attempted to set private field on non-instance');\n }\n\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n descriptor.value = value;\n }\n\n return value;\n }\n\n function _classPrivateFieldDestructureSet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError('attempted to set private field on non-instance');\n }\n\n var descriptor = privateMap.get(receiver);\n\n if (descriptor.set) {\n if (!('__destrObj' in descriptor)) {\n descriptor.__destrObj = {\n set value(v) {\n descriptor.set.call(receiver, v);\n }\n\n };\n }\n\n return descriptor.__destrObj;\n } else {\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n return descriptor;\n }\n }\n\n function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n return descriptor.value;\n }\n\n function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n descriptor.value = value;\n return value;\n }\n\n function _classStaticPrivateMethodGet(receiver, classConstructor, method) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n return method;\n }\n\n function _classStaticPrivateMethodSet() {\n throw new TypeError('attempted to set read only static private field');\n }\n\n function _decorate(decorators, factory, superClass, mixins) {\n var api = _getDecoratorsApi();\n\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n api = mixins[i](api);\n }\n }\n\n var r = factory(function initialize(O) {\n api.initializeInstanceElements(O, decorated.elements);\n }, superClass);\n var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);\n api.initializeClassElements(r.F, decorated.elements);\n return api.runClassFinishers(r.F, decorated.finishers);\n }\n\n function _getDecoratorsApi() {\n _getDecoratorsApi = function _getDecoratorsApi() {\n return api;\n };\n\n var api = {\n elementsDefinitionOrder: [['method'], ['field']],\n initializeInstanceElements: function initializeInstanceElements(O, elements) {\n ['method', 'field'].forEach(function (kind) {\n elements.forEach(function (element) {\n if (element.kind === kind && element.placement === 'own') {\n this.defineClassElement(O, element);\n }\n }, this);\n }, this);\n },\n initializeClassElements: function initializeClassElements(F, elements) {\n var proto = F.prototype;\n ['method', 'field'].forEach(function (kind) {\n elements.forEach(function (element) {\n var placement = element.placement;\n\n if (element.kind === kind && (placement === 'static' || placement === 'prototype')) {\n var receiver = placement === 'static' ? F : proto;\n this.defineClassElement(receiver, element);\n }\n }, this);\n }, this);\n },\n defineClassElement: function defineClassElement(receiver, element) {\n var descriptor = element.descriptor;\n\n if (element.kind === 'field') {\n var initializer = element.initializer;\n descriptor = {\n enumerable: descriptor.enumerable,\n writable: descriptor.writable,\n configurable: descriptor.configurable,\n value: initializer === void 0 ? void 0 : initializer.call(receiver)\n };\n }\n\n Object.defineProperty(receiver, element.key, descriptor);\n },\n decorateClass: function decorateClass(elements, decorators) {\n var newElements = [];\n var finishers = [];\n var placements = {\n static: [],\n prototype: [],\n own: []\n };\n elements.forEach(function (element) {\n this.addElementPlacement(element, placements);\n }, this);\n elements.forEach(function (element) {\n if (!_hasDecorators(element)) return newElements.push(element);\n var elementFinishersExtras = this.decorateElement(element, placements);\n newElements.push(elementFinishersExtras.element);\n newElements.push.apply(newElements, elementFinishersExtras.extras);\n finishers.push.apply(finishers, elementFinishersExtras.finishers);\n }, this);\n\n if (!decorators) {\n return {\n elements: newElements,\n finishers: finishers\n };\n }\n\n var result = this.decorateConstructor(newElements, decorators);\n finishers.push.apply(finishers, result.finishers);\n result.finishers = finishers;\n return result;\n },\n addElementPlacement: function addElementPlacement(element, placements, silent) {\n var keys = placements[element.placement];\n\n if (!silent && keys.indexOf(element.key) !== -1) {\n throw new TypeError('Duplicated element (' + element.key + ')');\n }\n\n keys.push(element.key);\n },\n decorateElement: function decorateElement(element, placements) {\n var extras = [];\n var finishers = [];\n\n for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {\n var keys = placements[element.placement];\n keys.splice(keys.indexOf(element.key), 1);\n var elementObject = this.fromElementDescriptor(element);\n var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);\n element = elementFinisherExtras.element;\n this.addElementPlacement(element, placements);\n\n if (elementFinisherExtras.finisher) {\n finishers.push(elementFinisherExtras.finisher);\n }\n\n var newExtras = elementFinisherExtras.extras;\n\n if (newExtras) {\n for (var j = 0; j < newExtras.length; j++) {\n this.addElementPlacement(newExtras[j], placements);\n }\n\n extras.push.apply(extras, newExtras);\n }\n }\n\n return {\n element: element,\n finishers: finishers,\n extras: extras\n };\n },\n decorateConstructor: function decorateConstructor(elements, decorators) {\n var finishers = [];\n\n for (var i = decorators.length - 1; i >= 0; i--) {\n var obj = this.fromClassDescriptor(elements);\n var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);\n\n if (elementsAndFinisher.finisher !== undefined) {\n finishers.push(elementsAndFinisher.finisher);\n }\n\n if (elementsAndFinisher.elements !== undefined) {\n elements = elementsAndFinisher.elements;\n\n for (var j = 0; j < elements.length - 1; j++) {\n for (var k = j + 1; k < elements.length; k++) {\n if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {\n throw new TypeError('Duplicated element (' + elements[j].key + ')');\n }\n }\n }\n }\n }\n\n return {\n elements: elements,\n finishers: finishers\n };\n },\n fromElementDescriptor: function fromElementDescriptor(element) {\n var obj = {\n kind: element.kind,\n key: element.key,\n placement: element.placement,\n descriptor: element.descriptor\n };\n var desc = {\n value: 'Descriptor',\n configurable: true\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n if (element.kind === 'field') obj.initializer = element.initializer;\n return obj;\n },\n toElementDescriptors: function toElementDescriptors(elementObjects) {\n if (elementObjects === undefined) return;\n return _toArray(elementObjects).map(function (elementObject) {\n var element = this.toElementDescriptor(elementObject);\n this.disallowProperty(elementObject, 'finisher', 'An element descriptor');\n this.disallowProperty(elementObject, 'extras', 'An element descriptor');\n return element;\n }, this);\n },\n toElementDescriptor: function toElementDescriptor(elementObject) {\n var kind = String(elementObject.kind);\n\n if (kind !== 'method' && kind !== 'field') {\n throw new TypeError('An element descriptor\\'s .kind property must be either \"method\" or' + ' \"field\", but a decorator created an element descriptor with' + ' .kind \"' + kind + '\"');\n }\n\n var key = _toPropertyKey(elementObject.key);\n\n var placement = String(elementObject.placement);\n\n if (placement !== 'static' && placement !== 'prototype' && placement !== 'own') {\n throw new TypeError('An element descriptor\\'s .placement property must be one of \"static\",' + ' \"prototype\" or \"own\", but a decorator created an element descriptor' + ' with .placement \"' + placement + '\"');\n }\n\n var descriptor = elementObject.descriptor;\n this.disallowProperty(elementObject, 'elements', 'An element descriptor');\n var element = {\n kind: kind,\n key: key,\n placement: placement,\n descriptor: Object.assign({}, descriptor)\n };\n\n if (kind !== 'field') {\n this.disallowProperty(elementObject, 'initializer', 'A method descriptor');\n } else {\n this.disallowProperty(descriptor, 'get', 'The property descriptor of a field descriptor');\n this.disallowProperty(descriptor, 'set', 'The property descriptor of a field descriptor');\n this.disallowProperty(descriptor, 'value', 'The property descriptor of a field descriptor');\n element.initializer = elementObject.initializer;\n }\n\n return element;\n },\n toElementFinisherExtras: function toElementFinisherExtras(elementObject) {\n var element = this.toElementDescriptor(elementObject);\n\n var finisher = _optionalCallableProperty(elementObject, 'finisher');\n\n var extras = this.toElementDescriptors(elementObject.extras);\n return {\n element: element,\n finisher: finisher,\n extras: extras\n };\n },\n fromClassDescriptor: function fromClassDescriptor(elements) {\n var obj = {\n kind: 'class',\n elements: elements.map(this.fromElementDescriptor, this)\n };\n var desc = {\n value: 'Descriptor',\n configurable: true\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n return obj;\n },\n toClassDescriptor: function toClassDescriptor(obj) {\n var kind = String(obj.kind);\n\n if (kind !== 'class') {\n throw new TypeError('A class descriptor\\'s .kind property must be \"class\", but a decorator' + ' created a class descriptor with .kind \"' + kind + '\"');\n }\n\n this.disallowProperty(obj, 'key', 'A class descriptor');\n this.disallowProperty(obj, 'placement', 'A class descriptor');\n this.disallowProperty(obj, 'descriptor', 'A class descriptor');\n this.disallowProperty(obj, 'initializer', 'A class descriptor');\n this.disallowProperty(obj, 'extras', 'A class descriptor');\n\n var finisher = _optionalCallableProperty(obj, 'finisher');\n\n var elements = this.toElementDescriptors(obj.elements);\n return {\n elements: elements,\n finisher: finisher\n };\n },\n runClassFinishers: function runClassFinishers(constructor, finishers) {\n for (var i = 0; i < finishers.length; i++) {\n var newConstructor = (0, finishers[i])(constructor);\n\n if (newConstructor !== undefined) {\n if (typeof newConstructor !== 'function') {\n throw new TypeError('Finishers must return a constructor.');\n }\n\n constructor = newConstructor;\n }\n }\n\n return constructor;\n },\n disallowProperty: function disallowProperty(obj, name, objectType) {\n if (obj[name] !== undefined) {\n throw new TypeError(objectType + \" can't have a .\" + name + ' property.');\n }\n }\n };\n return api;\n }\n\n function _createElementDescriptor(def) {\n var key = _toPropertyKey(def.key);\n\n var descriptor;\n\n if (def.kind === 'method') {\n descriptor = {\n value: def.value,\n writable: true,\n configurable: true,\n enumerable: false\n };\n } else if (def.kind === 'get') {\n descriptor = {\n get: def.value,\n configurable: true,\n enumerable: false\n };\n } else if (def.kind === 'set') {\n descriptor = {\n set: def.value,\n configurable: true,\n enumerable: false\n };\n } else if (def.kind === 'field') {\n descriptor = {\n configurable: true,\n writable: true,\n enumerable: true\n };\n }\n\n var element = {\n kind: def.kind === 'field' ? 'field' : 'method',\n key: key,\n placement: def.static ? 'static' : def.kind === 'field' ? 'own' : 'prototype',\n descriptor: descriptor\n };\n if (def.decorators) element.decorators = def.decorators;\n if (def.kind === 'field') element.initializer = def.value;\n return element;\n }\n\n function _coalesceGetterSetter(element, other) {\n if (element.descriptor.get !== undefined) {\n other.descriptor.get = element.descriptor.get;\n } else {\n other.descriptor.set = element.descriptor.set;\n }\n }\n\n function _coalesceClassElements(elements) {\n var newElements = [];\n\n var isSameElement = function isSameElement(other) {\n return other.kind === 'method' && other.key === element.key && other.placement === element.placement;\n };\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n var other;\n\n if (element.kind === 'method' && (other = newElements.find(isSameElement))) {\n if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {\n if (_hasDecorators(element) || _hasDecorators(other)) {\n throw new ReferenceError('Duplicated methods (' + element.key + \") can't be decorated.\");\n }\n\n other.descriptor = element.descriptor;\n } else {\n if (_hasDecorators(element)) {\n if (_hasDecorators(other)) {\n throw new ReferenceError(\"Decorators can't be placed on different accessors with for \" + 'the same property (' + element.key + ').');\n }\n\n other.decorators = element.decorators;\n }\n\n _coalesceGetterSetter(element, other);\n }\n } else {\n newElements.push(element);\n }\n }\n\n return newElements;\n }\n\n function _hasDecorators(element) {\n return element.decorators && element.decorators.length;\n }\n\n function _isDataDescriptor(desc) {\n return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);\n }\n\n function _optionalCallableProperty(obj, name) {\n var value = obj[name];\n\n if (value !== undefined && typeof value !== 'function') {\n throw new TypeError(\"Expected '\" + name + \"' to be a function\");\n }\n\n return value;\n }\n\n function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError('attempted to get private field on non-instance');\n }\n\n return fn;\n }\n\n function _classPrivateMethodSet() {\n throw new TypeError('attempted to reassign private method');\n }\n\n function _wrapRegExp(re, groups) {\n _wrapRegExp = function _wrapRegExp(re, groups) {\n return new BabelRegExp(re, groups);\n };\n\n var _RegExp = _wrapNativeSuper(RegExp);\n\n var _super = RegExp.prototype;\n\n var _groups = new WeakMap();\n\n function BabelRegExp(re, groups) {\n var _this = _RegExp.call(this, re);\n\n _groups.set(_this, groups);\n\n return _this;\n }\n\n _inherits(BabelRegExp, _RegExp);\n\n BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n if (result) result.groups = buildGroups(result, this);\n return result;\n };\n\n BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (typeof substitution === 'string') {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return '$' + groups[name];\n }));\n } else if (typeof substitution === 'function') {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = [];\n args.push.apply(args, arguments);\n\n if (_typeof2(args[args.length - 1]) !== 'object') {\n args.push(buildGroups(args, _this));\n }\n\n return substitution.apply(this, args);\n });\n } else {\n return _super[Symbol.replace].call(this, str, substitution);\n }\n };\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n groups[name] = result[g[name]];\n return groups;\n }, Object.create(null));\n }\n\n return _wrapRegExp.apply(this, arguments);\n }\n\n var arrayRemove = function arrayRemove(arr, index) {\n return arr.splice(index, 1);\n };\n\n var run = function run(cb, sync) {\n if (sync) {\n cb();\n } else if (document.hidden) {\n Promise.resolve(1).then(cb);\n } else {\n setTimeout(cb, 0);\n }\n };\n\n var on = function on() {\n var listeners = [];\n\n var off = function off(event, cb) {\n arrayRemove(listeners, listeners.findIndex(function (listener) {\n return listener.event === event && (listener.cb === cb || !cb);\n }));\n };\n\n var _fire = function fire(event, args, sync) {\n listeners.filter(function (listener) {\n return listener.event === event;\n }).map(function (listener) {\n return listener.cb;\n }).forEach(function (cb) {\n return run(function () {\n return cb.apply(void 0, _toConsumableArray(args));\n }, sync);\n });\n };\n\n return {\n fireSync: function fireSync(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _fire(event, args, true);\n },\n fire: function fire(event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _fire(event, args, false);\n },\n on: function on(event, cb) {\n listeners.push({\n event: event,\n cb: cb\n });\n },\n onOnce: function onOnce(event, _cb) {\n listeners.push({\n event: event,\n cb: function cb() {\n off(event, _cb);\n\n _cb.apply(void 0, arguments);\n }\n });\n },\n off: off\n };\n };\n\n var copyObjectPropertiesToObject = function copyObjectPropertiesToObject(src, target, excluded) {\n Object.getOwnPropertyNames(src).filter(function (property) {\n return !excluded.includes(property);\n }).forEach(function (key) {\n return Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(src, key));\n });\n };\n\n var PRIVATE = ['fire', 'process', 'revert', 'load', 'on', 'off', 'onOnce', 'retryLoad', 'extend', 'archive', 'archived', 'release', 'released', 'requestProcessing', 'freeze'];\n\n var createItemAPI = function createItemAPI(item) {\n var api = {};\n copyObjectPropertiesToObject(item, api, PRIVATE);\n return api;\n };\n\n var removeReleasedItems = function removeReleasedItems(items) {\n items.forEach(function (item, index) {\n if (item.released) {\n arrayRemove(items, index);\n }\n });\n };\n\n var ItemStatus = {\n INIT: 1,\n IDLE: 2,\n PROCESSING_QUEUED: 9,\n PROCESSING: 3,\n PROCESSING_COMPLETE: 5,\n PROCESSING_ERROR: 6,\n PROCESSING_REVERT_ERROR: 10,\n LOADING: 7,\n LOAD_ERROR: 8\n };\n var FileOrigin = {\n INPUT: 1,\n LIMBO: 2,\n LOCAL: 3\n };\n\n var getNonNumeric = function getNonNumeric(str) {\n return /[^0-9]+/.exec(str);\n };\n\n var getDecimalSeparator = function getDecimalSeparator() {\n return getNonNumeric(1.1.toLocaleString())[0];\n };\n\n var getThousandsSeparator = function getThousandsSeparator() {\n // Added for browsers that do not return the thousands separator (happend on native browser Android 4.4.4)\n // We check against the normal toString output and if they're the same return a comma when decimal separator is a dot\n var decimalSeparator = getDecimalSeparator();\n var thousandsStringWithSeparator = 1000.0.toLocaleString();\n var thousandsStringWithoutSeparator = 1000.0.toString();\n\n if (thousandsStringWithSeparator !== thousandsStringWithoutSeparator) {\n return getNonNumeric(thousandsStringWithSeparator)[0];\n }\n\n return decimalSeparator === '.' ? ',' : '.';\n };\n\n var Type = {\n BOOLEAN: 'boolean',\n INT: 'int',\n NUMBER: 'number',\n STRING: 'string',\n ARRAY: 'array',\n OBJECT: 'object',\n FUNCTION: 'function',\n ACTION: 'action',\n SERVER_API: 'serverapi',\n REGEX: 'regex'\n }; // all registered filters\n\n var filters = []; // loops over matching filters and passes options to each filter, returning the mapped results\n\n var applyFilterChain = function applyFilterChain(key, value, utils) {\n return new Promise(function (resolve, reject) {\n // find matching filters for this key\n var matchingFilters = filters.filter(function (f) {\n return f.key === key;\n }).map(function (f) {\n return f.cb;\n }); // resolve now\n\n if (matchingFilters.length === 0) {\n resolve(value);\n return;\n } // first filter to kick things of\n\n\n var initialFilter = matchingFilters.shift(); // chain filters\n\n matchingFilters.reduce( // loop over promises passing value to next promise\n function (current, next) {\n return current.then(function (value) {\n return next(value, utils);\n });\n }, // call initial filter, will return a promise\n initialFilter(value, utils) // all executed\n ).then(function (value) {\n return resolve(value);\n }).catch(function (error) {\n return reject(error);\n });\n });\n };\n\n var applyFilters = function applyFilters(key, value, utils) {\n return filters.filter(function (f) {\n return f.key === key;\n }).map(function (f) {\n return f.cb(value, utils);\n });\n }; // adds a new filter to the list\n\n\n var addFilter = function addFilter(key, cb) {\n return filters.push({\n key: key,\n cb: cb\n });\n };\n\n var extendDefaultOptions = function extendDefaultOptions(additionalOptions) {\n return Object.assign(defaultOptions, additionalOptions);\n };\n\n var getOptions = function getOptions() {\n return Object.assign({}, defaultOptions);\n };\n\n var setOptions = function setOptions(opts) {\n forin(opts, function (key, value) {\n // key does not exist, so this option cannot be set\n if (!defaultOptions[key]) {\n return;\n }\n\n defaultOptions[key][0] = getValueByType(value, defaultOptions[key][0], defaultOptions[key][1]);\n });\n }; // default options on app\n\n\n var defaultOptions = {\n // the id to add to the root element\n id: [null, Type.STRING],\n // input field name to use\n name: ['filepond', Type.STRING],\n // disable the field\n disabled: [false, Type.BOOLEAN],\n // classname to put on wrapper\n className: [null, Type.STRING],\n // is the field required\n required: [false, Type.BOOLEAN],\n // Allow media capture when value is set\n captureMethod: [null, Type.STRING],\n // - \"camera\", \"microphone\" or \"camcorder\",\n // - Does not work with multiple on apple devices\n // - If set, acceptedFileTypes must be made to match with media wildcard \"image/*\", \"audio/*\" or \"video/*\"\n // sync `acceptedFileTypes` property with `accept` attribute\n allowSyncAcceptAttribute: [true, Type.BOOLEAN],\n // Feature toggles\n allowDrop: [true, Type.BOOLEAN],\n // Allow dropping of files\n allowBrowse: [true, Type.BOOLEAN],\n // Allow browsing the file system\n allowPaste: [true, Type.BOOLEAN],\n // Allow pasting files\n allowMultiple: [false, Type.BOOLEAN],\n // Allow multiple files (disabled by default, as multiple attribute is also required on input to allow multiple)\n allowReplace: [true, Type.BOOLEAN],\n // Allow dropping a file on other file to replace it (only works when multiple is set to false)\n allowRevert: [true, Type.BOOLEAN],\n // Allows user to revert file upload\n allowRemove: [true, Type.BOOLEAN],\n // Allow user to remove a file\n allowProcess: [true, Type.BOOLEAN],\n // Allows user to process a file, when set to false, this removes the file upload button\n allowReorder: [false, Type.BOOLEAN],\n // Allow reordering of files\n allowDirectoriesOnly: [false, Type.BOOLEAN],\n // Allow only selecting directories with browse (no support for filtering dnd at this point)\n // Try store file if `server` not set\n storeAsFile: [false, Type.BOOLEAN],\n // Revert mode\n forceRevert: [false, Type.BOOLEAN],\n // Set to 'force' to require the file to be reverted before removal\n // Input requirements\n maxFiles: [null, Type.INT],\n // Max number of files\n checkValidity: [false, Type.BOOLEAN],\n // Enables custom validity messages\n // Where to put file\n itemInsertLocationFreedom: [true, Type.BOOLEAN],\n // Set to false to always add items to begin or end of list\n itemInsertLocation: ['before', Type.STRING],\n // Default index in list to add items that have been dropped at the top of the list\n itemInsertInterval: [75, Type.INT],\n // Drag 'n Drop related\n dropOnPage: [false, Type.BOOLEAN],\n // Allow dropping of files anywhere on page (prevents browser from opening file if dropped outside of Up)\n dropOnElement: [true, Type.BOOLEAN],\n // Drop needs to happen on element (set to false to also load drops outside of Up)\n dropValidation: [false, Type.BOOLEAN],\n // Enable or disable validating files on drop\n ignoredFiles: [['.ds_store', 'thumbs.db', 'desktop.ini'], Type.ARRAY],\n // Upload related\n instantUpload: [true, Type.BOOLEAN],\n // Should upload files immediately on drop\n maxParallelUploads: [2, Type.INT],\n // Maximum files to upload in parallel\n allowMinimumUploadDuration: [true, Type.BOOLEAN],\n // if true uploads take at least 750 ms, this ensures the user sees the upload progress giving trust the upload actually happened\n // Chunks\n chunkUploads: [false, Type.BOOLEAN],\n // Enable chunked uploads\n chunkForce: [false, Type.BOOLEAN],\n // Force use of chunk uploads even for files smaller than chunk size\n chunkSize: [5000000, Type.INT],\n // Size of chunks (5MB default)\n chunkRetryDelays: [[500, 1000, 3000], Type.ARRAY],\n // Amount of times to retry upload of a chunk when it fails\n // The server api end points to use for uploading (see docs)\n server: [null, Type.SERVER_API],\n // File size calculations, can set to 1024, this is only used for display, properties use file size base 1000\n fileSizeBase: [1000, Type.INT],\n // Labels and status messages\n labelFileSizeBytes: ['bytes', Type.STRING],\n labelFileSizeKilobytes: ['KB', Type.STRING],\n labelFileSizeMegabytes: ['MB', Type.STRING],\n labelFileSizeGigabytes: ['GB', Type.STRING],\n labelDecimalSeparator: [getDecimalSeparator(), Type.STRING],\n // Default is locale separator\n labelThousandsSeparator: [getThousandsSeparator(), Type.STRING],\n // Default is locale separator\n labelIdle: ['Drag & Drop your files or Browse', Type.STRING],\n labelInvalidField: ['Field contains invalid files', Type.STRING],\n labelFileWaitingForSize: ['Waiting for size', Type.STRING],\n labelFileSizeNotAvailable: ['Size not available', Type.STRING],\n labelFileCountSingular: ['file in list', Type.STRING],\n labelFileCountPlural: ['files in list', Type.STRING],\n labelFileLoading: ['Loading', Type.STRING],\n labelFileAdded: ['Added', Type.STRING],\n // assistive only\n labelFileLoadError: ['Error during load', Type.STRING],\n labelFileRemoved: ['Removed', Type.STRING],\n // assistive only\n labelFileRemoveError: ['Error during remove', Type.STRING],\n labelFileProcessing: ['Uploading', Type.STRING],\n labelFileProcessingComplete: ['Upload complete', Type.STRING],\n labelFileProcessingAborted: ['Upload cancelled', Type.STRING],\n labelFileProcessingError: ['Error during upload', Type.STRING],\n labelFileProcessingRevertError: ['Error during revert', Type.STRING],\n labelTapToCancel: ['tap to cancel', Type.STRING],\n labelTapToRetry: ['tap to retry', Type.STRING],\n labelTapToUndo: ['tap to undo', Type.STRING],\n labelButtonRemoveItem: ['Remove', Type.STRING],\n labelButtonAbortItemLoad: ['Abort', Type.STRING],\n labelButtonRetryItemLoad: ['Retry', Type.STRING],\n labelButtonAbortItemProcessing: ['Cancel', Type.STRING],\n labelButtonUndoItemProcessing: ['Undo', Type.STRING],\n labelButtonRetryItemProcessing: ['Retry', Type.STRING],\n labelButtonProcessItem: ['Upload', Type.STRING],\n // make sure width and height plus viewpox are even numbers so icons are nicely centered\n iconRemove: ['', Type.STRING],\n iconProcess: ['', Type.STRING],\n iconRetry: ['', Type.STRING],\n iconUndo: ['', Type.STRING],\n iconDone: ['', Type.STRING],\n // event handlers\n oninit: [null, Type.FUNCTION],\n onwarning: [null, Type.FUNCTION],\n onerror: [null, Type.FUNCTION],\n onactivatefile: [null, Type.FUNCTION],\n oninitfile: [null, Type.FUNCTION],\n onaddfilestart: [null, Type.FUNCTION],\n onaddfileprogress: [null, Type.FUNCTION],\n onaddfile: [null, Type.FUNCTION],\n onprocessfilestart: [null, Type.FUNCTION],\n onprocessfileprogress: [null, Type.FUNCTION],\n onprocessfileabort: [null, Type.FUNCTION],\n onprocessfilerevert: [null, Type.FUNCTION],\n onprocessfile: [null, Type.FUNCTION],\n onprocessfiles: [null, Type.FUNCTION],\n onremovefile: [null, Type.FUNCTION],\n onpreparefile: [null, Type.FUNCTION],\n onupdatefiles: [null, Type.FUNCTION],\n onreorderfiles: [null, Type.FUNCTION],\n // hooks\n beforeDropFile: [null, Type.FUNCTION],\n beforeAddFile: [null, Type.FUNCTION],\n beforeRemoveFile: [null, Type.FUNCTION],\n beforePrepareFile: [null, Type.FUNCTION],\n // styles\n stylePanelLayout: [null, Type.STRING],\n // null 'integrated', 'compact', 'circle'\n stylePanelAspectRatio: [null, Type.STRING],\n // null or '3:2' or 1\n styleItemPanelAspectRatio: [null, Type.STRING],\n styleButtonRemoveItemPosition: ['left', Type.STRING],\n styleButtonProcessItemPosition: ['right', Type.STRING],\n styleLoadIndicatorPosition: ['right', Type.STRING],\n styleProgressIndicatorPosition: ['right', Type.STRING],\n styleButtonRemoveItemAlign: [false, Type.BOOLEAN],\n // custom initial files array\n files: [[], Type.ARRAY],\n // show support by displaying credits\n credits: [['https://pqina.nl/', 'Powered by PQINA'], Type.ARRAY]\n };\n\n var getItemByQuery = function getItemByQuery(items, query) {\n // just return first index\n if (isEmpty(query)) {\n return items[0] || null;\n } // query is index\n\n\n if (isInt(query)) {\n return items[query] || null;\n } // if query is item, get the id\n\n\n if (_typeof2(query) === 'object') {\n query = query.id;\n } // assume query is a string and return item by id\n\n\n return items.find(function (item) {\n return item.id === query;\n }) || null;\n };\n\n var getNumericAspectRatioFromString = function getNumericAspectRatioFromString(aspectRatio) {\n if (isEmpty(aspectRatio)) {\n return aspectRatio;\n }\n\n if (/:/.test(aspectRatio)) {\n var parts = aspectRatio.split(':');\n return parts[1] / parts[0];\n }\n\n return parseFloat(aspectRatio);\n };\n\n var getActiveItems = function getActiveItems(items) {\n return items.filter(function (item) {\n return !item.archived;\n });\n };\n\n var Status = {\n EMPTY: 0,\n IDLE: 1,\n // waiting\n ERROR: 2,\n // a file is in error state\n BUSY: 3,\n // busy processing or loading\n READY: 4 // all files uploaded\n\n };\n var res = null;\n\n var canUpdateFileInput = function canUpdateFileInput() {\n if (res === null) {\n try {\n var dataTransfer = new DataTransfer();\n dataTransfer.items.add(new File(['hello world'], 'This_Works.txt'));\n var el = document.createElement('input');\n el.setAttribute('type', 'file');\n el.files = dataTransfer.files;\n res = el.files.length === 1;\n } catch (err) {\n res = false;\n }\n }\n\n return res;\n };\n\n var ITEM_ERROR = [ItemStatus.LOAD_ERROR, ItemStatus.PROCESSING_ERROR, ItemStatus.PROCESSING_REVERT_ERROR];\n var ITEM_BUSY = [ItemStatus.LOADING, ItemStatus.PROCESSING, ItemStatus.PROCESSING_QUEUED, ItemStatus.INIT];\n var ITEM_READY = [ItemStatus.PROCESSING_COMPLETE];\n\n var isItemInErrorState = function isItemInErrorState(item) {\n return ITEM_ERROR.includes(item.status);\n };\n\n var isItemInBusyState = function isItemInBusyState(item) {\n return ITEM_BUSY.includes(item.status);\n };\n\n var isItemInReadyState = function isItemInReadyState(item) {\n return ITEM_READY.includes(item.status);\n };\n\n var isAsync = function isAsync(state) {\n return isObject(state.options.server) && (isObject(state.options.server.process) || isFunction(state.options.server.process));\n };\n\n var queries = function queries(state) {\n return {\n GET_STATUS: function GET_STATUS() {\n var items = getActiveItems(state.items);\n var EMPTY = Status.EMPTY,\n ERROR = Status.ERROR,\n BUSY = Status.BUSY,\n IDLE = Status.IDLE,\n READY = Status.READY;\n if (items.length === 0) return EMPTY;\n if (items.some(isItemInErrorState)) return ERROR;\n if (items.some(isItemInBusyState)) return BUSY;\n if (items.some(isItemInReadyState)) return READY;\n return IDLE;\n },\n GET_ITEM: function GET_ITEM(query) {\n return getItemByQuery(state.items, query);\n },\n GET_ACTIVE_ITEM: function GET_ACTIVE_ITEM(query) {\n return getItemByQuery(getActiveItems(state.items), query);\n },\n GET_ACTIVE_ITEMS: function GET_ACTIVE_ITEMS() {\n return getActiveItems(state.items);\n },\n GET_ITEMS: function GET_ITEMS() {\n return state.items;\n },\n GET_ITEM_NAME: function GET_ITEM_NAME(query) {\n var item = getItemByQuery(state.items, query);\n return item ? item.filename : null;\n },\n GET_ITEM_SIZE: function GET_ITEM_SIZE(query) {\n var item = getItemByQuery(state.items, query);\n return item ? item.fileSize : null;\n },\n GET_STYLES: function GET_STYLES() {\n return Object.keys(state.options).filter(function (key) {\n return /^style/.test(key);\n }).map(function (option) {\n return {\n name: option,\n value: state.options[option]\n };\n });\n },\n GET_PANEL_ASPECT_RATIO: function GET_PANEL_ASPECT_RATIO() {\n var isShapeCircle = /circle/.test(state.options.stylePanelLayout);\n var aspectRatio = isShapeCircle ? 1 : getNumericAspectRatioFromString(state.options.stylePanelAspectRatio);\n return aspectRatio;\n },\n GET_ITEM_PANEL_ASPECT_RATIO: function GET_ITEM_PANEL_ASPECT_RATIO() {\n return state.options.styleItemPanelAspectRatio;\n },\n GET_ITEMS_BY_STATUS: function GET_ITEMS_BY_STATUS(status) {\n return getActiveItems(state.items).filter(function (item) {\n return item.status === status;\n });\n },\n GET_TOTAL_ITEMS: function GET_TOTAL_ITEMS() {\n return getActiveItems(state.items).length;\n },\n SHOULD_UPDATE_FILE_INPUT: function SHOULD_UPDATE_FILE_INPUT() {\n return state.options.storeAsFile && canUpdateFileInput() && !isAsync(state);\n },\n IS_ASYNC: function IS_ASYNC() {\n return isAsync(state);\n },\n GET_FILE_SIZE_LABELS: function GET_FILE_SIZE_LABELS(query) {\n return {\n labelBytes: query('GET_LABEL_FILE_SIZE_BYTES') || undefined,\n labelKilobytes: query('GET_LABEL_FILE_SIZE_KILOBYTES') || undefined,\n labelMegabytes: query('GET_LABEL_FILE_SIZE_MEGABYTES') || undefined,\n labelGigabytes: query('GET_LABEL_FILE_SIZE_GIGABYTES') || undefined\n };\n }\n };\n };\n\n var hasRoomForItem = function hasRoomForItem(state) {\n var count = getActiveItems(state.items).length; // if cannot have multiple items, to add one item it should currently not contain items\n\n if (!state.options.allowMultiple) {\n return count === 0;\n } // if allows multiple items, we check if a max item count has been set, if not, there's no limit\n\n\n var maxFileCount = state.options.maxFiles;\n\n if (maxFileCount === null) {\n return true;\n } // we check if the current count is smaller than the max count, if so, another file can still be added\n\n\n if (count < maxFileCount) {\n return true;\n } // no more room for another file\n\n\n return false;\n };\n\n var limit = function limit(value, min, max) {\n return Math.max(Math.min(max, value), min);\n };\n\n var arrayInsert = function arrayInsert(arr, index, item) {\n return arr.splice(index, 0, item);\n };\n\n var insertItem = function insertItem(items, item, index) {\n if (isEmpty(item)) {\n return null;\n } // if index is undefined, append\n\n\n if (typeof index === 'undefined') {\n items.push(item);\n return item;\n } // limit the index to the size of the items array\n\n\n index = limit(index, 0, items.length); // add item to array\n\n arrayInsert(items, index, item); // expose\n\n return item;\n };\n\n var isBase64DataURI = function isBase64DataURI(str) {\n return /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*)\\s*$/i.test(str);\n };\n\n var getFilenameFromURL = function getFilenameFromURL(url) {\n return ('' + url).split('/').pop().split('?').shift();\n };\n\n var getExtensionFromFilename = function getExtensionFromFilename(name) {\n return name.split('.').pop();\n };\n\n var guesstimateExtension = function guesstimateExtension(type) {\n // if no extension supplied, exit here\n if (typeof type !== 'string') {\n return '';\n } // get subtype\n\n\n var subtype = type.split('/').pop(); // is svg subtype\n\n if (/svg/.test(subtype)) {\n return 'svg';\n }\n\n if (/zip|compressed/.test(subtype)) {\n return 'zip';\n }\n\n if (/plain/.test(subtype)) {\n return 'txt';\n }\n\n if (/msword/.test(subtype)) {\n return 'doc';\n } // if is valid subtype\n\n\n if (/[a-z]+/.test(subtype)) {\n // always use jpg extension\n if (subtype === 'jpeg') {\n return 'jpg';\n } // return subtype\n\n\n return subtype;\n }\n\n return '';\n };\n\n var leftPad = function leftPad(value) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (padding + value).slice(-padding.length);\n };\n\n var getDateString = function getDateString() {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n return date.getFullYear() + '-' + leftPad(date.getMonth() + 1, '00') + '-' + leftPad(date.getDate(), '00') + '_' + leftPad(date.getHours(), '00') + '-' + leftPad(date.getMinutes(), '00') + '-' + leftPad(date.getSeconds(), '00');\n };\n\n var getFileFromBlob = function getFileFromBlob(blob, filename) {\n var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var extension = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var file = typeof type === 'string' ? blob.slice(0, blob.size, type) : blob.slice(0, blob.size, blob.type);\n file.lastModifiedDate = new Date(); // copy relative path\n\n if (blob._relativePath) file._relativePath = blob._relativePath; // if blob has name property, use as filename if no filename supplied\n\n if (!isString(filename)) {\n filename = getDateString();\n } // if filename supplied but no extension and filename has extension\n\n\n if (filename && extension === null && getExtensionFromFilename(filename)) {\n file.name = filename;\n } else {\n extension = extension || guesstimateExtension(file.type);\n file.name = filename + (extension ? '.' + extension : '');\n }\n\n return file;\n };\n\n var getBlobBuilder = function getBlobBuilder() {\n return window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n };\n\n var createBlob = function createBlob(arrayBuffer, mimeType) {\n var BB = getBlobBuilder();\n\n if (BB) {\n var bb = new BB();\n bb.append(arrayBuffer);\n return bb.getBlob(mimeType);\n }\n\n return new Blob([arrayBuffer], {\n type: mimeType\n });\n };\n\n var getBlobFromByteStringWithMimeType = function getBlobFromByteStringWithMimeType(byteString, mimeType) {\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return createBlob(ab, mimeType);\n };\n\n var getMimeTypeFromBase64DataURI = function getMimeTypeFromBase64DataURI(dataURI) {\n return (/^data:(.+);/.exec(dataURI) || [])[1] || null;\n };\n\n var getBase64DataFromBase64DataURI = function getBase64DataFromBase64DataURI(dataURI) {\n // get data part of string (remove data:image/jpeg...,)\n var data = dataURI.split(',')[1]; // remove any whitespace as that causes InvalidCharacterError in IE\n\n return data.replace(/\\s/g, '');\n };\n\n var getByteStringFromBase64DataURI = function getByteStringFromBase64DataURI(dataURI) {\n return atob(getBase64DataFromBase64DataURI(dataURI));\n };\n\n var getBlobFromBase64DataURI = function getBlobFromBase64DataURI(dataURI) {\n var mimeType = getMimeTypeFromBase64DataURI(dataURI);\n var byteString = getByteStringFromBase64DataURI(dataURI);\n return getBlobFromByteStringWithMimeType(byteString, mimeType);\n };\n\n var getFileFromBase64DataURI = function getFileFromBase64DataURI(dataURI, filename, extension) {\n return getFileFromBlob(getBlobFromBase64DataURI(dataURI), filename, null, extension);\n };\n\n var getFileNameFromHeader = function getFileNameFromHeader(header) {\n // test if is content disposition header, if not exit\n if (!/^content-disposition:/i.test(header)) return null; // get filename parts\n\n var matches = header.split(/filename=|filename\\*=.+''/).splice(1).map(function (name) {\n return name.trim().replace(/^[\"']|[;\"']{0,2}$/g, '');\n }).filter(function (name) {\n return name.length;\n });\n return matches.length ? decodeURI(matches[matches.length - 1]) : null;\n };\n\n var getFileSizeFromHeader = function getFileSizeFromHeader(header) {\n if (/content-length:/i.test(header)) {\n var size = header.match(/[0-9]+/)[0];\n return size ? parseInt(size, 10) : null;\n }\n\n return null;\n };\n\n var getTranfserIdFromHeader = function getTranfserIdFromHeader(header) {\n if (/x-content-transfer-id:/i.test(header)) {\n var id = (header.split(':')[1] || '').trim();\n return id || null;\n }\n\n return null;\n };\n\n var getFileInfoFromHeaders = function getFileInfoFromHeaders(headers) {\n var info = {\n source: null,\n name: null,\n size: null\n };\n var rows = headers.split('\\n');\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var header = _step.value;\n var name = getFileNameFromHeader(header);\n\n if (name) {\n info.name = name;\n continue;\n }\n\n var size = getFileSizeFromHeader(header);\n\n if (size) {\n info.size = size;\n continue;\n }\n\n var source = getTranfserIdFromHeader(header);\n\n if (source) {\n info.source = source;\n continue;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return info;\n };\n\n var createFileLoader = function createFileLoader(fetchFn) {\n var state = {\n source: null,\n complete: false,\n progress: 0,\n size: null,\n timestamp: null,\n duration: 0,\n request: null\n };\n\n var getProgress = function getProgress() {\n return state.progress;\n };\n\n var abort = function abort() {\n if (state.request && state.request.abort) {\n state.request.abort();\n }\n }; // load source\n\n\n var load = function load() {\n // get quick reference\n var source = state.source;\n api.fire('init', source); // Load Files\n\n if (source instanceof File) {\n api.fire('load', source);\n } else if (source instanceof Blob) {\n // Load blobs, set default name to current date\n api.fire('load', getFileFromBlob(source, source.name));\n } else if (isBase64DataURI(source)) {\n // Load base 64, set default name to current date\n api.fire('load', getFileFromBase64DataURI(source));\n } else {\n // Deal as if is external URL, let's load it!\n loadURL(source);\n }\n }; // loads a url\n\n\n var loadURL = function loadURL(url) {\n // is remote url and no fetch method supplied\n if (!fetchFn) {\n api.fire('error', {\n type: 'error',\n body: \"Can't load URL\",\n code: 400\n });\n return;\n } // set request start\n\n\n state.timestamp = Date.now(); // load file\n\n state.request = fetchFn(url, function (response) {\n // update duration\n state.duration = Date.now() - state.timestamp; // done!\n\n state.complete = true; // turn blob response into a file\n\n if (response instanceof Blob) {\n response = getFileFromBlob(response, response.name || getFilenameFromURL(url));\n }\n\n api.fire('load', // if has received blob, we go with blob, if no response, we return null\n response instanceof Blob ? response : response ? response.body : null);\n }, function (error) {\n api.fire('error', typeof error === 'string' ? {\n type: 'error',\n code: 0,\n body: error\n } : error);\n }, function (computable, current, total) {\n // collected some meta data already\n if (total) {\n state.size = total;\n } // update duration\n\n\n state.duration = Date.now() - state.timestamp; // if we can't compute progress, we're not going to fire progress events\n\n if (!computable) {\n state.progress = null;\n return;\n } // update progress percentage\n\n\n state.progress = current / total; // expose\n\n api.fire('progress', state.progress);\n }, function () {\n api.fire('abort');\n }, function (response) {\n var fileinfo = getFileInfoFromHeaders(typeof response === 'string' ? response : response.headers);\n api.fire('meta', {\n size: state.size || fileinfo.size,\n filename: fileinfo.name,\n source: fileinfo.source\n });\n });\n };\n\n var api = Object.assign({}, on(), {\n setSource: function setSource(source) {\n return state.source = source;\n },\n getProgress: getProgress,\n // file load progress\n abort: abort,\n // abort file load\n load: load // start load\n\n });\n return api;\n };\n\n var isGet = function isGet(method) {\n return /GET|HEAD/.test(method);\n };\n\n var sendRequest = function sendRequest(data, url, options) {\n var api = {\n onheaders: function onheaders() {},\n onprogress: function onprogress() {},\n onload: function onload() {},\n ontimeout: function ontimeout() {},\n onerror: function onerror() {},\n onabort: function onabort() {},\n abort: function abort() {\n aborted = true;\n xhr.abort();\n }\n }; // timeout identifier, only used when timeout is defined\n\n var aborted = false;\n var headersReceived = false; // set default options\n\n options = Object.assign({\n method: 'POST',\n headers: {},\n withCredentials: false\n }, options); // encode url\n\n url = encodeURI(url); // if method is GET, add any received data to url\n\n if (isGet(options.method) && data) {\n url = '' + url + encodeURIComponent(typeof data === 'string' ? data : JSON.stringify(data));\n } // create request\n\n\n var xhr = new XMLHttpRequest(); // progress of load\n\n var process = isGet(options.method) ? xhr : xhr.upload;\n\n process.onprogress = function (e) {\n // no progress event when aborted ( onprogress is called once after abort() )\n if (aborted) {\n return;\n }\n\n api.onprogress(e.lengthComputable, e.loaded, e.total);\n }; // tries to get header info to the app as fast as possible\n\n\n xhr.onreadystatechange = function () {\n // not interesting in these states ('unsent' and 'openend' as they don't give us any additional info)\n if (xhr.readyState < 2) {\n return;\n } // no server response\n\n\n if (xhr.readyState === 4 && xhr.status === 0) {\n return;\n }\n\n if (headersReceived) {\n return;\n }\n\n headersReceived = true; // we've probably received some useful data in response headers\n\n api.onheaders(xhr);\n }; // load successful\n\n\n xhr.onload = function () {\n // is classified as valid response\n if (xhr.status >= 200 && xhr.status < 300) {\n api.onload(xhr);\n } else {\n api.onerror(xhr);\n }\n }; // error during load\n\n\n xhr.onerror = function () {\n return api.onerror(xhr);\n }; // request aborted\n\n\n xhr.onabort = function () {\n aborted = true;\n api.onabort();\n }; // request timeout\n\n\n xhr.ontimeout = function () {\n return api.ontimeout(xhr);\n }; // open up open up!\n\n\n xhr.open(options.method, url, true); // set timeout if defined (do it after open so IE11 plays ball)\n\n if (isInt(options.timeout)) {\n xhr.timeout = options.timeout;\n } // add headers\n\n\n Object.keys(options.headers).forEach(function (key) {\n var value = unescape(encodeURIComponent(options.headers[key]));\n xhr.setRequestHeader(key, value);\n }); // set type of response\n\n if (options.responseType) {\n xhr.responseType = options.responseType;\n } // set credentials\n\n\n if (options.withCredentials) {\n xhr.withCredentials = true;\n } // let's send our data\n\n\n xhr.send(data);\n return api;\n };\n\n var createResponse = function createResponse(type, code, body, headers) {\n return {\n type: type,\n code: code,\n body: body,\n headers: headers\n };\n };\n\n var createTimeoutResponse = function createTimeoutResponse(cb) {\n return function (xhr) {\n cb(createResponse('error', 0, 'Timeout', xhr.getAllResponseHeaders()));\n };\n };\n\n var hasQS = function hasQS(str) {\n return /\\?/.test(str);\n };\n\n var buildURL = function buildURL() {\n var url = '';\n\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n\n parts.forEach(function (part) {\n url += hasQS(url) && hasQS(part) ? part.replace(/\\?/, '&') : part;\n });\n return url;\n };\n\n var createFetchFunction = function createFetchFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined; // custom handler (should also handle file, load, error, progress and abort)\n\n if (typeof action === 'function') {\n return action;\n } // no action supplied\n\n\n if (!action || !isString(action.url)) {\n return null;\n } // set onload hanlder\n\n\n var onload = action.onload || function (res) {\n return res;\n };\n\n var onerror = action.onerror || function (res) {\n return null;\n }; // internal handler\n\n\n return function (url, load, error, progress, abort, headers) {\n // do local or remote request based on if the url is external\n var request = sendRequest(url, buildURL(apiUrl, action.url), Object.assign({}, action, {\n responseType: 'blob'\n }));\n\n request.onload = function (xhr) {\n // get headers\n var headers = xhr.getAllResponseHeaders(); // get filename\n\n var filename = getFileInfoFromHeaders(headers).name || getFilenameFromURL(url); // create response\n\n load(createResponse('load', xhr.status, action.method === 'HEAD' ? null : getFileFromBlob(onload(xhr.response), filename), headers));\n };\n\n request.onerror = function (xhr) {\n error(createResponse('error', xhr.status, onerror(xhr.response) || xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.onheaders = function (xhr) {\n headers(createResponse('headers', xhr.status, null, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort; // should return request\n\n return request;\n };\n };\n\n var ChunkStatus = {\n QUEUED: 0,\n COMPLETE: 1,\n PROCESSING: 2,\n ERROR: 3,\n WAITING: 4\n };\n /*\n function signature:\n (file, metadata, load, error, progress, abort, transfer, options) => {\n return {\n abort:() => {}\n }\n }\n */\n // apiUrl, action, name, file, metadata, load, error, progress, abort, transfer, options\n\n var processFileChunked = function processFileChunked(apiUrl, action, name, file, metadata, load, error, progress, abort, transfer, options) {\n // all chunks\n var chunks = [];\n var chunkTransferId = options.chunkTransferId,\n chunkServer = options.chunkServer,\n chunkSize = options.chunkSize,\n chunkRetryDelays = options.chunkRetryDelays; // default state\n\n var state = {\n serverId: chunkTransferId,\n aborted: false\n }; // set onload handlers\n\n var ondata = action.ondata || function (fd) {\n return fd;\n };\n\n var onload = action.onload || function (xhr, method) {\n return method === 'HEAD' ? xhr.getResponseHeader('Upload-Offset') : xhr.response;\n };\n\n var onerror = action.onerror || function (res) {\n return null;\n }; // create server hook\n\n\n var requestTransferId = function requestTransferId(cb) {\n var formData = new FormData(); // add metadata under same name\n\n if (isObject(metadata)) formData.append(name, JSON.stringify(metadata));\n var headers = typeof action.headers === 'function' ? action.headers(file, metadata) : Object.assign({}, action.headers, {\n 'Upload-Length': file.size\n });\n var requestParams = Object.assign({}, action, {\n headers: headers\n }); // send request object\n\n var request = sendRequest(ondata(formData), buildURL(apiUrl, action.url), requestParams);\n\n request.onload = function (xhr) {\n return cb(onload(xhr, requestParams.method));\n };\n\n request.onerror = function (xhr) {\n return error(createResponse('error', xhr.status, onerror(xhr.response) || xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n };\n\n var requestTransferOffset = function requestTransferOffset(cb) {\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\n var headers = typeof action.headers === 'function' ? action.headers(state.serverId) : Object.assign({}, action.headers);\n var requestParams = {\n headers: headers,\n method: 'HEAD'\n };\n var request = sendRequest(null, requestUrl, requestParams);\n\n request.onload = function (xhr) {\n return cb(onload(xhr, requestParams.method));\n };\n\n request.onerror = function (xhr) {\n return error(createResponse('error', xhr.status, onerror(xhr.response) || xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n }; // create chunks\n\n\n var lastChunkIndex = Math.floor(file.size / chunkSize);\n\n for (var i = 0; i <= lastChunkIndex; i++) {\n var offset = i * chunkSize;\n var data = file.slice(offset, offset + chunkSize, 'application/offset+octet-stream');\n chunks[i] = {\n index: i,\n size: data.size,\n offset: offset,\n data: data,\n file: file,\n progress: 0,\n retries: _toConsumableArray(chunkRetryDelays),\n status: ChunkStatus.QUEUED,\n error: null,\n request: null,\n timeout: null\n };\n }\n\n var completeProcessingChunks = function completeProcessingChunks() {\n return load(state.serverId);\n };\n\n var canProcessChunk = function canProcessChunk(chunk) {\n return chunk.status === ChunkStatus.QUEUED || chunk.status === ChunkStatus.ERROR;\n };\n\n var processChunk = function processChunk(chunk) {\n // processing is paused, wait here\n if (state.aborted) return; // get next chunk to process\n\n chunk = chunk || chunks.find(canProcessChunk); // no more chunks to process\n\n if (!chunk) {\n // all done?\n if (chunks.every(function (chunk) {\n return chunk.status === ChunkStatus.COMPLETE;\n })) {\n completeProcessingChunks();\n } // no chunk to handle\n\n\n return;\n } // now processing this chunk\n\n\n chunk.status = ChunkStatus.PROCESSING;\n chunk.progress = null; // allow parsing of formdata\n\n var ondata = chunkServer.ondata || function (fd) {\n return fd;\n };\n\n var onerror = chunkServer.onerror || function (res) {\n return null;\n }; // send request object\n\n\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\n var headers = typeof chunkServer.headers === 'function' ? chunkServer.headers(chunk) : Object.assign({}, chunkServer.headers, {\n 'Content-Type': 'application/offset+octet-stream',\n 'Upload-Offset': chunk.offset,\n 'Upload-Length': file.size,\n 'Upload-Name': file.name\n });\n var request = chunk.request = sendRequest(ondata(chunk.data), requestUrl, Object.assign({}, chunkServer, {\n headers: headers\n }));\n\n request.onload = function () {\n // done!\n chunk.status = ChunkStatus.COMPLETE; // remove request reference\n\n chunk.request = null; // start processing more chunks\n\n processChunks();\n };\n\n request.onprogress = function (lengthComputable, loaded, total) {\n chunk.progress = lengthComputable ? loaded : null;\n updateTotalProgress();\n };\n\n request.onerror = function (xhr) {\n chunk.status = ChunkStatus.ERROR;\n chunk.request = null;\n chunk.error = onerror(xhr.response) || xhr.statusText;\n\n if (!retryProcessChunk(chunk)) {\n error(createResponse('error', xhr.status, onerror(xhr.response) || xhr.statusText, xhr.getAllResponseHeaders()));\n }\n };\n\n request.ontimeout = function (xhr) {\n chunk.status = ChunkStatus.ERROR;\n chunk.request = null;\n\n if (!retryProcessChunk(chunk)) {\n createTimeoutResponse(error)(xhr);\n }\n };\n\n request.onabort = function () {\n chunk.status = ChunkStatus.QUEUED;\n chunk.request = null;\n abort();\n };\n };\n\n var retryProcessChunk = function retryProcessChunk(chunk) {\n // no more retries left\n if (chunk.retries.length === 0) return false; // new retry\n\n chunk.status = ChunkStatus.WAITING;\n clearTimeout(chunk.timeout);\n chunk.timeout = setTimeout(function () {\n processChunk(chunk);\n }, chunk.retries.shift()); // we're going to retry\n\n return true;\n };\n\n var updateTotalProgress = function updateTotalProgress() {\n // calculate total progress fraction\n var totalBytesTransfered = chunks.reduce(function (p, chunk) {\n if (p === null || chunk.progress === null) return null;\n return p + chunk.progress;\n }, 0); // can't compute progress\n\n if (totalBytesTransfered === null) return progress(false, 0, 0); // calculate progress values\n\n var totalSize = chunks.reduce(function (total, chunk) {\n return total + chunk.size;\n }, 0); // can update progress indicator\n\n progress(true, totalBytesTransfered, totalSize);\n }; // process new chunks\n\n\n var processChunks = function processChunks() {\n var totalProcessing = chunks.filter(function (chunk) {\n return chunk.status === ChunkStatus.PROCESSING;\n }).length;\n if (totalProcessing >= 1) return;\n processChunk();\n };\n\n var abortChunks = function abortChunks() {\n chunks.forEach(function (chunk) {\n clearTimeout(chunk.timeout);\n\n if (chunk.request) {\n chunk.request.abort();\n }\n });\n }; // let's go!\n\n\n if (!state.serverId) {\n requestTransferId(function (serverId) {\n // stop here if aborted, might have happened in between request and callback\n if (state.aborted) return; // pass back to item so we can use it if something goes wrong\n\n transfer(serverId); // store internally\n\n state.serverId = serverId;\n processChunks();\n });\n } else {\n requestTransferOffset(function (offset) {\n // stop here if aborted, might have happened in between request and callback\n if (state.aborted) return; // mark chunks with lower offset as complete\n\n chunks.filter(function (chunk) {\n return chunk.offset < offset;\n }).forEach(function (chunk) {\n chunk.status = ChunkStatus.COMPLETE;\n chunk.progress = chunk.size;\n }); // continue processing\n\n processChunks();\n });\n }\n\n return {\n abort: function abort() {\n state.aborted = true;\n abortChunks();\n }\n };\n };\n /*\n function signature:\n (file, metadata, load, error, progress, abort) => {\n return {\n abort:() => {}\n }\n }\n */\n\n\n var createFileProcessorFunction = function createFileProcessorFunction(apiUrl, action, name, options) {\n return function (file, metadata, load, error, progress, abort, transfer) {\n // no file received\n if (!file) return; // if was passed a file, and we can chunk it, exit here\n\n var canChunkUpload = options.chunkUploads;\n var shouldChunkUpload = canChunkUpload && file.size > options.chunkSize;\n var willChunkUpload = canChunkUpload && (shouldChunkUpload || options.chunkForce);\n if (file instanceof Blob && willChunkUpload) return processFileChunked(apiUrl, action, name, file, metadata, load, error, progress, abort, transfer, options); // set handlers\n\n var ondata = action.ondata || function (fd) {\n return fd;\n };\n\n var onload = action.onload || function (res) {\n return res;\n };\n\n var onerror = action.onerror || function (res) {\n return null;\n };\n\n var headers = typeof action.headers === 'function' ? action.headers(file, metadata) || {} : Object.assign({}, action.headers);\n var requestParams = Object.assign({}, action, {\n headers: headers\n }); // create formdata object\n\n var formData = new FormData(); // add metadata under same name\n\n if (isObject(metadata)) {\n formData.append(name, JSON.stringify(metadata));\n } // Turn into an array of objects so no matter what the input, we can handle it the same way\n\n\n (file instanceof Blob ? [{\n name: null,\n file: file\n }] : file).forEach(function (item) {\n formData.append(name, item.file, item.name === null ? item.file.name : '' + item.name + item.file.name);\n }); // send request object\n\n var request = sendRequest(ondata(formData), buildURL(apiUrl, action.url), requestParams);\n\n request.onload = function (xhr) {\n load(createResponse('load', xhr.status, onload(xhr.response), xhr.getAllResponseHeaders()));\n };\n\n request.onerror = function (xhr) {\n error(createResponse('error', xhr.status, onerror(xhr.response) || xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort; // should return request\n\n return request;\n };\n };\n\n var createProcessorFunction = function createProcessorFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var name = arguments.length > 2 ? arguments[2] : undefined;\n var options = arguments.length > 3 ? arguments[3] : undefined; // custom handler (should also handle file, load, error, progress and abort)\n\n if (typeof action === 'function') return function () {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n\n return action.apply(void 0, [name].concat(params, [options]));\n }; // no action supplied\n\n if (!action || !isString(action.url)) return null; // internal handler\n\n return createFileProcessorFunction(apiUrl, action, name, options);\n };\n /*\n function signature:\n (uniqueFileId, load, error) => { }\n */\n\n\n var createRevertFunction = function createRevertFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined; // is custom implementation\n\n if (typeof action === 'function') {\n return action;\n } // no action supplied, return stub function, interface will work, but file won't be removed\n\n\n if (!action || !isString(action.url)) {\n return function (uniqueFileId, load) {\n return load();\n };\n } // set onload hanlder\n\n\n var onload = action.onload || function (res) {\n return res;\n };\n\n var onerror = action.onerror || function (res) {\n return null;\n }; // internal implementation\n\n\n return function (uniqueFileId, load, error) {\n var request = sendRequest(uniqueFileId, apiUrl + action.url, action // contains method, headers and withCredentials properties\n );\n\n request.onload = function (xhr) {\n load(createResponse('load', xhr.status, onload(xhr.response), xhr.getAllResponseHeaders()));\n };\n\n request.onerror = function (xhr) {\n error(createResponse('error', xhr.status, onerror(xhr.response) || xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n return request;\n };\n };\n\n var getRandomNumber = function getRandomNumber() {\n var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return min + Math.random() * (max - min);\n };\n\n var createPerceivedPerformanceUpdater = function createPerceivedPerformanceUpdater(cb) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var tickMin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;\n var tickMax = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n var timeout = null;\n var start = Date.now();\n\n var tick = function tick() {\n var runtime = Date.now() - start;\n var delay = getRandomNumber(tickMin, tickMax);\n\n if (runtime + delay > duration) {\n delay = runtime + delay - duration;\n }\n\n var progress = runtime / duration;\n\n if (progress >= 1 || document.hidden) {\n cb(1);\n return;\n }\n\n cb(progress);\n timeout = setTimeout(tick, delay);\n };\n\n if (duration > 0) tick();\n return {\n clear: function clear() {\n clearTimeout(timeout);\n }\n };\n };\n\n var createFileProcessor = function createFileProcessor(processFn, options) {\n var state = {\n complete: false,\n perceivedProgress: 0,\n perceivedPerformanceUpdater: null,\n progress: null,\n timestamp: null,\n perceivedDuration: 0,\n duration: 0,\n request: null,\n response: null\n };\n var allowMinimumUploadDuration = options.allowMinimumUploadDuration;\n\n var process = function process(file, metadata) {\n var progressFn = function progressFn() {\n // we've not yet started the real download, stop here\n // the request might not go through, for instance, there might be some server trouble\n // if state.progress is null, the server does not allow computing progress and we show the spinner instead\n if (state.duration === 0 || state.progress === null) return; // as we're now processing, fire the progress event\n\n api.fire('progress', api.getProgress());\n };\n\n var completeFn = function completeFn() {\n state.complete = true;\n api.fire('load-perceived', state.response.body);\n }; // let's start processing\n\n\n api.fire('start'); // set request start\n\n state.timestamp = Date.now(); // create perceived performance progress indicator\n\n state.perceivedPerformanceUpdater = createPerceivedPerformanceUpdater(function (progress) {\n state.perceivedProgress = progress;\n state.perceivedDuration = Date.now() - state.timestamp;\n progressFn(); // if fake progress is done, and a response has been received,\n // and we've not yet called the complete method\n\n if (state.response && state.perceivedProgress === 1 && !state.complete) {\n // we done!\n completeFn();\n }\n }, // random delay as in a list of files you start noticing\n // files uploading at the exact same speed\n allowMinimumUploadDuration ? getRandomNumber(750, 1500) : 0); // remember request so we can abort it later\n\n state.request = processFn( // the file to process\n file, // the metadata to send along\n metadata, // callbacks (load, error, progress, abort, transfer)\n // load expects the body to be a server id if\n // you want to make use of revert\n function (response) {\n // we put the response in state so we can access\n // it outside of this method\n state.response = isObject(response) ? response : {\n type: 'load',\n code: 200,\n body: '' + response,\n headers: {}\n }; // update duration\n\n state.duration = Date.now() - state.timestamp; // force progress to 1 as we're now done\n\n state.progress = 1; // actual load is done let's share results\n\n api.fire('load', state.response.body); // we are really done\n // if perceived progress is 1 ( wait for perceived progress to complete )\n // or if server does not support progress ( null )\n\n if (!allowMinimumUploadDuration || allowMinimumUploadDuration && state.perceivedProgress === 1) {\n completeFn();\n }\n }, // error is expected to be an object with type, code, body\n function (error) {\n // cancel updater\n state.perceivedPerformanceUpdater.clear(); // update others about this error\n\n api.fire('error', isObject(error) ? error : {\n type: 'error',\n code: 0,\n body: '' + error\n });\n }, // actual processing progress\n function (computable, current, total) {\n // update actual duration\n state.duration = Date.now() - state.timestamp; // update actual progress\n\n state.progress = computable ? current / total : null;\n progressFn();\n }, // abort does not expect a value\n function () {\n // stop updater\n state.perceivedPerformanceUpdater.clear(); // fire the abort event so we can switch visuals\n\n api.fire('abort', state.response ? state.response.body : null);\n }, // register the id for this transfer\n function (transferId) {\n api.fire('transfer', transferId);\n });\n };\n\n var abort = function abort() {\n // no request running, can't abort\n if (!state.request) return; // stop updater\n\n state.perceivedPerformanceUpdater.clear(); // abort actual request\n\n if (state.request.abort) state.request.abort(); // if has response object, we've completed the request\n\n state.complete = true;\n };\n\n var reset = function reset() {\n abort();\n state.complete = false;\n state.perceivedProgress = 0;\n state.progress = 0;\n state.timestamp = null;\n state.perceivedDuration = 0;\n state.duration = 0;\n state.request = null;\n state.response = null;\n };\n\n var getProgress = allowMinimumUploadDuration ? function () {\n return state.progress ? Math.min(state.progress, state.perceivedProgress) : null;\n } : function () {\n return state.progress || null;\n };\n var getDuration = allowMinimumUploadDuration ? function () {\n return Math.min(state.duration, state.perceivedDuration);\n } : function () {\n return state.duration;\n };\n var api = Object.assign({}, on(), {\n process: process,\n // start processing file\n abort: abort,\n // abort active process request\n getProgress: getProgress,\n getDuration: getDuration,\n reset: reset\n });\n return api;\n };\n\n var getFilenameWithoutExtension = function getFilenameWithoutExtension(name) {\n return name.substring(0, name.lastIndexOf('.')) || name;\n };\n\n var createFileStub = function createFileStub(source) {\n var data = [source.name, source.size, source.type]; // is blob or base64, then we need to set the name\n\n if (source instanceof Blob || isBase64DataURI(source)) {\n data[0] = source.name || getDateString();\n } else if (isBase64DataURI(source)) {\n // if is base64 data uri we need to determine the average size and type\n data[1] = source.length;\n data[2] = getMimeTypeFromBase64DataURI(source);\n } else if (isString(source)) {\n // url\n data[0] = getFilenameFromURL(source);\n data[1] = 0;\n data[2] = 'application/octet-stream';\n }\n\n return {\n name: data[0],\n size: data[1],\n type: data[2]\n };\n };\n\n var isFile = function isFile(value) {\n return !!(value instanceof File || value instanceof Blob && value.name);\n };\n\n var deepCloneObject = function deepCloneObject(src) {\n if (!isObject(src)) return src;\n var target = isArray(src) ? [] : {};\n\n for (var key in src) {\n if (!src.hasOwnProperty(key)) continue;\n var v = src[key];\n target[key] = v && isObject(v) ? deepCloneObject(v) : v;\n }\n\n return target;\n };\n\n var createItem = function createItem() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var serverFileReference = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; // unique id for this item, is used to identify the item across views\n\n var id = getUniqueId();\n /**\n * Internal item state\n */\n\n var state = {\n // is archived\n archived: false,\n // if is frozen, no longer fires events\n frozen: false,\n // removed from view\n released: false,\n // original source\n source: null,\n // file model reference\n file: file,\n // id of file on server\n serverFileReference: serverFileReference,\n // id of file transfer on server\n transferId: null,\n // is aborted\n processingAborted: false,\n // current item status\n status: serverFileReference ? ItemStatus.PROCESSING_COMPLETE : ItemStatus.INIT,\n // active processes\n activeLoader: null,\n activeProcessor: null\n }; // callback used when abort processing is called to link back to the resolve method\n\n var abortProcessingRequestComplete = null;\n /**\n * Externally added item metadata\n */\n\n var metadata = {}; // item data\n\n var setStatus = function setStatus(status) {\n return state.status = status;\n }; // fire event unless the item has been archived\n\n\n var fire = function fire(event) {\n if (state.released || state.frozen) return;\n\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n api.fire.apply(api, [event].concat(params));\n }; // file data\n\n\n var getFileExtension = function getFileExtension() {\n return getExtensionFromFilename(state.file.name);\n };\n\n var getFileType = function getFileType() {\n return state.file.type;\n };\n\n var getFileSize = function getFileSize() {\n return state.file.size;\n };\n\n var getFile = function getFile() {\n return state.file;\n }; //\n // logic to load a file\n //\n\n\n var load = function load(source, loader, onload) {\n // remember the original item source\n state.source = source; // source is known\n\n api.fireSync('init'); // file stub is already there\n\n if (state.file) {\n api.fireSync('load-skip');\n return;\n } // set a stub file object while loading the actual data\n\n\n state.file = createFileStub(source); // starts loading\n\n loader.on('init', function () {\n fire('load-init');\n }); // we'eve received a size indication, let's update the stub\n\n loader.on('meta', function (meta) {\n // set size of file stub\n state.file.size = meta.size; // set name of file stub\n\n state.file.filename = meta.filename; // if has received source, we done\n\n if (meta.source) {\n origin = FileOrigin.LIMBO;\n state.serverFileReference = meta.source;\n state.status = ItemStatus.PROCESSING_COMPLETE;\n } // size has been updated\n\n\n fire('load-meta');\n }); // the file is now loading we need to update the progress indicators\n\n loader.on('progress', function (progress) {\n setStatus(ItemStatus.LOADING);\n fire('load-progress', progress);\n }); // an error was thrown while loading the file, we need to switch to error state\n\n loader.on('error', function (error) {\n setStatus(ItemStatus.LOAD_ERROR);\n fire('load-request-error', error);\n }); // user or another process aborted the file load (cannot retry)\n\n loader.on('abort', function () {\n setStatus(ItemStatus.INIT);\n fire('load-abort');\n }); // done loading\n\n loader.on('load', function (file) {\n // as we've now loaded the file the loader is no longer required\n state.activeLoader = null; // called when file has loaded succesfully\n\n var success = function success(result) {\n // set (possibly) transformed file\n state.file = isFile(result) ? result : state.file; // file received\n\n if (origin === FileOrigin.LIMBO && state.serverFileReference) {\n setStatus(ItemStatus.PROCESSING_COMPLETE);\n } else {\n setStatus(ItemStatus.IDLE);\n }\n\n fire('load');\n };\n\n var error = function error(result) {\n // set original file\n state.file = file;\n fire('load-meta');\n setStatus(ItemStatus.LOAD_ERROR);\n fire('load-file-error', result);\n }; // if we already have a server file reference, we don't need to call the onload method\n\n\n if (state.serverFileReference) {\n success(file);\n return;\n } // no server id, let's give this file the full treatment\n\n\n onload(file, success, error);\n }); // set loader source data\n\n loader.setSource(source); // set as active loader\n\n state.activeLoader = loader; // load the source data\n\n loader.load();\n };\n\n var retryLoad = function retryLoad() {\n if (!state.activeLoader) {\n return;\n }\n\n state.activeLoader.load();\n };\n\n var abortLoad = function abortLoad() {\n if (state.activeLoader) {\n state.activeLoader.abort();\n return;\n }\n\n setStatus(ItemStatus.INIT);\n fire('load-abort');\n }; //\n // logic to process a file\n //\n\n\n var process = function process(processor, onprocess) {\n // processing was aborted\n if (state.processingAborted) {\n state.processingAborted = false;\n return;\n } // now processing\n\n\n setStatus(ItemStatus.PROCESSING); // reset abort callback\n\n abortProcessingRequestComplete = null; // if no file loaded we'll wait for the load event\n\n if (!(state.file instanceof Blob)) {\n api.on('load', function () {\n process(processor, onprocess);\n });\n return;\n } // setup processor\n\n\n processor.on('load', function (serverFileReference) {\n // need this id to be able to revert the upload\n state.transferId = null;\n state.serverFileReference = serverFileReference;\n }); // register transfer id\n\n processor.on('transfer', function (transferId) {\n // need this id to be able to revert the upload\n state.transferId = transferId;\n });\n processor.on('load-perceived', function (serverFileReference) {\n // no longer required\n state.activeProcessor = null; // need this id to be able to rever the upload\n\n state.transferId = null;\n state.serverFileReference = serverFileReference;\n setStatus(ItemStatus.PROCESSING_COMPLETE);\n fire('process-complete', serverFileReference);\n });\n processor.on('start', function () {\n fire('process-start');\n });\n processor.on('error', function (error) {\n state.activeProcessor = null;\n setStatus(ItemStatus.PROCESSING_ERROR);\n fire('process-error', error);\n });\n processor.on('abort', function (serverFileReference) {\n state.activeProcessor = null; // if file was uploaded but processing was cancelled during perceived processor time store file reference\n\n state.serverFileReference = serverFileReference;\n setStatus(ItemStatus.IDLE);\n fire('process-abort'); // has timeout so doesn't interfere with remove action\n\n if (abortProcessingRequestComplete) {\n abortProcessingRequestComplete();\n }\n });\n processor.on('progress', function (progress) {\n fire('process-progress', progress);\n }); // when successfully transformed\n\n var success = function success(file) {\n // if was archived in the mean time, don't process\n if (state.archived) return; // process file!\n\n processor.process(file, Object.assign({}, metadata));\n }; // something went wrong during transform phase\n\n\n var error = console.error; // start processing the file\n\n onprocess(state.file, success, error); // set as active processor\n\n state.activeProcessor = processor;\n };\n\n var requestProcessing = function requestProcessing() {\n state.processingAborted = false;\n setStatus(ItemStatus.PROCESSING_QUEUED);\n };\n\n var abortProcessing = function abortProcessing() {\n return new Promise(function (resolve) {\n if (!state.activeProcessor) {\n state.processingAborted = true;\n setStatus(ItemStatus.IDLE);\n fire('process-abort');\n resolve();\n return;\n }\n\n abortProcessingRequestComplete = function abortProcessingRequestComplete() {\n resolve();\n };\n\n state.activeProcessor.abort();\n });\n }; //\n // logic to revert a processed file\n //\n\n\n var revert = function revert(revertFileUpload, forceRevert) {\n return new Promise(function (resolve, reject) {\n // a completed upload will have a serverFileReference, a failed chunked upload where\n // getting a serverId succeeded but >=0 chunks have been uploaded will have transferId set\n var serverTransferId = state.serverFileReference !== null ? state.serverFileReference : state.transferId; // cannot revert without a server id for this process\n\n if (serverTransferId === null) {\n resolve();\n return;\n } // revert the upload (fire and forget)\n\n\n revertFileUpload(serverTransferId, function () {\n // reset file server id and transfer id as now it's not available on the server\n state.serverFileReference = null;\n state.transferId = null;\n resolve();\n }, function (error) {\n // don't set error state when reverting is optional, it will always resolve\n if (!forceRevert) {\n resolve();\n return;\n } // oh no errors\n\n\n setStatus(ItemStatus.PROCESSING_REVERT_ERROR);\n fire('process-revert-error');\n reject(error);\n }); // fire event\n\n setStatus(ItemStatus.IDLE);\n fire('process-revert');\n });\n }; // exposed methods\n\n\n var _setMetadata = function setMetadata(key, value, silent) {\n var keys = key.split('.');\n var root = keys[0];\n var last = keys.pop();\n var data = metadata;\n keys.forEach(function (key) {\n return data = data[key];\n }); // compare old value against new value, if they're the same, we're not updating\n\n if (JSON.stringify(data[last]) === JSON.stringify(value)) return; // update value\n\n data[last] = value; // fire update\n\n fire('metadata-update', {\n key: root,\n value: metadata[root],\n silent: silent\n });\n };\n\n var getMetadata = function getMetadata(key) {\n return deepCloneObject(key ? metadata[key] : metadata);\n };\n\n var api = Object.assign({\n id: {\n get: function get() {\n return id;\n }\n },\n origin: {\n get: function get() {\n return origin;\n },\n set: function set(value) {\n return origin = value;\n }\n },\n serverId: {\n get: function get() {\n return state.serverFileReference;\n }\n },\n transferId: {\n get: function get() {\n return state.transferId;\n }\n },\n status: {\n get: function get() {\n return state.status;\n }\n },\n filename: {\n get: function get() {\n return state.file.name;\n }\n },\n filenameWithoutExtension: {\n get: function get() {\n return getFilenameWithoutExtension(state.file.name);\n }\n },\n fileExtension: {\n get: getFileExtension\n },\n fileType: {\n get: getFileType\n },\n fileSize: {\n get: getFileSize\n },\n file: {\n get: getFile\n },\n relativePath: {\n get: function get() {\n return state.file._relativePath;\n }\n },\n source: {\n get: function get() {\n return state.source;\n }\n },\n getMetadata: getMetadata,\n setMetadata: function setMetadata(key, value, silent) {\n if (isObject(key)) {\n var data = key;\n Object.keys(data).forEach(function (key) {\n _setMetadata(key, data[key], value);\n });\n return key;\n }\n\n _setMetadata(key, value, silent);\n\n return value;\n },\n extend: function extend(name, handler) {\n return itemAPI[name] = handler;\n },\n abortLoad: abortLoad,\n retryLoad: retryLoad,\n requestProcessing: requestProcessing,\n abortProcessing: abortProcessing,\n load: load,\n process: process,\n revert: revert\n }, on(), {\n freeze: function freeze() {\n return state.frozen = true;\n },\n release: function release() {\n return state.released = true;\n },\n released: {\n get: function get() {\n return state.released;\n }\n },\n archive: function archive() {\n return state.archived = true;\n },\n archived: {\n get: function get() {\n return state.archived;\n }\n },\n // replace source and file object\n setFile: function setFile(file) {\n return state.file = file;\n }\n }); // create it here instead of returning it instantly so we can extend it later\n\n var itemAPI = createObject(api);\n return itemAPI;\n };\n\n var getItemIndexByQuery = function getItemIndexByQuery(items, query) {\n // just return first index\n if (isEmpty(query)) {\n return 0;\n } // invalid queries\n\n\n if (!isString(query)) {\n return -1;\n } // return item by id (or -1 if not found)\n\n\n return items.findIndex(function (item) {\n return item.id === query;\n });\n };\n\n var getItemById = function getItemById(items, itemId) {\n var index = getItemIndexByQuery(items, itemId);\n\n if (index < 0) {\n return;\n }\n\n return items[index] || null;\n };\n\n var fetchBlob = function fetchBlob(url, load, error, progress, abort, headers) {\n var request = sendRequest(null, url, {\n method: 'GET',\n responseType: 'blob'\n });\n\n request.onload = function (xhr) {\n // get headers\n var headers = xhr.getAllResponseHeaders(); // get filename\n\n var filename = getFileInfoFromHeaders(headers).name || getFilenameFromURL(url); // create response\n\n load(createResponse('load', xhr.status, getFileFromBlob(xhr.response, filename), headers));\n };\n\n request.onerror = function (xhr) {\n error(createResponse('error', xhr.status, xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.onheaders = function (xhr) {\n headers(createResponse('headers', xhr.status, null, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort; // should return request\n\n return request;\n };\n\n var getDomainFromURL = function getDomainFromURL(url) {\n if (url.indexOf('//') === 0) {\n url = location.protocol + url;\n }\n\n return url.toLowerCase().replace('blob:', '').replace(/([a-z])?:\\/\\//, '$1').split('/')[0];\n };\n\n var isExternalURL = function isExternalURL(url) {\n return (url.indexOf(':') > -1 || url.indexOf('//') > -1) && getDomainFromURL(location.href) !== getDomainFromURL(url);\n };\n\n var dynamicLabel = function dynamicLabel(label) {\n return function () {\n return isFunction(label) ? label.apply(void 0, arguments) : label;\n };\n };\n\n var isMockItem = function isMockItem(item) {\n return !isFile(item.file);\n };\n\n var listUpdated = function listUpdated(dispatch, state) {\n clearTimeout(state.listUpdateTimeout);\n state.listUpdateTimeout = setTimeout(function () {\n dispatch('DID_UPDATE_ITEMS', {\n items: getActiveItems(state.items)\n });\n }, 0);\n };\n\n var optionalPromise = function optionalPromise(fn) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return new Promise(function (resolve) {\n if (!fn) {\n return resolve(true);\n }\n\n var result = fn.apply(void 0, params);\n\n if (result == null) {\n return resolve(true);\n }\n\n if (typeof result === 'boolean') {\n return resolve(result);\n }\n\n if (typeof result.then === 'function') {\n result.then(resolve);\n }\n });\n };\n\n var sortItems = function sortItems(state, compare) {\n state.items.sort(function (a, b) {\n return compare(createItemAPI(a), createItemAPI(b));\n });\n }; // returns item based on state\n\n\n var getItemByQueryFromState = function getItemByQueryFromState(state, itemHandler) {\n return function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = _ref.query,\n _ref$success = _ref.success,\n success = _ref$success === void 0 ? function () {} : _ref$success,\n _ref$failure = _ref.failure,\n failure = _ref$failure === void 0 ? function () {} : _ref$failure,\n options = _objectWithoutProperties(_ref, ['query', 'success', 'failure']);\n\n var item = getItemByQuery(state.items, query);\n\n if (!item) {\n failure({\n error: createResponse('error', 0, 'Item not found'),\n file: null\n });\n return;\n }\n\n itemHandler(item, success, failure, options || {});\n };\n };\n\n var actions = function actions(dispatch, query, state) {\n return {\n /**\n * Aborts all ongoing processes\n */\n ABORT_ALL: function ABORT_ALL() {\n getActiveItems(state.items).forEach(function (item) {\n item.freeze();\n item.abortLoad();\n item.abortProcessing();\n });\n },\n\n /**\n * Sets initial files\n */\n DID_SET_FILES: function DID_SET_FILES(_ref2) {\n var _ref2$value = _ref2.value,\n value = _ref2$value === void 0 ? [] : _ref2$value; // map values to file objects\n\n var files = value.map(function (file) {\n return {\n source: file.source ? file.source : file,\n options: file.options\n };\n }); // loop over files, if file is in list, leave it be, if not, remove\n // test if items should be moved\n\n var activeItems = getActiveItems(state.items);\n activeItems.forEach(function (item) {\n // if item not is in new value, remove\n if (!files.find(function (file) {\n return file.source === item.source || file.source === item.file;\n })) {\n dispatch('REMOVE_ITEM', {\n query: item,\n remove: false\n });\n }\n }); // add new files\n\n activeItems = getActiveItems(state.items);\n files.forEach(function (file, index) {\n // if file is already in list\n if (activeItems.find(function (item) {\n return item.source === file.source || item.file === file.source;\n })) return; // not in list, add\n\n dispatch('ADD_ITEM', Object.assign({}, file, {\n interactionMethod: InteractionMethod.NONE,\n index: index\n }));\n });\n },\n DID_UPDATE_ITEM_METADATA: function DID_UPDATE_ITEM_METADATA(_ref3) {\n var id = _ref3.id,\n action = _ref3.action,\n change = _ref3.change; // don't do anything\n\n if (change.silent) return; // if is called multiple times in close succession we combined all calls together to save resources\n\n clearTimeout(state.itemUpdateTimeout);\n state.itemUpdateTimeout = setTimeout(function () {\n var item = getItemById(state.items, id); // only revert and attempt to upload when we're uploading to a server\n\n if (!query('IS_ASYNC')) {\n // should we update the output data\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\n item: item,\n query: query,\n action: action,\n change: change\n }).then(function (shouldPrepareOutput) {\n // plugins determined the output data should be prepared (or not), can be adjusted with beforePrepareOutput hook\n var beforePrepareFile = query('GET_BEFORE_PREPARE_FILE');\n if (beforePrepareFile) shouldPrepareOutput = beforePrepareFile(item, shouldPrepareOutput);\n if (!shouldPrepareOutput) return;\n dispatch('REQUEST_PREPARE_OUTPUT', {\n query: id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', {\n id: id,\n file: file\n });\n }\n }, true);\n });\n return;\n } // if is local item we need to enable upload button so change can be propagated to server\n\n\n if (item.origin === FileOrigin.LOCAL) {\n dispatch('DID_LOAD_ITEM', {\n id: item.id,\n error: null,\n serverFileReference: item.source\n });\n } // for async scenarios\n\n\n var upload = function upload() {\n // we push this forward a bit so the interface is updated correctly\n setTimeout(function () {\n dispatch('REQUEST_ITEM_PROCESSING', {\n query: id\n });\n }, 32);\n };\n\n var revert = function revert(doUpload) {\n item.revert(createRevertFunction(state.options.server.url, state.options.server.revert), query('GET_FORCE_REVERT')).then(doUpload ? upload : function () {}).catch(function () {});\n };\n\n var abort = function abort(doUpload) {\n item.abortProcessing().then(doUpload ? upload : function () {});\n }; // if we should re-upload the file immediately\n\n\n if (item.status === ItemStatus.PROCESSING_COMPLETE) {\n return revert(state.options.instantUpload);\n } // if currently uploading, cancel upload\n\n\n if (item.status === ItemStatus.PROCESSING) {\n return abort(state.options.instantUpload);\n }\n\n if (state.options.instantUpload) {\n upload();\n }\n }, 0);\n },\n MOVE_ITEM: function MOVE_ITEM(_ref4) {\n var query = _ref4.query,\n index = _ref4.index;\n var item = getItemByQuery(state.items, query);\n if (!item) return;\n var currentIndex = state.items.indexOf(item);\n index = limit(index, 0, state.items.length - 1);\n if (currentIndex === index) return;\n state.items.splice(index, 0, state.items.splice(currentIndex, 1)[0]);\n },\n SORT: function SORT(_ref5) {\n var compare = _ref5.compare;\n sortItems(state, compare);\n dispatch('DID_SORT_ITEMS', {\n items: query('GET_ACTIVE_ITEMS')\n });\n },\n ADD_ITEMS: function ADD_ITEMS(_ref6) {\n var items = _ref6.items,\n index = _ref6.index,\n interactionMethod = _ref6.interactionMethod,\n _ref6$success = _ref6.success,\n success = _ref6$success === void 0 ? function () {} : _ref6$success,\n _ref6$failure = _ref6.failure,\n failure = _ref6$failure === void 0 ? function () {} : _ref6$failure;\n var currentIndex = index;\n\n if (index === -1 || typeof index === 'undefined') {\n var insertLocation = query('GET_ITEM_INSERT_LOCATION');\n var totalItems = query('GET_TOTAL_ITEMS');\n currentIndex = insertLocation === 'before' ? 0 : totalItems;\n }\n\n var ignoredFiles = query('GET_IGNORED_FILES');\n\n var isValidFile = function isValidFile(source) {\n return isFile(source) ? !ignoredFiles.includes(source.name.toLowerCase()) : !isEmpty(source);\n };\n\n var validItems = items.filter(isValidFile);\n var promises = validItems.map(function (source) {\n return new Promise(function (resolve, reject) {\n dispatch('ADD_ITEM', {\n interactionMethod: interactionMethod,\n source: source.source || source,\n success: resolve,\n failure: reject,\n index: currentIndex++,\n options: source.options || {}\n });\n });\n });\n Promise.all(promises).then(success).catch(failure);\n },\n\n /**\n * @param source\n * @param index\n * @param interactionMethod\n */\n ADD_ITEM: function ADD_ITEM(_ref7) {\n var source = _ref7.source,\n _ref7$index = _ref7.index,\n index = _ref7$index === void 0 ? -1 : _ref7$index,\n interactionMethod = _ref7.interactionMethod,\n _ref7$success = _ref7.success,\n success = _ref7$success === void 0 ? function () {} : _ref7$success,\n _ref7$failure = _ref7.failure,\n failure = _ref7$failure === void 0 ? function () {} : _ref7$failure,\n _ref7$options = _ref7.options,\n options = _ref7$options === void 0 ? {} : _ref7$options; // if no source supplied\n\n if (isEmpty(source)) {\n failure({\n error: createResponse('error', 0, 'No source'),\n file: null\n });\n return;\n } // filter out invalid file items, used to filter dropped directory contents\n\n\n if (isFile(source) && state.options.ignoredFiles.includes(source.name.toLowerCase())) {\n // fail silently\n return;\n } // test if there's still room in the list of files\n\n\n if (!hasRoomForItem(state)) {\n // if multiple allowed, we can't replace\n // or if only a single item is allowed but we're not allowed to replace it we exit\n if (state.options.allowMultiple || !state.options.allowMultiple && !state.options.allowReplace) {\n var error = createResponse('warning', 0, 'Max files');\n dispatch('DID_THROW_MAX_FILES', {\n source: source,\n error: error\n });\n failure({\n error: error,\n file: null\n });\n return;\n } // let's replace the item\n // id of first item we're about to remove\n\n\n var _item = getActiveItems(state.items)[0]; // if has been processed remove it from the server as well\n\n if (_item.status === ItemStatus.PROCESSING_COMPLETE || _item.status === ItemStatus.PROCESSING_REVERT_ERROR) {\n var forceRevert = query('GET_FORCE_REVERT');\n\n _item.revert(createRevertFunction(state.options.server.url, state.options.server.revert), forceRevert).then(function () {\n if (!forceRevert) return; // try to add now\n\n dispatch('ADD_ITEM', {\n source: source,\n index: index,\n interactionMethod: interactionMethod,\n success: success,\n failure: failure,\n options: options\n });\n }).catch(function () {}); // no need to handle this catch state for now\n\n\n if (forceRevert) return;\n } // remove first item as it will be replaced by this item\n\n\n dispatch('REMOVE_ITEM', {\n query: _item.id\n });\n } // where did the file originate\n\n\n var origin = options.type === 'local' ? FileOrigin.LOCAL : options.type === 'limbo' ? FileOrigin.LIMBO : FileOrigin.INPUT; // create a new blank item\n\n var item = createItem( // where did this file come from\n origin, // an input file never has a server file reference\n origin === FileOrigin.INPUT ? null : source, // file mock data, if defined\n options.file); // set initial meta data\n\n Object.keys(options.metadata || {}).forEach(function (key) {\n item.setMetadata(key, options.metadata[key]);\n }); // created the item, let plugins add methods\n\n applyFilters('DID_CREATE_ITEM', item, {\n query: query,\n dispatch: dispatch\n }); // where to insert new items\n\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION'); // adjust index if is not allowed to pick location\n\n if (!state.options.itemInsertLocationFreedom) {\n index = itemInsertLocation === 'before' ? -1 : state.items.length;\n } // add item to list\n\n\n insertItem(state.items, item, index); // sort items in list\n\n if (isFunction(itemInsertLocation) && source) {\n sortItems(state, itemInsertLocation);\n } // get a quick reference to the item id\n\n\n var id = item.id; // observe item events\n\n item.on('init', function () {\n dispatch('DID_INIT_ITEM', {\n id: id\n });\n });\n item.on('load-init', function () {\n dispatch('DID_START_ITEM_LOAD', {\n id: id\n });\n });\n item.on('load-meta', function () {\n dispatch('DID_UPDATE_ITEM_META', {\n id: id\n });\n });\n item.on('load-progress', function (progress) {\n dispatch('DID_UPDATE_ITEM_LOAD_PROGRESS', {\n id: id,\n progress: progress\n });\n });\n item.on('load-request-error', function (error) {\n var mainStatus = dynamicLabel(state.options.labelFileLoadError)(error); // is client error, no way to recover\n\n if (error.code >= 400 && error.code < 500) {\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: error,\n status: {\n main: mainStatus,\n sub: error.code + ' (' + error.body + ')'\n }\n }); // reject the file so can be dealt with through API\n\n failure({\n error: error,\n file: createItemAPI(item)\n });\n return;\n } // is possible server error, so might be possible to retry\n\n\n dispatch('DID_THROW_ITEM_LOAD_ERROR', {\n id: id,\n error: error,\n status: {\n main: mainStatus,\n sub: state.options.labelTapToRetry\n }\n });\n });\n item.on('load-file-error', function (error) {\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: error.status,\n status: error.status\n });\n failure({\n error: error.status,\n file: createItemAPI(item)\n });\n });\n item.on('load-abort', function () {\n dispatch('REMOVE_ITEM', {\n query: id\n });\n });\n item.on('load-skip', function () {\n item.on('metadata-update', function (change) {\n if (!isFile(item.file)) return;\n dispatch('DID_UPDATE_ITEM_METADATA', {\n id: id,\n change: change\n });\n });\n dispatch('COMPLETE_LOAD_ITEM', {\n query: id,\n item: item,\n data: {\n source: source,\n success: success\n }\n });\n });\n item.on('load', function () {\n var handleAdd = function handleAdd(shouldAdd) {\n // no should not add this file\n if (!shouldAdd) {\n dispatch('REMOVE_ITEM', {\n query: id\n });\n return;\n } // now interested in metadata updates\n\n\n item.on('metadata-update', function (change) {\n dispatch('DID_UPDATE_ITEM_METADATA', {\n id: id,\n change: change\n });\n }); // let plugins decide if the output data should be prepared at this point\n // means we'll do this and wait for idle state\n\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\n item: item,\n query: query\n }).then(function (shouldPrepareOutput) {\n // plugins determined the output data should be prepared (or not), can be adjusted with beforePrepareOutput hook\n var beforePrepareFile = query('GET_BEFORE_PREPARE_FILE');\n if (beforePrepareFile) shouldPrepareOutput = beforePrepareFile(item, shouldPrepareOutput);\n\n var loadComplete = function loadComplete() {\n dispatch('COMPLETE_LOAD_ITEM', {\n query: id,\n item: item,\n data: {\n source: source,\n success: success\n }\n });\n listUpdated(dispatch, state);\n }; // exit\n\n\n if (shouldPrepareOutput) {\n // wait for idle state and then run PREPARE_OUTPUT\n dispatch('REQUEST_PREPARE_OUTPUT', {\n query: id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', {\n id: id,\n file: file\n });\n loadComplete();\n }\n }, true);\n return;\n }\n\n loadComplete();\n });\n }; // item loaded, allow plugins to\n // - read data (quickly)\n // - add metadata\n\n\n applyFilterChain('DID_LOAD_ITEM', item, {\n query: query,\n dispatch: dispatch\n }).then(function () {\n optionalPromise(query('GET_BEFORE_ADD_FILE'), createItemAPI(item)).then(handleAdd);\n }).catch(function (e) {\n if (!e || !e.error || !e.status) return handleAdd(false);\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: e.error,\n status: e.status\n });\n });\n });\n item.on('process-start', function () {\n dispatch('DID_START_ITEM_PROCESSING', {\n id: id\n });\n });\n item.on('process-progress', function (progress) {\n dispatch('DID_UPDATE_ITEM_PROCESS_PROGRESS', {\n id: id,\n progress: progress\n });\n });\n item.on('process-error', function (error) {\n dispatch('DID_THROW_ITEM_PROCESSING_ERROR', {\n id: id,\n error: error,\n status: {\n main: dynamicLabel(state.options.labelFileProcessingError)(error),\n sub: state.options.labelTapToRetry\n }\n });\n });\n item.on('process-revert-error', function (error) {\n dispatch('DID_THROW_ITEM_PROCESSING_REVERT_ERROR', {\n id: id,\n error: error,\n status: {\n main: dynamicLabel(state.options.labelFileProcessingRevertError)(error),\n sub: state.options.labelTapToRetry\n }\n });\n });\n item.on('process-complete', function (serverFileReference) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\n id: id,\n error: null,\n serverFileReference: serverFileReference\n });\n dispatch('DID_DEFINE_VALUE', {\n id: id,\n value: serverFileReference\n });\n });\n item.on('process-abort', function () {\n dispatch('DID_ABORT_ITEM_PROCESSING', {\n id: id\n });\n });\n item.on('process-revert', function () {\n dispatch('DID_REVERT_ITEM_PROCESSING', {\n id: id\n });\n dispatch('DID_DEFINE_VALUE', {\n id: id,\n value: null\n });\n }); // let view know the item has been inserted\n\n dispatch('DID_ADD_ITEM', {\n id: id,\n index: index,\n interactionMethod: interactionMethod\n });\n listUpdated(dispatch, state); // start loading the source\n\n var _ref8 = state.options.server || {},\n url = _ref8.url,\n load = _ref8.load,\n restore = _ref8.restore,\n fetch = _ref8.fetch;\n\n item.load(source, // this creates a function that loads the file based on the type of file (string, base64, blob, file) and location of file (local, remote, limbo)\n createFileLoader(origin === FileOrigin.INPUT ? // input, if is remote, see if should use custom fetch, else use default fetchBlob\n isString(source) && isExternalURL(source) ? fetch ? createFetchFunction(url, fetch) : fetchBlob // remote url\n : fetchBlob // try to fetch url\n : // limbo or local\n origin === FileOrigin.LIMBO ? createFetchFunction(url, restore) // limbo\n : createFetchFunction(url, load) // local\n ), // called when the file is loaded so it can be piped through the filters\n function (file, success, error) {\n // let's process the file\n applyFilterChain('LOAD_FILE', file, {\n query: query\n }).then(success).catch(error);\n });\n },\n REQUEST_PREPARE_OUTPUT: function REQUEST_PREPARE_OUTPUT(_ref9) {\n var item = _ref9.item,\n success = _ref9.success,\n _ref9$failure = _ref9.failure,\n failure = _ref9$failure === void 0 ? function () {} : _ref9$failure; // error response if item archived\n\n var err = {\n error: createResponse('error', 0, 'Item not found'),\n file: null\n }; // don't handle archived items, an item could have been archived (load aborted) while waiting to be prepared\n\n if (item.archived) return failure(err); // allow plugins to alter the file data\n\n applyFilterChain('PREPARE_OUTPUT', item.file, {\n query: query,\n item: item\n }).then(function (result) {\n applyFilterChain('COMPLETE_PREPARE_OUTPUT', result, {\n query: query,\n item: item\n }).then(function (result) {\n // don't handle archived items, an item could have been archived (load aborted) while being prepared\n if (item.archived) return failure(err); // we done!\n\n success(result);\n });\n });\n },\n COMPLETE_LOAD_ITEM: function COMPLETE_LOAD_ITEM(_ref10) {\n var item = _ref10.item,\n data = _ref10.data;\n var success = data.success,\n source = data.source; // sort items in list\n\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION');\n\n if (isFunction(itemInsertLocation) && source) {\n sortItems(state, itemInsertLocation);\n } // let interface know the item has loaded\n\n\n dispatch('DID_LOAD_ITEM', {\n id: item.id,\n error: null,\n serverFileReference: item.origin === FileOrigin.INPUT ? null : source\n }); // item has been successfully loaded and added to the\n // list of items so can now be safely returned for use\n\n success(createItemAPI(item)); // if this is a local server file we need to show a different state\n\n if (item.origin === FileOrigin.LOCAL) {\n dispatch('DID_LOAD_LOCAL_ITEM', {\n id: item.id\n });\n return;\n } // if is a temp server file we prevent async upload call here (as the file is already on the server)\n\n\n if (item.origin === FileOrigin.LIMBO) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\n id: item.id,\n error: null,\n serverFileReference: source\n });\n dispatch('DID_DEFINE_VALUE', {\n id: item.id,\n value: item.serverId || source\n });\n return;\n } // id we are allowed to upload the file immediately, lets do it\n\n\n if (query('IS_ASYNC') && state.options.instantUpload) {\n dispatch('REQUEST_ITEM_PROCESSING', {\n query: item.id\n });\n }\n },\n RETRY_ITEM_LOAD: getItemByQueryFromState(state, function (item) {\n // try loading the source one more time\n item.retryLoad();\n }),\n REQUEST_ITEM_PREPARE: getItemByQueryFromState(state, function (item, _success, failure) {\n dispatch('REQUEST_PREPARE_OUTPUT', {\n query: item.id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', {\n id: item.id,\n file: file\n });\n\n _success({\n file: item,\n output: file\n });\n },\n failure: failure\n }, true);\n }),\n REQUEST_ITEM_PROCESSING: getItemByQueryFromState(state, function (item, success, failure) {\n // cannot be queued (or is already queued)\n var itemCanBeQueuedForProcessing = // waiting for something\n item.status === ItemStatus.IDLE || // processing went wrong earlier\n item.status === ItemStatus.PROCESSING_ERROR; // not ready to be processed\n\n if (!itemCanBeQueuedForProcessing) {\n var processNow = function processNow() {\n return dispatch('REQUEST_ITEM_PROCESSING', {\n query: item,\n success: success,\n failure: failure\n });\n };\n\n var process = function process() {\n return document.hidden ? processNow() : setTimeout(processNow, 32);\n }; // if already done processing or tried to revert but didn't work, try again\n\n\n if (item.status === ItemStatus.PROCESSING_COMPLETE || item.status === ItemStatus.PROCESSING_REVERT_ERROR) {\n item.revert(createRevertFunction(state.options.server.url, state.options.server.revert), query('GET_FORCE_REVERT')).then(process).catch(function () {}); // don't continue with processing if something went wrong\n } else if (item.status === ItemStatus.PROCESSING) {\n item.abortProcessing().then(process);\n }\n\n return;\n } // already queued for processing\n\n\n if (item.status === ItemStatus.PROCESSING_QUEUED) return;\n item.requestProcessing();\n dispatch('DID_REQUEST_ITEM_PROCESSING', {\n id: item.id\n });\n dispatch('PROCESS_ITEM', {\n query: item,\n success: success,\n failure: failure\n }, true);\n }),\n PROCESS_ITEM: getItemByQueryFromState(state, function (item, success, failure) {\n var maxParallelUploads = query('GET_MAX_PARALLEL_UPLOADS');\n var totalCurrentUploads = query('GET_ITEMS_BY_STATUS', ItemStatus.PROCESSING).length; // queue and wait till queue is freed up\n\n if (totalCurrentUploads === maxParallelUploads) {\n // queue for later processing\n state.processingQueue.push({\n id: item.id,\n success: success,\n failure: failure\n }); // stop it!\n\n return;\n } // if was not queued or is already processing exit here\n\n\n if (item.status === ItemStatus.PROCESSING) return;\n\n var processNext = function processNext() {\n // process queueud items\n var queueEntry = state.processingQueue.shift(); // no items left\n\n if (!queueEntry) return; // get item reference\n\n var id = queueEntry.id,\n success = queueEntry.success,\n failure = queueEntry.failure;\n var itemReference = getItemByQuery(state.items, id); // if item was archived while in queue, jump to next\n\n if (!itemReference || itemReference.archived) {\n processNext();\n return;\n } // process queued item\n\n\n dispatch('PROCESS_ITEM', {\n query: id,\n success: success,\n failure: failure\n }, true);\n }; // we done function\n\n\n item.onOnce('process-complete', function () {\n success(createItemAPI(item));\n processNext(); // if origin is local, and we're instant uploading, trigger remove of original\n // as revert will remove file from list\n\n var server = state.options.server;\n var instantUpload = state.options.instantUpload;\n\n if (instantUpload && item.origin === FileOrigin.LOCAL && isFunction(server.remove)) {\n var noop = function noop() {};\n\n item.origin = FileOrigin.LIMBO;\n state.options.server.remove(item.source, noop, noop);\n } // All items processed? No errors?\n\n\n var allItemsProcessed = query('GET_ITEMS_BY_STATUS', ItemStatus.PROCESSING_COMPLETE).length === state.items.length;\n\n if (allItemsProcessed) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING_ALL');\n }\n }); // we error function\n\n item.onOnce('process-error', function (error) {\n failure({\n error: error,\n file: createItemAPI(item)\n });\n processNext();\n }); // start file processing\n\n var options = state.options;\n item.process(createFileProcessor(createProcessorFunction(options.server.url, options.server.process, options.name, {\n chunkTransferId: item.transferId,\n chunkServer: options.server.patch,\n chunkUploads: options.chunkUploads,\n chunkForce: options.chunkForce,\n chunkSize: options.chunkSize,\n chunkRetryDelays: options.chunkRetryDelays\n }), {\n allowMinimumUploadDuration: query('GET_ALLOW_MINIMUM_UPLOAD_DURATION')\n }), // called when the file is about to be processed so it can be piped through the transform filters\n function (file, success, error) {\n // allow plugins to alter the file data\n applyFilterChain('PREPARE_OUTPUT', file, {\n query: query,\n item: item\n }).then(function (file) {\n dispatch('DID_PREPARE_OUTPUT', {\n id: item.id,\n file: file\n });\n success(file);\n }).catch(error);\n });\n }),\n RETRY_ITEM_PROCESSING: getItemByQueryFromState(state, function (item) {\n dispatch('REQUEST_ITEM_PROCESSING', {\n query: item\n });\n }),\n REQUEST_REMOVE_ITEM: getItemByQueryFromState(state, function (item) {\n optionalPromise(query('GET_BEFORE_REMOVE_FILE'), createItemAPI(item)).then(function (shouldRemove) {\n if (!shouldRemove) {\n return;\n }\n\n dispatch('REMOVE_ITEM', {\n query: item\n });\n });\n }),\n RELEASE_ITEM: getItemByQueryFromState(state, function (item) {\n item.release();\n }),\n REMOVE_ITEM: getItemByQueryFromState(state, function (item, success, failure, options) {\n var removeFromView = function removeFromView() {\n // get id reference\n var id = item.id; // archive the item, this does not remove it from the list\n\n getItemById(state.items, id).archive(); // tell the view the item has been removed\n\n dispatch('DID_REMOVE_ITEM', {\n error: null,\n id: id,\n item: item\n }); // now the list has been modified\n\n listUpdated(dispatch, state); // correctly removed\n\n success(createItemAPI(item));\n }; // if this is a local file and the `server.remove` function has been configured,\n // send source there so dev can remove file from server\n\n\n var server = state.options.server;\n\n if (item.origin === FileOrigin.LOCAL && server && isFunction(server.remove) && options.remove !== false) {\n dispatch('DID_START_ITEM_REMOVE', {\n id: item.id\n });\n server.remove(item.source, function () {\n return removeFromView();\n }, function (status) {\n dispatch('DID_THROW_ITEM_REMOVE_ERROR', {\n id: item.id,\n error: createResponse('error', 0, status, null),\n status: {\n main: dynamicLabel(state.options.labelFileRemoveError)(status),\n sub: state.options.labelTapToRetry\n }\n });\n });\n } else {\n // if is requesting revert and can revert need to call revert handler (not calling request_ because that would also trigger beforeRemoveHook)\n if (options.revert && item.origin !== FileOrigin.LOCAL && item.serverId !== null || // if chunked uploads are enabled and we're uploading in chunks for this specific file\n // or if the file isn't big enough for chunked uploads but chunkForce is set then call\n // revert before removing from the view...\n state.options.chunkUploads && item.file.size > state.options.chunkSize || state.options.chunkUploads && state.options.chunkForce) {\n item.revert(createRevertFunction(state.options.server.url, state.options.server.revert), query('GET_FORCE_REVERT'));\n } // can now safely remove from view\n\n\n removeFromView();\n }\n }),\n ABORT_ITEM_LOAD: getItemByQueryFromState(state, function (item) {\n item.abortLoad();\n }),\n ABORT_ITEM_PROCESSING: getItemByQueryFromState(state, function (item) {\n // test if is already processed\n if (item.serverId) {\n dispatch('REVERT_ITEM_PROCESSING', {\n id: item.id\n });\n return;\n } // abort\n\n\n item.abortProcessing().then(function () {\n var shouldRemove = state.options.instantUpload;\n\n if (shouldRemove) {\n dispatch('REMOVE_ITEM', {\n query: item.id\n });\n }\n });\n }),\n REQUEST_REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function (item) {\n // not instant uploading, revert immediately\n if (!state.options.instantUpload) {\n dispatch('REVERT_ITEM_PROCESSING', {\n query: item\n });\n return;\n } // if we're instant uploading the file will also be removed if we revert,\n // so if a before remove file hook is defined we need to run it now\n\n\n var handleRevert = function handleRevert(shouldRevert) {\n if (!shouldRevert) return;\n dispatch('REVERT_ITEM_PROCESSING', {\n query: item\n });\n };\n\n var fn = query('GET_BEFORE_REMOVE_FILE');\n\n if (!fn) {\n return handleRevert(true);\n }\n\n var requestRemoveResult = fn(createItemAPI(item));\n\n if (requestRemoveResult == null) {\n // undefined or null\n return handleRevert(true);\n }\n\n if (typeof requestRemoveResult === 'boolean') {\n return handleRevert(requestRemoveResult);\n }\n\n if (typeof requestRemoveResult.then === 'function') {\n requestRemoveResult.then(handleRevert);\n }\n }),\n REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function (item) {\n item.revert(createRevertFunction(state.options.server.url, state.options.server.revert), query('GET_FORCE_REVERT')).then(function () {\n var shouldRemove = state.options.instantUpload || isMockItem(item);\n\n if (shouldRemove) {\n dispatch('REMOVE_ITEM', {\n query: item.id\n });\n }\n }).catch(function () {});\n }),\n SET_OPTIONS: function SET_OPTIONS(_ref11) {\n var options = _ref11.options; // get all keys passed\n\n var optionKeys = Object.keys(options); // get prioritized keyed to include (remove once not in options object)\n\n var prioritizedOptionKeys = PrioritizedOptions.filter(function (key) {\n return optionKeys.includes(key);\n }); // order the keys, prioritized first, then rest\n\n var orderedOptionKeys = [].concat(_toConsumableArray(prioritizedOptionKeys), _toConsumableArray(Object.keys(options).filter(function (key) {\n return !prioritizedOptionKeys.includes(key);\n }))); // dispatch set event for each option\n\n orderedOptionKeys.forEach(function (key) {\n dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\n value: options[key]\n });\n });\n }\n };\n };\n\n var PrioritizedOptions = ['server'];\n\n var formatFilename = function formatFilename(name) {\n return name;\n };\n\n var createElement$1 = function createElement(tagName) {\n return document.createElement(tagName);\n };\n\n var text = function text(node, value) {\n var textNode = node.childNodes[0];\n\n if (!textNode) {\n textNode = document.createTextNode(value);\n node.appendChild(textNode);\n } else if (value !== textNode.nodeValue) {\n textNode.nodeValue = value;\n }\n };\n\n var polarToCartesian = function polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n var angleInRadians = (angleInDegrees % 360 - 90) * Math.PI / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians)\n };\n };\n\n var describeArc = function describeArc(x, y, radius, startAngle, endAngle, arcSweep) {\n var start = polarToCartesian(x, y, radius, endAngle);\n var end = polarToCartesian(x, y, radius, startAngle);\n return ['M', start.x, start.y, 'A', radius, radius, 0, arcSweep, 0, end.x, end.y].join(' ');\n };\n\n var percentageArc = function percentageArc(x, y, radius, from, to) {\n var arcSweep = 1;\n\n if (to > from && to - from <= 0.5) {\n arcSweep = 0;\n }\n\n if (from > to && from - to >= 0.5) {\n arcSweep = 0;\n }\n\n return describeArc(x, y, radius, Math.min(0.9999, from) * 360, Math.min(0.9999, to) * 360, arcSweep);\n };\n\n var create = function create(_ref) {\n var root = _ref.root,\n props = _ref.props; // start at 0\n\n props.spin = false;\n props.progress = 0;\n props.opacity = 0; // svg\n\n var svg = createElement('svg');\n root.ref.path = createElement('path', {\n 'stroke-width': 2,\n 'stroke-linecap': 'round'\n });\n svg.appendChild(root.ref.path);\n root.ref.svg = svg;\n root.appendChild(svg);\n };\n\n var write = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n\n if (props.opacity === 0) {\n return;\n }\n\n if (props.align) {\n root.element.dataset.align = props.align;\n } // get width of stroke\n\n\n var ringStrokeWidth = parseInt(attr(root.ref.path, 'stroke-width'), 10); // calculate size of ring\n\n var size = root.rect.element.width * 0.5; // ring state\n\n var ringFrom = 0;\n var ringTo = 0; // now in busy mode\n\n if (props.spin) {\n ringFrom = 0;\n ringTo = 0.5;\n } else {\n ringFrom = 0;\n ringTo = props.progress;\n } // get arc path\n\n\n var coordinates = percentageArc(size, size, size - ringStrokeWidth, ringFrom, ringTo); // update progress bar\n\n attr(root.ref.path, 'd', coordinates); // hide while contains 0 value\n\n attr(root.ref.path, 'stroke-opacity', props.spin || props.progress > 0 ? 1 : 0);\n };\n\n var progressIndicator = createView({\n tag: 'div',\n name: 'progress-indicator',\n ignoreRectUpdate: true,\n ignoreRect: true,\n create: create,\n write: write,\n mixins: {\n apis: ['progress', 'spin', 'align'],\n styles: ['opacity'],\n animations: {\n opacity: {\n type: 'tween',\n duration: 500\n },\n progress: {\n type: 'spring',\n stiffness: 0.95,\n damping: 0.65,\n mass: 10\n }\n }\n }\n });\n\n var create$1 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.element.innerHTML = (props.icon || '') + ('' + props.label + '');\n props.isDisabled = false;\n };\n\n var write$1 = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n var isDisabled = props.isDisabled;\n var shouldDisable = root.query('GET_DISABLED') || props.opacity === 0;\n\n if (shouldDisable && !isDisabled) {\n props.isDisabled = true;\n attr(root.element, 'disabled', 'disabled');\n } else if (!shouldDisable && isDisabled) {\n props.isDisabled = false;\n root.element.removeAttribute('disabled');\n }\n };\n\n var fileActionButton = createView({\n tag: 'button',\n attributes: {\n type: 'button'\n },\n ignoreRect: true,\n ignoreRectUpdate: true,\n name: 'file-action-button',\n mixins: {\n apis: ['label'],\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n translateX: 'spring',\n translateY: 'spring',\n opacity: {\n type: 'tween',\n duration: 250\n }\n },\n listeners: true\n },\n create: create$1,\n write: write$1\n });\n\n var toNaturalFileSize = function toNaturalFileSize(bytes) {\n var decimalSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';\n var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _options$labelBytes = options.labelBytes,\n labelBytes = _options$labelBytes === void 0 ? 'bytes' : _options$labelBytes,\n _options$labelKilobyt = options.labelKilobytes,\n labelKilobytes = _options$labelKilobyt === void 0 ? 'KB' : _options$labelKilobyt,\n _options$labelMegabyt = options.labelMegabytes,\n labelMegabytes = _options$labelMegabyt === void 0 ? 'MB' : _options$labelMegabyt,\n _options$labelGigabyt = options.labelGigabytes,\n labelGigabytes = _options$labelGigabyt === void 0 ? 'GB' : _options$labelGigabyt; // no negative byte sizes\n\n bytes = Math.round(Math.abs(bytes));\n var KB = base;\n var MB = base * base;\n var GB = base * base * base; // just bytes\n\n if (bytes < KB) {\n return bytes + ' ' + labelBytes;\n } // kilobytes\n\n\n if (bytes < MB) {\n return Math.floor(bytes / KB) + ' ' + labelKilobytes;\n } // megabytes\n\n\n if (bytes < GB) {\n return removeDecimalsWhenZero(bytes / MB, 1, decimalSeparator) + ' ' + labelMegabytes;\n } // gigabytes\n\n\n return removeDecimalsWhenZero(bytes / GB, 2, decimalSeparator) + ' ' + labelGigabytes;\n };\n\n var removeDecimalsWhenZero = function removeDecimalsWhenZero(value, decimalCount, separator) {\n return value.toFixed(decimalCount).split('.').filter(function (part) {\n return part !== '0';\n }).join(separator);\n };\n\n var create$2 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props; // filename\n\n var fileName = createElement$1('span');\n fileName.className = 'filepond--file-info-main'; // hide for screenreaders\n // the file is contained in a fieldset with legend that contains the filename\n // no need to read it twice\n\n attr(fileName, 'aria-hidden', 'true');\n root.appendChild(fileName);\n root.ref.fileName = fileName; // filesize\n\n var fileSize = createElement$1('span');\n fileSize.className = 'filepond--file-info-sub';\n root.appendChild(fileSize);\n root.ref.fileSize = fileSize; // set initial values\n\n text(fileSize, root.query('GET_LABEL_FILE_WAITING_FOR_SIZE'));\n text(fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var updateFile = function updateFile(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n text(root.ref.fileSize, toNaturalFileSize(root.query('GET_ITEM_SIZE', props.id), '.', root.query('GET_FILE_SIZE_BASE'), root.query('GET_FILE_SIZE_LABELS', root.query)));\n text(root.ref.fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var updateFileSizeOnError = function updateFileSizeOnError(_ref3) {\n var root = _ref3.root,\n props = _ref3.props; // if size is available don't fallback to unknown size message\n\n if (isInt(root.query('GET_ITEM_SIZE', props.id))) {\n updateFile({\n root: root,\n props: props\n });\n return;\n }\n\n text(root.ref.fileSize, root.query('GET_LABEL_FILE_SIZE_NOT_AVAILABLE'));\n };\n\n var fileInfo = createView({\n name: 'file-info',\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: updateFile,\n DID_UPDATE_ITEM_META: updateFile,\n DID_THROW_ITEM_LOAD_ERROR: updateFileSizeOnError,\n DID_THROW_ITEM_INVALID: updateFileSizeOnError\n }),\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, {\n view: root\n }));\n },\n create: create$2,\n mixins: {\n styles: ['translateX', 'translateY'],\n animations: {\n translateX: 'spring',\n translateY: 'spring'\n }\n }\n });\n\n var toPercentage = function toPercentage(value) {\n return Math.round(value * 100);\n };\n\n var create$3 = function create(_ref) {\n var root = _ref.root; // main status\n\n var main = createElement$1('span');\n main.className = 'filepond--file-status-main';\n root.appendChild(main);\n root.ref.main = main; // sub status\n\n var sub = createElement$1('span');\n sub.className = 'filepond--file-status-sub';\n root.appendChild(sub);\n root.ref.sub = sub;\n didSetItemLoadProgress({\n root: root,\n action: {\n progress: null\n }\n });\n };\n\n var didSetItemLoadProgress = function didSetItemLoadProgress(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n var title = action.progress === null ? root.query('GET_LABEL_FILE_LOADING') : root.query('GET_LABEL_FILE_LOADING') + ' ' + toPercentage(action.progress) + '%';\n text(root.ref.main, title);\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didSetItemProcessProgress = function didSetItemProcessProgress(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var title = action.progress === null ? root.query('GET_LABEL_FILE_PROCESSING') : root.query('GET_LABEL_FILE_PROCESSING') + ' ' + toPercentage(action.progress) + '%';\n text(root.ref.main, title);\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didRequestItemProcessing = function didRequestItemProcessing(_ref4) {\n var root = _ref4.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didAbortItemProcessing = function didAbortItemProcessing(_ref5) {\n var root = _ref5.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_ABORTED'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_RETRY'));\n };\n\n var didCompleteItemProcessing = function didCompleteItemProcessing(_ref6) {\n var root = _ref6.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_COMPLETE'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_UNDO'));\n };\n\n var clear = function clear(_ref7) {\n var root = _ref7.root;\n text(root.ref.main, '');\n text(root.ref.sub, '');\n };\n\n var error = function error(_ref8) {\n var root = _ref8.root,\n action = _ref8.action;\n text(root.ref.main, action.status.main);\n text(root.ref.sub, action.status.sub);\n };\n\n var fileStatus = createView({\n name: 'file-status',\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: clear,\n DID_REVERT_ITEM_PROCESSING: clear,\n DID_REQUEST_ITEM_PROCESSING: didRequestItemProcessing,\n DID_ABORT_ITEM_PROCESSING: didAbortItemProcessing,\n DID_COMPLETE_ITEM_PROCESSING: didCompleteItemProcessing,\n DID_UPDATE_ITEM_PROCESS_PROGRESS: didSetItemProcessProgress,\n DID_UPDATE_ITEM_LOAD_PROGRESS: didSetItemLoadProgress,\n DID_THROW_ITEM_LOAD_ERROR: error,\n DID_THROW_ITEM_INVALID: error,\n DID_THROW_ITEM_PROCESSING_ERROR: error,\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: error,\n DID_THROW_ITEM_REMOVE_ERROR: error\n }),\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, {\n view: root\n }));\n },\n create: create$3,\n mixins: {\n styles: ['translateX', 'translateY', 'opacity'],\n animations: {\n opacity: {\n type: 'tween',\n duration: 250\n },\n translateX: 'spring',\n translateY: 'spring'\n }\n }\n });\n /**\n * Button definitions for the file view\n */\n\n var Buttons = {\n AbortItemLoad: {\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_LOAD',\n action: 'ABORT_ITEM_LOAD',\n className: 'filepond--action-abort-item-load',\n align: 'LOAD_INDICATOR_POSITION' // right\n\n },\n RetryItemLoad: {\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_LOAD',\n action: 'RETRY_ITEM_LOAD',\n icon: 'GET_ICON_RETRY',\n className: 'filepond--action-retry-item-load',\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\n\n },\n RemoveItem: {\n label: 'GET_LABEL_BUTTON_REMOVE_ITEM',\n action: 'REQUEST_REMOVE_ITEM',\n icon: 'GET_ICON_REMOVE',\n className: 'filepond--action-remove-item',\n align: 'BUTTON_REMOVE_ITEM_POSITION' // left\n\n },\n ProcessItem: {\n label: 'GET_LABEL_BUTTON_PROCESS_ITEM',\n action: 'REQUEST_ITEM_PROCESSING',\n icon: 'GET_ICON_PROCESS',\n className: 'filepond--action-process-item',\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\n\n },\n AbortItemProcessing: {\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING',\n action: 'ABORT_ITEM_PROCESSING',\n className: 'filepond--action-abort-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\n\n },\n RetryItemProcessing: {\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING',\n action: 'RETRY_ITEM_PROCESSING',\n icon: 'GET_ICON_RETRY',\n className: 'filepond--action-retry-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\n\n },\n RevertItemProcessing: {\n label: 'GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING',\n action: 'REQUEST_REVERT_ITEM_PROCESSING',\n icon: 'GET_ICON_UNDO',\n className: 'filepond--action-revert-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\n\n }\n }; // make a list of buttons, we can then remove buttons from this list if they're disabled\n\n var ButtonKeys = [];\n forin(Buttons, function (key) {\n ButtonKeys.push(key);\n });\n\n var calculateFileInfoOffset = function calculateFileInfoOffset(root) {\n if (getRemoveIndicatorAligment(root) === 'right') return 0;\n var buttonRect = root.ref.buttonRemoveItem.rect.element;\n return buttonRect.hidden ? null : buttonRect.width + buttonRect.left;\n };\n\n var calculateButtonWidth = function calculateButtonWidth(root) {\n var buttonRect = root.ref.buttonAbortItemLoad.rect.element;\n return buttonRect.width;\n }; // Force on full pixels so text stays crips\n\n\n var calculateFileVerticalCenterOffset = function calculateFileVerticalCenterOffset(root) {\n return Math.floor(root.ref.buttonRemoveItem.rect.element.height / 4);\n };\n\n var calculateFileHorizontalCenterOffset = function calculateFileHorizontalCenterOffset(root) {\n return Math.floor(root.ref.buttonRemoveItem.rect.element.left / 2);\n };\n\n var getLoadIndicatorAlignment = function getLoadIndicatorAlignment(root) {\n return root.query('GET_STYLE_LOAD_INDICATOR_POSITION');\n };\n\n var getProcessIndicatorAlignment = function getProcessIndicatorAlignment(root) {\n return root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION');\n };\n\n var getRemoveIndicatorAligment = function getRemoveIndicatorAligment(root) {\n return root.query('GET_STYLE_BUTTON_REMOVE_ITEM_POSITION');\n };\n\n var DefaultStyle = {\n buttonAbortItemLoad: {\n opacity: 0\n },\n buttonRetryItemLoad: {\n opacity: 0\n },\n buttonRemoveItem: {\n opacity: 0\n },\n buttonProcessItem: {\n opacity: 0\n },\n buttonAbortItemProcessing: {\n opacity: 0\n },\n buttonRetryItemProcessing: {\n opacity: 0\n },\n buttonRevertItemProcessing: {\n opacity: 0\n },\n loadProgressIndicator: {\n opacity: 0,\n align: getLoadIndicatorAlignment\n },\n processProgressIndicator: {\n opacity: 0,\n align: getProcessIndicatorAlignment\n },\n processingCompleteIndicator: {\n opacity: 0,\n scaleX: 0.75,\n scaleY: 0.75\n },\n info: {\n translateX: 0,\n translateY: 0,\n opacity: 0\n },\n status: {\n translateX: 0,\n translateY: 0,\n opacity: 0\n }\n };\n var IdleStyle = {\n buttonRemoveItem: {\n opacity: 1\n },\n buttonProcessItem: {\n opacity: 1\n },\n info: {\n translateX: calculateFileInfoOffset\n },\n status: {\n translateX: calculateFileInfoOffset\n }\n };\n var ProcessingStyle = {\n buttonAbortItemProcessing: {\n opacity: 1\n },\n processProgressIndicator: {\n opacity: 1\n },\n status: {\n opacity: 1\n }\n };\n var StyleMap = {\n DID_THROW_ITEM_INVALID: {\n buttonRemoveItem: {\n opacity: 1\n },\n info: {\n translateX: calculateFileInfoOffset\n },\n status: {\n translateX: calculateFileInfoOffset,\n opacity: 1\n }\n },\n DID_START_ITEM_LOAD: {\n buttonAbortItemLoad: {\n opacity: 1\n },\n loadProgressIndicator: {\n opacity: 1\n },\n status: {\n opacity: 1\n }\n },\n DID_THROW_ITEM_LOAD_ERROR: {\n buttonRetryItemLoad: {\n opacity: 1\n },\n buttonRemoveItem: {\n opacity: 1\n },\n info: {\n translateX: calculateFileInfoOffset\n },\n status: {\n opacity: 1\n }\n },\n DID_START_ITEM_REMOVE: {\n processProgressIndicator: {\n opacity: 1,\n align: getRemoveIndicatorAligment\n },\n info: {\n translateX: calculateFileInfoOffset\n },\n status: {\n opacity: 0\n }\n },\n DID_THROW_ITEM_REMOVE_ERROR: {\n processProgressIndicator: {\n opacity: 0,\n align: getRemoveIndicatorAligment\n },\n buttonRemoveItem: {\n opacity: 1\n },\n info: {\n translateX: calculateFileInfoOffset\n },\n status: {\n opacity: 1,\n translateX: calculateFileInfoOffset\n }\n },\n DID_LOAD_ITEM: IdleStyle,\n DID_LOAD_LOCAL_ITEM: {\n buttonRemoveItem: {\n opacity: 1\n },\n info: {\n translateX: calculateFileInfoOffset\n },\n status: {\n translateX: calculateFileInfoOffset\n }\n },\n DID_START_ITEM_PROCESSING: ProcessingStyle,\n DID_REQUEST_ITEM_PROCESSING: ProcessingStyle,\n DID_UPDATE_ITEM_PROCESS_PROGRESS: ProcessingStyle,\n DID_COMPLETE_ITEM_PROCESSING: {\n buttonRevertItemProcessing: {\n opacity: 1\n },\n info: {\n opacity: 1\n },\n status: {\n opacity: 1\n }\n },\n DID_THROW_ITEM_PROCESSING_ERROR: {\n buttonRemoveItem: {\n opacity: 1\n },\n buttonRetryItemProcessing: {\n opacity: 1\n },\n status: {\n opacity: 1\n },\n info: {\n translateX: calculateFileInfoOffset\n }\n },\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: {\n buttonRevertItemProcessing: {\n opacity: 1\n },\n status: {\n opacity: 1\n },\n info: {\n opacity: 1\n }\n },\n DID_ABORT_ITEM_PROCESSING: {\n buttonRemoveItem: {\n opacity: 1\n },\n buttonProcessItem: {\n opacity: 1\n },\n info: {\n translateX: calculateFileInfoOffset\n },\n status: {\n opacity: 1\n }\n },\n DID_REVERT_ITEM_PROCESSING: IdleStyle\n }; // complete indicator view\n\n var processingCompleteIndicatorView = createView({\n create: function create(_ref) {\n var root = _ref.root;\n root.element.innerHTML = root.query('GET_ICON_DONE');\n },\n name: 'processing-complete-indicator',\n ignoreRect: true,\n mixins: {\n styles: ['scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n opacity: {\n type: 'tween',\n duration: 250\n }\n }\n }\n });\n /**\n * Creates the file view\n */\n\n var create$4 = function create(_ref2) {\n var root = _ref2.root,\n props = _ref2.props; // copy Buttons object\n\n var LocalButtons = Object.keys(Buttons).reduce(function (prev, curr) {\n prev[curr] = Object.assign({}, Buttons[curr]);\n return prev;\n }, {});\n var id = props.id; // allow reverting upload\n\n var allowRevert = root.query('GET_ALLOW_REVERT'); // allow remove file\n\n var allowRemove = root.query('GET_ALLOW_REMOVE'); // allow processing upload\n\n var allowProcess = root.query('GET_ALLOW_PROCESS'); // is instant uploading, need this to determine the icon of the undo button\n\n var instantUpload = root.query('GET_INSTANT_UPLOAD'); // is async set up\n\n var isAsync = root.query('IS_ASYNC'); // should align remove item buttons\n\n var alignRemoveItemButton = root.query('GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN'); // enabled buttons array\n\n var buttonFilter;\n\n if (isAsync) {\n if (allowProcess && !allowRevert) {\n // only remove revert button\n buttonFilter = function buttonFilter(key) {\n return !/RevertItemProcessing/.test(key);\n };\n } else if (!allowProcess && allowRevert) {\n // only remove process button\n buttonFilter = function buttonFilter(key) {\n return !/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(key);\n };\n } else if (!allowProcess && !allowRevert) {\n // remove all process buttons\n buttonFilter = function buttonFilter(key) {\n return !/Process/.test(key);\n };\n }\n } else {\n // no process controls available\n buttonFilter = function buttonFilter(key) {\n return !/Process/.test(key);\n };\n }\n\n var enabledButtons = buttonFilter ? ButtonKeys.filter(buttonFilter) : ButtonKeys.concat(); // update icon and label for revert button when instant uploading\n\n if (instantUpload && allowRevert) {\n LocalButtons['RevertItemProcessing'].label = 'GET_LABEL_BUTTON_REMOVE_ITEM';\n LocalButtons['RevertItemProcessing'].icon = 'GET_ICON_REMOVE';\n } // remove last button (revert) if not allowed\n\n\n if (isAsync && !allowRevert) {\n var map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\n map.info.translateX = calculateFileHorizontalCenterOffset;\n map.info.translateY = calculateFileVerticalCenterOffset;\n map.status.translateY = calculateFileVerticalCenterOffset;\n map.processingCompleteIndicator = {\n opacity: 1,\n scaleX: 1,\n scaleY: 1\n };\n } // should align center\n\n\n if (isAsync && !allowProcess) {\n ['DID_START_ITEM_PROCESSING', 'DID_REQUEST_ITEM_PROCESSING', 'DID_UPDATE_ITEM_PROCESS_PROGRESS', 'DID_THROW_ITEM_PROCESSING_ERROR'].forEach(function (key) {\n StyleMap[key].status.translateY = calculateFileVerticalCenterOffset;\n });\n StyleMap['DID_THROW_ITEM_PROCESSING_ERROR'].status.translateX = calculateButtonWidth;\n } // move remove button to right\n\n\n if (alignRemoveItemButton && allowRevert) {\n LocalButtons['RevertItemProcessing'].align = 'BUTTON_REMOVE_ITEM_POSITION';\n var _map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\n _map.info.translateX = calculateFileInfoOffset;\n _map.status.translateY = calculateFileVerticalCenterOffset;\n _map.processingCompleteIndicator = {\n opacity: 1,\n scaleX: 1,\n scaleY: 1\n };\n } // show/hide RemoveItem button\n\n\n if (!allowRemove) {\n LocalButtons['RemoveItem'].disabled = true;\n } // create the button views\n\n\n forin(LocalButtons, function (key, definition) {\n // create button\n var buttonView = root.createChildView(fileActionButton, {\n label: root.query(definition.label),\n icon: root.query(definition.icon),\n opacity: 0\n }); // should be appended?\n\n if (enabledButtons.includes(key)) {\n root.appendChildView(buttonView);\n } // toggle\n\n\n if (definition.disabled) {\n buttonView.element.setAttribute('disabled', 'disabled');\n buttonView.element.setAttribute('hidden', 'hidden');\n } // add position attribute\n\n\n buttonView.element.dataset.align = root.query('GET_STYLE_' + definition.align); // add class\n\n buttonView.element.classList.add(definition.className); // handle interactions\n\n buttonView.on('click', function (e) {\n e.stopPropagation();\n if (definition.disabled) return;\n root.dispatch(definition.action, {\n query: id\n });\n }); // set reference\n\n root.ref['button' + key] = buttonView;\n }); // checkmark\n\n root.ref.processingCompleteIndicator = root.appendChildView(root.createChildView(processingCompleteIndicatorView));\n root.ref.processingCompleteIndicator.element.dataset.align = root.query('GET_STYLE_BUTTON_PROCESS_ITEM_POSITION'); // create file info view\n\n root.ref.info = root.appendChildView(root.createChildView(fileInfo, {\n id: id\n })); // create file status view\n\n root.ref.status = root.appendChildView(root.createChildView(fileStatus, {\n id: id\n })); // add progress indicators\n\n var loadIndicatorView = root.appendChildView(root.createChildView(progressIndicator, {\n opacity: 0,\n align: root.query('GET_STYLE_LOAD_INDICATOR_POSITION')\n }));\n loadIndicatorView.element.classList.add('filepond--load-indicator');\n root.ref.loadProgressIndicator = loadIndicatorView;\n var progressIndicatorView = root.appendChildView(root.createChildView(progressIndicator, {\n opacity: 0,\n align: root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION')\n }));\n progressIndicatorView.element.classList.add('filepond--process-indicator');\n root.ref.processProgressIndicator = progressIndicatorView; // current active styles\n\n root.ref.activeStyles = [];\n };\n\n var write$2 = function write(_ref3) {\n var root = _ref3.root,\n actions = _ref3.actions,\n props = _ref3.props; // route actions\n\n route({\n root: root,\n actions: actions,\n props: props\n }); // select last state change action\n\n var action = actions.concat().filter(function (action) {\n return /^DID_/.test(action.type);\n }).reverse().find(function (action) {\n return StyleMap[action.type];\n }); // a new action happened, let's get the matching styles\n\n if (action) {\n // define new active styles\n root.ref.activeStyles = [];\n var stylesToApply = StyleMap[action.type];\n forin(DefaultStyle, function (name, defaultStyles) {\n // get reference to control\n var control = root.ref[name]; // loop over all styles for this control\n\n forin(defaultStyles, function (key, defaultValue) {\n var value = stylesToApply[name] && typeof stylesToApply[name][key] !== 'undefined' ? stylesToApply[name][key] : defaultValue;\n root.ref.activeStyles.push({\n control: control,\n key: key,\n value: value\n });\n });\n });\n } // apply active styles to element\n\n\n root.ref.activeStyles.forEach(function (_ref4) {\n var control = _ref4.control,\n key = _ref4.key,\n value = _ref4.value;\n control[key] = typeof value === 'function' ? value(root) : value;\n });\n };\n\n var route = createRoute({\n DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING: function DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING(_ref5) {\n var root = _ref5.root,\n action = _ref5.action;\n root.ref.buttonAbortItemProcessing.label = action.value;\n },\n DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD: function DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n root.ref.buttonAbortItemLoad.label = action.value;\n },\n DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL: function DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL(_ref7) {\n var root = _ref7.root,\n action = _ref7.action;\n root.ref.buttonAbortItemRemoval.label = action.value;\n },\n DID_REQUEST_ITEM_PROCESSING: function DID_REQUEST_ITEM_PROCESSING(_ref8) {\n var root = _ref8.root;\n root.ref.processProgressIndicator.spin = true;\n root.ref.processProgressIndicator.progress = 0;\n },\n DID_START_ITEM_LOAD: function DID_START_ITEM_LOAD(_ref9) {\n var root = _ref9.root;\n root.ref.loadProgressIndicator.spin = true;\n root.ref.loadProgressIndicator.progress = 0;\n },\n DID_START_ITEM_REMOVE: function DID_START_ITEM_REMOVE(_ref10) {\n var root = _ref10.root;\n root.ref.processProgressIndicator.spin = true;\n root.ref.processProgressIndicator.progress = 0;\n },\n DID_UPDATE_ITEM_LOAD_PROGRESS: function DID_UPDATE_ITEM_LOAD_PROGRESS(_ref11) {\n var root = _ref11.root,\n action = _ref11.action;\n root.ref.loadProgressIndicator.spin = false;\n root.ref.loadProgressIndicator.progress = action.progress;\n },\n DID_UPDATE_ITEM_PROCESS_PROGRESS: function DID_UPDATE_ITEM_PROCESS_PROGRESS(_ref12) {\n var root = _ref12.root,\n action = _ref12.action;\n root.ref.processProgressIndicator.spin = false;\n root.ref.processProgressIndicator.progress = action.progress;\n }\n });\n var file = createView({\n create: create$4,\n write: write$2,\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, {\n view: root\n }));\n },\n name: 'file'\n });\n /**\n * Creates the file view\n */\n\n var create$5 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props; // filename\n\n root.ref.fileName = createElement$1('legend');\n root.appendChild(root.ref.fileName); // file appended\n\n root.ref.file = root.appendChildView(root.createChildView(file, {\n id: props.id\n })); // data has moved to data.js\n\n root.ref.data = false;\n };\n /**\n * Data storage\n */\n\n\n var didLoadItem = function didLoadItem(_ref2) {\n var root = _ref2.root,\n props = _ref2.props; // updates the legend of the fieldset so screenreaders can better group buttons\n\n text(root.ref.fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var fileWrapper = createView({\n create: create$5,\n ignoreRect: true,\n write: createRoute({\n DID_LOAD_ITEM: didLoadItem\n }),\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, {\n view: root\n }));\n },\n tag: 'fieldset',\n name: 'file-wrapper'\n });\n var PANEL_SPRING_PROPS = {\n type: 'spring',\n damping: 0.6,\n mass: 7\n };\n\n var create$6 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n [{\n name: 'top'\n }, {\n name: 'center',\n props: {\n translateY: null,\n scaleY: null\n },\n mixins: {\n animations: {\n scaleY: PANEL_SPRING_PROPS\n },\n styles: ['translateY', 'scaleY']\n }\n }, {\n name: 'bottom',\n props: {\n translateY: null\n },\n mixins: {\n animations: {\n translateY: PANEL_SPRING_PROPS\n },\n styles: ['translateY']\n }\n }].forEach(function (section) {\n createSection(root, section, props.name);\n });\n root.element.classList.add('filepond--' + props.name);\n root.ref.scalable = null;\n };\n\n var createSection = function createSection(root, section, className) {\n var viewConstructor = createView({\n name: 'panel-' + section.name + ' filepond--' + className,\n mixins: section.mixins,\n ignoreRectUpdate: true\n });\n var view = root.createChildView(viewConstructor, section.props);\n root.ref[section.name] = root.appendChildView(view);\n };\n\n var write$3 = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props; // update scalable state\n\n if (root.ref.scalable === null || props.scalable !== root.ref.scalable) {\n root.ref.scalable = isBoolean(props.scalable) ? props.scalable : true;\n root.element.dataset.scalable = root.ref.scalable;\n } // no height, can't set\n\n\n if (!props.height) return; // get child rects\n\n var topRect = root.ref.top.rect.element;\n var bottomRect = root.ref.bottom.rect.element; // make sure height never is smaller than bottom and top seciton heights combined (will probably never happen, but who knows)\n\n var height = Math.max(topRect.height + bottomRect.height, props.height); // offset center part\n\n root.ref.center.translateY = topRect.height; // scale center part\n // use math ceil to prevent transparent lines because of rounding errors\n\n root.ref.center.scaleY = (height - topRect.height - bottomRect.height) / 100; // offset bottom part\n\n root.ref.bottom.translateY = height - bottomRect.height;\n };\n\n var panel = createView({\n name: 'panel',\n read: function read(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n return props.heightCurrent = root.ref.bottom.translateY;\n },\n write: write$3,\n create: create$6,\n ignoreRect: true,\n mixins: {\n apis: ['height', 'heightCurrent', 'scalable']\n }\n });\n\n var createDragHelper = function createDragHelper(items) {\n var itemIds = items.map(function (item) {\n return item.id;\n });\n var prevIndex = undefined;\n return {\n setIndex: function setIndex(index) {\n prevIndex = index;\n },\n getIndex: function getIndex() {\n return prevIndex;\n },\n getItemIndex: function getItemIndex(item) {\n return itemIds.indexOf(item.id);\n }\n };\n };\n\n var ITEM_TRANSLATE_SPRING = {\n type: 'spring',\n stiffness: 0.75,\n damping: 0.45,\n mass: 10\n };\n var ITEM_SCALE_SPRING = 'spring';\n var StateMap = {\n DID_START_ITEM_LOAD: 'busy',\n DID_UPDATE_ITEM_LOAD_PROGRESS: 'loading',\n DID_THROW_ITEM_INVALID: 'load-invalid',\n DID_THROW_ITEM_LOAD_ERROR: 'load-error',\n DID_LOAD_ITEM: 'idle',\n DID_THROW_ITEM_REMOVE_ERROR: 'remove-error',\n DID_START_ITEM_REMOVE: 'busy',\n DID_START_ITEM_PROCESSING: 'busy processing',\n DID_REQUEST_ITEM_PROCESSING: 'busy processing',\n DID_UPDATE_ITEM_PROCESS_PROGRESS: 'processing',\n DID_COMPLETE_ITEM_PROCESSING: 'processing-complete',\n DID_THROW_ITEM_PROCESSING_ERROR: 'processing-error',\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: 'processing-revert-error',\n DID_ABORT_ITEM_PROCESSING: 'cancelled',\n DID_REVERT_ITEM_PROCESSING: 'idle'\n };\n /**\n * Creates the file view\n */\n\n var create$7 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props; // select\n\n root.ref.handleClick = function (e) {\n return root.dispatch('DID_ACTIVATE_ITEM', {\n id: props.id\n });\n }; // set id\n\n\n root.element.id = 'filepond--item-' + props.id;\n root.element.addEventListener('click', root.ref.handleClick); // file view\n\n root.ref.container = root.appendChildView(root.createChildView(fileWrapper, {\n id: props.id\n })); // file panel\n\n root.ref.panel = root.appendChildView(root.createChildView(panel, {\n name: 'item-panel'\n })); // default start height\n\n root.ref.panel.height = null; // by default not marked for removal\n\n props.markedForRemoval = false; // if not allowed to reorder file items, exit here\n\n if (!root.query('GET_ALLOW_REORDER')) return; // set to idle so shows grab cursor\n\n root.element.dataset.dragState = 'idle';\n\n var grab = function grab(e) {\n if (!e.isPrimary) return;\n var removedActivateListener = false;\n var origin = {\n x: e.pageX,\n y: e.pageY\n };\n props.dragOrigin = {\n x: root.translateX,\n y: root.translateY\n };\n props.dragCenter = {\n x: e.offsetX,\n y: e.offsetY\n };\n var dragState = createDragHelper(root.query('GET_ACTIVE_ITEMS'));\n root.dispatch('DID_GRAB_ITEM', {\n id: props.id,\n dragState: dragState\n });\n\n var drag = function drag(e) {\n if (!e.isPrimary) return;\n e.stopPropagation();\n e.preventDefault();\n props.dragOffset = {\n x: e.pageX - origin.x,\n y: e.pageY - origin.y\n }; // if dragged stop listening to clicks, will re-add when done dragging\n\n var dist = props.dragOffset.x * props.dragOffset.x + props.dragOffset.y * props.dragOffset.y;\n\n if (dist > 16 && !removedActivateListener) {\n removedActivateListener = true;\n root.element.removeEventListener('click', root.ref.handleClick);\n }\n\n root.dispatch('DID_DRAG_ITEM', {\n id: props.id,\n dragState: dragState\n });\n };\n\n var drop = function drop(e) {\n if (!e.isPrimary) return;\n props.dragOffset = {\n x: e.pageX - origin.x,\n y: e.pageY - origin.y\n };\n reset();\n };\n\n var cancel = function cancel() {\n reset();\n };\n\n var reset = function reset() {\n document.removeEventListener('pointercancel', cancel);\n document.removeEventListener('pointermove', drag);\n document.removeEventListener('pointerup', drop);\n root.dispatch('DID_DROP_ITEM', {\n id: props.id,\n dragState: dragState\n }); // start listening to clicks again\n\n if (removedActivateListener) {\n setTimeout(function () {\n return root.element.addEventListener('click', root.ref.handleClick);\n }, 0);\n }\n };\n\n document.addEventListener('pointercancel', cancel);\n document.addEventListener('pointermove', drag);\n document.addEventListener('pointerup', drop);\n };\n\n root.element.addEventListener('pointerdown', grab);\n };\n\n var route$1 = createRoute({\n DID_UPDATE_PANEL_HEIGHT: function DID_UPDATE_PANEL_HEIGHT(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n root.height = action.height;\n }\n });\n var write$4 = createRoute({\n DID_GRAB_ITEM: function DID_GRAB_ITEM(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n props.dragOrigin = {\n x: root.translateX,\n y: root.translateY\n };\n },\n DID_DRAG_ITEM: function DID_DRAG_ITEM(_ref4) {\n var root = _ref4.root;\n root.element.dataset.dragState = 'drag';\n },\n DID_DROP_ITEM: function DID_DROP_ITEM(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n props.dragOffset = null;\n props.dragOrigin = null;\n root.element.dataset.dragState = 'drop';\n }\n }, function (_ref6) {\n var root = _ref6.root,\n actions = _ref6.actions,\n props = _ref6.props,\n shouldOptimize = _ref6.shouldOptimize;\n\n if (root.element.dataset.dragState === 'drop') {\n if (root.scaleX <= 1) {\n root.element.dataset.dragState = 'idle';\n }\n } // select last state change action\n\n\n var action = actions.concat().filter(function (action) {\n return /^DID_/.test(action.type);\n }).reverse().find(function (action) {\n return StateMap[action.type];\n }); // no need to set same state twice\n\n if (action && action.type !== props.currentState) {\n // set current state\n props.currentState = action.type; // set state\n\n root.element.dataset.filepondItemState = StateMap[props.currentState] || '';\n } // route actions\n\n\n var aspectRatio = root.query('GET_ITEM_PANEL_ASPECT_RATIO') || root.query('GET_PANEL_ASPECT_RATIO');\n\n if (!aspectRatio) {\n route$1({\n root: root,\n actions: actions,\n props: props\n });\n\n if (!root.height && root.ref.container.rect.element.height > 0) {\n root.height = root.ref.container.rect.element.height;\n }\n } else if (!shouldOptimize) {\n root.height = root.rect.element.width * aspectRatio;\n } // sync panel height with item height\n\n\n if (shouldOptimize) {\n root.ref.panel.height = null;\n }\n\n root.ref.panel.height = root.height;\n });\n var item = createView({\n create: create$7,\n write: write$4,\n destroy: function destroy(_ref7) {\n var root = _ref7.root,\n props = _ref7.props;\n root.element.removeEventListener('click', root.ref.handleClick);\n root.dispatch('RELEASE_ITEM', {\n query: props.id\n });\n },\n tag: 'li',\n name: 'item',\n mixins: {\n apis: ['id', 'interactionMethod', 'markedForRemoval', 'spawnDate', 'dragCenter', 'dragOrigin', 'dragOffset'],\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity', 'height'],\n animations: {\n scaleX: ITEM_SCALE_SPRING,\n scaleY: ITEM_SCALE_SPRING,\n translateX: ITEM_TRANSLATE_SPRING,\n translateY: ITEM_TRANSLATE_SPRING,\n opacity: {\n type: 'tween',\n duration: 150\n }\n }\n }\n });\n\n var getItemsPerRow = function getItemsPerRow(horizontalSpace, itemWidth) {\n // add one pixel leeway, when using percentages for item width total items can be 1.99 per row\n return Math.max(1, Math.floor((horizontalSpace + 1) / itemWidth));\n };\n\n var getItemIndexByPosition = function getItemIndexByPosition(view, children, positionInView) {\n if (!positionInView) return;\n var horizontalSpace = view.rect.element.width; // const children = view.childViews;\n\n var l = children.length;\n var last = null; // -1, don't move items to accomodate (either add to top or bottom)\n\n if (l === 0 || positionInView.top < children[0].rect.element.top) return -1; // let's get the item width\n\n var item = children[0];\n var itemRect = item.rect.element;\n var itemHorizontalMargin = itemRect.marginLeft + itemRect.marginRight;\n var itemWidth = itemRect.width + itemHorizontalMargin;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth); // stack\n\n if (itemsPerRow === 1) {\n for (var index = 0; index < l; index++) {\n var child = children[index];\n var childMid = child.rect.outer.top + child.rect.element.height * 0.5;\n\n if (positionInView.top < childMid) {\n return index;\n }\n }\n\n return l;\n } // grid\n\n\n var itemVerticalMargin = itemRect.marginTop + itemRect.marginBottom;\n var itemHeight = itemRect.height + itemVerticalMargin;\n\n for (var _index = 0; _index < l; _index++) {\n var indexX = _index % itemsPerRow;\n var indexY = Math.floor(_index / itemsPerRow);\n var offsetX = indexX * itemWidth;\n var offsetY = indexY * itemHeight;\n var itemTop = offsetY - itemRect.marginTop;\n var itemRight = offsetX + itemWidth;\n var itemBottom = offsetY + itemHeight + itemRect.marginBottom;\n\n if (positionInView.top < itemBottom && positionInView.top > itemTop) {\n if (positionInView.left < itemRight) {\n return _index;\n } else if (_index !== l - 1) {\n last = _index;\n } else {\n last = null;\n }\n }\n }\n\n if (last !== null) {\n return last;\n }\n\n return l;\n };\n\n var dropAreaDimensions = {\n height: 0,\n width: 0,\n\n get getHeight() {\n return this.height;\n },\n\n set setHeight(val) {\n if (this.height === 0 || val === 0) this.height = val;\n },\n\n get getWidth() {\n return this.width;\n },\n\n set setWidth(val) {\n if (this.width === 0 || val === 0) this.width = val;\n },\n\n setDimensions: function setDimensions(height, width) {\n if (this.height === 0 || height === 0) this.height = height;\n if (this.width === 0 || width === 0) this.width = width;\n }\n };\n\n var create$8 = function create(_ref) {\n var root = _ref.root; // need to set role to list as otherwise it won't be read as a list by VoiceOver\n\n attr(root.element, 'role', 'list');\n root.ref.lastItemSpanwDate = Date.now();\n };\n /**\n * Inserts a new item\n * @param root\n * @param action\n */\n\n\n var addItemView = function addItemView(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n var id = action.id,\n index = action.index,\n interactionMethod = action.interactionMethod;\n root.ref.addIndex = index;\n var now = Date.now();\n var spawnDate = now;\n var opacity = 1;\n\n if (interactionMethod !== InteractionMethod.NONE) {\n opacity = 0;\n var cooldown = root.query('GET_ITEM_INSERT_INTERVAL');\n var dist = now - root.ref.lastItemSpanwDate;\n spawnDate = dist < cooldown ? now + (cooldown - dist) : now;\n }\n\n root.ref.lastItemSpanwDate = spawnDate;\n root.appendChildView(root.createChildView( // view type\n item, // props\n {\n spawnDate: spawnDate,\n id: id,\n opacity: opacity,\n interactionMethod: interactionMethod\n }), index);\n };\n\n var moveItem = function moveItem(item, x, y) {\n var vx = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var vy = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; // set to null to remove animation while dragging\n\n if (item.dragOffset) {\n item.translateX = null;\n item.translateY = null;\n item.translateX = item.dragOrigin.x + item.dragOffset.x;\n item.translateY = item.dragOrigin.y + item.dragOffset.y;\n item.scaleX = 1.025;\n item.scaleY = 1.025;\n } else {\n item.translateX = x;\n item.translateY = y;\n\n if (Date.now() > item.spawnDate) {\n // reveal element\n if (item.opacity === 0) {\n introItemView(item, x, y, vx, vy);\n } // make sure is default scale every frame\n\n\n item.scaleX = 1;\n item.scaleY = 1;\n item.opacity = 1;\n }\n }\n };\n\n var introItemView = function introItemView(item, x, y, vx, vy) {\n if (item.interactionMethod === InteractionMethod.NONE) {\n item.translateX = null;\n item.translateX = x;\n item.translateY = null;\n item.translateY = y;\n } else if (item.interactionMethod === InteractionMethod.DROP) {\n item.translateX = null;\n item.translateX = x - vx * 20;\n item.translateY = null;\n item.translateY = y - vy * 10;\n item.scaleX = 0.8;\n item.scaleY = 0.8;\n } else if (item.interactionMethod === InteractionMethod.BROWSE) {\n item.translateY = null;\n item.translateY = y - 30;\n } else if (item.interactionMethod === InteractionMethod.API) {\n item.translateX = null;\n item.translateX = x - 30;\n item.translateY = null;\n }\n };\n /**\n * Removes an existing item\n * @param root\n * @param action\n */\n\n\n var removeItemView = function removeItemView(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var id = action.id; // get the view matching the given id\n\n var view = root.childViews.find(function (child) {\n return child.id === id;\n }); // if no view found, exit\n\n if (!view) {\n return;\n } // animate view out of view\n\n\n view.scaleX = 0.9;\n view.scaleY = 0.9;\n view.opacity = 0; // mark for removal\n\n view.markedForRemoval = true;\n };\n\n var getItemHeight = function getItemHeight(child) {\n return child.rect.element.height + child.rect.element.marginBottom * 0.5 + child.rect.element.marginTop * 0.5;\n };\n\n var getItemWidth = function getItemWidth(child) {\n return child.rect.element.width + child.rect.element.marginLeft * 0.5 + child.rect.element.marginRight * 0.5;\n };\n\n var dragItem = function dragItem(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n var id = action.id,\n dragState = action.dragState; // reference to item\n\n var item = root.query('GET_ITEM', {\n id: id\n }); // get the view matching the given id\n\n var view = root.childViews.find(function (child) {\n return child.id === id;\n });\n var numItems = root.childViews.length;\n var oldIndex = dragState.getItemIndex(item); // if no view found, exit\n\n if (!view) return;\n var dragPosition = {\n x: view.dragOrigin.x + view.dragOffset.x + view.dragCenter.x,\n y: view.dragOrigin.y + view.dragOffset.y + view.dragCenter.y\n }; // get drag area dimensions\n\n var dragHeight = getItemHeight(view);\n var dragWidth = getItemWidth(view); // get rows and columns (There will always be at least one row and one column if a file is present)\n\n var cols = Math.floor(root.rect.outer.width / dragWidth);\n if (cols > numItems) cols = numItems; // rows are used to find when we have left the preview area bounding box\n\n var rows = Math.floor(numItems / cols + 1);\n dropAreaDimensions.setHeight = dragHeight * rows;\n dropAreaDimensions.setWidth = dragWidth * cols; // get new index of dragged item\n\n var location = {\n y: Math.floor(dragPosition.y / dragHeight),\n x: Math.floor(dragPosition.x / dragWidth),\n getGridIndex: function getGridIndex() {\n if (dragPosition.y > dropAreaDimensions.getHeight || dragPosition.y < 0 || dragPosition.x > dropAreaDimensions.getWidth || dragPosition.x < 0) return oldIndex;\n return this.y * cols + this.x;\n },\n getColIndex: function getColIndex() {\n var items = root.query('GET_ACTIVE_ITEMS');\n var visibleChildren = root.childViews.filter(function (child) {\n return child.rect.element.height;\n });\n var children = items.map(function (item) {\n return visibleChildren.find(function (childView) {\n return childView.id === item.id;\n });\n });\n var currentIndex = children.findIndex(function (child) {\n return child === view;\n });\n var dragHeight = getItemHeight(view);\n var l = children.length;\n var idx = l;\n var childHeight = 0;\n var childBottom = 0;\n var childTop = 0;\n\n for (var i = 0; i < l; i++) {\n childHeight = getItemHeight(children[i]);\n childTop = childBottom;\n childBottom = childTop + childHeight;\n\n if (dragPosition.y < childBottom) {\n if (currentIndex > i) {\n if (dragPosition.y < childTop + dragHeight) {\n idx = i;\n break;\n }\n\n continue;\n }\n\n idx = i;\n break;\n }\n }\n\n return idx;\n }\n }; // get new index\n\n var index = cols > 1 ? location.getGridIndex() : location.getColIndex();\n root.dispatch('MOVE_ITEM', {\n query: view,\n index: index\n }); // if the index of the item changed, dispatch reorder action\n\n var currentIndex = dragState.getIndex();\n\n if (currentIndex === undefined || currentIndex !== index) {\n dragState.setIndex(index);\n if (currentIndex === undefined) return;\n root.dispatch('DID_REORDER_ITEMS', {\n items: root.query('GET_ACTIVE_ITEMS'),\n origin: oldIndex,\n target: index\n });\n }\n };\n /**\n * Setup action routes\n */\n\n\n var route$2 = createRoute({\n DID_ADD_ITEM: addItemView,\n DID_REMOVE_ITEM: removeItemView,\n DID_DRAG_ITEM: dragItem\n });\n /**\n * Write to view\n * @param root\n * @param actions\n * @param props\n */\n\n var write$5 = function write(_ref5) {\n var root = _ref5.root,\n props = _ref5.props,\n actions = _ref5.actions,\n shouldOptimize = _ref5.shouldOptimize; // route actions\n\n route$2({\n root: root,\n props: props,\n actions: actions\n });\n var dragCoordinates = props.dragCoordinates; // available space on horizontal axis\n\n var horizontalSpace = root.rect.element.width; // only draw children that have dimensions\n\n var visibleChildren = root.childViews.filter(function (child) {\n return child.rect.element.height;\n }); // sort based on current active items\n\n var children = root.query('GET_ACTIVE_ITEMS').map(function (item) {\n return visibleChildren.find(function (child) {\n return child.id === item.id;\n });\n }).filter(function (item) {\n return item;\n }); // get index\n\n var dragIndex = dragCoordinates ? getItemIndexByPosition(root, children, dragCoordinates) : null; // add index is used to reserve the dropped/added item index till the actual item is rendered\n\n var addIndex = root.ref.addIndex || null; // add index no longer needed till possibly next draw\n\n root.ref.addIndex = null;\n var dragIndexOffset = 0;\n var removeIndexOffset = 0;\n var addIndexOffset = 0;\n if (children.length === 0) return;\n var childRect = children[0].rect.element;\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\n var itemWidth = childRect.width + itemHorizontalMargin;\n var itemHeight = childRect.height + itemVerticalMargin;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth); // stack\n\n if (itemsPerRow === 1) {\n var offsetY = 0;\n var dragOffset = 0;\n children.forEach(function (child, index) {\n if (dragIndex) {\n var dist = index - dragIndex;\n\n if (dist === -2) {\n dragOffset = -itemVerticalMargin * 0.25;\n } else if (dist === -1) {\n dragOffset = -itemVerticalMargin * 0.75;\n } else if (dist === 0) {\n dragOffset = itemVerticalMargin * 0.75;\n } else if (dist === 1) {\n dragOffset = itemVerticalMargin * 0.25;\n } else {\n dragOffset = 0;\n }\n }\n\n if (shouldOptimize) {\n child.translateX = null;\n child.translateY = null;\n }\n\n if (!child.markedForRemoval) {\n moveItem(child, 0, offsetY + dragOffset);\n }\n\n var itemHeight = child.rect.element.height + itemVerticalMargin;\n var visualHeight = itemHeight * (child.markedForRemoval ? child.opacity : 1);\n offsetY += visualHeight;\n });\n } // grid\n else {\n var prevX = 0;\n var prevY = 0;\n children.forEach(function (child, index) {\n if (index === dragIndex) {\n dragIndexOffset = 1;\n }\n\n if (index === addIndex) {\n addIndexOffset += 1;\n }\n\n if (child.markedForRemoval && child.opacity < 0.5) {\n removeIndexOffset -= 1;\n }\n\n var visualIndex = index + addIndexOffset + dragIndexOffset + removeIndexOffset;\n var indexX = visualIndex % itemsPerRow;\n var indexY = Math.floor(visualIndex / itemsPerRow);\n var offsetX = indexX * itemWidth;\n var offsetY = indexY * itemHeight;\n var vectorX = Math.sign(offsetX - prevX);\n var vectorY = Math.sign(offsetY - prevY);\n prevX = offsetX;\n prevY = offsetY;\n if (child.markedForRemoval) return;\n\n if (shouldOptimize) {\n child.translateX = null;\n child.translateY = null;\n }\n\n moveItem(child, offsetX, offsetY, vectorX, vectorY);\n });\n }\n };\n /**\n * Filters actions that are meant specifically for a certain child of the list\n * @param child\n * @param actions\n */\n\n\n var filterSetItemActions = function filterSetItemActions(child, actions) {\n return actions.filter(function (action) {\n // if action has an id, filter out actions that don't have this child id\n if (action.data && action.data.id) {\n return child.id === action.data.id;\n } // allow all other actions\n\n\n return true;\n });\n };\n\n var list = createView({\n create: create$8,\n write: write$5,\n tag: 'ul',\n name: 'list',\n didWriteView: function didWriteView(_ref6) {\n var root = _ref6.root;\n root.childViews.filter(function (view) {\n return view.markedForRemoval && view.opacity === 0 && view.resting;\n }).forEach(function (view) {\n view._destroy();\n\n root.removeChildView(view);\n });\n },\n filterFrameActionsForChild: filterSetItemActions,\n mixins: {\n apis: ['dragCoordinates']\n }\n });\n\n var create$9 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.ref.list = root.appendChildView(root.createChildView(list));\n props.dragCoordinates = null;\n props.overflowing = false;\n };\n\n var storeDragCoordinates = function storeDragCoordinates(_ref2) {\n var root = _ref2.root,\n props = _ref2.props,\n action = _ref2.action;\n if (!root.query('GET_ITEM_INSERT_LOCATION_FREEDOM')) return;\n props.dragCoordinates = {\n left: action.position.scopeLeft - root.ref.list.rect.element.left,\n top: action.position.scopeTop - (root.rect.outer.top + root.rect.element.marginTop + root.rect.element.scrollTop)\n };\n };\n\n var clearDragCoordinates = function clearDragCoordinates(_ref3) {\n var props = _ref3.props;\n props.dragCoordinates = null;\n };\n\n var route$3 = createRoute({\n DID_DRAG: storeDragCoordinates,\n DID_END_DRAG: clearDragCoordinates\n });\n\n var write$6 = function write(_ref4) {\n var root = _ref4.root,\n props = _ref4.props,\n actions = _ref4.actions; // route actions\n\n route$3({\n root: root,\n props: props,\n actions: actions\n }); // current drag position\n\n root.ref.list.dragCoordinates = props.dragCoordinates; // if currently overflowing but no longer received overflow\n\n if (props.overflowing && !props.overflow) {\n props.overflowing = false; // reset overflow state\n\n root.element.dataset.state = '';\n root.height = null;\n } // if is not overflowing currently but does receive overflow value\n\n\n if (props.overflow) {\n var newHeight = Math.round(props.overflow);\n\n if (newHeight !== root.height) {\n props.overflowing = true;\n root.element.dataset.state = 'overflow';\n root.height = newHeight;\n }\n }\n };\n\n var listScroller = createView({\n create: create$9,\n write: write$6,\n name: 'list-scroller',\n mixins: {\n apis: ['overflow', 'dragCoordinates'],\n styles: ['height', 'translateY'],\n animations: {\n translateY: 'spring'\n }\n }\n });\n\n var attrToggle = function attrToggle(element, name, state) {\n var enabledValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n\n if (state) {\n attr(element, name, enabledValue);\n } else {\n element.removeAttribute(name);\n }\n };\n\n var resetFileInput = function resetFileInput(input) {\n // no value, no need to reset\n if (!input || input.value === '') {\n return;\n }\n\n try {\n // for modern browsers\n input.value = '';\n } catch (err) {} // for IE10\n\n\n if (input.value) {\n // quickly append input to temp form and reset form\n var form = createElement$1('form');\n var parentNode = input.parentNode;\n var ref = input.nextSibling;\n form.appendChild(input);\n form.reset(); // re-inject input where it originally was\n\n if (ref) {\n parentNode.insertBefore(input, ref);\n } else {\n parentNode.appendChild(input);\n }\n }\n };\n\n var create$a = function create(_ref) {\n var root = _ref.root,\n props = _ref.props; // set id so can be referenced from outside labels\n\n root.element.id = 'filepond--browser-' + props.id; // set name of element (is removed when a value is set)\n\n attr(root.element, 'name', root.query('GET_NAME')); // we have to link this element to the status element\n\n attr(root.element, 'aria-controls', 'filepond--assistant-' + props.id); // set label, we use labelled by as otherwise the screenreader does not read the \"browse\" text in the label (as it has tabindex: 0)\n\n attr(root.element, 'aria-labelledby', 'filepond--drop-label-' + props.id); // set configurable props\n\n setAcceptedFileTypes({\n root: root,\n action: {\n value: root.query('GET_ACCEPTED_FILE_TYPES')\n }\n });\n toggleAllowMultiple({\n root: root,\n action: {\n value: root.query('GET_ALLOW_MULTIPLE')\n }\n });\n toggleDirectoryFilter({\n root: root,\n action: {\n value: root.query('GET_ALLOW_DIRECTORIES_ONLY')\n }\n });\n toggleDisabled({\n root: root\n });\n toggleRequired({\n root: root,\n action: {\n value: root.query('GET_REQUIRED')\n }\n });\n setCaptureMethod({\n root: root,\n action: {\n value: root.query('GET_CAPTURE_METHOD')\n }\n }); // handle changes to the input field\n\n root.ref.handleChange = function (e) {\n if (!root.element.value) {\n return;\n } // extract files and move value of webkitRelativePath path to _relativePath\n\n\n var files = Array.from(root.element.files).map(function (file) {\n file._relativePath = file.webkitRelativePath;\n return file;\n }); // we add a little delay so the OS file select window can move out of the way before we add our file\n\n setTimeout(function () {\n // load files\n props.onload(files); // reset input, it's just for exposing a method to drop files, should not retain any state\n\n resetFileInput(root.element);\n }, 250);\n };\n\n root.element.addEventListener('change', root.ref.handleChange);\n };\n\n var setAcceptedFileTypes = function setAcceptedFileTypes(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n if (!root.query('GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE')) return;\n attrToggle(root.element, 'accept', !!action.value, action.value ? action.value.join(',') : '');\n };\n\n var toggleAllowMultiple = function toggleAllowMultiple(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n attrToggle(root.element, 'multiple', action.value);\n };\n\n var toggleDirectoryFilter = function toggleDirectoryFilter(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n attrToggle(root.element, 'webkitdirectory', action.value);\n };\n\n var toggleDisabled = function toggleDisabled(_ref5) {\n var root = _ref5.root;\n var isDisabled = root.query('GET_DISABLED');\n var doesAllowBrowse = root.query('GET_ALLOW_BROWSE');\n var disableField = isDisabled || !doesAllowBrowse;\n attrToggle(root.element, 'disabled', disableField);\n };\n\n var toggleRequired = function toggleRequired(_ref6) {\n var root = _ref6.root,\n action = _ref6.action; // want to remove required, always possible\n\n if (!action.value) {\n attrToggle(root.element, 'required', false);\n } // if want to make required, only possible when zero items\n else if (root.query('GET_TOTAL_ITEMS') === 0) {\n attrToggle(root.element, 'required', true);\n }\n };\n\n var setCaptureMethod = function setCaptureMethod(_ref7) {\n var root = _ref7.root,\n action = _ref7.action;\n attrToggle(root.element, 'capture', !!action.value, action.value === true ? '' : action.value);\n };\n\n var updateRequiredStatus = function updateRequiredStatus(_ref8) {\n var root = _ref8.root;\n var element = root.element; // always remove the required attribute when more than zero items\n\n if (root.query('GET_TOTAL_ITEMS') > 0) {\n attrToggle(element, 'required', false);\n attrToggle(element, 'name', false);\n } else {\n // add name attribute\n attrToggle(element, 'name', true, root.query('GET_NAME')); // remove any validation messages\n\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\n\n if (shouldCheckValidity) {\n element.setCustomValidity('');\n } // we only add required if the field has been deemed required\n\n\n if (root.query('GET_REQUIRED')) {\n attrToggle(element, 'required', true);\n }\n }\n };\n\n var updateFieldValidityStatus = function updateFieldValidityStatus(_ref9) {\n var root = _ref9.root;\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\n if (!shouldCheckValidity) return;\n root.element.setCustomValidity(root.query('GET_LABEL_INVALID_FIELD'));\n };\n\n var browser = createView({\n tag: 'input',\n name: 'browser',\n ignoreRect: true,\n ignoreRectUpdate: true,\n attributes: {\n type: 'file'\n },\n create: create$a,\n destroy: function destroy(_ref10) {\n var root = _ref10.root;\n root.element.removeEventListener('change', root.ref.handleChange);\n },\n write: createRoute({\n DID_LOAD_ITEM: updateRequiredStatus,\n DID_REMOVE_ITEM: updateRequiredStatus,\n DID_THROW_ITEM_INVALID: updateFieldValidityStatus,\n DID_SET_DISABLED: toggleDisabled,\n DID_SET_ALLOW_BROWSE: toggleDisabled,\n DID_SET_ALLOW_DIRECTORIES_ONLY: toggleDirectoryFilter,\n DID_SET_ALLOW_MULTIPLE: toggleAllowMultiple,\n DID_SET_ACCEPTED_FILE_TYPES: setAcceptedFileTypes,\n DID_SET_CAPTURE_METHOD: setCaptureMethod,\n DID_SET_REQUIRED: toggleRequired\n })\n });\n var Key = {\n ENTER: 13,\n SPACE: 32\n };\n\n var create$b = function create(_ref) {\n var root = _ref.root,\n props = _ref.props; // create the label and link it to the file browser\n\n var label = createElement$1('label');\n attr(label, 'for', 'filepond--browser-' + props.id); // use for labeling file input (aria-labelledby on file input)\n\n attr(label, 'id', 'filepond--drop-label-' + props.id); // hide the label for screenreaders, the input element will read the contents of the label when it's focussed. If we don't set aria-hidden the screenreader will also navigate the contents of the label separately from the input.\n\n attr(label, 'aria-hidden', 'true'); // handle keys\n\n root.ref.handleKeyDown = function (e) {\n var isActivationKey = e.keyCode === Key.ENTER || e.keyCode === Key.SPACE;\n if (!isActivationKey) return; // stops from triggering the element a second time\n\n e.preventDefault(); // click link (will then in turn activate file input)\n\n root.ref.label.click();\n };\n\n root.ref.handleClick = function (e) {\n var isLabelClick = e.target === label || label.contains(e.target); // don't want to click twice\n\n if (isLabelClick) return; // click link (will then in turn activate file input)\n\n root.ref.label.click();\n }; // attach events\n\n\n label.addEventListener('keydown', root.ref.handleKeyDown);\n root.element.addEventListener('click', root.ref.handleClick); // update\n\n updateLabelValue(label, props.caption); // add!\n\n root.appendChild(label);\n root.ref.label = label;\n };\n\n var updateLabelValue = function updateLabelValue(label, value) {\n label.innerHTML = value;\n var clickable = label.querySelector('.filepond--label-action');\n\n if (clickable) {\n attr(clickable, 'tabindex', '0');\n }\n\n return value;\n };\n\n var dropLabel = createView({\n name: 'drop-label',\n ignoreRect: true,\n create: create$b,\n destroy: function destroy(_ref2) {\n var root = _ref2.root;\n root.ref.label.addEventListener('keydown', root.ref.handleKeyDown);\n root.element.removeEventListener('click', root.ref.handleClick);\n },\n write: createRoute({\n DID_SET_LABEL_IDLE: function DID_SET_LABEL_IDLE(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n updateLabelValue(root.ref.label, action.value);\n }\n }),\n mixins: {\n styles: ['opacity', 'translateX', 'translateY'],\n animations: {\n opacity: {\n type: 'tween',\n duration: 150\n },\n translateX: 'spring',\n translateY: 'spring'\n }\n }\n });\n var blob = createView({\n name: 'drip-blob',\n ignoreRect: true,\n mixins: {\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n translateX: 'spring',\n translateY: 'spring',\n opacity: {\n type: 'tween',\n duration: 250\n }\n }\n }\n });\n\n var addBlob = function addBlob(_ref) {\n var root = _ref.root;\n var centerX = root.rect.element.width * 0.5;\n var centerY = root.rect.element.height * 0.5;\n root.ref.blob = root.appendChildView(root.createChildView(blob, {\n opacity: 0,\n scaleX: 2.5,\n scaleY: 2.5,\n translateX: centerX,\n translateY: centerY\n }));\n };\n\n var moveBlob = function moveBlob(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n\n if (!root.ref.blob) {\n addBlob({\n root: root\n });\n return;\n }\n\n root.ref.blob.translateX = action.position.scopeLeft;\n root.ref.blob.translateY = action.position.scopeTop;\n root.ref.blob.scaleX = 1;\n root.ref.blob.scaleY = 1;\n root.ref.blob.opacity = 1;\n };\n\n var hideBlob = function hideBlob(_ref3) {\n var root = _ref3.root;\n\n if (!root.ref.blob) {\n return;\n }\n\n root.ref.blob.opacity = 0;\n };\n\n var explodeBlob = function explodeBlob(_ref4) {\n var root = _ref4.root;\n\n if (!root.ref.blob) {\n return;\n }\n\n root.ref.blob.scaleX = 2.5;\n root.ref.blob.scaleY = 2.5;\n root.ref.blob.opacity = 0;\n };\n\n var write$7 = function write(_ref5) {\n var root = _ref5.root,\n props = _ref5.props,\n actions = _ref5.actions;\n route$4({\n root: root,\n props: props,\n actions: actions\n });\n var blob = root.ref.blob;\n\n if (actions.length === 0 && blob && blob.opacity === 0) {\n root.removeChildView(blob);\n root.ref.blob = null;\n }\n };\n\n var route$4 = createRoute({\n DID_DRAG: moveBlob,\n DID_DROP: explodeBlob,\n DID_END_DRAG: hideBlob\n });\n var drip = createView({\n ignoreRect: true,\n ignoreRectUpdate: true,\n name: 'drip',\n write: write$7\n });\n\n var setInputFiles = function setInputFiles(element, files) {\n try {\n // Create a DataTransfer instance and add a newly created file\n var dataTransfer = new DataTransfer();\n files.forEach(function (file) {\n if (file instanceof File) {\n dataTransfer.items.add(file);\n } else {\n dataTransfer.items.add(new File([file], file.name, {\n type: file.type\n }));\n }\n }); // Assign the DataTransfer files list to the file input\n\n element.files = dataTransfer.files;\n } catch (err) {\n return false;\n }\n\n return true;\n };\n\n var create$c = function create(_ref) {\n var root = _ref.root;\n return root.ref.fields = {};\n };\n\n var getField = function getField(root, id) {\n return root.ref.fields[id];\n };\n\n var syncFieldPositionsWithItems = function syncFieldPositionsWithItems(root) {\n root.query('GET_ACTIVE_ITEMS').forEach(function (item) {\n if (!root.ref.fields[item.id]) return;\n root.element.appendChild(root.ref.fields[item.id]);\n });\n };\n\n var didReorderItems = function didReorderItems(_ref2) {\n var root = _ref2.root;\n return syncFieldPositionsWithItems(root);\n };\n\n var didAddItem = function didAddItem(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var fileItem = root.query('GET_ITEM', action.id);\n var isLocalFile = fileItem.origin === FileOrigin.LOCAL;\n var shouldUseFileInput = !isLocalFile && root.query('SHOULD_UPDATE_FILE_INPUT');\n var dataContainer = createElement$1('input');\n dataContainer.type = shouldUseFileInput ? 'file' : 'hidden';\n dataContainer.name = root.query('GET_NAME');\n dataContainer.disabled = root.query('GET_DISABLED');\n root.ref.fields[action.id] = dataContainer;\n syncFieldPositionsWithItems(root);\n };\n\n var didLoadItem$1 = function didLoadItem(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n var field = getField(root, action.id);\n if (!field) return; // store server ref in hidden input\n\n if (action.serverFileReference !== null) field.value = action.serverFileReference; // store file item in file input\n\n if (!root.query('SHOULD_UPDATE_FILE_INPUT')) return;\n var fileItem = root.query('GET_ITEM', action.id);\n setInputFiles(field, [fileItem.file]);\n };\n\n var didPrepareOutput = function didPrepareOutput(_ref5) {\n var root = _ref5.root,\n action = _ref5.action; // this timeout pushes the handler after 'load'\n\n if (!root.query('SHOULD_UPDATE_FILE_INPUT')) return;\n setTimeout(function () {\n var field = getField(root, action.id);\n if (!field) return;\n setInputFiles(field, [action.file]);\n }, 0);\n };\n\n var didSetDisabled = function didSetDisabled(_ref6) {\n var root = _ref6.root;\n root.element.disabled = root.query('GET_DISABLED');\n };\n\n var didRemoveItem = function didRemoveItem(_ref7) {\n var root = _ref7.root,\n action = _ref7.action;\n var field = getField(root, action.id);\n if (!field) return;\n if (field.parentNode) field.parentNode.removeChild(field);\n delete root.ref.fields[action.id];\n }; // only runs for server files. will refuse to update the value if the field\n // is a file field\n\n\n var didDefineValue = function didDefineValue(_ref8) {\n var root = _ref8.root,\n action = _ref8.action;\n var field = getField(root, action.id);\n if (!field) return;\n\n if (action.value === null) {\n // clear field value\n field.removeAttribute('value');\n } else {\n // set field value\n if (field.type != 'file') {\n field.value = action.value;\n }\n }\n\n syncFieldPositionsWithItems(root);\n };\n\n var write$8 = createRoute({\n DID_SET_DISABLED: didSetDisabled,\n DID_ADD_ITEM: didAddItem,\n DID_LOAD_ITEM: didLoadItem$1,\n DID_REMOVE_ITEM: didRemoveItem,\n DID_DEFINE_VALUE: didDefineValue,\n DID_PREPARE_OUTPUT: didPrepareOutput,\n DID_REORDER_ITEMS: didReorderItems,\n DID_SORT_ITEMS: didReorderItems\n });\n var data = createView({\n tag: 'fieldset',\n name: 'data',\n create: create$c,\n write: write$8,\n ignoreRect: true\n });\n\n var getRootNode = function getRootNode(element) {\n return 'getRootNode' in element ? element.getRootNode() : document;\n };\n\n var images = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff'];\n var text$1 = ['css', 'csv', 'html', 'txt'];\n var map = {\n zip: 'zip|compressed',\n epub: 'application/epub+zip'\n };\n\n var guesstimateMimeType = function guesstimateMimeType() {\n var extension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n extension = extension.toLowerCase();\n\n if (images.includes(extension)) {\n return 'image/' + (extension === 'jpg' ? 'jpeg' : extension === 'svg' ? 'svg+xml' : extension);\n }\n\n if (text$1.includes(extension)) {\n return 'text/' + extension;\n }\n\n return map[extension] || '';\n };\n\n var requestDataTransferItems = function requestDataTransferItems(dataTransfer) {\n return new Promise(function (resolve, reject) {\n // try to get links from transfer, if found we'll exit immediately (unless a file is in the dataTransfer as well, this is because Firefox could represent the file as a URL and a file object at the same time)\n var links = getLinks(dataTransfer);\n\n if (links.length && !hasFiles(dataTransfer)) {\n return resolve(links);\n } // try to get files from the transfer\n\n\n getFiles(dataTransfer).then(resolve);\n });\n };\n /**\n * Test if datatransfer has files\n */\n\n\n var hasFiles = function hasFiles(dataTransfer) {\n if (dataTransfer.files) return dataTransfer.files.length > 0;\n return false;\n };\n /**\n * Extracts files from a DataTransfer object\n */\n\n\n var getFiles = function getFiles(dataTransfer) {\n return new Promise(function (resolve, reject) {\n // get the transfer items as promises\n var promisedFiles = (dataTransfer.items ? Array.from(dataTransfer.items) : [] // only keep file system items (files and directories)\n ).filter(function (item) {\n return isFileSystemItem(item);\n }) // map each item to promise\n .map(function (item) {\n return getFilesFromItem(item);\n }); // if is empty, see if we can extract some info from the files property as a fallback\n\n if (!promisedFiles.length) {\n // TODO: test for directories (should not be allowed)\n // Use FileReader, problem is that the files property gets lost in the process\n resolve(dataTransfer.files ? Array.from(dataTransfer.files) : []);\n return;\n } // done!\n\n\n Promise.all(promisedFiles).then(function (returnedFileGroups) {\n // flatten groups\n var files = [];\n returnedFileGroups.forEach(function (group) {\n files.push.apply(files, group);\n }); // done (filter out empty files)!\n\n resolve(files.filter(function (file) {\n return file;\n }).map(function (file) {\n if (!file._relativePath) file._relativePath = file.webkitRelativePath;\n return file;\n }));\n }).catch(console.error);\n });\n };\n\n var isFileSystemItem = function isFileSystemItem(item) {\n if (isEntry(item)) {\n var entry = getAsEntry(item);\n\n if (entry) {\n return entry.isFile || entry.isDirectory;\n }\n }\n\n return item.kind === 'file';\n };\n\n var getFilesFromItem = function getFilesFromItem(item) {\n return new Promise(function (resolve, reject) {\n if (isDirectoryEntry(item)) {\n getFilesInDirectory(getAsEntry(item)).then(resolve).catch(reject);\n return;\n }\n\n resolve([item.getAsFile()]);\n });\n };\n\n var getFilesInDirectory = function getFilesInDirectory(entry) {\n return new Promise(function (resolve, reject) {\n var files = []; // the total entries to read\n\n var dirCounter = 0;\n var fileCounter = 0;\n\n var resolveIfDone = function resolveIfDone() {\n if (fileCounter === 0 && dirCounter === 0) {\n resolve(files);\n }\n }; // the recursive function\n\n\n var readEntries = function readEntries(dirEntry) {\n dirCounter++;\n var directoryReader = dirEntry.createReader(); // directories are returned in batches, we need to process all batches before we're done\n\n var readBatch = function readBatch() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n dirCounter--;\n resolveIfDone();\n return;\n }\n\n entries.forEach(function (entry) {\n // recursively read more directories\n if (entry.isDirectory) {\n readEntries(entry);\n } else {\n // read as file\n fileCounter++;\n entry.file(function (file) {\n var correctedFile = correctMissingFileType(file);\n if (entry.fullPath) correctedFile._relativePath = entry.fullPath;\n files.push(correctedFile);\n fileCounter--;\n resolveIfDone();\n });\n }\n }); // try to get next batch of files\n\n readBatch();\n }, reject);\n }; // read first batch of files\n\n\n readBatch();\n }; // go!\n\n\n readEntries(entry);\n });\n };\n\n var correctMissingFileType = function correctMissingFileType(file) {\n if (file.type.length) return file;\n var date = file.lastModifiedDate;\n var name = file.name;\n var type = guesstimateMimeType(getExtensionFromFilename(file.name));\n if (!type.length) return file;\n file = file.slice(0, file.size, type);\n file.name = name;\n file.lastModifiedDate = date;\n return file;\n };\n\n var isDirectoryEntry = function isDirectoryEntry(item) {\n return isEntry(item) && (getAsEntry(item) || {}).isDirectory;\n };\n\n var isEntry = function isEntry(item) {\n return 'webkitGetAsEntry' in item;\n };\n\n var getAsEntry = function getAsEntry(item) {\n return item.webkitGetAsEntry();\n };\n /**\n * Extracts links from a DataTransfer object\n */\n\n\n var getLinks = function getLinks(dataTransfer) {\n var links = [];\n\n try {\n // look in meta data property\n links = getLinksFromTransferMetaData(dataTransfer);\n\n if (links.length) {\n return links;\n }\n\n links = getLinksFromTransferURLData(dataTransfer);\n } catch (e) {// nope nope nope (probably IE trouble)\n }\n\n return links;\n };\n\n var getLinksFromTransferURLData = function getLinksFromTransferURLData(dataTransfer) {\n var data = dataTransfer.getData('url');\n\n if (typeof data === 'string' && data.length) {\n return [data];\n }\n\n return [];\n };\n\n var getLinksFromTransferMetaData = function getLinksFromTransferMetaData(dataTransfer) {\n var data = dataTransfer.getData('text/html');\n\n if (typeof data === 'string' && data.length) {\n var matches = data.match(/src\\s*=\\s*\"(.+?)\"/);\n\n if (matches) {\n return [matches[1]];\n }\n }\n\n return [];\n };\n\n var dragNDropObservers = [];\n\n var eventPosition = function eventPosition(e) {\n return {\n pageLeft: e.pageX,\n pageTop: e.pageY,\n scopeLeft: e.offsetX || e.layerX,\n scopeTop: e.offsetY || e.layerY\n };\n };\n\n var createDragNDropClient = function createDragNDropClient(element, scopeToObserve, filterElement) {\n var observer = getDragNDropObserver(scopeToObserve);\n var client = {\n element: element,\n filterElement: filterElement,\n state: null,\n ondrop: function ondrop() {},\n onenter: function onenter() {},\n ondrag: function ondrag() {},\n onexit: function onexit() {},\n onload: function onload() {},\n allowdrop: function allowdrop() {}\n };\n client.destroy = observer.addListener(client);\n return client;\n };\n\n var getDragNDropObserver = function getDragNDropObserver(element) {\n // see if already exists, if so, return\n var observer = dragNDropObservers.find(function (item) {\n return item.element === element;\n });\n\n if (observer) {\n return observer;\n } // create new observer, does not yet exist for this element\n\n\n var newObserver = createDragNDropObserver(element);\n dragNDropObservers.push(newObserver);\n return newObserver;\n };\n\n var createDragNDropObserver = function createDragNDropObserver(element) {\n var clients = [];\n var routes = {\n dragenter: dragenter,\n dragover: dragover,\n dragleave: dragleave,\n drop: drop\n };\n var handlers = {};\n forin(routes, function (event, createHandler) {\n handlers[event] = createHandler(element, clients);\n element.addEventListener(event, handlers[event], false);\n });\n var observer = {\n element: element,\n addListener: function addListener(client) {\n // add as client\n clients.push(client); // return removeListener function\n\n return function () {\n // remove client\n clients.splice(clients.indexOf(client), 1); // if no more clients, clean up observer\n\n if (clients.length === 0) {\n dragNDropObservers.splice(dragNDropObservers.indexOf(observer), 1);\n forin(routes, function (event) {\n element.removeEventListener(event, handlers[event], false);\n });\n }\n };\n }\n };\n return observer;\n };\n\n var elementFromPoint = function elementFromPoint(root, point) {\n if (!('elementFromPoint' in root)) {\n root = document;\n }\n\n return root.elementFromPoint(point.x, point.y);\n };\n\n var isEventTarget = function isEventTarget(e, target) {\n // get root\n var root = getRootNode(target); // get element at position\n // if root is not actual shadow DOM and does not have elementFromPoint method, use the one on document\n\n var elementAtPosition = elementFromPoint(root, {\n x: e.pageX - window.pageXOffset,\n y: e.pageY - window.pageYOffset\n }); // test if target is the element or if one of its children is\n\n return elementAtPosition === target || target.contains(elementAtPosition);\n };\n\n var initialTarget = null;\n\n var setDropEffect = function setDropEffect(dataTransfer, effect) {\n // is in try catch as IE11 will throw error if not\n try {\n dataTransfer.dropEffect = effect;\n } catch (e) {}\n };\n\n var dragenter = function dragenter(root, clients) {\n return function (e) {\n e.preventDefault();\n initialTarget = e.target;\n clients.forEach(function (client) {\n var element = client.element,\n onenter = client.onenter;\n\n if (isEventTarget(e, element)) {\n client.state = 'enter'; // fire enter event\n\n onenter(eventPosition(e));\n }\n });\n };\n };\n\n var dragover = function dragover(root, clients) {\n return function (e) {\n e.preventDefault();\n var dataTransfer = e.dataTransfer;\n requestDataTransferItems(dataTransfer).then(function (items) {\n var overDropTarget = false;\n clients.some(function (client) {\n var filterElement = client.filterElement,\n element = client.element,\n onenter = client.onenter,\n onexit = client.onexit,\n ondrag = client.ondrag,\n allowdrop = client.allowdrop; // by default we can drop\n\n setDropEffect(dataTransfer, 'copy'); // allow transfer of these items\n\n var allowsTransfer = allowdrop(items); // only used when can be dropped on page\n\n if (!allowsTransfer) {\n setDropEffect(dataTransfer, 'none');\n return;\n } // targetting this client\n\n\n if (isEventTarget(e, element)) {\n overDropTarget = true; // had no previous state, means we are entering this client\n\n if (client.state === null) {\n client.state = 'enter';\n onenter(eventPosition(e));\n return;\n } // now over element (no matter if it allows the drop or not)\n\n\n client.state = 'over'; // needs to allow transfer\n\n if (filterElement && !allowsTransfer) {\n setDropEffect(dataTransfer, 'none');\n return;\n } // dragging\n\n\n ondrag(eventPosition(e));\n } else {\n // should be over an element to drop\n if (filterElement && !overDropTarget) {\n setDropEffect(dataTransfer, 'none');\n } // might have just left this client?\n\n\n if (client.state) {\n client.state = null;\n onexit(eventPosition(e));\n }\n }\n });\n });\n };\n };\n\n var drop = function drop(root, clients) {\n return function (e) {\n e.preventDefault();\n var dataTransfer = e.dataTransfer;\n requestDataTransferItems(dataTransfer).then(function (items) {\n clients.forEach(function (client) {\n var filterElement = client.filterElement,\n element = client.element,\n ondrop = client.ondrop,\n onexit = client.onexit,\n allowdrop = client.allowdrop;\n client.state = null; // if we're filtering on element we need to be over the element to drop\n\n if (filterElement && !isEventTarget(e, element)) return; // no transfer for this client\n\n if (!allowdrop(items)) return onexit(eventPosition(e)); // we can drop these items on this client\n\n ondrop(eventPosition(e), items);\n });\n });\n };\n };\n\n var dragleave = function dragleave(root, clients) {\n return function (e) {\n if (initialTarget !== e.target) {\n return;\n }\n\n clients.forEach(function (client) {\n var onexit = client.onexit;\n client.state = null;\n onexit(eventPosition(e));\n });\n };\n };\n\n var createHopper = function createHopper(scope, validateItems, options) {\n // is now hopper scope\n scope.classList.add('filepond--hopper'); // shortcuts\n\n var catchesDropsOnPage = options.catchesDropsOnPage,\n requiresDropOnElement = options.requiresDropOnElement,\n _options$filterItems = options.filterItems,\n filterItems = _options$filterItems === void 0 ? function (items) {\n return items;\n } : _options$filterItems; // create a dnd client\n\n var client = createDragNDropClient(scope, catchesDropsOnPage ? document.documentElement : scope, requiresDropOnElement); // current client state\n\n var lastState = '';\n var currentState = ''; // determines if a file may be dropped\n\n client.allowdrop = function (items) {\n // TODO: if we can, throw error to indicate the items cannot by dropped\n return validateItems(filterItems(items));\n };\n\n client.ondrop = function (position, items) {\n var filteredItems = filterItems(items);\n\n if (!validateItems(filteredItems)) {\n api.ondragend(position);\n return;\n }\n\n currentState = 'drag-drop';\n api.onload(filteredItems, position);\n };\n\n client.ondrag = function (position) {\n api.ondrag(position);\n };\n\n client.onenter = function (position) {\n currentState = 'drag-over';\n api.ondragstart(position);\n };\n\n client.onexit = function (position) {\n currentState = 'drag-exit';\n api.ondragend(position);\n };\n\n var api = {\n updateHopperState: function updateHopperState() {\n if (lastState !== currentState) {\n scope.dataset.hopperState = currentState;\n lastState = currentState;\n }\n },\n onload: function onload() {},\n ondragstart: function ondragstart() {},\n ondrag: function ondrag() {},\n ondragend: function ondragend() {},\n destroy: function destroy() {\n // destroy client\n client.destroy();\n }\n };\n return api;\n };\n\n var listening = false;\n var listeners$1 = [];\n\n var handlePaste = function handlePaste(e) {\n // if is pasting in input or textarea and the target is outside of a filepond scope, ignore\n var activeEl = document.activeElement;\n\n if (activeEl && /textarea|input/i.test(activeEl.nodeName)) {\n // test textarea or input is contained in filepond root\n var inScope = false;\n var element = activeEl;\n\n while (element !== document.body) {\n if (element.classList.contains('filepond--root')) {\n inScope = true;\n break;\n }\n\n element = element.parentNode;\n }\n\n if (!inScope) return;\n }\n\n requestDataTransferItems(e.clipboardData).then(function (files) {\n // no files received\n if (!files.length) {\n return;\n } // notify listeners of received files\n\n\n listeners$1.forEach(function (listener) {\n return listener(files);\n });\n });\n };\n\n var listen = function listen(cb) {\n // can't add twice\n if (listeners$1.includes(cb)) {\n return;\n } // add initial listener\n\n\n listeners$1.push(cb); // setup paste listener for entire page\n\n if (listening) {\n return;\n }\n\n listening = true;\n document.addEventListener('paste', handlePaste);\n };\n\n var unlisten = function unlisten(listener) {\n arrayRemove(listeners$1, listeners$1.indexOf(listener)); // clean up\n\n if (listeners$1.length === 0) {\n document.removeEventListener('paste', handlePaste);\n listening = false;\n }\n };\n\n var createPaster = function createPaster() {\n var cb = function cb(files) {\n api.onload(files);\n };\n\n var api = {\n destroy: function destroy() {\n unlisten(cb);\n },\n onload: function onload() {}\n };\n listen(cb);\n return api;\n };\n /**\n * Creates the file view\n */\n\n\n var create$d = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.element.id = 'filepond--assistant-' + props.id;\n attr(root.element, 'role', 'status');\n attr(root.element, 'aria-live', 'polite');\n attr(root.element, 'aria-relevant', 'additions');\n };\n\n var addFilesNotificationTimeout = null;\n var notificationClearTimeout = null;\n var filenames = [];\n\n var assist = function assist(root, message) {\n root.element.textContent = message;\n };\n\n var clear$1 = function clear(root) {\n root.element.textContent = '';\n };\n\n var listModified = function listModified(root, filename, label) {\n var total = root.query('GET_TOTAL_ITEMS');\n assist(root, label + ' ' + filename + ', ' + total + ' ' + (total === 1 ? root.query('GET_LABEL_FILE_COUNT_SINGULAR') : root.query('GET_LABEL_FILE_COUNT_PLURAL'))); // clear group after set amount of time so the status is not read twice\n\n clearTimeout(notificationClearTimeout);\n notificationClearTimeout = setTimeout(function () {\n clear$1(root);\n }, 1500);\n };\n\n var isUsingFilePond = function isUsingFilePond(root) {\n return root.element.parentNode.contains(document.activeElement);\n };\n\n var itemAdded = function itemAdded(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n\n if (!isUsingFilePond(root)) {\n return;\n }\n\n root.element.textContent = '';\n var item = root.query('GET_ITEM', action.id);\n filenames.push(item.filename);\n clearTimeout(addFilesNotificationTimeout);\n addFilesNotificationTimeout = setTimeout(function () {\n listModified(root, filenames.join(', '), root.query('GET_LABEL_FILE_ADDED'));\n filenames.length = 0;\n }, 750);\n };\n\n var itemRemoved = function itemRemoved(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n\n if (!isUsingFilePond(root)) {\n return;\n }\n\n var item = action.item;\n listModified(root, item.filename, root.query('GET_LABEL_FILE_REMOVED'));\n };\n\n var itemProcessed = function itemProcessed(_ref4) {\n var root = _ref4.root,\n action = _ref4.action; // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\n\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n var label = root.query('GET_LABEL_FILE_PROCESSING_COMPLETE');\n assist(root, filename + ' ' + label);\n };\n\n var itemProcessedUndo = function itemProcessedUndo(_ref5) {\n var root = _ref5.root,\n action = _ref5.action;\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n var label = root.query('GET_LABEL_FILE_PROCESSING_ABORTED');\n assist(root, filename + ' ' + label);\n };\n\n var itemError = function itemError(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename; // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\n\n assist(root, action.status.main + ' ' + filename + ' ' + action.status.sub);\n };\n\n var assistant = createView({\n create: create$d,\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: itemAdded,\n DID_REMOVE_ITEM: itemRemoved,\n DID_COMPLETE_ITEM_PROCESSING: itemProcessed,\n DID_ABORT_ITEM_PROCESSING: itemProcessedUndo,\n DID_REVERT_ITEM_PROCESSING: itemProcessedUndo,\n DID_THROW_ITEM_REMOVE_ERROR: itemError,\n DID_THROW_ITEM_LOAD_ERROR: itemError,\n DID_THROW_ITEM_INVALID: itemError,\n DID_THROW_ITEM_PROCESSING_ERROR: itemError\n }),\n tag: 'span',\n name: 'assistant'\n });\n\n var toCamels = function toCamels(string) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\n return string.replace(new RegExp(separator + '.', 'g'), function (sub) {\n return sub.charAt(1).toUpperCase();\n });\n };\n\n var debounce = function debounce(func) {\n var interval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n var immidiateOnly = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var last = Date.now();\n var timeout = null;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeout);\n var dist = Date.now() - last;\n\n var fn = function fn() {\n last = Date.now();\n func.apply(void 0, args);\n };\n\n if (dist < interval) {\n // we need to delay by the difference between interval and dist\n // for example: if distance is 10 ms and interval is 16 ms,\n // we need to wait an additional 6ms before calling the function)\n if (!immidiateOnly) {\n timeout = setTimeout(fn, interval - dist);\n }\n } else {\n // go!\n fn();\n }\n };\n };\n\n var MAX_FILES_LIMIT = 1000000;\n\n var prevent = function prevent(e) {\n return e.preventDefault();\n };\n\n var create$e = function create(_ref) {\n var root = _ref.root,\n props = _ref.props; // Add id\n\n var id = root.query('GET_ID');\n\n if (id) {\n root.element.id = id;\n } // Add className\n\n\n var className = root.query('GET_CLASS_NAME');\n\n if (className) {\n className.split(' ').filter(function (name) {\n return name.length;\n }).forEach(function (name) {\n root.element.classList.add(name);\n });\n } // Field label\n\n\n root.ref.label = root.appendChildView(root.createChildView(dropLabel, Object.assign({}, props, {\n translateY: null,\n caption: root.query('GET_LABEL_IDLE')\n }))); // List of items\n\n root.ref.list = root.appendChildView(root.createChildView(listScroller, {\n translateY: null\n })); // Background panel\n\n root.ref.panel = root.appendChildView(root.createChildView(panel, {\n name: 'panel-root'\n })); // Assistant notifies assistive tech when content changes\n\n root.ref.assistant = root.appendChildView(root.createChildView(assistant, Object.assign({}, props))); // Data\n\n root.ref.data = root.appendChildView(root.createChildView(data, Object.assign({}, props))); // Measure (tests if fixed height was set)\n // DOCTYPE needs to be set for this to work\n\n root.ref.measure = createElement$1('div');\n root.ref.measure.style.height = '100%';\n root.element.appendChild(root.ref.measure); // information on the root height or fixed height status\n\n root.ref.bounds = null; // apply initial style properties\n\n root.query('GET_STYLES').filter(function (style) {\n return !isEmpty(style.value);\n }).map(function (_ref2) {\n var name = _ref2.name,\n value = _ref2.value;\n root.element.dataset[name] = value;\n }); // determine if width changed\n\n root.ref.widthPrevious = null;\n root.ref.widthUpdated = debounce(function () {\n root.ref.updateHistory = [];\n root.dispatch('DID_RESIZE_ROOT');\n }, 250); // history of updates\n\n root.ref.previousAspectRatio = null;\n root.ref.updateHistory = []; // prevent scrolling and zooming on iOS (only if supports pointer events, for then we can enable reorder)\n\n var canHover = window.matchMedia('(pointer: fine) and (hover: hover)').matches;\n var hasPointerEvents = ('PointerEvent' in window);\n\n if (root.query('GET_ALLOW_REORDER') && hasPointerEvents && !canHover) {\n root.element.addEventListener('touchmove', prevent, {\n passive: false\n });\n root.element.addEventListener('gesturestart', prevent);\n } // add credits\n\n\n var credits = root.query('GET_CREDITS');\n var hasCredits = credits.length === 2;\n\n if (hasCredits) {\n var frag = document.createElement('a');\n frag.className = 'filepond--credits';\n frag.setAttribute('aria-hidden', 'true');\n frag.href = credits[0];\n frag.tabindex = -1;\n frag.target = '_blank';\n frag.rel = 'noopener noreferrer';\n frag.textContent = credits[1];\n root.element.appendChild(frag);\n root.ref.credits = frag;\n }\n };\n\n var write$9 = function write(_ref3) {\n var root = _ref3.root,\n props = _ref3.props,\n actions = _ref3.actions; // route actions\n\n route$5({\n root: root,\n props: props,\n actions: actions\n }); // apply style properties\n\n actions.filter(function (action) {\n return /^DID_SET_STYLE_/.test(action.type);\n }).filter(function (action) {\n return !isEmpty(action.data.value);\n }).map(function (_ref4) {\n var type = _ref4.type,\n data = _ref4.data;\n var name = toCamels(type.substring(8).toLowerCase(), '_');\n root.element.dataset[name] = data.value;\n root.invalidateLayout();\n });\n if (root.rect.element.hidden) return;\n\n if (root.rect.element.width !== root.ref.widthPrevious) {\n root.ref.widthPrevious = root.rect.element.width;\n root.ref.widthUpdated();\n } // get box bounds, we do this only once\n\n\n var bounds = root.ref.bounds;\n\n if (!bounds) {\n bounds = root.ref.bounds = calculateRootBoundingBoxHeight(root); // destroy measure element\n\n root.element.removeChild(root.ref.measure);\n root.ref.measure = null;\n } // get quick references to various high level parts of the upload tool\n\n\n var _root$ref = root.ref,\n hopper = _root$ref.hopper,\n label = _root$ref.label,\n list = _root$ref.list,\n panel = _root$ref.panel; // sets correct state to hopper scope\n\n if (hopper) {\n hopper.updateHopperState();\n } // bool to indicate if we're full or not\n\n\n var aspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\n var isMultiItem = root.query('GET_ALLOW_MULTIPLE');\n var totalItems = root.query('GET_TOTAL_ITEMS');\n var maxItems = isMultiItem ? root.query('GET_MAX_FILES') || MAX_FILES_LIMIT : 1;\n var atMaxCapacity = totalItems === maxItems; // action used to add item\n\n var addAction = actions.find(function (action) {\n return action.type === 'DID_ADD_ITEM';\n }); // if reached max capacity and we've just reached it\n\n if (atMaxCapacity && addAction) {\n // get interaction type\n var interactionMethod = addAction.data.interactionMethod; // hide label\n\n label.opacity = 0;\n\n if (isMultiItem) {\n label.translateY = -40;\n } else {\n if (interactionMethod === InteractionMethod.API) {\n label.translateX = 40;\n } else if (interactionMethod === InteractionMethod.BROWSE) {\n label.translateY = 40;\n } else {\n label.translateY = 30;\n }\n }\n } else if (!atMaxCapacity) {\n label.opacity = 1;\n label.translateX = 0;\n label.translateY = 0;\n }\n\n var listItemMargin = calculateListItemMargin(root);\n var listHeight = calculateListHeight(root);\n var labelHeight = label.rect.element.height;\n var currentLabelHeight = !isMultiItem || atMaxCapacity ? 0 : labelHeight;\n var listMarginTop = atMaxCapacity ? list.rect.element.marginTop : 0;\n var listMarginBottom = totalItems === 0 ? 0 : list.rect.element.marginBottom;\n var visualHeight = currentLabelHeight + listMarginTop + listHeight.visual + listMarginBottom;\n var boundsHeight = currentLabelHeight + listMarginTop + listHeight.bounds + listMarginBottom; // link list to label bottom position\n\n list.translateY = Math.max(0, currentLabelHeight - list.rect.element.marginTop) - listItemMargin.top;\n\n if (aspectRatio) {\n // fixed aspect ratio\n // calculate height based on width\n var width = root.rect.element.width;\n var height = width * aspectRatio; // clear history if aspect ratio has changed\n\n if (aspectRatio !== root.ref.previousAspectRatio) {\n root.ref.previousAspectRatio = aspectRatio;\n root.ref.updateHistory = [];\n } // remember this width\n\n\n var history = root.ref.updateHistory;\n history.push(width);\n var MAX_BOUNCES = 2;\n\n if (history.length > MAX_BOUNCES * 2) {\n var l = history.length;\n var bottom = l - 10;\n var bounces = 0;\n\n for (var i = l; i >= bottom; i--) {\n if (history[i] === history[i - 2]) {\n bounces++;\n }\n\n if (bounces >= MAX_BOUNCES) {\n // dont adjust height\n return;\n }\n }\n } // fix height of panel so it adheres to aspect ratio\n\n\n panel.scalable = false;\n panel.height = height; // available height for list\n\n var listAvailableHeight = // the height of the panel minus the label height\n height - currentLabelHeight - ( // the room we leave open between the end of the list and the panel bottom\n listMarginBottom - listItemMargin.bottom) - ( // if we're full we need to leave some room between the top of the panel and the list\n atMaxCapacity ? listMarginTop : 0);\n\n if (listHeight.visual > listAvailableHeight) {\n list.overflow = listAvailableHeight;\n } else {\n list.overflow = null;\n } // set container bounds (so pushes siblings downwards)\n\n\n root.height = height;\n } else if (bounds.fixedHeight) {\n // fixed height\n // fix height of panel\n panel.scalable = false; // available height for list\n\n var _listAvailableHeight = // the height of the panel minus the label height\n bounds.fixedHeight - currentLabelHeight - ( // the room we leave open between the end of the list and the panel bottom\n listMarginBottom - listItemMargin.bottom) - ( // if we're full we need to leave some room between the top of the panel and the list\n atMaxCapacity ? listMarginTop : 0); // set list height\n\n\n if (listHeight.visual > _listAvailableHeight) {\n list.overflow = _listAvailableHeight;\n } else {\n list.overflow = null;\n } // no need to set container bounds as these are handles by CSS fixed height\n\n } else if (bounds.cappedHeight) {\n // max-height\n // not a fixed height panel\n var isCappedHeight = visualHeight >= bounds.cappedHeight;\n var panelHeight = Math.min(bounds.cappedHeight, visualHeight);\n panel.scalable = true;\n panel.height = isCappedHeight ? panelHeight : panelHeight - listItemMargin.top - listItemMargin.bottom; // available height for list\n\n var _listAvailableHeight2 = // the height of the panel minus the label height\n panelHeight - currentLabelHeight - ( // the room we leave open between the end of the list and the panel bottom\n listMarginBottom - listItemMargin.bottom) - ( // if we're full we need to leave some room between the top of the panel and the list\n atMaxCapacity ? listMarginTop : 0); // set list height (if is overflowing)\n\n\n if (visualHeight > bounds.cappedHeight && listHeight.visual > _listAvailableHeight2) {\n list.overflow = _listAvailableHeight2;\n } else {\n list.overflow = null;\n } // set container bounds (so pushes siblings downwards)\n\n\n root.height = Math.min(bounds.cappedHeight, boundsHeight - listItemMargin.top - listItemMargin.bottom);\n } else {\n // flexible height\n // not a fixed height panel\n var itemMargin = totalItems > 0 ? listItemMargin.top + listItemMargin.bottom : 0;\n panel.scalable = true;\n panel.height = Math.max(labelHeight, visualHeight - itemMargin); // set container bounds (so pushes siblings downwards)\n\n root.height = Math.max(labelHeight, boundsHeight - itemMargin);\n } // move credits to bottom\n\n\n if (root.ref.credits && panel.heightCurrent) root.ref.credits.style.transform = 'translateY(' + panel.heightCurrent + 'px)';\n };\n\n var calculateListItemMargin = function calculateListItemMargin(root) {\n var item = root.ref.list.childViews[0].childViews[0];\n return item ? {\n top: item.rect.element.marginTop,\n bottom: item.rect.element.marginBottom\n } : {\n top: 0,\n bottom: 0\n };\n };\n\n var calculateListHeight = function calculateListHeight(root) {\n var visual = 0;\n var bounds = 0; // get file list reference\n\n var scrollList = root.ref.list;\n var itemList = scrollList.childViews[0];\n var visibleChildren = itemList.childViews.filter(function (child) {\n return child.rect.element.height;\n });\n var children = root.query('GET_ACTIVE_ITEMS').map(function (item) {\n return visibleChildren.find(function (child) {\n return child.id === item.id;\n });\n }).filter(function (item) {\n return item;\n }); // no children, done!\n\n if (children.length === 0) return {\n visual: visual,\n bounds: bounds\n };\n var horizontalSpace = itemList.rect.element.width;\n var dragIndex = getItemIndexByPosition(itemList, children, scrollList.dragCoordinates);\n var childRect = children[0].rect.element;\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\n var itemWidth = childRect.width + itemHorizontalMargin;\n var itemHeight = childRect.height + itemVerticalMargin;\n var newItem = typeof dragIndex !== 'undefined' && dragIndex >= 0 ? 1 : 0;\n var removedItem = children.find(function (child) {\n return child.markedForRemoval && child.opacity < 0.45;\n }) ? -1 : 0;\n var verticalItemCount = children.length + newItem + removedItem;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth); // stack\n\n if (itemsPerRow === 1) {\n children.forEach(function (item) {\n var height = item.rect.element.height + itemVerticalMargin;\n bounds += height;\n visual += height * item.opacity;\n });\n } // grid\n else {\n bounds = Math.ceil(verticalItemCount / itemsPerRow) * itemHeight;\n visual = bounds;\n }\n\n return {\n visual: visual,\n bounds: bounds\n };\n };\n\n var calculateRootBoundingBoxHeight = function calculateRootBoundingBoxHeight(root) {\n var height = root.ref.measureHeight || null;\n var cappedHeight = parseInt(root.style.maxHeight, 10) || null;\n var fixedHeight = height === 0 ? null : height;\n return {\n cappedHeight: cappedHeight,\n fixedHeight: fixedHeight\n };\n };\n\n var exceedsMaxFiles = function exceedsMaxFiles(root, items) {\n var allowReplace = root.query('GET_ALLOW_REPLACE');\n var allowMultiple = root.query('GET_ALLOW_MULTIPLE');\n var totalItems = root.query('GET_TOTAL_ITEMS');\n var maxItems = root.query('GET_MAX_FILES'); // total amount of items being dragged\n\n var totalBrowseItems = items.length; // if does not allow multiple items and dragging more than one item\n\n if (!allowMultiple && totalBrowseItems > 1) {\n root.dispatch('DID_THROW_MAX_FILES', {\n source: items,\n error: createResponse('warning', 0, 'Max files')\n });\n return true;\n } // limit max items to one if not allowed to drop multiple items\n\n\n maxItems = allowMultiple ? maxItems : 1;\n\n if (!allowMultiple && allowReplace) {\n // There is only one item, so there is room to replace or add an item\n return false;\n } // no more room?\n\n\n var hasMaxItems = isInt(maxItems);\n\n if (hasMaxItems && totalItems + totalBrowseItems > maxItems) {\n root.dispatch('DID_THROW_MAX_FILES', {\n source: items,\n error: createResponse('warning', 0, 'Max files')\n });\n return true;\n }\n\n return false;\n };\n\n var getDragIndex = function getDragIndex(list, children, position) {\n var itemList = list.childViews[0];\n return getItemIndexByPosition(itemList, children, {\n left: position.scopeLeft - itemList.rect.element.left,\n top: position.scopeTop - (list.rect.outer.top + list.rect.element.marginTop + list.rect.element.scrollTop)\n });\n };\n /**\n * Enable or disable file drop functionality\n */\n\n\n var toggleDrop = function toggleDrop(root) {\n var isAllowed = root.query('GET_ALLOW_DROP');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n\n if (enabled && !root.ref.hopper) {\n var hopper = createHopper(root.element, function (items) {\n // allow quick validation of dropped items\n var beforeDropFile = root.query('GET_BEFORE_DROP_FILE') || function () {\n return true;\n }; // all items should be validated by all filters as valid\n\n\n var dropValidation = root.query('GET_DROP_VALIDATION');\n return dropValidation ? items.every(function (item) {\n return applyFilters('ALLOW_HOPPER_ITEM', item, {\n query: root.query\n }).every(function (result) {\n return result === true;\n }) && beforeDropFile(item);\n }) : true;\n }, {\n filterItems: function filterItems(items) {\n var ignoredFiles = root.query('GET_IGNORED_FILES');\n return items.filter(function (item) {\n if (isFile(item)) {\n return !ignoredFiles.includes(item.name.toLowerCase());\n }\n\n return true;\n });\n },\n catchesDropsOnPage: root.query('GET_DROP_ON_PAGE'),\n requiresDropOnElement: root.query('GET_DROP_ON_ELEMENT')\n });\n\n hopper.onload = function (items, position) {\n // get item children elements and sort based on list sort\n var list = root.ref.list.childViews[0];\n var visibleChildren = list.childViews.filter(function (child) {\n return child.rect.element.height;\n });\n var children = root.query('GET_ACTIVE_ITEMS').map(function (item) {\n return visibleChildren.find(function (child) {\n return child.id === item.id;\n });\n }).filter(function (item) {\n return item;\n });\n applyFilterChain('ADD_ITEMS', items, {\n dispatch: root.dispatch\n }).then(function (queue) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false; // go\n\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: getDragIndex(root.ref.list, children, position),\n interactionMethod: InteractionMethod.DROP\n });\n });\n root.dispatch('DID_DROP', {\n position: position\n });\n root.dispatch('DID_END_DRAG', {\n position: position\n });\n };\n\n hopper.ondragstart = function (position) {\n root.dispatch('DID_START_DRAG', {\n position: position\n });\n };\n\n hopper.ondrag = debounce(function (position) {\n root.dispatch('DID_DRAG', {\n position: position\n });\n });\n\n hopper.ondragend = function (position) {\n root.dispatch('DID_END_DRAG', {\n position: position\n });\n };\n\n root.ref.hopper = hopper;\n root.ref.drip = root.appendChildView(root.createChildView(drip));\n } else if (!enabled && root.ref.hopper) {\n root.ref.hopper.destroy();\n root.ref.hopper = null;\n root.removeChildView(root.ref.drip);\n }\n };\n /**\n * Enable or disable browse functionality\n */\n\n\n var toggleBrowse = function toggleBrowse(root, props) {\n var isAllowed = root.query('GET_ALLOW_BROWSE');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n\n if (enabled && !root.ref.browser) {\n root.ref.browser = root.appendChildView(root.createChildView(browser, Object.assign({}, props, {\n onload: function onload(items) {\n applyFilterChain('ADD_ITEMS', items, {\n dispatch: root.dispatch\n }).then(function (queue) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false; // add items!\n\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: -1,\n interactionMethod: InteractionMethod.BROWSE\n });\n });\n }\n })), 0);\n } else if (!enabled && root.ref.browser) {\n root.removeChildView(root.ref.browser);\n root.ref.browser = null;\n }\n };\n /**\n * Enable or disable paste functionality\n */\n\n\n var togglePaste = function togglePaste(root) {\n var isAllowed = root.query('GET_ALLOW_PASTE');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n\n if (enabled && !root.ref.paster) {\n root.ref.paster = createPaster();\n\n root.ref.paster.onload = function (items) {\n applyFilterChain('ADD_ITEMS', items, {\n dispatch: root.dispatch\n }).then(function (queue) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false; // add items!\n\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: -1,\n interactionMethod: InteractionMethod.PASTE\n });\n });\n };\n } else if (!enabled && root.ref.paster) {\n root.ref.paster.destroy();\n root.ref.paster = null;\n }\n };\n /**\n * Route actions\n */\n\n\n var route$5 = createRoute({\n DID_SET_ALLOW_BROWSE: function DID_SET_ALLOW_BROWSE(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n toggleBrowse(root, props);\n },\n DID_SET_ALLOW_DROP: function DID_SET_ALLOW_DROP(_ref6) {\n var root = _ref6.root;\n toggleDrop(root);\n },\n DID_SET_ALLOW_PASTE: function DID_SET_ALLOW_PASTE(_ref7) {\n var root = _ref7.root;\n togglePaste(root);\n },\n DID_SET_DISABLED: function DID_SET_DISABLED(_ref8) {\n var root = _ref8.root,\n props = _ref8.props;\n toggleDrop(root);\n togglePaste(root);\n toggleBrowse(root, props);\n var isDisabled = root.query('GET_DISABLED');\n\n if (isDisabled) {\n root.element.dataset.disabled = 'disabled';\n } else {\n // delete root.element.dataset.disabled; <= this does not work on iOS 10\n root.element.removeAttribute('data-disabled');\n }\n }\n });\n var root = createView({\n name: 'root',\n read: function read(_ref9) {\n var root = _ref9.root;\n\n if (root.ref.measure) {\n root.ref.measureHeight = root.ref.measure.offsetHeight;\n }\n },\n create: create$e,\n write: write$9,\n destroy: function destroy(_ref10) {\n var root = _ref10.root;\n\n if (root.ref.paster) {\n root.ref.paster.destroy();\n }\n\n if (root.ref.hopper) {\n root.ref.hopper.destroy();\n }\n\n root.element.removeEventListener('touchmove', prevent);\n root.element.removeEventListener('gesturestart', prevent);\n },\n mixins: {\n styles: ['height']\n }\n }); // creates the app\n\n var createApp = function createApp() {\n var initialOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // let element\n\n var originalElement = null; // get default options\n\n var defaultOptions = getOptions(); // create the data store, this will contain all our app info\n\n var store = createStore( // initial state (should be serializable)\n createInitialState(defaultOptions), // queries\n [queries, createOptionQueries(defaultOptions)], // action handlers\n [actions, createOptionActions(defaultOptions)]); // set initial options\n\n store.dispatch('SET_OPTIONS', {\n options: initialOptions\n }); // kick thread if visibility changes\n\n var visibilityHandler = function visibilityHandler() {\n if (document.hidden) return;\n store.dispatch('KICK');\n };\n\n document.addEventListener('visibilitychange', visibilityHandler); // re-render on window resize start and finish\n\n var resizeDoneTimer = null;\n var isResizing = false;\n var isResizingHorizontally = false;\n var initialWindowWidth = null;\n var currentWindowWidth = null;\n\n var resizeHandler = function resizeHandler() {\n if (!isResizing) {\n isResizing = true;\n }\n\n clearTimeout(resizeDoneTimer);\n resizeDoneTimer = setTimeout(function () {\n isResizing = false;\n initialWindowWidth = null;\n currentWindowWidth = null;\n\n if (isResizingHorizontally) {\n isResizingHorizontally = false;\n store.dispatch('DID_STOP_RESIZE');\n }\n }, 500);\n };\n\n window.addEventListener('resize', resizeHandler); // render initial view\n\n var view = root(store, {\n id: getUniqueId()\n }); //\n // PRIVATE API -------------------------------------------------------------------------------------\n //\n\n var isResting = false;\n var isHidden = false;\n var readWriteApi = {\n // necessary for update loop\n\n /**\n * Reads from dom (never call manually)\n * @private\n */\n _read: function _read() {\n // test if we're resizing horizontally\n // TODO: see if we can optimize this by measuring root rect\n if (isResizing) {\n currentWindowWidth = window.innerWidth;\n\n if (!initialWindowWidth) {\n initialWindowWidth = currentWindowWidth;\n }\n\n if (!isResizingHorizontally && currentWindowWidth !== initialWindowWidth) {\n store.dispatch('DID_START_RESIZE');\n isResizingHorizontally = true;\n }\n }\n\n if (isHidden && isResting) {\n // test if is no longer hidden\n isResting = view.element.offsetParent === null;\n } // if resting, no need to read as numbers will still all be correct\n\n\n if (isResting) return; // read view data\n\n view._read(); // if is hidden we need to know so we exit rest mode when revealed\n\n\n isHidden = view.rect.element.hidden;\n },\n\n /**\n * Writes to dom (never call manually)\n * @private\n */\n _write: function _write(ts) {\n // get all actions from store\n var actions = store.processActionQueue() // filter out set actions (these will automatically trigger DID_SET)\n .filter(function (action) {\n return !/^SET_/.test(action.type);\n }); // if was idling and no actions stop here\n\n if (isResting && !actions.length) return; // some actions might trigger events\n\n routeActionsToEvents(actions); // update the view\n\n isResting = view._write(ts, actions, isResizingHorizontally); // will clean up all archived items\n\n removeReleasedItems(store.query('GET_ITEMS')); // now idling\n\n if (isResting) {\n store.processDispatchQueue();\n }\n }\n }; //\n // EXPOSE EVENTS -------------------------------------------------------------------------------------\n //\n\n var createEvent = function createEvent(name) {\n return function (data) {\n // create default event\n var event = {\n type: name\n }; // no data to add\n\n if (!data) {\n return event;\n } // copy relevant props\n\n\n if (data.hasOwnProperty('error')) {\n event.error = data.error ? Object.assign({}, data.error) : null;\n }\n\n if (data.status) {\n event.status = Object.assign({}, data.status);\n }\n\n if (data.file) {\n event.output = data.file;\n } // only source is available, else add item if possible\n\n\n if (data.source) {\n event.file = data.source;\n } else if (data.item || data.id) {\n var item = data.item ? data.item : store.query('GET_ITEM', data.id);\n event.file = item ? createItemAPI(item) : null;\n } // map all items in a possible items array\n\n\n if (data.items) {\n event.items = data.items.map(createItemAPI);\n } // if this is a progress event add the progress amount\n\n\n if (/progress/.test(name)) {\n event.progress = data.progress;\n } // copy relevant props\n\n\n if (data.hasOwnProperty('origin') && data.hasOwnProperty('target')) {\n event.origin = data.origin;\n event.target = data.target;\n }\n\n return event;\n };\n };\n\n var eventRoutes = {\n DID_DESTROY: createEvent('destroy'),\n DID_INIT: createEvent('init'),\n DID_THROW_MAX_FILES: createEvent('warning'),\n DID_INIT_ITEM: createEvent('initfile'),\n DID_START_ITEM_LOAD: createEvent('addfilestart'),\n DID_UPDATE_ITEM_LOAD_PROGRESS: createEvent('addfileprogress'),\n DID_LOAD_ITEM: createEvent('addfile'),\n DID_THROW_ITEM_INVALID: [createEvent('error'), createEvent('addfile')],\n DID_THROW_ITEM_LOAD_ERROR: [createEvent('error'), createEvent('addfile')],\n DID_THROW_ITEM_REMOVE_ERROR: [createEvent('error'), createEvent('removefile')],\n DID_PREPARE_OUTPUT: createEvent('preparefile'),\n DID_START_ITEM_PROCESSING: createEvent('processfilestart'),\n DID_UPDATE_ITEM_PROCESS_PROGRESS: createEvent('processfileprogress'),\n DID_ABORT_ITEM_PROCESSING: createEvent('processfileabort'),\n DID_COMPLETE_ITEM_PROCESSING: createEvent('processfile'),\n DID_COMPLETE_ITEM_PROCESSING_ALL: createEvent('processfiles'),\n DID_REVERT_ITEM_PROCESSING: createEvent('processfilerevert'),\n DID_THROW_ITEM_PROCESSING_ERROR: [createEvent('error'), createEvent('processfile')],\n DID_REMOVE_ITEM: createEvent('removefile'),\n DID_UPDATE_ITEMS: createEvent('updatefiles'),\n DID_ACTIVATE_ITEM: createEvent('activatefile'),\n DID_REORDER_ITEMS: createEvent('reorderfiles')\n };\n\n var exposeEvent = function exposeEvent(event) {\n // create event object to be dispatched\n var detail = Object.assign({\n pond: exports\n }, event);\n delete detail.type;\n view.element.dispatchEvent(new CustomEvent('FilePond:' + event.type, {\n // event info\n detail: detail,\n // event behaviour\n bubbles: true,\n cancelable: true,\n composed: true // triggers listeners outside of shadow root\n\n })); // event object to params used for `on()` event handlers and callbacks `oninit()`\n\n var params = []; // if is possible error event, make it the first param\n\n if (event.hasOwnProperty('error')) {\n params.push(event.error);\n } // file is always section\n\n\n if (event.hasOwnProperty('file')) {\n params.push(event.file);\n } // append other props\n\n\n var filtered = ['type', 'error', 'file'];\n Object.keys(event).filter(function (key) {\n return !filtered.includes(key);\n }).forEach(function (key) {\n return params.push(event[key]);\n }); // on(type, () => { })\n\n exports.fire.apply(exports, [event.type].concat(params)); // oninit = () => {}\n\n var handler = store.query('GET_ON' + event.type.toUpperCase());\n\n if (handler) {\n handler.apply(void 0, params);\n }\n };\n\n var routeActionsToEvents = function routeActionsToEvents(actions) {\n if (!actions.length) return;\n actions.filter(function (action) {\n return eventRoutes[action.type];\n }).forEach(function (action) {\n var routes = eventRoutes[action.type];\n (Array.isArray(routes) ? routes : [routes]).forEach(function (route) {\n // this isn't fantastic, but because of the stacking of settimeouts plugins can handle the did_load before the did_init\n if (action.type === 'DID_INIT_ITEM') {\n exposeEvent(route(action.data));\n } else {\n setTimeout(function () {\n exposeEvent(route(action.data));\n }, 0);\n }\n });\n });\n }; //\n // PUBLIC API -------------------------------------------------------------------------------------\n //\n\n\n var setOptions = function setOptions(options) {\n return store.dispatch('SET_OPTIONS', {\n options: options\n });\n };\n\n var getFile = function getFile(query) {\n return store.query('GET_ACTIVE_ITEM', query);\n };\n\n var prepareFile = function prepareFile(query) {\n return new Promise(function (resolve, reject) {\n store.dispatch('REQUEST_ITEM_PREPARE', {\n query: query,\n success: function success(item) {\n resolve(item);\n },\n failure: function failure(error) {\n reject(error);\n }\n });\n });\n };\n\n var addFile = function addFile(source) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function (resolve, reject) {\n addFiles([{\n source: source,\n options: options\n }], {\n index: options.index\n }).then(function (items) {\n return resolve(items && items[0]);\n }).catch(reject);\n });\n };\n\n var isFilePondFile = function isFilePondFile(obj) {\n return obj.file && obj.id;\n };\n\n var removeFile = function removeFile(query, options) {\n // if only passed options\n if (_typeof2(query) === 'object' && !isFilePondFile(query) && !options) {\n options = query;\n query = undefined;\n } // request item removal\n\n\n store.dispatch('REMOVE_ITEM', Object.assign({}, options, {\n query: query\n })); // see if item has been removed\n\n return store.query('GET_ACTIVE_ITEM', query) === null;\n };\n\n var addFiles = function addFiles() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Promise(function (resolve, reject) {\n var sources = [];\n var options = {}; // user passed a sources array\n\n if (isArray(args[0])) {\n sources.push.apply(sources, args[0]);\n Object.assign(options, args[1] || {});\n } else {\n // user passed sources as arguments, last one might be options object\n var lastArgument = args[args.length - 1];\n\n if (_typeof2(lastArgument) === 'object' && !(lastArgument instanceof Blob)) {\n Object.assign(options, args.pop());\n } // add rest to sources\n\n\n sources.push.apply(sources, args);\n }\n\n store.dispatch('ADD_ITEMS', {\n items: sources,\n index: options.index,\n interactionMethod: InteractionMethod.API,\n success: resolve,\n failure: reject\n });\n });\n };\n\n var getFiles = function getFiles() {\n return store.query('GET_ACTIVE_ITEMS');\n };\n\n var processFile = function processFile(query) {\n return new Promise(function (resolve, reject) {\n store.dispatch('REQUEST_ITEM_PROCESSING', {\n query: query,\n success: function success(item) {\n resolve(item);\n },\n failure: function failure(error) {\n reject(error);\n }\n });\n });\n };\n\n var prepareFiles = function prepareFiles() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var queries = Array.isArray(args[0]) ? args[0] : args;\n var items = queries.length ? queries : getFiles();\n return Promise.all(items.map(prepareFile));\n };\n\n var processFiles = function processFiles() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var queries = Array.isArray(args[0]) ? args[0] : args;\n\n if (!queries.length) {\n var files = getFiles().filter(function (item) {\n return !(item.status === ItemStatus.IDLE && item.origin === FileOrigin.LOCAL) && item.status !== ItemStatus.PROCESSING && item.status !== ItemStatus.PROCESSING_COMPLETE && item.status !== ItemStatus.PROCESSING_REVERT_ERROR;\n });\n return Promise.all(files.map(processFile));\n }\n\n return Promise.all(queries.map(processFile));\n };\n\n var removeFiles = function removeFiles() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var queries = Array.isArray(args[0]) ? args[0] : args;\n var options;\n\n if (_typeof2(queries[queries.length - 1]) === 'object') {\n options = queries.pop();\n } else if (Array.isArray(args[0])) {\n options = args[1];\n }\n\n var files = getFiles();\n if (!queries.length) return Promise.all(files.map(function (file) {\n return removeFile(file, options);\n })); // when removing by index the indexes shift after each file removal so we need to convert indexes to ids\n\n var mappedQueries = queries.map(function (query) {\n return isNumber(query) ? files[query] ? files[query].id : null : query;\n }).filter(function (query) {\n return query;\n });\n return mappedQueries.map(function (q) {\n return removeFile(q, options);\n });\n };\n\n var exports = Object.assign({}, on(), {}, readWriteApi, {}, createOptionAPI(store, defaultOptions), {\n /**\n * Override options defined in options object\n * @param options\n */\n setOptions: setOptions,\n\n /**\n * Load the given file\n * @param source - the source of the file (either a File, base64 data uri or url)\n * @param options - object, { index: 0 }\n */\n addFile: addFile,\n\n /**\n * Load the given files\n * @param sources - the sources of the files to load\n * @param options - object, { index: 0 }\n */\n addFiles: addFiles,\n\n /**\n * Returns the file objects matching the given query\n * @param query { string, number, null }\n */\n getFile: getFile,\n\n /**\n * Upload file with given name\n * @param query { string, number, null }\n */\n processFile: processFile,\n\n /**\n * Request prepare output for file with given name\n * @param query { string, number, null }\n */\n prepareFile: prepareFile,\n\n /**\n * Removes a file by its name\n * @param query { string, number, null }\n */\n removeFile: removeFile,\n\n /**\n * Moves a file to a new location in the files list\n */\n moveFile: function moveFile(query, index) {\n return store.dispatch('MOVE_ITEM', {\n query: query,\n index: index\n });\n },\n\n /**\n * Returns all files (wrapped in public api)\n */\n getFiles: getFiles,\n\n /**\n * Starts uploading all files\n */\n processFiles: processFiles,\n\n /**\n * Clears all files from the files list\n */\n removeFiles: removeFiles,\n\n /**\n * Starts preparing output of all files\n */\n prepareFiles: prepareFiles,\n\n /**\n * Sort list of files\n */\n sort: function sort(compare) {\n return store.dispatch('SORT', {\n compare: compare\n });\n },\n\n /**\n * Browse the file system for a file\n */\n browse: function browse() {\n // needs to be trigger directly as user action needs to be traceable (is not traceable in requestAnimationFrame)\n var input = view.element.querySelector('input[type=file]');\n\n if (input) {\n input.click();\n }\n },\n\n /**\n * Destroys the app\n */\n destroy: function destroy() {\n // request destruction\n exports.fire('destroy', view.element); // stop active processes (file uploads, fetches, stuff like that)\n // loop over items and depending on states call abort for ongoing processes\n\n store.dispatch('ABORT_ALL'); // destroy view\n\n view._destroy(); // stop listening to resize\n\n\n window.removeEventListener('resize', resizeHandler); // stop listening to the visiblitychange event\n\n document.removeEventListener('visibilitychange', visibilityHandler); // dispatch destroy\n\n store.dispatch('DID_DESTROY');\n },\n\n /**\n * Inserts the plugin before the target element\n */\n insertBefore: function insertBefore$1(element) {\n return insertBefore(view.element, element);\n },\n\n /**\n * Inserts the plugin after the target element\n */\n insertAfter: function insertAfter$1(element) {\n return insertAfter(view.element, element);\n },\n\n /**\n * Appends the plugin to the target element\n */\n appendTo: function appendTo(element) {\n return element.appendChild(view.element);\n },\n\n /**\n * Replaces an element with the app\n */\n replaceElement: function replaceElement(element) {\n // insert the app before the element\n insertBefore(view.element, element); // remove the original element\n\n element.parentNode.removeChild(element); // remember original element\n\n originalElement = element;\n },\n\n /**\n * Restores the original element\n */\n restoreElement: function restoreElement() {\n if (!originalElement) {\n return; // no element to restore\n } // restore original element\n\n\n insertAfter(originalElement, view.element); // remove our element\n\n view.element.parentNode.removeChild(view.element); // remove reference\n\n originalElement = null;\n },\n\n /**\n * Returns true if the app root is attached to given element\n * @param element\n */\n isAttachedTo: function isAttachedTo(element) {\n return view.element === element || originalElement === element;\n },\n\n /**\n * Returns the root element\n */\n element: {\n get: function get() {\n return view.element;\n }\n },\n\n /**\n * Returns the current pond status\n */\n status: {\n get: function get() {\n return store.query('GET_STATUS');\n }\n }\n }); // Done!\n\n store.dispatch('DID_INIT'); // create actual api object\n\n return createObject(exports);\n };\n\n var createAppObject = function createAppObject() {\n var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // default options\n\n var defaultOptions = {};\n forin(getOptions(), function (key, value) {\n defaultOptions[key] = value[0];\n }); // set app options\n\n var app = createApp(Object.assign({}, defaultOptions, {}, customOptions)); // return the plugin instance\n\n return app;\n };\n\n var lowerCaseFirstLetter = function lowerCaseFirstLetter(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n };\n\n var attributeNameToPropertyName = function attributeNameToPropertyName(attributeName) {\n return toCamels(attributeName.replace(/^data-/, ''));\n };\n\n var mapObject = function mapObject(object, propertyMap) {\n // remove unwanted\n forin(propertyMap, function (selector, mapping) {\n forin(object, function (property, value) {\n // create regexp shortcut\n var selectorRegExp = new RegExp(selector); // tests if\n\n var matches = selectorRegExp.test(property); // no match, skip\n\n if (!matches) {\n return;\n } // if there's a mapping, the original property is always removed\n\n\n delete object[property]; // should only remove, we done!\n\n if (mapping === false) {\n return;\n } // move value to new property\n\n\n if (isString(mapping)) {\n object[mapping] = value;\n return;\n } // move to group\n\n\n var group = mapping.group;\n\n if (isObject(mapping) && !object[group]) {\n object[group] = {};\n }\n\n object[group][lowerCaseFirstLetter(property.replace(selectorRegExp, ''))] = value;\n }); // do submapping\n\n if (mapping.mapping) {\n mapObject(object[mapping.group], mapping.mapping);\n }\n });\n };\n\n var getAttributesAsObject = function getAttributesAsObject(node) {\n var attributeMapping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // turn attributes into object\n\n var attributes = [];\n forin(node.attributes, function (index) {\n attributes.push(node.attributes[index]);\n });\n var output = attributes.filter(function (attribute) {\n return attribute.name;\n }).reduce(function (obj, attribute) {\n var value = attr(node, attribute.name);\n obj[attributeNameToPropertyName(attribute.name)] = value === attribute.name ? true : value;\n return obj;\n }, {}); // do mapping of object properties\n\n mapObject(output, attributeMapping);\n return output;\n };\n\n var createAppAtElement = function createAppAtElement(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // how attributes of the input element are mapped to the options for the plugin\n\n var attributeMapping = {\n // translate to other name\n '^class$': 'className',\n '^multiple$': 'allowMultiple',\n '^capture$': 'captureMethod',\n '^webkitdirectory$': 'allowDirectoriesOnly',\n // group under single property\n '^server': {\n group: 'server',\n mapping: {\n '^process': {\n group: 'process'\n },\n '^revert': {\n group: 'revert'\n },\n '^fetch': {\n group: 'fetch'\n },\n '^restore': {\n group: 'restore'\n },\n '^load': {\n group: 'load'\n }\n }\n },\n // don't include in object\n '^type$': false,\n '^files$': false\n }; // add additional option translators\n\n applyFilters('SET_ATTRIBUTE_TO_OPTION_MAP', attributeMapping); // create final options object by setting options object and then overriding options supplied on element\n\n var mergedOptions = Object.assign({}, options);\n var attributeOptions = getAttributesAsObject(element.nodeName === 'FIELDSET' ? element.querySelector('input[type=file]') : element, attributeMapping); // merge with options object\n\n Object.keys(attributeOptions).forEach(function (key) {\n if (isObject(attributeOptions[key])) {\n if (!isObject(mergedOptions[key])) {\n mergedOptions[key] = {};\n }\n\n Object.assign(mergedOptions[key], attributeOptions[key]);\n } else {\n mergedOptions[key] = attributeOptions[key];\n }\n }); // if parent is a fieldset, get files from parent by selecting all input fields that are not file upload fields\n // these will then be automatically set to the initial files\n\n mergedOptions.files = (options.files || []).concat(Array.from(element.querySelectorAll('input:not([type=file])')).map(function (input) {\n return {\n source: input.value,\n options: {\n type: input.dataset.type\n }\n };\n })); // build plugin\n\n var app = createAppObject(mergedOptions); // add already selected files\n\n if (element.files) {\n Array.from(element.files).forEach(function (file) {\n app.addFile(file);\n });\n } // replace the target element\n\n\n app.replaceElement(element); // expose\n\n return app;\n }; // if an element is passed, we create the instance at that element, if not, we just create an up object\n\n\n var createApp$1 = function createApp() {\n return isNode(arguments.length <= 0 ? undefined : arguments[0]) ? createAppAtElement.apply(void 0, arguments) : createAppObject.apply(void 0, arguments);\n };\n\n var PRIVATE_METHODS = ['fire', '_read', '_write'];\n\n var createAppAPI = function createAppAPI(app) {\n var api = {};\n copyObjectPropertiesToObject(app, api, PRIVATE_METHODS);\n return api;\n };\n /**\n * Replaces placeholders in given string with replacements\n * @param string - \"Foo {bar}\"\"\n * @param replacements - { \"bar\": 10 }\n */\n\n\n var replaceInString = function replaceInString(string, replacements) {\n return string.replace(/(?:{([a-zA-Z]+)})/g, function (match, group) {\n return replacements[group];\n });\n };\n\n var createWorker = function createWorker(fn) {\n var workerBlob = new Blob(['(', fn.toString(), ')()'], {\n type: 'application/javascript'\n });\n var workerURL = URL.createObjectURL(workerBlob);\n var worker = new Worker(workerURL);\n return {\n transfer: function transfer(message, cb) {},\n post: function post(message, cb, transferList) {\n var id = getUniqueId();\n\n worker.onmessage = function (e) {\n if (e.data.id === id) {\n cb(e.data.message);\n }\n };\n\n worker.postMessage({\n id: id,\n message: message\n }, transferList);\n },\n terminate: function terminate() {\n worker.terminate();\n URL.revokeObjectURL(workerURL);\n }\n };\n };\n\n var loadImage = function loadImage(url) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n resolve(img);\n };\n\n img.onerror = function (e) {\n reject(e);\n };\n\n img.src = url;\n });\n };\n\n var renameFile = function renameFile(file, name) {\n var renamedFile = file.slice(0, file.size, file.type);\n renamedFile.lastModifiedDate = file.lastModifiedDate;\n renamedFile.name = name;\n return renamedFile;\n };\n\n var copyFile = function copyFile(file) {\n return renameFile(file, file.name);\n }; // already registered plugins (can't register twice)\n\n\n var registeredPlugins = []; // pass utils to plugin\n\n var createAppPlugin = function createAppPlugin(plugin) {\n // already registered\n if (registeredPlugins.includes(plugin)) {\n return;\n } // remember this plugin\n\n\n registeredPlugins.push(plugin); // setup!\n\n var pluginOutline = plugin({\n addFilter: addFilter,\n utils: {\n Type: Type,\n forin: forin,\n isString: isString,\n isFile: isFile,\n toNaturalFileSize: toNaturalFileSize,\n replaceInString: replaceInString,\n getExtensionFromFilename: getExtensionFromFilename,\n getFilenameWithoutExtension: getFilenameWithoutExtension,\n guesstimateMimeType: guesstimateMimeType,\n getFileFromBlob: getFileFromBlob,\n getFilenameFromURL: getFilenameFromURL,\n createRoute: createRoute,\n createWorker: createWorker,\n createView: createView,\n createItemAPI: createItemAPI,\n loadImage: loadImage,\n copyFile: copyFile,\n renameFile: renameFile,\n createBlob: createBlob,\n applyFilterChain: applyFilterChain,\n text: text,\n getNumericAspectRatioFromString: getNumericAspectRatioFromString\n },\n views: {\n fileActionButton: fileActionButton\n }\n }); // add plugin options to default options\n\n extendDefaultOptions(pluginOutline.options);\n }; // feature detection used by supported() method\n\n\n var isOperaMini = function isOperaMini() {\n return Object.prototype.toString.call(window.operamini) === '[object OperaMini]';\n };\n\n var hasPromises = function hasPromises() {\n return 'Promise' in window;\n };\n\n var hasBlobSlice = function hasBlobSlice() {\n return 'slice' in Blob.prototype;\n };\n\n var hasCreateObjectURL = function hasCreateObjectURL() {\n return 'URL' in window && 'createObjectURL' in window.URL;\n };\n\n var hasVisibility = function hasVisibility() {\n return 'visibilityState' in document;\n };\n\n var hasTiming = function hasTiming() {\n return 'performance' in window;\n }; // iOS 8.x\n\n\n var hasCSSSupports = function hasCSSSupports() {\n return 'supports' in (window.CSS || {});\n }; // use to detect Safari 9+\n\n\n var isIE11 = function isIE11() {\n return /MSIE|Trident/.test(window.navigator.userAgent);\n };\n\n var supported = function () {\n // Runs immediately and then remembers result for subsequent calls\n var isSupported = // Has to be a browser\n isBrowser() && // Can't run on Opera Mini due to lack of everything\n !isOperaMini() && // Require these APIs to feature detect a modern browser\n hasVisibility() && hasPromises() && hasBlobSlice() && hasCreateObjectURL() && hasTiming() && ( // doesn't need CSSSupports but is a good way to detect Safari 9+ (we do want to support IE11 though)\n hasCSSSupports() || isIE11());\n return function () {\n return isSupported;\n };\n }();\n /**\n * Plugin internal state (over all instances)\n */\n\n\n var state = {\n // active app instances, used to redraw the apps and to find the later\n apps: []\n }; // plugin name\n\n var name = 'filepond';\n /**\n * Public Plugin methods\n */\n\n var fn = function fn() {};\n\n exports.Status = {};\n exports.FileStatus = {};\n exports.FileOrigin = {};\n exports.OptionTypes = {};\n exports.create = fn;\n exports.destroy = fn;\n exports.parse = fn;\n exports.find = fn;\n exports.registerPlugin = fn;\n exports.getOptions = fn;\n exports.setOptions = fn; // if not supported, no API\n\n if (supported()) {\n // start painter and fire load event\n createPainter(function () {\n state.apps.forEach(function (app) {\n return app._read();\n });\n }, function (ts) {\n state.apps.forEach(function (app) {\n return app._write(ts);\n });\n }); // fire loaded event so we know when FilePond is available\n\n var dispatch = function dispatch() {\n // let others know we have area ready\n document.dispatchEvent(new CustomEvent('FilePond:loaded', {\n detail: {\n supported: supported,\n create: exports.create,\n destroy: exports.destroy,\n parse: exports.parse,\n find: exports.find,\n registerPlugin: exports.registerPlugin,\n setOptions: exports.setOptions\n }\n })); // clean up event\n\n document.removeEventListener('DOMContentLoaded', dispatch);\n };\n\n if (document.readyState !== 'loading') {\n // move to back of execution queue, FilePond should have been exported by then\n setTimeout(function () {\n return dispatch();\n }, 0);\n } else {\n document.addEventListener('DOMContentLoaded', dispatch);\n } // updates the OptionTypes object based on the current options\n\n\n var updateOptionTypes = function updateOptionTypes() {\n return forin(getOptions(), function (key, value) {\n exports.OptionTypes[key] = value[1];\n });\n };\n\n exports.Status = Object.assign({}, Status);\n exports.FileOrigin = Object.assign({}, FileOrigin);\n exports.FileStatus = Object.assign({}, ItemStatus);\n exports.OptionTypes = {};\n updateOptionTypes(); // create method, creates apps and adds them to the app array\n\n exports.create = function create() {\n var app = createApp$1.apply(void 0, arguments);\n app.on('destroy', exports.destroy);\n state.apps.push(app);\n return createAppAPI(app);\n }; // destroys apps and removes them from the app array\n\n\n exports.destroy = function destroy(hook) {\n // returns true if the app was destroyed successfully\n var indexToRemove = state.apps.findIndex(function (app) {\n return app.isAttachedTo(hook);\n });\n\n if (indexToRemove >= 0) {\n // remove from apps\n var app = state.apps.splice(indexToRemove, 1)[0]; // restore original dom element\n\n app.restoreElement();\n return true;\n }\n\n return false;\n }; // parses the given context for plugins (does not include the context element itself)\n\n\n exports.parse = function parse(context) {\n // get all possible hooks\n var matchedHooks = Array.from(context.querySelectorAll('.' + name)); // filter out already active hooks\n\n var newHooks = matchedHooks.filter(function (newHook) {\n return !state.apps.find(function (app) {\n return app.isAttachedTo(newHook);\n });\n }); // create new instance for each hook\n\n return newHooks.map(function (hook) {\n return exports.create(hook);\n });\n }; // returns an app based on the given element hook\n\n\n exports.find = function find(hook) {\n var app = state.apps.find(function (app) {\n return app.isAttachedTo(hook);\n });\n\n if (!app) {\n return null;\n }\n\n return createAppAPI(app);\n }; // adds a plugin extension\n\n\n exports.registerPlugin = function registerPlugin() {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n } // register plugins\n\n\n plugins.forEach(createAppPlugin); // update OptionTypes, each plugin might have extended the default options\n\n updateOptionTypes();\n };\n\n exports.getOptions = function getOptions$1() {\n var opts = {};\n forin(getOptions(), function (key, value) {\n opts[key] = value[0];\n });\n return opts;\n };\n\n exports.setOptions = function setOptions$1(opts) {\n if (isObject(opts)) {\n // update existing plugins\n state.apps.forEach(function (app) {\n app.setOptions(opts);\n }); // override defaults\n\n setOptions(opts);\n } // return new options\n\n\n return exports.getOptions();\n };\n }\n\n exports.supported = supported;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*Copyrights for code authored by Yahoo Inc. is licensed under the following terms:\r\nMIT License\r\nCopyright 2017 Yahoo Inc.\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n*/\n!function (e, t, r, i) {\n \"use strict\";\n\n function n() {\n return C.isValid();\n }\n\n function o() {\n return C.isValid();\n }\n\n function a() {\n var e = {\n getUserMedia: !0\n };\n return C.isValid(e);\n }\n\n function s(e) {\n var t = !1;\n\n if (w.isArray(e) && e.length) {\n if (w.each(e, function (e, r) {\n w.isSupported.videoCodecs[r] && (t = !0);\n }), !t) {\n return !1;\n }\n } else if (w.isString(e) && e.length && !w.isSupported.videoCodecs[e]) {\n return !1;\n }\n\n return C.isValid({\n getUserMedia: !0\n });\n }\n\n function d() {\n function e(e, t, r) {\n var i, n;\n\n for (u = e, m = t, g = r, f = new Array(h), i = 0; h > i; i++) {\n f[i] = new Array(4), n = f[i], n[0] = n[1] = n[2] = (i << k + 8) / h | 0, D[i] = F / h | 0, G[i] = 0;\n }\n }\n\n function t() {\n for (var e = [], t = new Array(h), r = 0; h > r; r++) {\n t[f[r][3]] = r;\n }\n\n for (var i = 0, n = 0; h > n; n++) {\n var o = t[n];\n e[i++] = f[o][0], e[i++] = f[o][1], e[i++] = f[o][2];\n }\n\n return e;\n }\n\n function r() {\n var e, t, r, i, n, o, a, s;\n\n for (a = 0, s = 0, e = 0; h > e; e++) {\n for (n = f[e], r = e, i = n[1], t = e + 1; h > t; t++) {\n o = f[t], o[1] < i && (r = t, i = o[1]);\n }\n\n if (o = f[r], e != r && (t = o[0], o[0] = n[0], n[0] = t, t = o[1], o[1] = n[1], n[1] = t, t = o[2], o[2] = n[2], n[2] = t, t = o[3], o[3] = n[3], n[3] = t), i != a) {\n for (P[a] = s + e >> 1, t = a + 1; i > t; t++) {\n P[t] = e;\n }\n\n a = i, s = e;\n }\n }\n\n for (P[a] = s + C >> 1, t = a + 1; 256 > t; t++) {\n P[t] = C;\n }\n }\n\n function i() {\n var e, t, r, i, n, o, a, f, h, C, x, F, W, O;\n\n for (y > m && (g = 1), l = 30 + (g - 1) / 3, F = u, W = 0, O = m, x = m / (3 * g), C = x / S | 0, f = V, o = T, a = o >> U, 1 >= a && (a = 0), e = 0; a > e; e++) {\n N[e] = f * ((a * a - e * e) * z / (a * a));\n }\n\n for (h = y > m ? 3 : m % p !== 0 ? 3 * p : m % v !== 0 ? 3 * v : m % b !== 0 ? 3 * b : 3 * w, e = 0; x > e;) {\n if (r = (255 & F[W + 0]) << k, i = (255 & F[W + 1]) << k, n = (255 & F[W + 2]) << k, t = c(r, i, n), d(f, t, r, i, n), 0 !== a && s(a, t, r, i, n), W += h, W >= O && (W -= m), e++, 0 === C && (C = 1), e % C === 0) {\n for (f -= f / l, o -= o / I, a = o >> U, 1 >= a && (a = 0), t = 0; a > t; t++) {\n N[t] = f * ((a * a - t * t) * z / (a * a));\n }\n }\n }\n }\n\n function n(e, t, r) {\n var i, n, o, a, s, d, c;\n\n for (s = 1e3, c = -1, i = P[t], n = i - 1; h > i || n >= 0;) {\n h > i && (d = f[i], o = d[1] - t, o >= s ? i = h : (i++, 0 > o && (o = -o), a = d[0] - e, 0 > a && (a = -a), o += a, s > o && (a = d[2] - r, 0 > a && (a = -a), o += a, s > o && (s = o, c = d[3])))), n >= 0 && (d = f[n], o = t - d[1], o >= s ? n = -1 : (n--, 0 > o && (o = -o), a = d[0] - e, 0 > a && (a = -a), o += a, s > o && (a = d[2] - r, 0 > a && (a = -a), o += a, s > o && (s = o, c = d[3]))));\n }\n\n return c;\n }\n\n function o() {\n return i(), a(), r(), t();\n }\n\n function a() {\n var e;\n\n for (e = 0; h > e; e++) {\n f[e][0] >>= k, f[e][1] >>= k, f[e][2] >>= k, f[e][3] = e;\n }\n }\n\n function s(e, t, r, i, n) {\n var o, a, s, d, c, l, u;\n\n for (s = t - e, -1 > s && (s = -1), d = t + e, d > h && (d = h), o = t + 1, a = t - 1, l = 1; d > o || a > s;) {\n if (c = N[l++], d > o) {\n u = f[o++];\n\n try {\n u[0] -= c * (u[0] - r) / B | 0, u[1] -= c * (u[1] - i) / B | 0, u[2] -= c * (u[2] - n) / B | 0;\n } catch (m) {}\n }\n\n if (a > s) {\n u = f[a--];\n\n try {\n u[0] -= c * (u[0] - r) / B | 0, u[1] -= c * (u[1] - i) / B | 0, u[2] -= c * (u[2] - n) / B | 0;\n } catch (m$1) {}\n }\n }\n }\n\n function d(e, t, r, i, n) {\n var o = f[t],\n a = e / V;\n o[0] -= a * (o[0] - r) | 0, o[1] -= a * (o[1] - i) | 0, o[2] -= a * (o[2] - n) | 0;\n }\n\n function c(e, t, r) {\n var i, n, o, a, s, d, c, l, u, m;\n\n for (l = ~(1 << 31), u = l, d = -1, c = d, i = 0; h > i; i++) {\n m = f[i], n = m[0] - e, 0 > n && (n = -n), o = m[1] - t, 0 > o && (o = -o), n += o, o = m[2] - r, 0 > o && (o = -o), n += o, l > n && (l = n, d = i), a = n - (G[i] >> x - k), u > a && (u = a, c = i), s = D[i] >> O, D[i] -= s, G[i] += s << W;\n }\n\n return D[d] += E, G[d] -= M, c;\n }\n\n var l,\n u,\n m,\n g,\n f,\n h = 256,\n p = 499,\n v = 491,\n b = 487,\n w = 503,\n y = 3 * w,\n C = h - 1,\n k = 4,\n S = 100,\n x = 16,\n F = 1 << x,\n W = 10,\n O = 10,\n E = F >> O,\n M = F << W - O,\n A = h >> 3,\n U = 6,\n R = 1 << U,\n T = A * R,\n I = 30,\n j = 10,\n V = 1 << j,\n H = 8,\n z = 1 << H,\n L = j + H,\n B = 1 << L,\n P = [],\n G = [],\n D = [],\n N = [];\n e.apply(this, arguments);\n var q = {};\n return q.map = n, q.process = o, q;\n }\n\n function c() {\n var e = this;\n\n try {\n e.onmessage = function (e) {\n var t,\n i = e.data || {};\n i.gifshot && (t = r.run(i), postMessage(t));\n };\n } catch (t) {}\n\n var r = {\n dataToRGB: function dataToRGB(e, t, r) {\n for (var i = t * r * 4, n = 0, o = []; i > n;) {\n o.push(e[n++]), o.push(e[n++]), o.push(e[n++]), n++;\n }\n\n return o;\n },\n componentizedPaletteToArray: function componentizedPaletteToArray(e) {\n e = e || [];\n\n for (var t = [], r = 0; r < e.length; r += 3) {\n var i = e[r],\n n = e[r + 1],\n o = e[r + 2];\n t.push(i << 16 | n << 8 | o);\n }\n\n return t;\n },\n processFrameWithQuantizer: function processFrameWithQuantizer(e, t, r, i) {\n for (var n = this.dataToRGB(e, t, r), o = new d(n, n.length, i), a = o.process(), s = new Uint32Array(this.componentizedPaletteToArray(a)), c = t * r, l = new Uint8Array(c), u = 0, m = 0; c > m; m++) {\n var g = n[u++],\n f = n[u++],\n h = n[u++];\n l[m] = o.map(g, f, h);\n }\n\n return {\n pixels: l,\n palette: s\n };\n },\n run: function run(e) {\n e = e || {};\n var t = e,\n r = t.height,\n i = (t.palette, t.sampleInterval),\n n = t.width,\n o = e.data;\n return this.processFrameWithQuantizer(o, n, r, i);\n }\n };\n return r;\n }\n\n function l(e, t, r, n) {\n function o(e) {\n var t = e.length;\n\n if (2 > t || t > 256 || t & t - 1) {\n throw \"Invalid code/color length, must be power of 2 and 2 .. 256.\";\n }\n\n return t;\n }\n\n function a(e, t, r, n) {\n function o(r) {\n for (; g >= r;) {\n e[t++] = 255 & f, f >>= 8, g -= 8, t === s + 256 && (e[s] = 255, s = t++);\n }\n }\n\n function a(e) {\n f |= e << g, g += m, o(8);\n }\n\n e[t++] = r;\n var s = t++,\n d = 1 << r,\n c = d - 1,\n l = d + 1,\n u = l + 1,\n m = r + 1,\n g = 0,\n f = 0,\n h = n[0] & c,\n p = {};\n a(d);\n\n for (var v = 1, b = n.length; b > v; ++v) {\n var w = n[v] & c,\n y = h << 8 | w,\n C = p[y];\n\n if (C === i) {\n for (f |= h << g, g += m; g >= 8;) {\n e[t++] = 255 & f, f >>= 8, g -= 8, t === s + 256 && (e[s] = 255, s = t++);\n }\n\n 4096 === u ? (a(d), u = l + 1, m = r + 1, p = {}) : (u >= 1 << m && ++m, p[y] = u++), h = w;\n } else {\n h = C;\n }\n }\n\n return a(h), a(l), o(1), s + 1 === t ? e[s] = 0 : (e[s] = t - s - 1, e[t++] = 0), t;\n }\n\n var s = 0;\n n = n === i ? {} : n;\n var d = n.loop === i ? null : n.loop,\n c = n.palette === i ? null : n.palette;\n\n if (0 >= t || 0 >= r || t > 65535 || r > 65535) {\n throw \"Width/Height invalid.\";\n }\n\n e[s++] = 71, e[s++] = 73, e[s++] = 70, e[s++] = 56, e[s++] = 57, e[s++] = 97;\n var l = 0,\n u = 0;\n\n if (e[s++] = 255 & t, e[s++] = t >> 8 & 255, e[s++] = 255 & r, e[s++] = r >> 8 & 255, e[s++] = (null !== c ? 128 : 0) | l, e[s++] = u, e[s++] = 0, null !== d) {\n if (0 > d || d > 65535) {\n throw \"Loop count invalid.\";\n }\n\n e[s++] = 33, e[s++] = 255, e[s++] = 11, e[s++] = 78, e[s++] = 69, e[s++] = 84, e[s++] = 83, e[s++] = 67, e[s++] = 65, e[s++] = 80, e[s++] = 69, e[s++] = 50, e[s++] = 46, e[s++] = 48, e[s++] = 3, e[s++] = 1, e[s++] = 255 & d, e[s++] = d >> 8 & 255, e[s++] = 0;\n }\n\n var m = !1;\n this.addFrame = function (t, r, n, d, l, u) {\n if (m === !0 && (--s, m = !1), u = u === i ? {} : u, 0 > t || 0 > r || t > 65535 || r > 65535) {\n throw \"x/y invalid.\";\n }\n\n if (0 >= n || 0 >= d || n > 65535 || d > 65535) {\n throw \"Width/Height invalid.\";\n }\n\n if (l.length < n * d) {\n throw \"Not enough pixels for the frame size.\";\n }\n\n var g = !0,\n f = u.palette;\n\n if ((f === i || null === f) && (g = !1, f = c), f === i || null === f) {\n throw \"Must supply either a local or global palette.\";\n }\n\n for (var h = o(f), p = 0; h >>= 1;) {\n ++p;\n }\n\n h = 1 << p;\n var v = u.delay === i ? 0 : u.delay,\n b = u.disposal === i ? 0 : u.disposal;\n\n if (0 > b || b > 3) {\n throw \"Disposal out of range.\";\n }\n\n var w = !1,\n y = 0;\n\n if (u.transparent !== i && null !== u.transparent && (w = !0, y = u.transparent, 0 > y || y >= h)) {\n throw \"Transparent color index.\";\n }\n\n if ((0 !== b || w || 0 !== v) && (e[s++] = 33, e[s++] = 249, e[s++] = 4, e[s++] = b << 2 | (w === !0 ? 1 : 0), e[s++] = 255 & v, e[s++] = v >> 8 & 255, e[s++] = y, e[s++] = 0), e[s++] = 44, e[s++] = 255 & t, e[s++] = t >> 8 & 255, e[s++] = 255 & r, e[s++] = r >> 8 & 255, e[s++] = 255 & n, e[s++] = n >> 8 & 255, e[s++] = 255 & d, e[s++] = d >> 8 & 255, e[s++] = g === !0 ? 128 | p - 1 : 0, g === !0) {\n for (var C = 0, k = f.length; k > C; ++C) {\n var S = f[C];\n e[s++] = S >> 16 & 255, e[s++] = S >> 8 & 255, e[s++] = 255 & S;\n }\n }\n\n s = a(e, s, 2 > p ? 2 : p, l);\n }, this.end = function () {\n return m === !1 && (e[s++] = 59, m = !0), s;\n };\n }\n\n function u(e, t) {\n e.getBase64GIF(function (e) {\n t({\n error: !1,\n errorCode: \"\",\n errorMsg: \"\",\n image: e\n });\n });\n }\n\n function m() {\n function e() {\n w.each(l, function (e, t) {\n t && (t.text ? f.addFrame(t.img, a, t.text) : f.addFrame(t, a));\n }), u(f, n);\n }\n\n var r = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n n = r.callback,\n o = r.images,\n a = r.options,\n s = r.imagesLength,\n d = {\n getUserMedia: !0,\n \"window.URL\": !0\n },\n c = C.validate(d),\n l = [],\n m = 0,\n g = void 0,\n f = void 0;\n return c.error ? n(c) : (f = new O(a), w.each(o, function (r, i) {\n var o = i;\n i.src && (o = o.src), w.isElement(o) ? (a.crossOrigin && (o.crossOrigin = a.crossOrigin), l[r] = o, m += 1, m === s && e()) : w.isString(o) && (g = new Image(), a.crossOrigin && (g.crossOrigin = a.crossOrigin), function (t) {\n i.text && (t.text = i.text), t.onerror = function () {\n var e = void 0;\n return --s, 0 === s ? (e = {}, e.error = \"None of the requested images was capable of being retrieved\", n(e)) : void 0;\n }, t.onload = function () {\n l[r] = i.text ? {\n img: t,\n text: t.text\n } : t, m += 1, m === s && e(), w.removeElement(t);\n }, t.src = o;\n }(g), w.setCSSAttr(g, {\n position: \"fixed\",\n opacity: \"0\"\n }), t.body.appendChild(g));\n }), void 0);\n }\n\n function g(e) {\n e = w.isObject(e) ? e : {}, A.stopVideoStreaming(e);\n }\n\n function f(e, r) {\n var i = e.options || {},\n n = i.images,\n o = i.video,\n a = Number(i.gifWidth),\n s = Number(i.gifHeight),\n d = (Number(i.numFrames), e.cameraStream),\n c = e.videoElement,\n l = e.videoWidth,\n u = e.videoHeight,\n m = M.getCropDimensions({\n videoWidth: l,\n videoHeight: u,\n gifHeight: s,\n gifWidth: a\n }),\n f = r;\n i.crop = m, i.videoElement = c, i.videoWidth = l, i.videoHeight = u, i.cameraStream = d, w.isElement(c) && (c.width = a + m.width, c.height = s + m.height, i.webcamVideoElement || (w.setCSSAttr(c, {\n position: \"fixed\",\n opacity: \"0\"\n }), t.body.appendChild(c)), c.play(), M.getGIF(i, function (e) {\n n && n.length || o && o.length || g(e), f(e);\n }));\n }\n\n function h() {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n t = e.callback,\n r = e.existingVideo,\n n = e.options,\n o = {\n getUserMedia: !0,\n \"window.URL\": !0\n },\n a = C.validate(o),\n s = void 0,\n d = void 0;\n\n if (a.error) {\n return t(a);\n }\n\n if (w.isElement(r) && r.src) {\n if (d = r.src, s = w.getExtension(d), !w.isSupported.videoCodecs[s]) {\n return t(C.messages.videoCodecs);\n }\n } else {\n w.isArray(r) && w.each(r, function (e, t) {\n return s = t instanceof Blob ? t.type.substr(t.type.lastIndexOf(\"/\") + 1, t.length) : t.substr(t.lastIndexOf(\".\") + 1, t.length), w.isSupported.videoCodecs[s] ? (r = t, !1) : void 0;\n });\n }\n\n A.startStreaming({\n completed: function completed(e) {\n e.options = n || {}, f(e, t);\n },\n existingVideo: r,\n crossOrigin: n.crossOrigin,\n options: n\n });\n }\n\n function p() {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n t = e.callback,\n r = e.lastCameraStream,\n n = e.options,\n a = e.webcamVideoElement;\n return o() ? n.savedRenderingContexts.length ? (M.getGIF(n, function (e) {\n t(e);\n }), void 0) : (A.startVideoStreaming(function () {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {};\n e.options = n || {}, f(e, t);\n }, {\n lastCameraStream: r,\n callback: t,\n webcamVideoElement: a,\n crossOrigin: n.crossOrigin\n }), void 0) : t(C.validate());\n }\n\n function v(e, t) {\n if (t = w.isFunction(e) ? e : t, e = w.isObject(e) ? e : {}, w.isFunction(t)) {\n var r = w.mergeOptions(x, e) || {},\n i = e.cameraStream,\n n = r.images,\n o = n ? n.length : 0,\n a = r.video,\n s = r.webcamVideoElement;\n r = w.mergeOptions(r, {\n gifWidth: Math.floor(r.gifWidth),\n gifHeight: Math.floor(r.gifHeight)\n }), o ? m({\n images: n,\n imagesLength: o,\n callback: t,\n options: r\n }) : a ? h({\n existingVideo: a,\n callback: t,\n options: r\n }) : p({\n lastCameraStream: i,\n callback: t,\n webcamVideoElement: s,\n options: r\n });\n }\n }\n\n function b(e, t) {\n if (t = w.isFunction(e) ? e : t, e = w.isObject(e) ? e : {}, w.isFunction(t)) {\n var r = w.mergeOptions(x, e),\n i = w.mergeOptions(r, {\n interval: .1,\n numFrames: 1,\n gifWidth: Math.floor(r.gifWidth),\n gifHeight: Math.floor(r.gifHeight)\n });\n v(i, t);\n }\n }\n\n var w = {\n URL: e.URL || e.webkitURL || e.mozURL || e.msURL,\n getUserMedia: function () {\n var e = r.getUserMedia || r.webkitGetUserMedia || r.mozGetUserMedia || r.msGetUserMedia;\n return e ? e.bind(r) : e;\n }(),\n requestAnimFrame: e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame,\n requestTimeout: function requestTimeout(e, t) {\n if (e = e || w.noop, t = t || 0, !w.requestAnimFrame) {\n return setTimeout(e, t);\n }\n\n var r = new Date().getTime(),\n i = new Object(),\n n = w.requestAnimFrame,\n o = function a() {\n var o = new Date().getTime(),\n s = o - r;\n s >= t ? e.call() : i.value = n(a);\n };\n\n return i.value = n(o), i;\n },\n Blob: e.Blob || e.BlobBuilder || e.WebKitBlobBuilder || e.MozBlobBuilder || e.MSBlobBuilder,\n btoa: function () {\n var t = e.btoa || function (e) {\n for (var t = \"\", r = 0, i = e.length, n = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\", o = void 0, a = void 0, s = void 0, d = void 0, c = void 0, l = void 0, u = void 0; i > r;) {\n o = e.charCodeAt(r++), a = e.charCodeAt(r++), s = e.charCodeAt(r++), d = o >> 2, c = (3 & o) << 4 | a >> 4, l = (15 & a) << 2 | s >> 6, u = 63 & s, isNaN(a) ? l = u = 64 : isNaN(s) && (u = 64), t = t + n.charAt(d) + n.charAt(c) + n.charAt(l) + n.charAt(u);\n }\n\n return t;\n };\n\n return t ? t.bind(e) : w.noop;\n }(),\n isObject: function isObject(e) {\n return e && \"[object Object]\" === Object.prototype.toString.call(e);\n },\n isEmptyObject: function isEmptyObject(e) {\n return w.isObject(e) && !Object.keys(e).length;\n },\n isArray: function isArray(e) {\n return e && Array.isArray(e);\n },\n isFunction: function isFunction(e) {\n return e && \"function\" == typeof e;\n },\n isElement: function isElement(e) {\n return e && 1 === e.nodeType;\n },\n isString: function isString(e) {\n return \"string\" == typeof e || \"[object String]\" === Object.prototype.toString.call(e);\n },\n isSupported: {\n canvas: function canvas() {\n var e = t.createElement(\"canvas\");\n return e && e.getContext && e.getContext(\"2d\");\n },\n webworkers: function webworkers() {\n return e.Worker;\n },\n blob: function blob() {\n return w.Blob;\n },\n Uint8Array: function Uint8Array() {\n return e.Uint8Array;\n },\n Uint32Array: function Uint32Array() {\n return e.Uint32Array;\n },\n videoCodecs: function () {\n var e = t.createElement(\"video\"),\n r = {\n mp4: !1,\n h264: !1,\n ogv: !1,\n ogg: !1,\n webm: !1\n };\n\n try {\n e && e.canPlayType && (r.mp4 = \"\" !== e.canPlayType('video/mp4; codecs=\"mp4v.20.8\"'), r.h264 = \"\" !== (e.canPlayType('video/mp4; codecs=\"avc1.42E01E\"') || e.canPlayType('video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"')), r.ogv = \"\" !== e.canPlayType('video/ogg; codecs=\"theora\"'), r.ogg = \"\" !== e.canPlayType('video/ogg; codecs=\"theora\"'), r.webm = -1 !== e.canPlayType('video/webm; codecs=\"vp8, vorbis\"'));\n } catch (i) {}\n\n return r;\n }()\n },\n noop: function noop() {},\n each: function each(e, t) {\n var r = void 0,\n i = void 0;\n\n if (w.isArray(e)) {\n for (r = -1, i = e.length; ++r < i && t(r, e[r]) !== !1;) {\n ;\n }\n } else if (w.isObject(e)) {\n for (r in e) {\n if (e.hasOwnProperty(r) && t(r, e[r]) === !1) {\n break;\n }\n }\n }\n },\n mergeOptions: function mergeOptions(e, t) {\n if (w.isObject(e) && w.isObject(t) && Object.keys) {\n var r = {};\n return w.each(e, function (t) {\n r[t] = e[t];\n }), w.each(t, function (i) {\n var n = t[i];\n r[i] = w.isObject(n) ? e[i] ? w.mergeOptions(e[i], n) : n : n;\n }), r;\n }\n },\n setCSSAttr: function setCSSAttr(e, t, r) {\n w.isElement(e) && (w.isString(t) && w.isString(r) ? e.style[t] = r : w.isObject(t) && w.each(t, function (t, r) {\n e.style[t] = r;\n }));\n },\n removeElement: function removeElement(e) {\n w.isElement(e) && e.parentNode && e.parentNode.removeChild(e);\n },\n createWebWorker: function createWebWorker(e) {\n if (!w.isString(e)) {\n return {};\n }\n\n try {\n var t = new w.Blob([e], {\n type: \"text/javascript\"\n }),\n r = w.URL.createObjectURL(t),\n i = new Worker(r);\n return {\n objectUrl: r,\n worker: i\n };\n } catch (n) {\n return \"\" + n;\n }\n },\n getExtension: function getExtension(e) {\n return e.substr(e.lastIndexOf(\".\") + 1, e.length);\n },\n getFontSize: function getFontSize() {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {};\n\n if (!t.body || e.resizeFont === !1) {\n return e.fontSize;\n }\n\n var r = e.text,\n n = e.gifWidth,\n o = parseInt(e.fontSize, 10),\n a = parseInt(e.minFontSize, 10),\n s = t.createElement(\"div\"),\n d = t.createElement(\"span\");\n\n for (s.setAttribute(\"width\", n), s.appendChild(d), d.innerHTML = r, d.style.fontSize = o + \"px\", d.style.textIndent = \"-9999px\", d.style.visibility = \"hidden\", t.body.appendChild(d); d.offsetWidth > n && o >= a;) {\n d.style.fontSize = --o + \"px\";\n }\n\n return t.body.removeChild(d), o + \"px\";\n },\n webWorkerError: !1\n },\n y = Object.freeze({\n \"default\": w\n }),\n C = {\n validate: function validate(e) {\n e = w.isObject(e) ? e : {};\n var t = {};\n return w.each(C.validators, function (r, i) {\n var n = i.errorCode;\n return e[n] || i.condition ? void 0 : (t = i, t.error = !0, !1);\n }), delete t.condition, t;\n },\n isValid: function R(e) {\n var t = C.validate(e),\n R = t.error !== !0 ? !0 : !1;\n return R;\n },\n validators: [{\n condition: w.isFunction(w.getUserMedia),\n errorCode: \"getUserMedia\",\n errorMsg: \"The getUserMedia API is not supported in your browser\"\n }, {\n condition: w.isSupported.canvas(),\n errorCode: \"canvas\",\n errorMsg: \"Canvas elements are not supported in your browser\"\n }, {\n condition: w.isSupported.webworkers(),\n errorCode: \"webworkers\",\n errorMsg: \"The Web Workers API is not supported in your browser\"\n }, {\n condition: w.isFunction(w.URL),\n errorCode: \"window.URL\",\n errorMsg: \"The window.URL API is not supported in your browser\"\n }, {\n condition: w.isSupported.blob(),\n errorCode: \"window.Blob\",\n errorMsg: \"The window.Blob File API is not supported in your browser\"\n }, {\n condition: w.isSupported.Uint8Array(),\n errorCode: \"window.Uint8Array\",\n errorMsg: \"The window.Uint8Array function constructor is not supported in your browser\"\n }, {\n condition: w.isSupported.Uint32Array(),\n errorCode: \"window.Uint32Array\",\n errorMsg: \"The window.Uint32Array function constructor is not supported in your browser\"\n }],\n messages: {\n videoCodecs: {\n errorCode: \"videocodec\",\n errorMsg: \"The video codec you are trying to use is not supported in your browser\"\n }\n }\n },\n k = Object.freeze({\n \"default\": C\n }),\n S = function S() {},\n x = {\n sampleInterval: 10,\n numWorkers: 2,\n filter: \"\",\n gifWidth: 200,\n gifHeight: 200,\n interval: .1,\n numFrames: 10,\n frameDuration: 1,\n keepCameraOn: !1,\n images: [],\n video: null,\n webcamVideoElement: null,\n cameraStream: null,\n text: \"\",\n fontWeight: \"normal\",\n fontSize: \"16px\",\n minFontSize: \"10px\",\n resizeFont: !1,\n fontFamily: \"sans-serif\",\n fontColor: \"#ffffff\",\n textAlign: \"center\",\n textBaseline: \"bottom\",\n textXCoordinate: null,\n textYCoordinate: null,\n progressCallback: S,\n completeCallback: S,\n saveRenderingContexts: !1,\n savedRenderingContexts: [],\n showFrameText: !0,\n crossOrigin: \"Anonymous\",\n waterMark: null,\n waterMarkHeight: null,\n waterMarkWidth: null,\n waterMarkXCoordinate: 1,\n waterMarkYCoordinate: 1\n },\n F = Object.freeze({\n \"default\": x\n }),\n W = function W() {},\n O = function O(e) {\n this.canvas = null, this.ctx = null, this.repeat = 0, this.frames = [], this.numRenderedFrames = 0, this.onRenderCompleteCallback = W, this.onRenderProgressCallback = W, this.workers = [], this.availableWorkers = [], this.generatingGIF = !1, this.options = e, this.initializeWebWorkers(e);\n };\n\n O.prototype = {\n workerMethods: c(),\n initializeWebWorkers: function initializeWebWorkers(e) {\n var r = this,\n i = d.toString() + \"(\" + c.toString() + \"());\",\n n = void 0,\n o = void 0,\n a = void 0,\n s = void 0,\n l = -1,\n u = \"\";\n\n for (s = e.numWorkers; ++l < s;) {\n n = w.createWebWorker(i), w.isObject(n) ? (o = n.objectUrl, a = n.worker, r.workers.push({\n worker: a,\n objectUrl: o\n }), r.availableWorkers.push(a)) : (u = n, w.webWorkerError = !!n);\n }\n\n this.workerError = u, this.canvas = t.createElement(\"canvas\"), this.canvas.width = e.gifWidth, this.canvas.height = e.gifHeight, this.ctx = this.canvas.getContext(\"2d\"), this.frames = [];\n },\n getWorker: function getWorker() {\n return this.availableWorkers.pop();\n },\n freeWorker: function freeWorker(e) {\n this.availableWorkers.push(e);\n },\n byteMap: function () {\n for (var e = [], t = 0; 256 > t; t++) {\n e[t] = String.fromCharCode(t);\n }\n\n return e;\n }(),\n bufferToString: function bufferToString(e) {\n for (var t = e.length, r = \"\", i = -1; ++i < t;) {\n r += this.byteMap[e[i]];\n }\n\n return r;\n },\n onFrameFinished: function onFrameFinished(e) {\n var t = this,\n r = t.frames,\n i = t.options,\n n = !!(i.images || []).length,\n o = r.every(function (e) {\n return !e.beingProcessed && e.done;\n });\n t.numRenderedFrames++, n && e(t.numRenderedFrames / r.length), t.onRenderProgressCallback(.75 * t.numRenderedFrames / r.length), o ? t.generatingGIF || t.generateGIF(r, t.onRenderCompleteCallback) : w.requestTimeout(function () {\n t.processNextFrame();\n }, 1);\n },\n processFrame: function processFrame(e) {\n var t = this,\n r = (this.options, this.options),\n n = r.progressCallback,\n o = r.sampleInterval,\n a = this.frames,\n s = void 0,\n d = void 0,\n c = function c() {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n r = e.data;\n delete s.data, s.pixels = Array.prototype.slice.call(r.pixels), s.palette = Array.prototype.slice.call(r.palette), s.done = !0, s.beingProcessed = !1, t.freeWorker(d), t.onFrameFinished(n);\n };\n\n return s = a[e], s.beingProcessed || s.done ? (this.onFrameFinished(), void 0) : (s.sampleInterval = o, s.beingProcessed = !0, s.gifshot = !0, d = this.getWorker(), d ? (d.onmessage = c, d.postMessage(s)) : c({\n data: t.workerMethods.run(s)\n }), void 0);\n },\n startRendering: function startRendering(e) {\n this.onRenderCompleteCallback = e;\n\n for (var t = 0; t < this.options.numWorkers && t < this.frames.length; t++) {\n this.processFrame(t);\n }\n },\n processNextFrame: function processNextFrame() {\n for (var e = -1, t = 0; t < this.frames.length; t++) {\n var r = this.frames[t];\n\n if (!r.done && !r.beingProcessed) {\n e = t;\n break;\n }\n }\n\n e >= 0 && this.processFrame(e);\n },\n generateGIF: function generateGIF(e, t) {\n var r = [],\n i = {\n loop: this.repeat\n },\n n = this.options,\n o = n.interval,\n a = n.frameDuration,\n s = n.images,\n d = !!s.length,\n c = n.gifHeight,\n u = n.gifWidth,\n m = new l(r, u, c, i),\n g = this.onRenderProgressCallback,\n f = d ? 100 * o : 0,\n h = void 0,\n p = void 0;\n this.generatingGIF = !0, w.each(e, function (t, r) {\n var i = r.palette;\n g(.75 + .25 * r.position * 1 / e.length);\n\n for (var n = 0; a > n; n++) {\n m.addFrame(0, 0, u, c, r.pixels, {\n palette: i,\n delay: f\n });\n }\n }), m.end(), g(1), this.frames = [], this.generatingGIF = !1, w.isFunction(t) && (h = this.bufferToString(r), p = \"data:image/gif;base64,\" + w.btoa(h), t(p));\n },\n setRepeat: function setRepeat(e) {\n this.repeat = e;\n },\n addFrame: function addFrame(e, t, r) {\n t = w.isObject(t) ? t : {};\n var i = this,\n n = i.ctx,\n o = i.options,\n a = o.gifWidth,\n s = o.gifHeight,\n d = w.getFontSize(t),\n c = t,\n l = c.filter,\n u = c.fontColor,\n m = c.fontFamily,\n g = c.fontWeight,\n f = (c.gifHeight, c.gifWidth, c.text),\n h = c.textAlign,\n p = c.textBaseline,\n v = c.waterMark,\n b = c.waterMarkHeight,\n y = c.waterMarkWidth,\n C = c.waterMarkXCoordinate,\n k = c.waterMarkYCoordinate,\n S = t.textXCoordinate ? t.textXCoordinate : \"left\" === h ? 1 : \"right\" === h ? a : a / 2,\n x = t.textYCoordinate ? t.textYCoordinate : \"top\" === p ? 1 : \"center\" === p ? s / 2 : s,\n F = g + \" \" + d + \" \" + m,\n W = r && t.showFrameText ? r : f,\n O = void 0;\n\n try {\n n.filter = l, n.drawImage(e, 0, 0, a, s), W && (n.font = F, n.fillStyle = u, n.textAlign = h, n.textBaseline = p, n.fillText(W, S, x)), v && n.drawImage(v, C, k, y, b), O = n.getImageData(0, 0, a, s), i.addFrameImageData(O);\n } catch (E) {\n return \"\" + E;\n }\n },\n addFrameImageData: function addFrameImageData() {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n t = this.frames,\n r = e.data;\n this.frames.push({\n data: r,\n width: e.width,\n height: e.height,\n palette: null,\n dithering: null,\n done: !1,\n beingProcessed: !1,\n position: t.length\n });\n },\n onRenderProgress: function onRenderProgress(e) {\n this.onRenderProgressCallback = e;\n },\n isRendering: function isRendering() {\n return this.generatingGIF;\n },\n getBase64GIF: function getBase64GIF(e) {\n var t = this,\n r = function r(_r) {\n t.destroyWorkers(), w.requestTimeout(function () {\n e(_r);\n }, 0);\n };\n\n t.startRendering(r);\n },\n destroyWorkers: function destroyWorkers() {\n if (!this.workerError) {\n var e = this.workers;\n w.each(e, function (e, t) {\n var r = t.worker,\n i = t.objectUrl;\n r.terminate(), w.URL.revokeObjectURL(i);\n });\n }\n }\n };\n\n var E = function E() {},\n M = {\n getGIF: function getGIF() {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n r = arguments[1];\n r = w.isFunction(r) ? r : E;\n\n var n = t.createElement(\"canvas\"),\n o = void 0,\n a = e.images,\n s = !!a.length,\n d = e.cameraStream,\n c = e.crop,\n l = e.filter,\n u = e.fontColor,\n m = e.fontFamily,\n g = e.fontWeight,\n f = e.keepCameraOn,\n h = (e.numWorkers, e.progressCallback),\n p = e.saveRenderingContexts,\n v = e.savedRenderingContexts,\n b = e.text,\n y = e.textAlign,\n C = e.textBaseline,\n k = e.videoElement,\n S = e.videoHeight,\n x = e.videoWidth,\n F = e.webcamVideoElement,\n W = e.waterMark,\n M = e.waterMarkHeight,\n A = e.waterMarkWidth,\n U = e.waterMarkXCoordinate,\n R = e.waterMarkYCoordinate,\n T = Number(e.gifWidth),\n I = Number(e.gifHeight),\n j = Number(e.interval),\n V = (Number(e.sampleInterval), s ? 0 : 1e3 * j),\n H = [],\n z = v.length ? v.length : e.numFrames,\n L = z,\n B = new O(e),\n P = w.getFontSize(e),\n G = e.textXCoordinate ? e.textXCoordinate : \"left\" === y ? 1 : \"right\" === y ? T : T / 2,\n D = e.textYCoordinate ? e.textYCoordinate : \"top\" === C ? 1 : \"center\" === C ? I / 2 : I,\n N = g + \" \" + P + \" \" + m,\n q = c ? Math.floor(c.scaledWidth / 2) : 0,\n X = c ? x - c.scaledWidth : 0,\n Y = c ? Math.floor(c.scaledHeight / 2) : 0,\n Q = c ? S - c.scaledHeight : 0,\n _ = function K() {\n function e() {\n try {\n X > x && (X = x), Q > S && (Q = S), 0 > q && (q = 0), 0 > Y && (Y = 0), o.filter = l, o.drawImage(k, q, Y, X, Q, 0, 0, T, I), t();\n } catch (r) {\n if (\"NS_ERROR_NOT_AVAILABLE\" !== r.name) {\n throw r;\n }\n\n w.requestTimeout(e, 100);\n }\n }\n\n function t() {\n var e = void 0;\n p && H.push(o.getImageData(0, 0, T, I)), W && o.drawImage(W, U, R, A, M), b && (o.font = N, o.fillStyle = u, o.textAlign = y, o.textBaseline = C, o.fillText(b, G, D)), e = o.getImageData(0, 0, T, I), B.addFrameImageData(e), L = i, h((z - L) / z), i > 0 && w.requestTimeout(K, V), L || B.getBase64GIF(function (e) {\n r({\n error: !1,\n errorCode: \"\",\n errorMsg: \"\",\n image: e,\n cameraStream: d,\n videoElement: k,\n webcamVideoElement: F,\n savedRenderingContexts: H,\n keepCameraOn: f\n });\n });\n }\n\n var i = L - 1;\n v.length ? (o.putImageData(v[z - L], 0, 0), t()) : e();\n };\n\n z = z !== i ? z : 10, j = j !== i ? j : .1, n.width = T, n.height = I, o = n.getContext(\"2d\"), function J() {\n return v.length || 0 !== k.currentTime ? (_(), void 0) : (w.requestTimeout(J, 100), void 0);\n }();\n },\n getCropDimensions: function getCropDimensions() {\n var e = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n t = e.videoWidth,\n r = e.videoHeight,\n n = e.gifWidth,\n o = e.gifHeight,\n a = {\n width: 0,\n height: 0,\n scaledWidth: 0,\n scaledHeight: 0\n };\n return t > r ? (a.width = Math.round(t * (o / r)) - n, a.scaledWidth = Math.round(a.width * (r / o))) : (a.height = Math.round(r * (n / t)) - o, a.scaledHeight = Math.round(a.height * (t / n))), a;\n }\n },\n A = {\n loadedData: !1,\n defaultVideoDimensions: {\n width: 640,\n height: 480\n },\n findVideoSize: function T(e) {\n T.attempts = T.attempts || 0;\n var t = e.cameraStream,\n r = e.completedCallback,\n i = e.videoElement;\n i && (i.videoWidth > 0 && i.videoHeight > 0 ? (i.removeEventListener(\"loadeddata\", A.findVideoSize), r({\n videoElement: i,\n cameraStream: t,\n videoWidth: i.videoWidth,\n videoHeight: i.videoHeight\n })) : T.attempts < 10 ? (T.attempts += 1, w.requestTimeout(function () {\n A.findVideoSize(e);\n }, 400)) : r({\n videoElement: i,\n cameraStream: t,\n videoWidth: A.defaultVideoDimensions.width,\n videoHeight: A.defaultVideoDimensions.height\n }));\n },\n onStreamingTimeout: function onStreamingTimeout(e) {\n w.isFunction(e) && e({\n error: !0,\n errorCode: \"getUserMedia\",\n errorMsg: \"There was an issue with the getUserMedia API - Timed out while trying to start streaming\",\n image: null,\n cameraStream: {}\n });\n },\n stream: function stream(e) {\n var t = w.isArray(e.existingVideo) ? e.existingVideo[0] : e.existingVideo,\n r = e.cameraStream,\n i = e.completedCallback,\n n = e.streamedCallback,\n o = e.videoElement;\n\n if (w.isFunction(n) && n(), t) {\n if (w.isString(t)) {\n o.src = t, o.innerHTML = '';\n } else if (t instanceof Blob) {\n try {\n o.src = w.URL.createObjectURL(t);\n } catch (a) {}\n\n o.innerHTML = '';\n }\n } else if (o.mozSrcObject) {\n o.mozSrcObject = r;\n } else if (w.URL) {\n try {\n o.srcObject = r, o.src = w.URL.createObjectURL(r);\n } catch (a$1) {\n o.srcObject = r;\n }\n }\n\n o.play(), w.requestTimeout(function s() {\n s.count = s.count || 0, A.loadedData === !0 ? (A.findVideoSize({\n videoElement: o,\n cameraStream: r,\n completedCallback: i\n }), A.loadedData = !1) : (s.count += 1, s.count > 10 ? A.findVideoSize({\n videoElement: o,\n cameraStream: r,\n completedCallback: i\n }) : s());\n }, 0);\n },\n startStreaming: function startStreaming(e) {\n var r = w.isFunction(e.error) ? e.error : w.noop,\n i = w.isFunction(e.streamed) ? e.streamed : w.noop,\n n = w.isFunction(e.completed) ? e.completed : w.noop,\n o = e.crossOrigin,\n a = e.existingVideo,\n s = e.lastCameraStream,\n d = e.options,\n c = e.webcamVideoElement,\n l = w.isElement(a) ? a : c ? c : t.createElement(\"video\");\n o && (l.crossOrigin = d.crossOrigin), l.autoplay = !0, l.loop = !0, l.muted = !0, l.addEventListener(\"loadeddata\", function () {\n A.loadedData = !0, d.offset && (l.currentTime = d.offset);\n }), a ? A.stream({\n videoElement: l,\n existingVideo: a,\n completedCallback: n\n }) : s ? A.stream({\n videoElement: l,\n cameraStream: s,\n streamedCallback: i,\n completedCallback: n\n }) : w.getUserMedia({\n video: !0\n }, function (e) {\n A.stream({\n videoElement: l,\n cameraStream: e,\n streamedCallback: i,\n completedCallback: n\n });\n }, r);\n },\n startVideoStreaming: function startVideoStreaming(e) {\n var t = arguments.length > 1 && arguments[1] !== i ? arguments[1] : {},\n r = t.timeout !== i ? t.timeout : 0,\n n = t.callback,\n o = t.webcamVideoElement,\n a = void 0;\n r > 0 && (a = w.requestTimeout(function () {\n A.onStreamingTimeout(n);\n }, 1e4)), A.startStreaming({\n error: function error() {\n n({\n error: !0,\n errorCode: \"getUserMedia\",\n errorMsg: \"There was an issue with the getUserMedia API - the user probably denied permission\",\n image: null,\n cameraStream: {}\n });\n },\n streamed: function streamed() {\n clearTimeout(a);\n },\n completed: function completed() {\n var t = arguments.length > 0 && arguments[0] !== i ? arguments[0] : {},\n r = t.cameraStream,\n n = t.videoElement,\n o = t.videoHeight,\n a = t.videoWidth;\n e({\n cameraStream: r,\n videoElement: n,\n videoHeight: o,\n videoWidth: a\n });\n },\n lastCameraStream: t.lastCameraStream,\n webcamVideoElement: o,\n crossOrigin: t.crossOrigin,\n options: t\n });\n },\n stopVideoStreaming: function stopVideoStreaming(e) {\n e = w.isObject(e) ? e : {};\n var t = e,\n r = t.keepCameraOn,\n i = t.videoElement,\n n = t.webcamVideoElement,\n o = e.cameraStream || {},\n a = o.getTracks ? o.getTracks() || [] : [],\n s = !!a.length,\n d = a[0];\n !r && s && w.isFunction(d.stop) && d.stop(), w.isElement(i) && !n && (i.pause(), w.isFunction(w.URL.revokeObjectURL) && !w.webWorkerError && i.src && w.URL.revokeObjectURL(i.src), w.removeElement(i));\n }\n },\n U = {\n utils: y,\n error: k,\n defaultOptions: F,\n createGIF: v,\n takeSnapShot: b,\n stopVideoStreaming: g,\n isSupported: n,\n isWebCamGIFSupported: o,\n isExistingVideoGIFSupported: s,\n isExistingImagesGIFSupported: a,\n VERSION: \"0.4.5\"\n };\n\n \"function\" == typeof define && define.amd ? define([], function () {\n return U;\n }) : \"undefined\" != typeof exports ? module.exports = U : e.gifshot = U;\n}(\"undefined\" != typeof window ? window : {}, \"undefined\" != typeof document ? document : {\n createElement: function createElement() {}\n}, \"undefined\" != typeof window ? window.navigator : {});\n\n(function (global, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined') {\n module.exports = factory();\n module.exports.default = factory();\n } else if (typeof define === 'function' && define.amd) {\n define(factory);\n } else {\n global = global || self, global.heic2any = factory();\n }\n})(this, function () {\n 'use strict';\n\n var workerString = \"\\nvar Module=void 0!==Module?Module:{};(function(){var d={print:function(A){A=Array.prototype.slice.call(arguments).join(\\\" \\\"),console.log(A)},printErr:function(A){A=Array.prototype.slice.call(arguments).join(\\\" \\\"),console.error(A)},canvas:{},noInitialRun:!0},A={};for(Sr in d)d.hasOwnProperty(Sr)&&(A[Sr]=d[Sr]);var i,f,e=!1,l=!1,o=!1,r=!1;if(d.ENVIRONMENT)if(\\\"WEB\\\"===d.ENVIRONMENT)e=!0;else if(\\\"WORKER\\\"===d.ENVIRONMENT)l=!0;else if(\\\"NODE\\\"===d.ENVIRONMENT)o=!0;else{if(\\\"SHELL\\\"!==d.ENVIRONMENT)throw new Error(\\\"The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.\\\");r=!0}else e=\\\"object\\\"==typeof window,l=\\\"function\\\"==typeof importScripts,o=\\\"object\\\"==typeof process&&\\\"function\\\"==typeof require&&!e&&!l,r=!e&&!o&&!l;if(o)d.print||(d.print=console.log),d.printErr||(d.printErr=console.warn),d.read=function(A,e){var r;return(r=vr(A))||(i=i||require(\\\"fs\\\"),A=(f=f||require(\\\"path\\\")).normalize(A),r=i.readFileSync(A)),e?r:r.toString()},d.readBinary=function(A){var e=d.read(A,!0);return e.buffer||(e=new Uint8Array(e)),h(e.buffer),e},d.thisProgram||(1>2],r=-16&(e+A+15|0);if((I[D>>2]=r,H<=r)&&!z())return I[D>>2]=e,0;return e},alignMemory:function(A,e){return A=Math.ceil(A/(e||16))*(e||16)},makeBigInt:function(A,e,r){return r?+(A>>>0)+4294967296*(e>>>0):+(A>>>0)+4294967296*(0|e)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};d.Runtime=k;var n=0;function h(A,e){A||Mr(\\\"Assertion failed: \\\"+e)}function w(A,e,r){switch(\\\"*\\\"===(r=r||\\\"i8\\\").charAt(r.length-1)&&(r=\\\"i32\\\"),r){case\\\"i1\\\":case\\\"i8\\\":B[A>>0]=e;break;case\\\"i16\\\":X[A>>1]=e;break;case\\\"i32\\\":I[A>>2]=e;break;case\\\"i64\\\":tempI64=[e>>>0,(tempDouble=e,1<=+iA(tempDouble)?0>>0:~~+fA((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],I[A>>2]=tempI64[0],I[A+4>>2]=tempI64[1];break;case\\\"float\\\":G[A>>2]=e;break;case\\\"double\\\":V[A>>3]=e;break;default:Mr(\\\"invalid type for setValue: \\\"+r)}}var t=0,v=2,m=4;function a(A,e,r,i){var f,n;n=\\\"number\\\"==typeof A?(f=!0,A):(f=!1,A.length);var t,o=\\\"string\\\"==typeof e?e:null;if(t=r==m?i:[\\\"function\\\"==typeof Gr?Gr:k.staticAlloc,k.stackAlloc,k.staticAlloc,k.dynamicAlloc][void 0===r?v:r](Math.max(n,o?1:e.length)),f){var a;for(h(0==(3&(i=t))),a=t+(-4&n);i>2]=0;for(a=t+n;i>0]=0;return t}if(\\\"i8\\\"===o)return A.subarray||A.slice?E.set(A,t):E.set(new Uint8Array(A),t),t;for(var c,l,u,b=0;b>0],(0!=r||e)&&(f++,!e||f!=e););e=e||f;var n=\\\"\\\";if(i<128){for(var t;0>10,56320|1023&c)}else a+=String.fromCharCode((31&i)<<6|f);else a+=String.fromCharCode(i)}}function b(A,e,r,i){if(!(0>6,e[r++]=128|63&o}else if(o<=65535){if(n<=r+2)break;e[r++]=224|o>>12,e[r++]=128|o>>6&63,e[r++]=128|63&o}else if(o<=2097151){if(n<=r+3)break;e[r++]=240|o>>18,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}else if(o<=67108863){if(n<=r+4)break;e[r++]=248|o>>24,e[r++]=128|o>>18&63,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}else{if(n<=r+5)break;e[r++]=252|o>>30,e[r++]=128|o>>24&63,e[r++]=128|o>>18&63,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}}return e[r]=0,r-f}function s(A,e,r){return b(A,E,e,r)}function Z(A){for(var e=0,r=0;r>2]>e)return!1;var r=H;for(H=Math.max(H,U);H>2];)H=H<=536870912?S(2*H,A):Math.min(S((3*H+2147483648)/4,A),e);var i,f=d.reallocBuffer(H);return f&&f.byteLength==H?(i=f,d.buffer=y=i,O(),!0):(H=r,!1)}R=_=D=0,N=!1,d.reallocBuffer||(d.reallocBuffer=function(A){var e;try{if(ArrayBuffer.transfer)e=ArrayBuffer.transfer(y,A);else{var r=B;e=new ArrayBuffer(A),new Int8Array(e).set(r)}}catch(A){return!1}return!!Ir(e)&&e});try{(J=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\\\"byteLength\\\").get))(new ArrayBuffer(4))}catch(Or){J=function(A){return A.byteLength}}var j=d.TOTAL_STACK||5242880,H=d.TOTAL_MEMORY||16777216;if(H>0]=A.charCodeAt(i);r||(B[e>>0]=0)}Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(A,e){var r=65535&A,i=65535&e;return r*i+((A>>>16)*i+r*(e>>>16)<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(A){A>>>=0;for(var e=0;e<32;e++)if(A&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(A){return A<0?Math.ceil(A):Math.floor(A)}),Math.trunc=Math.trunc;var iA=Math.abs,fA=(Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,Math.atan2,Math.exp,Math.log,Math.sqrt,Math.ceil),nA=Math.floor,tA=(Math.pow,Math.imul,Math.fround,Math.round,Math.min),oA=(Math.clz32,Math.trunc,0),aA=null,cA=null;function lA(A){oA++,d.monitorRunDependencies&&d.monitorRunDependencies(oA)}function uA(A){if(oA--,d.monitorRunDependencies&&d.monitorRunDependencies(oA),0==oA&&(null!==aA&&(clearInterval(aA),aA=null),cA)){var e=cA;cA=null,e()}}d.addRunDependency=lA,d.removeRunDependency=uA,d.preloadedImages={},d.preloadedAudios={};var bA=null;F=k.GLOBAL_BASE,R=F+79664,L.push({func:function(){Zr()}},{func:function(){yr()}},{func:function(){Br()}},{func:function(){Er()}},{func:function(){pr()}},{func:function(){Xr()}});var sA=R;function dA(){return!!dA.uncaught_exception}R+=16;var kA={last:0,caught:[],infos:{},deAdjust:function(A){if(!A||kA.infos[A])return A;for(var e in kA.infos){if(kA.infos[e].adjusted===A)return e}return A},addRef:function(A){A&&kA.infos[A].refcount++},decRef:function(A){if(A){var e=kA.infos[A];h(0>2]=A),A}var vA={0:\\\"Success\\\",1:\\\"Not super-user\\\",2:\\\"No such file or directory\\\",3:\\\"No such process\\\",4:\\\"Interrupted system call\\\",5:\\\"I/O error\\\",6:\\\"No such device or address\\\",7:\\\"Arg list too long\\\",8:\\\"Exec format error\\\",9:\\\"Bad file number\\\",10:\\\"No children\\\",11:\\\"No more processes\\\",12:\\\"Not enough core\\\",13:\\\"Permission denied\\\",14:\\\"Bad address\\\",15:\\\"Block device required\\\",16:\\\"Mount device busy\\\",17:\\\"File exists\\\",18:\\\"Cross-device link\\\",19:\\\"No such device\\\",20:\\\"Not a directory\\\",21:\\\"Is a directory\\\",22:\\\"Invalid argument\\\",23:\\\"Too many open files in system\\\",24:\\\"Too many open files\\\",25:\\\"Not a typewriter\\\",26:\\\"Text file busy\\\",27:\\\"File too large\\\",28:\\\"No space left on device\\\",29:\\\"Illegal seek\\\",30:\\\"Read only file system\\\",31:\\\"Too many links\\\",32:\\\"Broken pipe\\\",33:\\\"Math arg out of domain of func\\\",34:\\\"Math result not representable\\\",35:\\\"File locking deadlock error\\\",36:\\\"File or path name too long\\\",37:\\\"No record locks available\\\",38:\\\"Function not implemented\\\",39:\\\"Directory not empty\\\",40:\\\"Too many symbolic links\\\",42:\\\"No message of desired type\\\",43:\\\"Identifier removed\\\",44:\\\"Channel number out of range\\\",45:\\\"Level 2 not synchronized\\\",46:\\\"Level 3 halted\\\",47:\\\"Level 3 reset\\\",48:\\\"Link number out of range\\\",49:\\\"Protocol driver not attached\\\",50:\\\"No CSI structure available\\\",51:\\\"Level 2 halted\\\",52:\\\"Invalid exchange\\\",53:\\\"Invalid request descriptor\\\",54:\\\"Exchange full\\\",55:\\\"No anode\\\",56:\\\"Invalid request code\\\",57:\\\"Invalid slot\\\",59:\\\"Bad font file fmt\\\",60:\\\"Device not a stream\\\",61:\\\"No data (for no delay io)\\\",62:\\\"Timer expired\\\",63:\\\"Out of streams resources\\\",64:\\\"Machine is not on the network\\\",65:\\\"Package not installed\\\",66:\\\"The object is remote\\\",67:\\\"The link has been severed\\\",68:\\\"Advertise error\\\",69:\\\"Srmount error\\\",70:\\\"Communication error on send\\\",71:\\\"Protocol error\\\",72:\\\"Multihop attempted\\\",73:\\\"Cross mount point (not really error)\\\",74:\\\"Trying to read unreadable message\\\",75:\\\"Value too large for defined data type\\\",76:\\\"Given log. name not unique\\\",77:\\\"f.d. invalid for this operation\\\",78:\\\"Remote address changed\\\",79:\\\"Can access a needed shared lib\\\",80:\\\"Accessing a corrupted shared lib\\\",81:\\\".lib section in a.out corrupted\\\",82:\\\"Attempting to link in too many libs\\\",83:\\\"Attempting to exec a shared library\\\",84:\\\"Illegal byte sequence\\\",86:\\\"Streams pipe error\\\",87:\\\"Too many users\\\",88:\\\"Socket operation on non-socket\\\",89:\\\"Destination address required\\\",90:\\\"Message too long\\\",91:\\\"Protocol wrong type for socket\\\",92:\\\"Protocol not available\\\",93:\\\"Unknown protocol\\\",94:\\\"Socket type not supported\\\",95:\\\"Not supported\\\",96:\\\"Protocol family not supported\\\",97:\\\"Address family not supported by protocol family\\\",98:\\\"Address already in use\\\",99:\\\"Address not available\\\",100:\\\"Network interface is not configured\\\",101:\\\"Network is unreachable\\\",102:\\\"Connection reset by network\\\",103:\\\"Connection aborted\\\",104:\\\"Connection reset by peer\\\",105:\\\"No buffer space available\\\",106:\\\"Socket is already connected\\\",107:\\\"Socket is not connected\\\",108:\\\"Can't send after socket shutdown\\\",109:\\\"Too many references\\\",110:\\\"Connection timed out\\\",111:\\\"Connection refused\\\",112:\\\"Host is down\\\",113:\\\"Host is unreachable\\\",114:\\\"Socket already connected\\\",115:\\\"Connection already in progress\\\",116:\\\"Stale file handle\\\",122:\\\"Quota exceeded\\\",123:\\\"No medium (in tape drive)\\\",125:\\\"Operation canceled\\\",130:\\\"Previous owner died\\\",131:\\\"State not recoverable\\\"},mA={splitPath:function(A){return/^(\\\\/?|)([\\\\s\\\\S]*?)((?:\\\\.{1,2}|[^\\\\/]+?|)(\\\\.[^.\\\\/]*|))(?:[\\\\/]*)$/.exec(A).slice(1)},normalizeArray:function(A,e){for(var r=0,i=A.length-1;0<=i;i--){var f=A[i];\\\".\\\"===f?A.splice(i,1):\\\"..\\\"===f?(A.splice(i,1),r++):r&&(A.splice(i,1),r--)}if(e)for(;r;r--)A.unshift(\\\"..\\\");return A},normalize:function(A){var e=\\\"/\\\"===A.charAt(0),r=\\\"/\\\"===A.substr(-1);return(A=mA.normalizeArray(A.split(\\\"/\\\").filter(function(A){return!!A}),!e).join(\\\"/\\\"))||e||(A=\\\".\\\"),A&&r&&(A+=\\\"/\\\"),(e?\\\"/\\\":\\\"\\\")+A},dirname:function(A){var e=mA.splitPath(A),r=e[0],i=e[1];return r||i?r+(i=i&&i.substr(0,i.length-1)):\\\".\\\"},basename:function(A){if(\\\"/\\\"===A)return\\\"/\\\";var e=A.lastIndexOf(\\\"/\\\");return-1===e?A:A.substr(e+1)},extname:function(A){return mA.splitPath(A)[3]},join:function(){var A=Array.prototype.slice.call(arguments,0);return mA.normalize(A.join(\\\"/\\\"))},join2:function(A,e){return mA.normalize(A+\\\"/\\\"+e)},resolve:function(){for(var A=\\\"\\\",e=!1,r=arguments.length-1;-1<=r&&!e;r--){var i=0<=r?arguments[r]:EA.cwd();if(\\\"string\\\"!=typeof i)throw new TypeError(\\\"Arguments to path.resolve must be strings\\\");if(!i)return\\\"\\\";A=i+\\\"/\\\"+A,e=\\\"/\\\"===i.charAt(0)}return(e?\\\"/\\\":\\\"\\\")+(A=mA.normalizeArray(A.split(\\\"/\\\").filter(function(A){return!!A}),!e).join(\\\"/\\\"))||\\\".\\\"},relative:function(A,e){function r(A){for(var e=0;eA.contents.length&&(A.contents=ZA.getFileDataAsRegularArray(A),A.usedBytes=A.contents.length),!A.contents||A.contents.subarray){var r=A.contents?A.contents.length:0;if(e<=r)return;e=Math.max(e,r*(r<1048576?2:1.125)|0),0!=r&&(e=Math.max(e,256));var i=A.contents;return A.contents=new Uint8Array(e),void(0e)A.contents.length=e;else for(;A.contents.length=A.node.usedBytes)return 0;var t=Math.min(A.node.usedBytes-f,i);if(h(0<=t),8r.timestamp)&&(t.push(A),n++)});var r=[];if(Object.keys(f.entries).forEach(function(A){f.entries[A];i.entries[A]||(r.push(A),n++)}),!n)return e(null);var o=0,A=(\\\"remote\\\"===i.type?i.db:f.db).transaction([pA.DB_STORE_NAME],\\\"readwrite\\\"),a=A.objectStore(pA.DB_STORE_NAME);function c(A){return A?c.errored?void 0:(c.errored=!0,e(A)):++o>=n?e(null):void 0}A.onerror=function(A){c(this.error),A.preventDefault()},t.sort().forEach(function(r){\\\"local\\\"===f.type?pA.loadRemoteEntry(a,r,function(A,e){if(A)return c(A);pA.storeLocalEntry(r,e,c)}):pA.loadLocalEntry(r,function(A,e){if(A)return c(A);pA.storeRemoteEntry(a,r,e,c)})}),r.sort().reverse().forEach(function(A){\\\"local\\\"===f.type?pA.removeLocalEntry(A,c):pA.removeRemoteEntry(a,A,c)})}},yA={isWindows:!(bA=\\\"data:application/octet-stream;base64,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xQAAALkAAADJAAAAbgAAAJoAAAB6AAAAiQAAAIsAAACNAAAAnQAAAGsAAACLAAAAfgAAAGsAAACLAAAAfgAAAD8AAACYAAAAmAAAAG8AAACNAAAAmQAAAG8AAABbAAAAqwAAAIYAAACNAAAAeQAAAIwAAAA9AAAAmgAAAHkAAACMAAAAPQAAAJoAAABvAAAAbwAAAH0AAABuAAAAbgAAAF4AAAB8AAAAbAAAAHwAAABrAAAAfQAAAI0AAACzAAAAmQAAAH0AAABrAAAAfQAAAI0AAACzAAAAmQAAAH0AAABrAAAAfQAAAI0AAACzAAAAmQAAAH0AAACMAAAAiwAAALYAAAC2AAAAmAAAAIgAAACYAAAAiAAAAJkAAACIAAAAiwAAAG8AAACIAAAAiwAAAG8AAACbAAAAmgAAAIsAAACZAAAAiwAAAHsAAAB7AAAAPwAAAJkAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACqAAAAmQAAAHsAAAB7AAAAawAAAHkAAABrAAAAeQAAAKcAAACXAAAAtwAAAIwAAACXAAAAtwAAAIwAAACqAAAAmgAAAIsAAACZAAAAiwAAAHsAAAB7AAAAPwAAAHwAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACqAAAAmQAAAIoAAACKAAAAegAAAHkAAAB6AAAAeQAAAKcAAACXAAAAtwAAAIwAAACXAAAAtwAAAIwAAACNAAAAbwAAAIwAAACMAAAAjAAAAIwAAACKAAAAmQAAAIgAAACnAAAAmAAAAJgAAABrAAAApwAAAFsAAAB6AAAAawAAAKcAAABrAAAApwAAAFsAAABrAAAAawAAAKcAAACZAAAAmQAAAJkAAADIAAAAuQAAAKAAAACaAAAAmgAAAJoAAACMAAAAXAAAAIkAAACKAAAAjAAAAJgAAACKAAAAiwAAAJkAAABKAAAAlQAAAFwAAACLAAAAawAAAHoAAACYAAAAjAAAALMAAACmAAAAtgAAAIwAAADjAAAAegAAAMUAAACaAAAAxAAAAMQAAACnAAAAmgAAAJgAAACnAAAAtgAAALYAAACGAAAAlQAAAIgAAACZAAAAeQAAAIgAAACJAAAAqQAAAMIAAACmAAAApwAAAJoAAACnAAAAiQAAALYAAACaAAAAxAAAAKcAAACnAAAAmgAAAJgAAACnAAAAtgAAALYAAACGAAAAlQAAAIgAAACZAAAAeQAAAIgAAAB6AAAAqQAAANAAAACmAAAApwAAAJoAAACYAAAApwAAALYAAABuAAAAbgAAAHwAAAB9AAAAjAAAAJkAAAB9AAAAfwAAAIwAAABtAAAAbwAAAI8AAAB/AAAAbwAAAE8AAABsAAAAewAAAD8AAAB9AAAAbgAAAF4AAABuAAAAXwAAAE8AAAB9AAAAbwAAAG4AAABOAAAAbgAAAG8AAABvAAAAXwAAAF4AAABsAAAAewAAAGwAAAB9AAAAbgAAAHwAAABuAAAAXwAAAF4AAAB9AAAAbwAAAG8AAABPAAAAfQAAAH4AAABvAAAAbwAAAE8AAABsAAAAewAAAF0AAACZAAAAigAAAIoAAAB8AAAAigAAAF4AAADgAAAApwAAAHoAAABeAAAAigAAALYAAACaAAAAlQAAAGsAAACnAAAAmgAAAJUAAABcAAAApwAAAJoAAAC4AAAAmgAAALcAAAC4AAAAmgAAAIsAAACaAAAAmgAAAJoAAACLAAAAmgAAAJoAAACMAAAAxgAAAKkAAADGAAAAlQAAAIYAAAAAAAAAEAkAAEsBAABSAQAAUwEAAAYAAAAAAAAAAAAAACAAAAAaAAAAFQAAABEAAAANAAAACQAAAAUAAAACAAAAAAAAAP7////7////9/////P////v////6////+b////g////5v///+v////v////8/////f////7/////v///wAAAAACAAAABQAAAAkAAAANAAAAEQAAABUAAAAaAAAAIAAAAADw//+a+f//cvz//4r9//8e/v//ev7//8X+//8A////xf7//3r+//8e/v//iv3//3L8//+a+f//APD//wAAAAADAAAAAwAAAAIAAAAAAAAAAwAAAAQAAAAEAAAAAAAAAAEAAAAAAAAAAgAAAAEAAAACAAAAAAAAAAMAAAABAAAAAwAAAAIAAAADAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAwAAAAAAAAADAAAAAQAAAAMAAAACAAAAAgAAwAMAAMAEAADA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QQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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ZXJzaW9uOiAAZmxhZ3M6IABOU3QzX18yMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBOU3QzX18yMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUATjRoZWlmOUJveEhlYWRlckUAbV91dWlkX3R5cGUuc2l6ZSgpID09IDE2AGJveC5jYwBwcmVwZW5kX2hlYWRlcgAobV9mbGFncyAmIH4weDAwRkZGRkZGKSA9PSAwAE40aGVpZjNCb3hFAGZ0eXAgYm94IHRvbyBzbWFsbCAobGVzcyB0aGFuIDggYnl0ZXMpAG1ham9yIGJyYW5kOiAAbWlub3IgdmVyc2lvbjogAGNvbXBhdGlibGUgYnJhbmRzOiAATjRoZWlmOEJveF9mdHlwRQBNYXhpbXVtIG51bWJlciBvZiBjaGlsZCBib3hlcyAAIGV4Y2VlZGVkLgBOU3QzX18yMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBCb3ggc2l6ZSAoACBieXRlcykgc21hbGxlciB0aGFuIGhlYWRlciBzaXplICgAIGJ5dGVzKQBTZWN1cml0eSBsaW1pdCBmb3IgbWF4aW11bSBuZXN0aW5nIG9mIGJveGVzIGhhcyBiZWVuIGV4Y2VlZGVkAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjNCb3hFTlNfOWFsbG9jYXRvcklTMl9FRUVFAHdyaXRlAGJpdHNfcGVyX2NoYW5uZWw6IAAsAE40aGVpZjhCb3hfcGl4aUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9waXhpRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBwcm9maWxlIHNpemU6IABONGhlaWYxN2NvbG9yX3Byb2ZpbGVfcmF3RQBONGhlaWYxM2NvbG9yX3Byb2ZpbGVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjE3Y29sb3JfcHJvZmlsZV9yYXdFTlNfOWFsbG9jYXRvcklTMl9FRUVFAGNvbG91cl9wcmltYXJpZXM6IAB0cmFuc2Zlcl9jaGFyYWN0ZXJpc3RpY3M6IABtYXRyaXhfY29lZmZpY2llbnRzOiAAZnVsbF9yYW5nZV9mbGFnOiAATjRoZWlmMThjb2xvcl9wcm9maWxlX25jbHhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjE4Y29sb3JfcHJvZmlsZV9uY2x4RU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBtX2NvbG9yX3Byb2ZpbGUAY29sb3VyX3R5cGU6IABubyBjb2xvciBwcm9maWxlCgBONGhlaWY4Qm94X2NvbHJFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfY29sckVOU185YWxsb2NhdG9ySVMyX0VFRUUAbG9jYXRpb246IABONGhlaWY3Qm94X3VybEUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmN0JveF91cmxFTlNfOWFsbG9jYXRvcklTMl9FRUVFAE40aGVpZjhCb3hfZHJlZkUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9kcmVmRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWY4Qm94X2RpbmZFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfZGluZkVOU185YWxsb2NhdG9ySVMyX0VFRUUAZ3JvdXAgdHlwZTogAHwgZ3JvdXAgaWQ6IAB8IGVudGl0eSBJRHM6IAAgAE40aGVpZjhCb3hfZ3JwbEUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9ncnBsRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBudW1iZXIgb2YgZGF0YSBieXRlczogAE40aGVpZjhCb3hfaWRhdEUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pZGF0RU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBzZXFfcHJvZmlsZTogAHNlcV9sZXZlbF9pZHhfMDogAGhpZ2hfYml0ZGVwdGg6IAB0d2VsdmVfYml0OiAAY2hyb21hX3N1YnNhbXBsaW5nX3g6IABjaHJvbWFfc3Vic2FtcGxpbmdfeTogAGNocm9tYV9zYW1wbGVfcG9zaXRpb246IABpbml0aWFsX3ByZXNlbnRhdGlvbl9kZWxheTogAG5vdCBwcmVzZW50CgBjb25maWcgT0JVczoATjRoZWlmOEJveF9hdjFDRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2F2MUNFTlNfOWFsbG9jYXRvcklTMl9FRUVFAGNvbmZpZ3VyYXRpb25fdmVyc2lvbjogAGdlbmVyYWxfcHJvZmlsZV9zcGFjZTogAGdlbmVyYWxfdGllcl9mbGFnOiAAZ2VuZXJhbF9wcm9maWxlX2lkYzogAGdlbmVyYWxfcHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzOiAAZ2VuZXJhbF9jb25zdHJhaW50X2luZGljYXRvcl9mbGFnczogAGdlbmVyYWxfbGV2ZWxfaWRjOiAAbWluX3NwYXRpYWxfc2VnbWVudGF0aW9uX2lkYzogAHBhcmFsbGVsaXNtX3R5cGU6IABjaHJvbWFfZm9ybWF0OiAAYml0X2RlcHRoX2x1bWE6IABiaXRfZGVwdGhfY2hyb21hOiAAYXZnX2ZyYW1lX3JhdGU6IABjb25zdGFudF9mcmFtZV9yYXRlOiAAbnVtX3RlbXBvcmFsX2xheWVyczogAHRlbXBvcmFsX2lkX25lc3RlZDogAGxlbmd0aF9zaXplOiAAPGFycmF5PgoAYXJyYXlfY29tcGxldGVuZXNzOiAATkFMX3VuaXRfdHlwZTogAE40aGVpZjhCb3hfaHZjQ0UATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9odmNDRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQByZWZlcmVuY2Ugd2l0aCB0eXBlICcAJwAgZnJvbSBJRDogACB0byBJRHM6IABONGhlaWY4Qm94X2lyZWZFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXJlZkVOU185YWxsb2NhdG9ySVMyX0VFRUUAY2xlYW5fYXBlcnR1cmU6IAAvACB4IABvZmZzZXQ6IAAgOyAATjRoZWlmOEJveF9jbGFwRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2NsYXBFTlNfOWFsbG9jYXRvcklTMl9FRUVFAG1pcnJvciBheGlzOiAAdmVydGljYWwKAGhvcml6b250YWwKAE40aGVpZjhCb3hfaW1pckUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pbWlyRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQByb3RhdGlvbjogACBkZWdyZWVzIChDQ1cpCgBONGhlaWY4Qm94X2lyb3RFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXJvdEVOU185YWxsb2NhdG9ySVMyX0VFRUUAYXV4IHR5cGU6IABhdXggc3VidHlwZXM6IABONGhlaWY4Qm94X2F1eENFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfYXV4Q0VOU185YWxsb2NhdG9ySVMyX0VFRUUAaW1hZ2Ugd2lkdGg6IABpbWFnZSBoZWlnaHQ6IABONGhlaWY4Qm94X2lzcGVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXNwZUVOU185YWxsb2NhdG9ySVMyX0VFRUUAYXNzb2NpYXRpb25zIGZvciBpdGVtIElEOiAAcHJvcGVydHkgaW5kZXg6IAAgKGVzc2VudGlhbDogAE40aGVpZjhCb3hfaXBtYUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pcG1hRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWY4Qm94X2lwY29FAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXBjb0VOU185YWxsb2NhdG9ySVMyX0VFRUUATjRoZWlmOEJveF9pcHJwRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2lwcnBFTlNfOWFsbG9jYXRvcklTMl9FRUVFAG1pbWUAdXJpIABpdGVtX0lEOiAAaXRlbV9wcm90ZWN0aW9uX2luZGV4OiAAaXRlbV90eXBlOiAAaXRlbV9uYW1lOiAAY29udGVudF90eXBlOiAAY29udGVudF9lbmNvZGluZzogAGl0ZW0gdXJpIHR5cGU6IABoaWRkZW4gaXRlbTogAE40aGVpZjhCb3hfaW5mZUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pbmZlRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWY4Qm94X2lpbmZFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaWluZkVOU185YWxsb2NhdG9ySVMyX0VFRUUAaWxvYyBib3ggY29udGFpbnMgACBpdGVtcywgd2hpY2ggZXhjZWVkcyB0aGUgc2VjdXJpdHkgbGltaXQgb2YgACBpdGVtcy4ATnVtYmVyIG9mIGV4dGVudHMgaW4gaWxvYyBib3ggKAApIGV4Y2VlZHMgc2VjdXJpdHkgbGltaXQgKABpdGVtIElEOiAAICBjb25zdHJ1Y3Rpb24gbWV0aG9kOiAAICBkYXRhX3JlZmVyZW5jZV9pbmRleDogACAgYmFzZV9vZmZzZXQ6IAAgIGV4dGVudHM6IAA7aW5kZXg9AE40aGVpZjhCb3hfaWxvY0UATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pbG9jRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBtX2l0ZW1fSUQgPD0gMHhGRkZGAE40aGVpZjhCb3hfcGl0bUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9waXRtRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBwcmVfZGVmaW5lZDogAGhhbmRsZXJfdHlwZTogAG5hbWU6IABONGhlaWY4Qm94X2hkbHJFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaGRsckVOU185YWxsb2NhdG9ySVMyX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9tZXRhRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2Z0eXBFTlNfOWFsbG9jYXRvcklTMl9FRUVFAEJveCBzaXplIAAgZXhjZWVkcyBzZWN1cml0eSBsaW1pdC4ATjRoZWlmOEJveF9tZXRhRQBpbG9jIGJveCBjb250YWluZWQgACBieXRlcywgdG90YWwgbWVtb3J5IHNpemUgd291bGQgYmUgACBieXRlcywgZXhjZWVkaW5nIHRoZSBzZWN1cml0eSBsaW1pdCBvZiAAIGJ5dGVzAGlsb2MgZGF0YSBwb2ludGVycyBvdXQgb2YgYWxsb3dlZCByYW5nZQBFeHRlbnQgaW4gaWxvYyBib3ggcmVmZXJlbmNlcyBkYXRhIG91dHNpZGUgb2YgZmlsZSBib3VuZHMgAChwb2ludHMgdG8gZmlsZSBwb3NpdGlvbiAAc3VjY2VzcwByZWFkX2RhdGEAaWRhdCBib3ggcmVmZXJlbmNlZCBpbiBpcmVmIGJveCBpcyBub3QgcHJlc2VudCBpbiBmaWxlAEl0ZW0gY29uc3RydWN0aW9uIG1ldGhvZCAAIG5vdCBpbXBsZW1lbnRlZABpZGF0IGJveCBjb250YWluZWQgAEl0ZW0gKElEPQApIGhhcyBubyBwcm9wZXJ0aWVzIGFzc2lnbmVkIHRvIGl0IGluIGlwbWEgYm94AE5vbmV4aXN0aW5nIHByb3BlcnR5IChpbmRleD0AKSBmb3IgaXRlbSAAIElEPQAgcmVmZXJlbmNlZCBpbiBpcG1hIGJveABVbmtub3duIGVycm9yAGVycm9yLmNjAGdldF9lcnJvcl9zdHJpbmcAQ29sb3IgcHJvZmlsZSBkb2VzIG5vdCBleGlzdABFcnJvciBkdXJpbmcgZW5jb2Rpbmcgb3Igd3JpdGluZyBvdXRwdXQgZmlsZQBFbmNvZGVyIHBsdWdpbiBnZW5lcmF0ZWQgYW4gZXJyb3IARGVjb2RlciBwbHVnaW4gZ2VuZXJhdGVkIGFuIGVycm9yAE1lbW9yeSBhbGxvY2F0aW9uIGVycm9yAFVzYWdlIGVycm9yAFVuc3VwcG9ydGVkIGZlYXR1cmUAVW5zdXBwb3J0ZWQgZmlsZS10eXBlAEludmFsaWQgaW5wdXQASW5wdXQgZmlsZSBkb2VzIG5vdCBleGlzdABDYW5ub3Qgd3JpdGUgb3V0cHV0IGRhdGEAVW5zdXBwb3J0ZWQgYml0IGRlcHRoAFVuc3VwcG9ydGVkIGl0ZW0gY29uc3RydWN0aW9uIG1ldGhvZABVbnN1cHBvcnRlZCBjb2xvciBjb252ZXJzaW9uAFVuc3VwcG9ydGVkIGRhdGEgdmVyc2lvbgBVbnN1cHBvcnRlZCBpbWFnZSB0eXBlAFVuc3VwcG9ydGVkIGNvZGVjAEludmFsaWQgcGFyYW1ldGVyIHZhbHVlAFVuc3VwcG9ydGVkIHBhcmFtZXRlcgBUaGUgdmVyc2lvbiBvZiB0aGUgcGFzc2VkIHdyaXRlciBpcyBub3Qgc3VwcG9ydGVkAFRoZSB2ZXJzaW9uIG9mIHRoZSBwYXNzZWQgcGx1Z2luIGlzIG5vdCBzdXBwb3J0ZWQATm9uLWV4aXN0aW5nIGltYWdlIGNoYW5uZWwgcmVmZXJlbmNlZABOVUxMIGFyZ3VtZW50IHJlY2VpdmVkAE5vbi1leGlzdGluZyBpdGVtIElEIHJlZmVyZW5jZWQAU2VjdXJpdHkgbGltaXQgZXhjZWVkZWQASW52YWxpZCBwaXhpIGJveABJbnZhbGlkIGltYWdlIHNpemUASW52YWxpZCBmcmFjdGlvbmFsIG51bWJlcgBXcm9uZyB0aWxlIGltYWdlIGNocm9tYSBmb3JtYXQAVW5rbm93biBjb2xvciBwcm9maWxlIHR5cGUATm8gb3IgaW52YWxpZCBwcmltYXJ5IGl0ZW0AVHlwZSBvZiBhdXhpbGlhcnkgaW1hZ2UgdW5zcGVjaWZpZWQAT3ZlcmxheSBpbWFnZSBvdXRzaWRlIG9mIGNhbnZhcyBhcmVhAEludmFsaWQgb3ZlcmxheSBkYXRhAEludmFsaWQgY2xlYW4tYXBlcnR1cmUgc3BlY2lmaWNhdGlvbgBJdGVtIGhhcyBubyBkYXRhAE5vIHByb3BlcnRpZXMgYXNzaWduZWQgdG8gaXRlbQAnaXBtYScgYm94IHJlZmVyZW5jZXMgYSBub24tZXhpc3RpbmcgcHJvcGVydHkATm90IGEgJ3BpY3QnIGhhbmRsZXIATm8gJ2luZmUnIGJveABObyAnaXJlZicgYm94AE5vICdpcHJwJyBib3gATm8gJ2lpbmYnIGJveABObyAnaWxvYycgYm94AE5vICdpcG1hJyBib3gATm8gJ2lwY28nIGJveABObyAncGl0bScgYm94AE5vICdhdjFDJyBib3gATm8gJ2h2Y0MnIGJveABObyAnaGRscicgYm94AE5vICdtZXRhJyBib3gATm8gJ2lkYXQnIGJveABObyAnZnR5cCcgYm94AE1pc3NpbmcgZ3JpZCBpbWFnZXMASW52YWxpZCBncmlkIGRhdGEASW52YWxpZCBib3ggc2l6ZQBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlAFVuc3BlY2lmaWVkADogAEZpbGUgZG9lcyBub3QgaW5jbHVkZSBhbnkgc3VwcG9ydGVkIGJyYW5kcy4KAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjE5U3RyZWFtUmVhZGVyX21lbW9yeUVOU185YWxsb2NhdG9ySVMyX0VFRUUAaGVpZl9maWxlLmNjAEl0ZW0gd2l0aCBJRCAAIGhhcyBubyBjb21wcmVzc2VkIGRhdGEAZ2V0X2NvbXByZXNzZWRfaW1hZ2VfZGF0YQBoZWlmX2ltYWdlLmNjAGNocm9tYV9oX3N1YnNhbXBsaW5nAGNocm9tYV92X3N1YnNhbXBsaW5nAG51bV9pbnRlcmxlYXZlZF9waXhlbHNfcGVyX3BsYW5lAHdpZHRoID49IDAAYWxsb2MAaGVpZ2h0ID49IDAAYml0X2RlcHRoID49IDEAYml0X2RlcHRoIDw9IDMyAG1fYml0X2RlcHRoIDw9IDE2AGJwcCA8PSAyNTUAZ2V0X3N0b3JhZ2VfYml0c19wZXJfcGl4ZWwAaXNfY2hyb21hX3dpdGhfYWxwaGEATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmMTRIZWlmUGl4ZWxJbWFnZUVOU185YWxsb2NhdG9ySVMyX0VFRUUAQ2FuIGN1cnJlbnRseSBvbmx5IG1pcnJvciBpbWFnZXMgd2l0aCA4IGJpdHMgcGVyIHBpeGVsAENhbiBjdXJyZW50bHkgb25seSBmaWxsIGltYWdlcyB3aXRoIDggYml0cyBwZXIgcGl4ZWwAZmlsbF9SR0JfMTZiaXQAaW5fdyA+PSAwAG92ZXJsYXkAaW5faCA+PSAwAG91dF93ID49IDAAb3V0X2ggPj0gMABPdmVybGF5IGltYWdlIG91dHNpZGUgb2YgcmlnaHQgb3IgYm90dG9tIGNhbnZhcyBib3JkZXIAT3ZlcmxheSBpbWFnZSBvdXRzaWRlIG9mIGxlZnQgb3IgdG9wIGNhbnZhcyBib3JkZXIAaGVpZl9nZXRfdmVyc2lvbgBpaQBoZWlmX2dldF92ZXJzaW9uX251bWJlcgBoZWlmX2NvbnRleHRfYWxsb2MAaGVpZl9jb250ZXh0X2ZyZWUAdmlpAGhlaWZfY29udGV4dF9yZWFkX2Zyb21fbWVtb3J5AGlpaWkAaGVpZl9jb250ZXh0X2dldF9udW1iZXJfb2ZfdG9wX2xldmVsX2ltYWdlcwBpaWkAaGVpZl9qc19jb250ZXh0X2dldF9saXN0X29mX3RvcF9sZXZlbF9pbWFnZV9JRHMAaGVpZl9qc19jb250ZXh0X2dldF9pbWFnZV9oYW5kbGUAaGVpZl9qc19kZWNvZGVfaW1hZ2UAaWlpaWkAaGVpZl9pbWFnZV9oYW5kbGVfcmVsZWFzZQBoZWlmX2Vycm9yX2NvZGUAaGVpZl9lcnJvcl9PawBoZWlmX2Vycm9yX0lucHV0X2RvZXNfbm90X2V4aXN0AGhlaWZfZXJyb3JfSW52YWxpZF9pbnB1dABoZWlmX2Vycm9yX1Vuc3VwcG9ydGVkX2ZpbGV0eXBlAGhlaWZfZXJyb3JfVW5zdXBwb3J0ZWRfZmVhdHVyZQBoZWlmX2Vycm9yX1VzYWdlX2Vycm9yAGhlaWZfZXJyb3JfTWVtb3J5X2FsbG9jYXRpb25fZXJyb3IAaGVpZl9lcnJvcl9EZWNvZGVyX3BsdWdpbl9lcnJvcgBoZWlmX2Vycm9yX0VuY29kZXJfcGx1Z2luX2Vycm9yAGhlaWZfZXJyb3JfRW5jb2RpbmdfZXJyb3IAaGVpZl9lcnJvcl9Db2xvcl9wcm9maWxlX2RvZXNfbm90X2V4aXN0AGhlaWZfc3ViZXJyb3JfY29kZQBoZWlmX3N1YmVycm9yX1Vuc3BlY2lmaWVkAGhlaWZfc3ViZXJyb3JfQ2Fubm90X3dyaXRlX291dHB1dF9kYXRhAGhlaWZfc3ViZXJyb3JfRW5kX29mX2RhdGEAaGVpZl9zdWJlcnJvcl9JbnZhbGlkX2JveF9zaXplAGhlaWZfc3ViZXJyb3JfTm9fZnR5cF9ib3gAaGVpZl9zdWJlcnJvcl9Ob19pZGF0X2JveABoZWlmX3N1YmVycm9yX05vX21ldGFfYm94AGhlaWZfc3ViZXJyb3JfTm9faGRscl9ib3gAaGVpZl9zdWJlcnJvcl9Ob19odmNDX2JveABoZWlmX3N1YmVycm9yX05vX3BpdG1fYm94AGhlaWZfc3ViZXJyb3JfTm9faXBjb19ib3gAaGVpZl9zdWJlcnJvcl9Ob19pcG1hX2JveABoZWlmX3N1YmVycm9yX05vX2lsb2NfYm94AGhlaWZfc3ViZXJyb3JfTm9faWluZl9ib3gAaGVpZl9zdWJlcnJvcl9Ob19pcHJwX2JveABoZWlmX3N1YmVycm9yX05vX2lyZWZfYm94AGhlaWZfc3ViZXJyb3JfTm9fcGljdF9oYW5kbGVyAGhlaWZfc3ViZXJyb3JfSXBtYV9ib3hfcmVmZXJlbmNlc19ub25leGlzdGluZ19wcm9wZXJ0eQBoZWlmX3N1YmVycm9yX05vX3Byb3BlcnRpZXNfYXNzaWduZWRfdG9faXRlbQBoZWlmX3N1YmVycm9yX05vX2l0ZW1fZGF0YQBoZWlmX3N1YmVycm9yX0ludmFsaWRfZ3JpZF9kYXRhAGhlaWZfc3ViZXJyb3JfTWlzc2luZ19ncmlkX2ltYWdlcwBoZWlmX3N1YmVycm9yX05vX2F2MUNfYm94AGhlaWZfc3ViZXJyb3JfSW52YWxpZF9jbGVhbl9hcGVydHVyZQBoZWlmX3N1YmVycm9yX0ludmFsaWRfb3ZlcmxheV9kYXRhAGhlaWZfc3ViZXJyb3JfT3ZlcmxheV9pbWFnZV9vdXRzaWRlX29mX2NhbnZhcwBoZWlmX3N1YmVycm9yX0F1eGlsaWFyeV9pbWFnZV90eXBlX3Vuc3BlY2lmaWVkAGhlaWZfc3ViZXJyb3JfTm9fb3JfaW52YWxpZF9wcmltYXJ5X2l0ZW0AaGVpZl9zdWJlcnJvcl9Ob19pbmZlX2JveABoZWlmX3N1YmVycm9yX1NlY3VyaXR5X2xpbWl0X2V4Y2VlZGVkAGhlaWZfc3ViZXJyb3JfVW5rbm93bl9jb2xvcl9wcm9maWxlX3R5cGUAaGVpZl9zdWJlcnJvcl9Xcm9uZ190aWxlX2ltYWdlX2Nocm9tYV9mb3JtYXQAaGVpZl9zdWJlcnJvcl9JbnZhbGlkX2ZyYWN0aW9uYWxfbnVtYmVyAGhlaWZfc3ViZXJyb3JfSW52YWxpZF9pbWFnZV9zaXplAGhlaWZfc3ViZXJyb3JfTm9uZXhpc3RpbmdfaXRlbV9yZWZlcmVuY2VkAGhlaWZfc3ViZXJyb3JfTnVsbF9wb2ludGVyX2FyZ3VtZW50AGhlaWZfc3ViZXJyb3JfTm9uZXhpc3RpbmdfaW1hZ2VfY2hhbm5lbF9yZWZlcmVuY2VkAGhlaWZfc3ViZXJyb3JfVW5zdXBwb3J0ZWRfcGx1Z2luX3ZlcnNpb24AaGVpZl9zdWJlcnJvcl9VbnN1cHBvcnRlZF93cml0ZXJfdmVyc2lvbgBoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX3BhcmFtZXRlcgBoZWlmX3N1YmVycm9yX0ludmFsaWRfcGFyYW1ldGVyX3ZhbHVlAGhlaWZfc3ViZXJyb3JfSW52YWxpZF9waXhpX2JveABoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX2NvZGVjAGhlaWZfc3ViZXJyb3JfVW5zdXBwb3J0ZWRfaW1hZ2VfdHlwZQBoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX2RhdGFfdmVyc2lvbgBoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX2NvbG9yX2NvbnZlcnNpb24AaGVpZl9zdWJlcnJvcl9VbnN1cHBvcnRlZF9pdGVtX2NvbnN0cnVjdGlvbl9tZXRob2QAaGVpZl9zdWJlcnJvcl9VbnN1cHBvcnRlZF9iaXRfZGVwdGgAaGVpZl9jb21wcmVzc2lvbl9mb3JtYXQAaGVpZl9jb21wcmVzc2lvbl91bmRlZmluZWQAaGVpZl9jb21wcmVzc2lvbl9IRVZDAGhlaWZfY29tcHJlc3Npb25fQVZDAGhlaWZfY29tcHJlc3Npb25fSlBFRwBoZWlmX2NvbXByZXNzaW9uX0FWMQBoZWlmX2Nocm9tYQBoZWlmX2Nocm9tYV91bmRlZmluZWQAaGVpZl9jaHJvbWFfbW9ub2Nocm9tZQBoZWlmX2Nocm9tYV80MjAAaGVpZl9jaHJvbWFfNDIyAGhlaWZfY2hyb21hXzQ0NABoZWlmX2Nocm9tYV9pbnRlcmxlYXZlZF9SR0IAaGVpZl9jaHJvbWFfaW50ZXJsZWF2ZWRfUkdCQQBoZWlmX2Nocm9tYV9pbnRlcmxlYXZlZF9SUkdHQkJfQkUAaGVpZl9jaHJvbWFfaW50ZXJsZWF2ZWRfUlJHR0JCQUFfQkUAaGVpZl9jaHJvbWFfaW50ZXJsZWF2ZWRfUlJHR0JCX0xFAGhlaWZfY2hyb21hX2ludGVybGVhdmVkX1JSR0dCQkFBX0xFAGhlaWZfY2hyb21hX2ludGVybGVhdmVkXzI0Yml0AGhlaWZfY2hyb21hX2ludGVybGVhdmVkXzMyYml0AGhlaWZfY29sb3JzcGFjZQBoZWlmX2NvbG9yc3BhY2VfdW5kZWZpbmVkAGhlaWZfY29sb3JzcGFjZV9ZQ2JDcgBoZWlmX2NvbG9yc3BhY2VfUkdCAGhlaWZfY29sb3JzcGFjZV9tb25vY2hyb21lAGhlaWZfY2hhbm5lbABoZWlmX2NoYW5uZWxfWQBoZWlmX2NoYW5uZWxfQ3IAaGVpZl9jaGFubmVsX0NiAGhlaWZfY2hhbm5lbF9SAGhlaWZfY2hhbm5lbF9HAGhlaWZfY2hhbm5lbF9CAGhlaWZfY2hhbm5lbF9BbHBoYQBoZWlmX2NoYW5uZWxfaW50ZXJsZWF2ZWQAaGVpZl9jb250ZXh0AHYAdmkAaGVpZl9pbWFnZV9oYW5kbGUAaGVpZl9pbWFnZQBoZWlmX2Vycm9yAGkAY29kZQB2aWlpAHN1YmNvZGUAMTBoZWlmX2Vycm9yAFBLMTBoZWlmX2ltYWdlAFAxMGhlaWZfaW1hZ2UAMTBoZWlmX2ltYWdlAFBLMTdoZWlmX2ltYWdlX2hhbmRsZQBQMTdoZWlmX2ltYWdlX2hhbmRsZQAxN2hlaWZfaW1hZ2VfaGFuZGxlAFBLMTJoZWlmX2NvbnRleHQAUDEyaGVpZl9jb250ZXh0ADEyaGVpZl9jb250ZXh0ADEyaGVpZl9jaGFubmVsADE1aGVpZl9jb2xvcnNwYWNlADExaGVpZl9jaHJvbWEAMjNoZWlmX2NvbXByZXNzaW9uX2Zvcm1hdAAxOGhlaWZfc3ViZXJyb3JfY29kZQAxNWhlaWZfZXJyb3JfY29kZQBOMTBlbXNjcmlwdGVuM3ZhbEUAaXNfcHJpbWFyeQB0aHVtYm5haWxzAHdpZHRoAGhlaWdodABjaHJvbWEAY29sb3JzcGFjZQBoZWlmX2ltYWdlX2dldF9jaHJvbWFfZm9ybWF0KGltYWdlKSA9PSBoZWlmX2Nocm9tYV9pbnRlcmxlYXZlZF8yNGJpdAAuL2hlaWZfZW1zY3JpcHRlbi5oAGhlaWZfaW1hZ2VfZ2V0X2Nocm9tYV9mb3JtYXQoaW1hZ2UpID09IGhlaWZfY2hyb21hX21vbm9jaHJvbWUAZGF0YQBOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBOU3QzX18yMjFfX2Jhc2ljX3N0cmluZ19jb21tb25JTGIxRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjExSGVpZkNvbnRleHRFTlNfOWFsbG9jYXRvcklTMl9FRUVFADEuMTAuMABTdWNjZXNzAExlc3MgdGhhbiA4IGJ5dGVzIG9mIGRhdGEAR3JpZCBpbWFnZSBkYXRhIGluY29tcGxldGUACgBPdmVybGF5IGltYWdlIGRhdGEgaW5jb21wbGV0ZQBPdmVybGF5IGltYWdlIGRhdGEgdmVyc2lvbiAAIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQAeABpbWFnZV9pbmRleCA8IG1fb2Zmc2V0cy5zaXplKCkAaGVpZl9jb250ZXh0LmNjAGdldF9vZmZzZXQATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEhlaWZGaWxlRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBodmMxAGdyaWQAaWRlbgBpb3ZsAGF2MDEAJ3BpdG0nIGJveCByZWZlcmVuY2VzIGEgbm9uLWV4aXN0aW5nIGltYWdlAEltYWdlIHNpemUgACBleGNlZWRzIHRoZSBtYXhpbXVtIGltYWdlIHNpemUgAFRvbyBtYW55IHRodW1ibmFpbCByZWZlcmVuY2VzAFRodW1ibmFpbCByZWZlcmVuY2VzIGEgbm9uLWV4aXN0aW5nIGltYWdlAFRodW1ibmFpbCByZWZlcmVuY2VzIGFub3RoZXIgdGh1bWJuYWlsAFJlY3Vyc2l2ZSB0aHVtYm5haWwgaW1hZ2UgZGV0ZWN0ZWQATm8gYXV4QyBwcm9wZXJ0eSBmb3IgaW1hZ2UgAFRvbyBtYW55IGF1eGlsaWFyeSBpbWFnZSByZWZlcmVuY2VzAHVybjptcGVnOmF2YzoyMDE1OmF1eGlkOjEAdXJuOm1wZWc6aGV2YzoyMDE1OmF1eGlkOjEAdXJuOm1wZWc6bXBlZ0I6Y2ljcDpzeXN0ZW1zOmF1eGlsaWFyeTphbHBoYQBOb24tZXhpc3RpbmcgYWxwaGEgaW1hZ2UgcmVmZXJlbmNlZABSZWN1cnNpdmUgYWxwaGEgaW1hZ2UgZGV0ZWN0ZWQAdXJuOm1wZWc6aGV2YzoyMDE1OmF1eGlkOjIAdXJuOm1wZWc6bXBlZ0I6Y2ljcDpzeXN0ZW1zOmF1eGlsaWFyeTpkZXB0aABOb24tZXhpc3RpbmcgZGVwdGggaW1hZ2UgcmVmZXJlbmNlZABSZWN1cnNpdmUgZGVwdGggaW1hZ2UgZGV0ZWN0ZWQATm9uLWV4aXN0aW5nIGF1eCBpbWFnZSByZWZlcmVuY2VkAFJlY3Vyc2l2ZSBhdXggaW1hZ2UgZGV0ZWN0ZWQATm8gaHZjQyBwcm9wZXJ0eSBpbiBodmMxIHR5cGUgaW1hZ2UATWV0YWRhdGEgbm90IGNvcnJlY3RseSBhc3NpZ25lZCB0byBpbWFnZQBNZXRhZGF0YSBhc3NpZ25lZCB0byBub24tZXhpc3RpbmcgaW1hZ2UATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmMTNJbWFnZU1ldGFkYXRhRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWYzNlNFSU1lc3NhZ2VfZGVwdGhfcmVwcmVzZW50YXRpb25faW5mb0UAMzBoZWlmX2RlcHRoX3JlcHJlc2VudGF0aW9uX2luZm8ATjRoZWlmMTBTRUlNZXNzYWdlRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWYxMUhlaWZDb250ZXh0NUltYWdlRU5TXzlhbGxvY2F0b3JJUzNfRUVFRQBpbWdpbmZvAGRlY29kZV9pbWFnZV9wbGFuYXIAaW1nX3dpZHRoID49IDAAaW1nX2hlaWdodCA+PSAwAE5vIGlyZWYgYm94IGF2YWlsYWJsZSwgYnV0IG5lZWRlZCBmb3IgaW92bCBpbWFnZQBOdW1iZXIgb2YgaW1hZ2Ugb2Zmc2V0cyBkb2VzIG5vdCBtYXRjaCB0aGUgbnVtYmVyIG9mIGltYWdlIHJlZmVyZW5jZXMATm8gaXJlZiBib3ggYXZhaWxhYmxlLCBidXQgbmVlZGVkIGZvciBpZGVuIGltYWdlACdpZGVuJyBpbWFnZSB3aXRoIG1vcmUgdGhhbiBvbmUgcmVmZXJlbmNlIGltYWdlAE5vIGlyZWYgYm94IGF2YWlsYWJsZSwgYnV0IG5lZWRlZCBmb3IgZ3JpZCBpbWFnZQBtX3Jvd3MgPD0gMjU2AGdldF9yb3dzAG1fY29sdW1ucyA8PSAyNTYAZ2V0X2NvbHVtbnMAVGlsZWQgaW1hZ2Ugd2l0aCAAPQAgdGlsZXMsIGJ1dCBvbmx5IAAgdGlsZSBpbWFnZXMgaW4gZmlsZQBUaWxlIGltYWdlIElEPQAgaXMgbm90IGEgcHJvcGVyIGltYWdlLgAhaW1hZ2VfcmVmZXJlbmNlcy5lbXB0eSgpAGRlY29kZV9mdWxsX2dyaWRfaW1hZ2UATm8gcGl4aSBpbmZvcm1hdGlvbiBmb3IgbHVtYSBjaGFubmVsLgBEaWZmZXJlbnQgbnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIGluIGVhY2ggY2hhbm5lbC4AVW5leGlzdGluZyBncmlkIGltYWdlIHJlZmVyZW5jZWQAc3JjX3dpZHRoID49IDAAZGVjb2RlX2FuZF9wYXN0ZV90aWxlX2ltYWdlAHNyY19oZWlnaHQgPj0gMABJbWFnZSB0aWxlIGhhcyBkaWZmZXJlbnQgY2hyb21hIGZvcm1hdCB0aGFuIGNvbWJpbmVkIGltYWdlAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjM2U0VJTWVzc2FnZV9kZXB0aF9yZXByZXNlbnRhdGlvbl9pbmZvRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBTdWNjZXNzAHdhbnRfYWxwaGEgJiYgIWhhc19hbHBoYQBoZWlmX2NvbG9yY29udmVyc2lvbi5jYwBjb252ZXJ0X2NvbG9yc3BhY2UAMThPcF9SR0JfdG9fUkdCMjRfMzIATjRoZWlmMjRDb2xvckNvbnZlcnNpb25PcGVyYXRpb25FADIwT3BfWUNiQ3I0MjBfdG9fUkdCMjQAMjBPcF9ZQ2JDcjQyMF90b19SR0IzMgAyNU9wX1JHQl9IRFJfdG9fUlJHR0JCYWFfQkUAMjFPcF9SR0JfdG9fUlJHR0JCYWFfQkUAMjVPcF9SUkdHQkJhYV9CRV90b19SR0JfSERSADI3T3BfUlJHR0JCYWFfc3dhcF9lbmRpYW5uZXNzADE5T3BfbW9ub190b19ZQ2JDcjQyMAAxOU9wX21vbm9fdG9fUkdCMjRfMzIAMjBPcF9SR0IyNF8zMl90b19ZQ2JDcgB0YXJnZXRfc3RhdGUubmNseF9wcm9maWxlAHRhcmdldF9zdGF0ZS5uY2x4X3Byb2ZpbGUtPmdldF9tYXRyaXhfY29lZmZpY2llbnRzKCkgPT0gMAAyN09wX1JHQjI0XzMyX3RvX1lDYkNyNDQ0X0dCUgAxOU9wX2Ryb3BfYWxwaGFfcGxhbmUAMTZPcF90b19oZHJfcGxhbmVzADE2T3BfdG9fc2RyX3BsYW5lcwAyN09wX1JSR0dCQnh4X0hEUl90b19ZQ2JDcjQyMAAyM09wX1lDYkNyNDIwX3RvX1JSR0dCQmFhAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTI3T3BfUlJHR0JCeHhfSERSX3RvX1lDYkNyNDIwTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE2T3BfdG9fc2RyX3BsYW5lc05TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUkxNk9wX3RvX2hkcl9wbGFuZXNOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMTlPcF9kcm9wX2FscGhhX3BsYW5lTlNfOWFsbG9jYXRvcklTMV9FRUVFADE1T3BfUkdCX3RvX1lDYkNySXRFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfUkdCX3RvX1lDYkNySXRFTlNfOWFsbG9jYXRvcklTMl9FRUVFADE1T3BfUkdCX3RvX1lDYkNySWhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfUkdCX3RvX1lDYkNySWhFTlNfOWFsbG9jYXRvcklTMl9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTI3T3BfUkdCMjRfMzJfdG9fWUNiQ3I0NDRfR0JSTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTIwT3BfUkdCMjRfMzJfdG9fWUNiQ3JOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjVPcF9SUkdHQkJhYV9CRV90b19SR0JfSERSTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTI3T3BfUlJHR0JCYWFfc3dhcF9lbmRpYW5uZXNzTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE5T3BfbW9ub190b19SR0IyNF8zMk5TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUkxOU9wX21vbm9fdG9fWUNiQ3I0MjBOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjFPcF9SR0JfdG9fUlJHR0JCYWFfQkVOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjVPcF9SR0JfSERSX3RvX1JSR0dCQmFhX0JFTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTIzT3BfWUNiQ3I0MjBfdG9fUlJHR0JCYWFOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjBPcF9ZQ2JDcjQyMF90b19SR0IzMk5TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUkyME9wX1lDYkNyNDIwX3RvX1JHQjI0TlNfOWFsbG9jYXRvcklTMV9FRUVFADE1T3BfWUNiQ3JfdG9fUkdCSWhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfWUNiQ3JfdG9fUkdCSWhFTlNfOWFsbG9jYXRvcklTMl9FRUVFADE1T3BfWUNiQ3JfdG9fUkdCSXRFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfWUNiQ3JfdG9fUkdCSXRFTlNfOWFsbG9jYXRvcklTMl9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE4T3BfUkdCX3RvX1JHQjI0XzMyTlNfOWFsbG9jYXRvcklTMV9FRUVFACFjaGFubmVscy5lbXB0eSgpAFN1Y2Nlc3MAQ2Fubm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgaW1hZ2UgcGxhbmUAQ2hhbm5lbHMgd2l0aCBkaWZmZXJlbnQgbnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIGFyZSBub3Qgc3VwcG9ydGVkAGxpYmRlMjY1IEhFVkMgZGVjb2RlcgAsIHZlcnNpb24gADEuMC4yAGRlMjY1LmNjAGRlMjY1X3NldF9wYXJhbWV0ZXJfYm9vbABjaGFubmVsPj0wICYmIGNoYW5uZWwgPD0gMgBkZTI2NV9nZXRfaW1hZ2VfcGxhbmUAMTVkZWNvZGVyX2NvbnRleHQAMTJiYXNlX2NvbnRleHQAMTFlcnJvcl9xdWV1ZQB0aHJlYWRfY29udGV4dHM9PU5VTEwAZGVjY3R4LmNjAGFsbG9jYXRlX3RocmVhZF9jb250ZXh0cwBkZWNvZGVfc2xpY2VfdW5pdF9wYXJhbGxlbABpbWctPm51bV90aHJlYWRzX2FjdGl2ZSgpID09IDAAZGVjb2RlX3NsaWNlX3VuaXRfdGlsZXMAbiA8IG5UaHJlYWRDb250ZXh0cwAuL2RlY2N0eC5oAGdldF90aHJlYWRfY29udGV4dABkZWNvZGVfc2xpY2VfdW5pdF9XUFAAUFBTICVkIGhhcyBub3QgYmVlbiByZWFkCgBwcm9jZXNzX3NsaWNlX3NlZ21lbnRfaGVhZGVyAGhkci0+bnVtX3JlZl9pZHhfbDBfYWN0aXZlIDw9IDE2AGNvbnN0cnVjdF9yZWZlcmVuY2VfcGljdHVyZV9saXN0cwBoZHItPm51bV9yZWZfaWR4X2wxX2FjdGl2ZSA8PSAxNgBjdHgtPmRwYi5oYXNfZnJlZV9kcGJfcGljdHVyZSh0cnVlKQBnZW5lcmF0ZV91bmF2YWlsYWJsZV9yZWZlcmVuY2VfcGljdHVyZQBpZHg+PTAAbmFsAGRlY29kZQBmYWxsYmFjay1kY3QuY2MAdHJhbnNmb3JtX3NraXBfOF9mYWxsYmFjawB0cmFuc2Zvcm1fc2tpcF8xNl9mYWxsYmFjawBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFpaWFVSTklDPTYuJh8WDQT88+rh2tLKw723sq6rqKamWldQRjkrGQn359XHurCppqapsLrH1ef3CRkrOUZQV1paUkMuFvzhyrerpqiyw9rzDSY9TlhaVUk2HwTq0r2upllLMhLuzrWnp7XO7hIyS1lZSzIS7s61p6e1zu4SMktZWEMf88quprLS/CZJWlU9FurDq6a32gQuTlpSNg3hvahXOQnVsKa65xlGWlAr98epqcf3K1BaRhnnuqaw1Qk5V1Uu872mt+omUlg2/MOmsuEfTlo9BMqortoWSVpDDdKrUyTcra3cJFNTJNytrdwkU1Mk3K2t3CRTUyTcra3cJFNSFsqmww1OVR/Spr0ESVgm2qi3/ENaLuGrsvM9WjbqrlAJuqnnOVor1abHGVdG97Cw90ZXGcem1StaOeepuglQTvyutw1VQ+qowx9aNtqm0i5aJsqm4T1YFr2r80lSBLJL7qfOMlkStbUSWTLOp+5LS+6nzjJZErW1ElkyzqfuS0nhpupOQ9qm81I90qj8VTbKqwRYLsOuDVomvbIWWh+3RtWpCVoZsMc5UOem91crurorV/em51A5x7AZWgmp1UZDyrImVeqmBFoNqOFSLrfDPUnSrh9Y86b8Whar2k42vUDAwEBAwMBAQMDAQEDAwEBAwMBAQMDAQEDAwEBAwMBAPbfSUh+o81r8phZV2rI2Q73KTiar6loEpg1Y4a4uScM5sOda96krRrrVVwmmGVDHx1AZpglX1bpGK6n3WuewOTar/FjSw1INpiZDsupa4bdJH6YWTr3aWvOuPS6oBFXKMqcSS7XuWc7OWe61SxKnMjKnEku17lnOzlnutUsSpzIupiY2ph89qBZDqw1JrgROsvxSt/NVvepYw+Faytpa0iumORmpRgmwUPe6V+fHWtXVWsfnV7r3ULAJRqkZOaYrJqhJ/L1a0uFVsg09pjYWrlLqylrD806rHy6mQwS3WNokrVPc3FOtJCStU9zcU60kJK1T3NxTrSQkrVPc3FOtJB+yWsMENqhS2upJpkPz0lWrLg29WrcWJq5Yyvw9pk7hGbpasCsJx1epOffVUKZG5+dGplDV9zmpV8cJK7BauhkWw1WmSdr8LrJarjbz4UOoWL0fDcpSpk7SBCa3Wqs96hLOS6dZtTLu7jK1WadLzhISzkunWbUy7u4ytVmnS84SDdo9slimVbc24QQW0kOuWqZSvS7q/B/KSataqE7DJvMJ5yvHRrBXplqpULo51Rn39xnVObpQqVqmV7BGxyvnCQTzFuEm0jbDQ7dOrlWoWqZaplirUrJJvT3KLtof6g38KHdpZHRoJjEpPT0wAGZhbGxiYWNrLW1vdGlvbi5jYwBwdXRfdW53ZWlnaHRlZF9wcmVkXzhfZmFsbGJhY2sAbG9nMldEPj0xAHB1dF93ZWlnaHRlZF9wcmVkXzhfZmFsbGJhY2sAcHV0X3dlaWdodGVkX2JpcHJlZF84X2ZhbGxiYWNrAHB1dF93ZWlnaHRlZF9wcmVkX2F2Z184X2ZhbGxiYWNrAHB1dF91bndlaWdodGVkX3ByZWRfMTZfZmFsbGJhY2sAcHV0X3dlaWdodGVkX3ByZWRfMTZfZmFsbGJhY2sAcHV0X3dlaWdodGVkX2JpcHJlZF8xNl9mYWxsYmFjawBwdXRfd2VpZ2h0ZWRfcHJlZF9hdmdfMTZfZmFsbGJhY2sAIXJlb3JkZXJfb3V0cHV0X3F1ZXVlLmVtcHR5KCkAZHBiLmNjAG91dHB1dF9uZXh0X3BpY3R1cmVfaW5fcmVvcmRlcl9idWZmZXIAbmV3X2ltYWdlAGltZy0+c3BzLkJpdERlcHRoX1kgPj0gOCAmJiBpbWctPnNwcy5CaXREZXB0aF9ZIDw9IDE2AGltYWdlLmNjAGRlMjY1X2ltYWdlX2dldF9idWZmZXIAaW1nLT5zcHMuQml0RGVwdGhfQyA+PSA4ICYmIGltZy0+c3BzLkJpdERlcHRoX0MgPD0gMTYAc3BzAGFsbG9jX2ltYWdlAGZpcnN0ICUgMiA9PSAwAGNvcHlfbGluZXNfZnJvbQBlbmQgJSAyID09IDAAblRocmVhZHNSdW5uaW5nID49IDAAdGhyZWFkX2ZpbmlzaGVzAC4vaW1hZ2UuaABwZW5kaW5nX2lucHV0X05BTCA9PSBOVUxMAG5hbC1wYXJzZXIuY2MAcHVzaF9OQUwALS0tLS0tLS0tLSBQUFMgcmFuZ2UtZXh0ZW5zaW9uIC0tLS0tLS0tLS0KAGxvZzJfbWF4X3RyYW5zZm9ybV9za2lwX2Jsb2NrX3NpemUgICAgICA6ICVkCgBjcm9zc19jb21wb25lbnRfcHJlZGljdGlvbl9lbmFibGVkX2ZsYWcgOiAlZAoAY2hyb21hX3FwX29mZnNldF9saXN0X2VuYWJsZWRfZmxhZyAgICAgIDogJWQKAGRpZmZfY3VfY2hyb21hX3FwX29mZnNldF9kZXB0aCAgICAgICAgICA6ICVkCgBjaHJvbWFfcXBfb2Zmc2V0X2xpc3RfbGVuICAgICAgICAgICAgICAgOiAlZAoAY2JfcXBfb2Zmc2V0X2xpc3RbJWRdICAgICAgICAgICAgICAgICAgICA6ICVkCgBjcl9xcF9vZmZzZXRfbGlzdFslZF0gICAgICAgICAgICAgICAgICAgIDogJWQKAGxvZzJfc2FvX29mZnNldF9zY2FsZV9sdW1hICAgICAgICAgICAgICA6ICVkCgBsb2cyX3Nhb19vZmZzZXRfc2NhbGVfY2hyb21hICAgICAgICAgICAgOiAlZAoAdGlsZVg+PTAgJiYgdGlsZVk+PTAAcHBzLmNjAHNldF9kZXJpdmVkX3ZhbHVlcwAtLS0tLS0tLS0tLS0tLS0tLSBQUFMgLS0tLS0tLS0tLS0tLS0tLS0KAHBpY19wYXJhbWV0ZXJfc2V0X2lkICAgICAgIDogJWQKAHNlcV9wYXJhbWV0ZXJfc2V0X2lkICAgICAgIDogJWQKAGRlcGVuZGVudF9zbGljZV9zZWdtZW50c19lbmFibGVkX2ZsYWcgOiAlZAoAc2lnbl9kYXRhX2hpZGluZ19mbGFnICAgICAgOiAlZAoAY2FiYWNfaW5pdF9wcmVzZW50X2ZsYWcgICAgOiAlZAoAbnVtX3JlZl9pZHhfbDBfZGVmYXVsdF9hY3RpdmUgOiAlZAoAbnVtX3JlZl9pZHhfbDFfZGVmYXVsdF9hY3RpdmUgOiAlZAoAcGljX2luaXRfcXAgICAgICAgICAgICAgICAgOiAlZAoAY29uc3RyYWluZWRfaW50cmFfcHJlZF9mbGFnOiAlZAoAdHJhbnNmb3JtX3NraXBfZW5hYmxlZF9mbGFnOiAlZAoAY3VfcXBfZGVsdGFfZW5hYmxlZF9mbGFnICAgOiAlZAoAZGlmZl9jdV9xcF9kZWx0YV9kZXB0aCAgICAgOiAlZAoAcGljX2NiX3FwX29mZnNldCAgICAgICAgICAgICA6ICVkCgBwaWNfY3JfcXBfb2Zmc2V0ICAgICAgICAgICAgIDogJWQKAHBwc19zbGljZV9jaHJvbWFfcXBfb2Zmc2V0c19wcmVzZW50X2ZsYWcgOiAlZAoAd2VpZ2h0ZWRfcHJlZF9mbGFnICAgICAgICAgICA6ICVkCgB3ZWlnaHRlZF9iaXByZWRfZmxhZyAgICAgICAgIDogJWQKAG91dHB1dF9mbGFnX3ByZXNlbnRfZmxhZyAgICAgOiAlZAoAdHJhbnNxdWFudF9ieXBhc3NfZW5hYmxlX2ZsYWc6ICVkCgB0aWxlc19lbmFibGVkX2ZsYWcgICAgICAgICAgIDogJWQKAGVudHJvcHlfY29kaW5nX3N5bmNfZW5hYmxlZF9mbGFnOiAlZAoAbnVtX3RpbGVfY29sdW1ucyAgICA6ICVkCgBudW1fdGlsZV9yb3dzICAgICAgIDogJWQKAHVuaWZvcm1fc3BhY2luZ19mbGFnOiAlZAoAdGlsZSBjb2x1bW4gYm91bmRhcmllczogAHRpbGUgcm93IGJvdW5kYXJpZXM6IAAqJWQgAGxvb3BfZmlsdGVyX2Fjcm9zc190aWxlc19lbmFibGVkX2ZsYWcgOiAlZAoAcHBzX2xvb3BfZmlsdGVyX2Fjcm9zc19zbGljZXNfZW5hYmxlZF9mbGFnOiAlZAoAZGVibG9ja2luZ19maWx0ZXJfY29udHJvbF9wcmVzZW50X2ZsYWc6ICVkCgBkZWJsb2NraW5nX2ZpbHRlcl9vdmVycmlkZV9lbmFibGVkX2ZsYWc6ICVkCgBwaWNfZGlzYWJsZV9kZWJsb2NraW5nX2ZpbHRlcl9mbGFnOiAlZAoAYmV0YV9vZmZzZXQ6ICAlZAoAdGNfb2Zmc2V0OiAgICAlZAoAcGljX3NjYWxpbmdfbGlzdF9kYXRhX3ByZXNlbnRfZmxhZzogJWQKAGxpc3RzX21vZGlmaWNhdGlvbl9wcmVzZW50X2ZsYWc6ICVkCgBsb2cyX3BhcmFsbGVsX21lcmdlX2xldmVsICAgICAgOiAlZAoAbnVtX2V4dHJhX3NsaWNlX2hlYWRlcl9iaXRzICAgIDogJWQKAHNsaWNlX3NlZ21lbnRfaGVhZGVyX2V4dGVuc2lvbl9wcmVzZW50X2ZsYWcgOiAlZAoAcHBzX2V4dGVuc2lvbl9mbGFnICAgICAgICAgICAgOiAlZAoAcHBzX3JhbmdlX2V4dGVuc2lvbl9mbGFnICAgICAgOiAlZAoAcHBzX211bHRpbGF5ZXJfZXh0ZW5zaW9uX2ZsYWcgOiAlZAoAcHBzX2V4dGVuc2lvbl82Yml0cyAgICAgICAgICAgOiAlZAoATG9nMk1pbkN1UXBEZWx0YVNpemUgICAgICAgICAgOiAlZAoATG9nMk1pbkN1Q2hyb21hUXBPZmZzZXRTaXplIChSRXh0KSA6ICVkCgBMb2cyTWF4VHJhbnNmb3JtU2tpcFNpemUgICAgKFJFeHQpIDogJWQKAHNhby0lZAAxNXRocmVhZF90YXNrX3NhbwAxMXRocmVhZF90YXNrAFNFSSBkZWNvZGVkIHBpY3R1cmUgTUQ1IG1pc21hdGNoIChQT0M9JWQpCgBTRUkgZGVjb2RlZCBwaWN0dXJlIGhhc2g6ICUwNHgsIGRlY29kZWQgcGljdHVyZTogJTA0eCAoUE9DPSVkKQoAc2xpY2Utc2VnbWVudC0lZDslZABpbml0VHlwZSA+PSAwICYmIGluaXRUeXBlIDw9IDIAc2xpY2UuY2MAaW5pdGlhbGl6ZV9DQUJBQ19tb2RlbHMAZGVjb2RlX3BhcnRfbW9kZQAAAQICAgIDBQcICgwNDxESExQVFhcXGBgZGRobGxwcHR0eH3JlYWRfY29kaW5nX3VuaXQAUHJlZE1vZGUgPT0gY3VQcmVkTW9kZQByZWFkX3RyYW5zZm9ybV90cmVlAGNvbnRleHQgPj0gMCAmJiBjb250ZXh0IDw9IDIAZGVjb2RlX3NwbGl0X3RyYW5zZm9ybV9mbGFnACEodHJhZm9EZXB0aD09MCAmJiBsb2cyVHJhZm9TaXplPT0yKQBjYmZfY2IgIT0gLTEAcmVhZF90cmFuc2Zvcm1fdW5pdABjYmZfY3IgIT0gLTEAY2JmX2x1bWEgIT0gLTEAeDxzcHMuUGljV2lkdGhJbk1pblBVcwBzZXRfSW50cmFQcmVkTW9kZUMAeTxzcHMuUGljSGVpZ2h0SW5NaW5QVXMAaWR4PGludHJhUHJlZE1vZGVDLmRhdGFfc2l6ZQAyNXRocmVhZF90YXNrX3NsaWNlX3NlZ21lbnQAY3RiLXJvdy0lZAAxOXRocmVhZF90YXNrX2N0Yl9yb3cAcHBzLT5wcHNfcmVhZABkdW1wX3NsaWNlX3NlZ21lbnRfaGVhZGVyAHNwcy0+c3BzX3JlYWQALS0tLS0tLS0tLS0tLS0tLS0gU0xJQ0UgLS0tLS0tLS0tLS0tLS0tLS0KAGZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWcgICAgICA6ICVkCgBub19vdXRwdXRfb2ZfcHJpb3JfcGljc19mbGFnICAgICAgICAgOiAlZAoAc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQgICAgICAgICAgIDogJWQKAGRlcGVuZGVudF9zbGljZV9zZWdtZW50X2ZsYWcgICAgICAgICA6ICVkCgBzbGljZV9zZWdtZW50X2FkZHJlc3MgICAgICAgICAgICAgICAgOiAlZAoAc2xpY2VfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJWMKAHBpY19vdXRwdXRfZmxhZyAgICAgICAgICAgICAgICAgICAgICA6ICVkCgBjb2xvdXJfcGxhbmVfaWQgICAgICAgICAgICAgICAgICAgICAgOiAlZAoAc2xpY2VfcGljX29yZGVyX2NudF9sc2IgICAgICAgICAgICAgIDogJWQKAHNob3J0X3Rlcm1fcmVmX3BpY19zZXRfc3BzX2ZsYWcgICAgICA6ICVkCgBzaG9ydF90ZXJtX3JlZl9waWNfc2V0X2lkeCAgICAgICAgICAgOiAlZAoAbnVtX2xvbmdfdGVybV9zcHMgICAgICAgICAgICAgICAgICAgICAgICA6ICVkCgBudW1fbG9uZ190ZXJtX3BpY3MgICAgICAgICAgICAgICAgICAgICAgIDogJWQKAHNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVkX2ZsYWcgOiAlZAoAc2xpY2Vfc2FvX2x1bWFfZmxhZyAgICAgICAgICAgICA6ICVkCgBzbGljZV9zYW9fY2hyb21hX2ZsYWcgICAgICAgICAgIDogJWQKAG51bV9yZWZfaWR4X2FjdGl2ZV9vdmVycmlkZV9mbGFnIDogJWQKAChmcm9tIFBQUykAbnVtX3JlZl9pZHhfbDBfYWN0aXZlICAgICAgICAgIDogJWQgJXMKAG51bV9yZWZfaWR4X2wxX2FjdGl2ZSAgICAgICAgICA6ICVkICVzCgByZWZfcGljX2xpc3RfbW9kaWZpY2F0aW9uX2ZsYWdfbDAgOiAlZAoAICAlZDogJWQKAHJlZl9waWNfbGlzdF9tb2RpZmljYXRpb25fZmxhZ19sMSA6ICVkCgBtdmRfbDFfemVyb19mbGFnICAgICAgICAgICAgICAgOiAlZAoAY2FiYWNfaW5pdF9mbGFnICAgICAgICAgICAgICAgIDogJWQKAGNvbGxvY2F0ZWRfZnJvbV9sMF9mbGFnICAgICAgICA6ICVkCgBjb2xsb2NhdGVkX3JlZl9pZHggICAgICAgICAgICAgOiAlZAoAbHVtYV9sb2cyX3dlaWdodF9kZW5vbSAgICAgICAgIDogJWQKAENocm9tYUxvZzJXZWlnaHREZW5vbSAgICAgICAgICA6ICVkCgBMdW1hV2VpZ2h0X0wlZFslZF0gICAgICAgICAgICAgOiAlZAoAbHVtYV9vZmZzZXRfbCVkWyVkXSAgICAgICAgICAgIDogJWQKAENocm9tYVdlaWdodF9MJWRbJWRdWyVkXSAgICAgICAgOiAlZAoAQ2hyb21hT2Zmc2V0X0wlZFslZF1bJWRdICAgICAgICA6ICVkCgBmaXZlX21pbnVzX21heF9udW1fbWVyZ2VfY2FuZCAgOiAlZAoAc2xpY2VfcXBfZGVsdGEgICAgICAgICA6ICVkCgBzbGljZV9jYl9xcF9vZmZzZXQgICAgIDogJWQKAHNsaWNlX2NyX3FwX29mZnNldCAgICAgOiAlZAoAZGVibG9ja2luZ19maWx0ZXJfb3ZlcnJpZGVfZmxhZyA6ICVkCgAob3ZlcnJpZGUpAChmcm9tIHBwcykAc2xpY2VfZGVibG9ja2luZ19maWx0ZXJfZGlzYWJsZWRfZmxhZyA6ICVkICVzCgBzbGljZV9iZXRhX29mZnNldCAgOiAlZAoAc2xpY2VfdGNfb2Zmc2V0ICAgIDogJWQKAHNsaWNlX2xvb3BfZmlsdGVyX2Fjcm9zc19zbGljZXNfZW5hYmxlZF9mbGFnIDogJWQKAG51bV9lbnRyeV9wb2ludF9vZmZzZXRzICAgIDogJWQKAG9mZnNldF9sZW4gICAgICAgICAgICAgICAgIDogJWQKAGVudHJ5IHBvaW50IFslaV0gOiAlZAoAAAEEBQIDBAUGBggIBwcIY2N0eElkeExvb2t1cFtsb2cydy0yXVtjSWR4XVtzY2FuSWR4XVtwcmV2Q3NiZl1beEMrKHlDPDxsb2cydyldID09IGN0eElkeEluYwBhbGxvY19hbmRfaW5pdF9zaWduaWZpY2FudF9jb2VmZl9jdHhJZHhfbG9va3VwVGFibGUAcmVmPDcAc3BzLmNjABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQERAREBESERISERIVExQVFBMVGBYWGBgWFhgZGRseGxkZHR8jIx8dJCksKSQvNjYvQUZBWFhzEBAQEBAQEBAQEBEREREREhISEhISFBQUFBQUFBgYGBgYGBgYGRkZGRkZGRwcHBwcHCEhISEhKSkpKTY2NkdHW2ZpbGxfc2NhbGluZ19mYWN0b3IAc2NhbGluZ19saXN0X3ByZWRfbWF0cml4X2lkX2RlbHRhPT0xAHJlYWRfc2NhbGluZ19saXN0AC0tLS0tLS0tLS0tLS0tLS0tIFNQUyAtLS0tLS0tLS0tLS0tLS0tLQoAdmlkZW9fcGFyYW1ldGVyX3NldF9pZCAgOiAlZAoAc3BzX21heF9zdWJfbGF5ZXJzICAgICAgOiAlZAoAc3BzX3RlbXBvcmFsX2lkX25lc3RpbmdfZmxhZyA6ICVkCgBzZXFfcGFyYW1ldGVyX3NldF9pZCAgICA6ICVkCgA0OjQ6NAB1bmtub3duAG1vbm9jaHJvbWUANDoyOjAANDoyOjIAY2hyb21hX2Zvcm1hdF9pZGMgICAgICAgOiAlZCAoJXMpCgBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyA6ICVkCgBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzICA6ICVkCgBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyA6ICVkCgBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyAgICA6ICVkCgBjb25mX3dpbl9sZWZ0X29mZnNldCAgOiAlZAoAY29uZl93aW5fcmlnaHRfb2Zmc2V0IDogJWQKAGNvbmZfd2luX3RvcF9vZmZzZXQgICA6ICVkCgBjb25mX3dpbl9ib3R0b21fb2Zmc2V0OiAlZAoAYml0X2RlcHRoX2x1bWEgICA6ICVkCgBiaXRfZGVwdGhfY2hyb21hIDogJWQKAGxvZzJfbWF4X3BpY19vcmRlcl9jbnRfbHNiIDogJWQKAHNwc19zdWJfbGF5ZXJfb3JkZXJpbmdfaW5mb19wcmVzZW50X2ZsYWcgOiAlZAoAbG9nMl9taW5fbHVtYV9jb2RpbmdfYmxvY2tfc2l6ZSA6ICVkCgBsb2cyX2RpZmZfbWF4X21pbl9sdW1hX2NvZGluZ19ibG9ja19zaXplIDogJWQKAGxvZzJfbWluX3RyYW5zZm9ybV9ibG9ja19zaXplICAgOiAlZAoAbG9nMl9kaWZmX21heF9taW5fdHJhbnNmb3JtX2Jsb2NrX3NpemUgOiAlZAoAbWF4X3RyYW5zZm9ybV9oaWVyYXJjaHlfZGVwdGhfaW50ZXIgOiAlZAoAbWF4X3RyYW5zZm9ybV9oaWVyYXJjaHlfZGVwdGhfaW50cmEgOiAlZAoAc2NhbGluZ19saXN0X2VuYWJsZV9mbGFnIDogJWQKAExheWVyICVkCgAgIHNwc19tYXhfZGVjX3BpY19idWZmZXJpbmcgICAgICA6ICVkCgAgIHNwc19tYXhfbnVtX3Jlb3JkZXJfcGljcyAgICAgICA6ICVkCgAgIHNwc19tYXhfbGF0ZW5jeV9pbmNyZWFzZV9wbHVzMSA6ICVkCgBzcHNfc2NhbGluZ19saXN0X2RhdGFfcHJlc2VudF9mbGFnIDogJWQKAHNjYWxpbmcgbGlzdCBsb2dnaW5nIG91dHB1dCBub3QgaW1wbGVtZW50ZWQAYW1wX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgICAgOiAlZAoAc2FtcGxlX2FkYXB0aXZlX29mZnNldF9lbmFibGVkX2ZsYWcgOiAlZAoAcGNtX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgICAgOiAlZAoAcGNtX3NhbXBsZV9iaXRfZGVwdGhfbHVtYSAgICAgOiAlZAoAcGNtX3NhbXBsZV9iaXRfZGVwdGhfY2hyb21hICAgOiAlZAoAbG9nMl9taW5fcGNtX2x1bWFfY29kaW5nX2Jsb2NrX3NpemUgOiAlZAoAbG9nMl9kaWZmX21heF9taW5fcGNtX2x1bWFfY29kaW5nX2Jsb2NrX3NpemUgOiAlZAoAcGNtX2xvb3BfZmlsdGVyX2Rpc2FibGVfZmxhZyAgOiAlZAoAbnVtX3Nob3J0X3Rlcm1fcmVmX3BpY19zZXRzIDogJWQKAGxvbmdfdGVybV9yZWZfcGljc19wcmVzZW50X2ZsYWcgOiAlZAoAcmVmX3BpY19zZXRbICUyZCBdOiAAbnVtX2xvbmdfdGVybV9yZWZfcGljc19zcHMgOiAlZAoAbHRfcmVmX3BpY19wb2NfbHNiX3Nwc1slZF0gOiAlZCAgICh1c2VkX2J5X2N1cnJfcGljX2x0X3Nwc19mbGFnPSVkKQoAc3BzX3RlbXBvcmFsX212cF9lbmFibGVkX2ZsYWcgICAgICA6ICVkCgBzdHJvbmdfaW50cmFfc21vb3RoaW5nX2VuYWJsZV9mbGFnIDogJWQKAHZ1aV9wYXJhbWV0ZXJzX3ByZXNlbnRfZmxhZyAgICAgICAgOiAlZAoAc3BzX2V4dGVuc2lvbl9wcmVzZW50X2ZsYWcgICAgOiAlZAoAc3BzX3JhbmdlX2V4dGVuc2lvbl9mbGFnICAgICAgOiAlZAoAc3BzX211bHRpbGF5ZXJfZXh0ZW5zaW9uX2ZsYWcgOiAlZAoAc3BzX2V4dGVuc2lvbl82Yml0cyAgICAgICAgICAgOiAlZAoAQ3RiU2l6ZVkgICAgIDogJWQKAE1pbkNiU2l6ZVkgICA6ICVkCgBNYXhDYlNpemVZICAgOiAlZAoATWluVEJTaXplWSAgIDogJWQKAE1heFRCU2l6ZVkgICA6ICVkCgBQaWNXaWR0aEluQ3Ric1kgICAgICAgICA6ICVkCgBQaWNIZWlnaHRJbkN0YnNZICAgICAgICA6ICVkCgBTdWJXaWR0aEMgICAgICAgICAgICAgICA6ICVkCgBTdWJIZWlnaHRDICAgICAgICAgICAgICA6ICVkCgAtLS0tLS0tLS0tLS0tLS0tLSBTUFMtcmFuZ2UtZXh0ZW5zaW9uIC0tLS0tLS0tLS0tLS0tLS0tCgB0cmFuc2Zvcm1fc2tpcF9yb3RhdGlvbl9lbmFibGVkX2ZsYWcgICAgOiAlZAoAdHJhbnNmb3JtX3NraXBfY29udGV4dF9lbmFibGVkX2ZsYWcgICAgIDogJWQKAGltcGxpY2l0X3JkcGNtX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICA6ICVkCgBleHBsaWNpdF9yZHBjbV9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgOiAlZAoAZXh0ZW5kZWRfcHJlY2lzaW9uX3Byb2Nlc3NpbmdfZmxhZyAgICAgIDogJWQKAGludHJhX3Ntb290aGluZ19kaXNhYmxlZF9mbGFnICAgICAgICAgICA6ICVkCgBoaWdoX3ByZWNpc2lvbl9vZmZzZXRzX2VuYWJsZWRfZmxhZyAgICAgOiAlZAoAcGVyc2lzdGVudF9yaWNlX2FkYXB0YXRpb25fZW5hYmxlZF9mbGFnIDogJWQKAGNhYmFjX2J5cGFzc19hbGlnbm1lbnRfZW5hYmxlZF9mbGFnICAgICA6ICVkCgB0cmFuc2Zvcm0uY2MAMABzY2FsZV9jb2VmZmljaWVudHNfaW50ZXJuYWwAcmRwY21Nb2RlPT0wAEVSUjogAElORk86IAB2cHMuY2MAYWxsb2NhdG9yPFQ+OjphbGxvY2F0ZShzaXplX3QgbikgJ24nIGV4Y2VlZHMgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZQBmaXJzdExheWVyUmVhZCA8IE1BWF9URU1QT1JBTF9TVUJMQVlFUlMAcmVhZAAtLS0tLS0tLS0tLS0tLS0tLSBWUFMgLS0tLS0tLS0tLS0tLS0tLS0KAHZpZGVvX3BhcmFtZXRlcl9zZXRfaWQgICAgICAgICAgICAgICAgOiAlZAoAdnBzX21heF9sYXllcnMgICAgICAgICAgICAgICAgICAgICAgICA6ICVkCgB2cHNfbWF4X3N1Yl9sYXllcnMgICAgICAgICAgICAgICAgICAgIDogJWQKAHZwc190ZW1wb3JhbF9pZF9uZXN0aW5nX2ZsYWcgICAgICAgICAgOiAlZAoAICBQcm9maWxlL1RpZXIvTGV2ZWwgW0xheWVyICVkXQoAdnBzX3N1Yl9sYXllcl9vcmRlcmluZ19pbmZvX3ByZXNlbnRfZmxhZyA6ICVkCgBsYXllciAlZDogdnBzX21heF9kZWNfcGljX2J1ZmZlcmluZyA9ICVkCgAgICAgICAgICB2cHNfbWF4X251bV9yZW9yZGVyX3BpY3MgID0gJWQKACAgICAgICAgIHZwc19tYXhfbGF0ZW5jeV9pbmNyZWFzZSAgPSAlZAoAbGF5ZXIgKGFsbCk6IHZwc19tYXhfZGVjX3BpY19idWZmZXJpbmcgPSAlZAoAICAgICAgICAgICAgIHZwc19tYXhfbnVtX3Jlb3JkZXJfcGljcyAgPSAlZAoAICAgICAgICAgICAgIHZwc19tYXhfbGF0ZW5jeV9pbmNyZWFzZSAgPSAlZAoAdnBzX21heF9sYXllcl9pZCAgID0gJWQKAHZwc19udW1fbGF5ZXJfc2V0cyA9ICVkCgB2cHNfdGltaW5nX2luZm9fcHJlc2VudF9mbGFnID0gJWQKAGxheWVyX2lkX2luY2x1ZGVkX2ZsYWdbJWRdWyVkXSA9ICVkCgB2cHNfbnVtX3VuaXRzX2luX3RpY2sgPSAlZAoAdnBzX3RpbWVfc2NhbGUgICAgICAgID0gJWQKAHZwc19wb2NfcHJvcG9ydGlvbmFsX3RvX3RpbWluZ19mbGFnID0gJWQKAHZwc19udW1fdGlja3NfcG9jX2RpZmZfb25lID0gJWQKAHZwc19udW1faHJkX3BhcmFtZXRlcnMgICAgID0gJWQKAGhyZF9sYXllcl9zZXRfaWR4WyVkXSA9ICVkCgB2cHNfZXh0ZW5zaW9uX2ZsYWcgPSAlZAoAZ2VuZXJhbABzdWJfbGF5ZXIAICAlc19wcm9maWxlX3NwYWNlICAgICA6ICVkCgAgICVzX3RpZXJfZmxhZyAgICAgICAgIDogJWQKACh1bmtub3duKQBGb3JtYXRSYW5nZUV4dGVuc2lvbnMATWFpblN0aWxsUGljdHVyZQBNYWluMTAATWFpbgAgICVzX3Byb2ZpbGVfaWRjICAgICAgIDogJXMKACAgJXNfcHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzOiAAKgoAICAgICVzX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnIDogJWQKACAgICAlc19pbnRlcmxhY2VkX3NvdXJjZV9mbGFnIDogJWQKACAgICAlc19ub25fcGFja2VkX2NvbnN0cmFpbnRfZmxhZyA6ICVkCgAgICAgJXNfZnJhbWVfb25seV9jb25zdHJhaW50X2ZsYWcgOiAlZAoAKiwAKiVkACAgJXNfbGV2ZWxfaWRjICAgICAgICAgOiAlZCAoJTQuMmYpCgB1bnNwZWNpZmllZABNQUMAU0VDQU0ATlRTQwBQQUwAY29tcG9uZW50AC0tLS0tLS0tLS0tLS0tLS0tIFZVSSAtLS0tLS0tLS0tLS0tLS0tLQoAc2FtcGxlIGFzcGVjdCByYXRpbyAgICAgICAgOiAlZDolZAoAb3ZlcnNjYW5faW5mb19wcmVzZW50X2ZsYWcgOiAlZAoAb3ZlcnNjYW5fYXBwcm9wcmlhdGVfZmxhZyAgOiAlZAoAdmlkZW9fc2lnbmFsX3R5cGVfcHJlc2VudF9mbGFnOiAlZAoAICB2aWRlb19mb3JtYXQgICAgICAgICAgICAgICAgOiAlcwoAICB2aWRlb19mdWxsX3JhbmdlX2ZsYWcgICAgICAgOiAlZAoAICBjb2xvdXJfZGVzY3JpcHRpb25fcHJlc2VudF9mbGFnIDogJWQKACAgY29sb3VyX3ByaW1hcmllcyAgICAgICAgICAgIDogJWQKACAgdHJhbnNmZXJfY2hhcmFjdGVyaXN0aWNzICAgIDogJWQKACAgbWF0cml4X2NvZWZmcyAgICAgICAgICAgICAgIDogJWQKAGNocm9tYV9sb2NfaW5mb19wcmVzZW50X2ZsYWc6ICVkCgAgIGNocm9tYV9zYW1wbGVfbG9jX3R5cGVfdG9wX2ZpZWxkICAgOiAlZAoAICBjaHJvbWFfc2FtcGxlX2xvY190eXBlX2JvdHRvbV9maWVsZDogJWQKAG5ldXRyYWxfY2hyb21hX2luZGljYXRpb25fZmxhZzogJWQKAGZpZWxkX3NlcV9mbGFnICAgICAgICAgICAgICAgIDogJWQKAGZyYW1lX2ZpZWxkX2luZm9fcHJlc2VudF9mbGFnIDogJWQKAGRlZmF1bHRfZGlzcGxheV93aW5kb3dfZmxhZyAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX2xlZnRfb2Zmc2V0ICAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX3JpZ2h0X29mZnNldCAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX3RvcF9vZmZzZXQgICAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX2JvdHRvbV9vZmZzZXQgIDogJWQKAHZ1aV90aW1pbmdfaW5mb19wcmVzZW50X2ZsYWcgIDogJWQKACAgdnVpX251bV91bml0c19pbl90aWNrICAgICAgIDogJWQKACAgdnVpX3RpbWVfc2NhbGUgICAgICAgICAgICAgIDogJWQKAHZ1aV9wb2NfcHJvcG9ydGlvbmFsX3RvX3RpbWluZ19mbGFnIDogJWQKAHZ1aV9udW1fdGlja3NfcG9jX2RpZmZfb25lICAgICAgICAgIDogJWQKAHZ1aV9ocmRfcGFyYW1ldGVyc19wcmVzZW50X2ZsYWcgOiAlZAoAYml0c3RyZWFtX3Jlc3RyaWN0aW9uX2ZsYWcgICAgICAgICA6ICVkCgAgIHRpbGVzX2ZpeGVkX3N0cnVjdHVyZV9mbGFnICAgICAgIDogJWQKACAgbW90aW9uX3ZlY3RvcnNfb3Zlcl9waWNfYm91bmRhcmllc19mbGFnIDogJWQKACAgcmVzdHJpY3RlZF9yZWZfcGljX2xpc3RzX2ZsYWcgICAgOiAlZAoAICBtaW5fc3BhdGlhbF9zZWdtZW50YXRpb25faWRjICAgICA6ICVkCgAgIG1heF9ieXRlc19wZXJfcGljX2Rlbm9tICAgICAgICAgIDogJWQKACAgbWF4X2JpdHNfcGVyX21pbl9jdV9kZW5vbSAgICAgICAgOiAlZAoAICBsb2cyX21heF9tdl9sZW5ndGhfaG9yaXpvbnRhbCAgICA6ICVkCgAgIGxvZzJfbWF4X212X2xlbmd0aF92ZXJ0aWNhbCAgICAgIDogJWQKAGJpdHN0cmVhbS5jYwB2YWx1ZT4wAGdldF91dmxjAICw0PCAp8XjgJ672HuWss10jqnDb4eguWmAmK9kepCmX3SJnlpugpZVaHuOUWN1h01eb4BJWWl6RVVkdEJQX24+TFpoO0hWYzhFUV41QU1ZMz5JVTA7RVAuOEJMKzU/SCkyO0UnMDhBJS02PiMrMzshKTA4ICcuNR4lKzIdIykwGyEnLRofJSsYHiMpFxwhJxYbICUVGh4jFBgdIRMXGx8SFhoeERUZHBAUFxsPExYZDhIVGA4RFBcNEBMWDA8SFQwOERQLDhATCw0PEgoMDxEKDA4QCQsNDwkLDA4ICgwOCAkLDQcJCwwHCQoMBwgKCwYICQsGBwkKBgcICQICAgIGBQQEAwMDAwICAgICAgICAQEBAQEBAQEBAQEBAQEBAQAAAQICBAQFBgcICQkLCwwNDQ8PEBASEhMTFRUWFhcYGBkaGhsbHB0dHh4eHyAgISEhIiIjIyMkJCQlJSUmJj8BAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj4/Y2FiYWMuY2MAbGVuZ3RoID49IDAAaW5pdF9DQUJBQ19kZWNvZGVyACVwIGMndG9yID0gJXAKACVwIGRlc3RydWN0b3IKAG1mcmVlICVwCgAlcCBpbml0CgAqcmVmY250PjEAY29udGV4dG1vZGVsLmNjAGRlY291cGxlX29yX2FsbG9jX3dpdGhfZW1wdHlfZGF0YQAlcCAoYWxsb2MpCgBtb2RlbFtpXS5zdGF0ZSA8PSA2MgBzZXRfaW5pdFZhbHVlACVwIHJlbGVhc2UgJXAKACVwIGRlY291cGxlICglcCkKAHJlZmNudABkZWNvdXBsZQAlcCBhc3NpZ24gPSAlcAoAZGVibG9jay0lZAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQECAgICAwMDAwQEBAUFBgYHCAkKCw0OEBIUFhgAAAAAAAAAAAAAAAAAAAAABgcICQoLDA0ODxAREhQWGBocHiAiJCYoKiwuMDI0Njg6PD5AcmVmUGljUTA9PXJlZlBpY1ExAGRlYmxvY2suY2MAZGVyaXZlX2JvdW5kYXJ5U3RyZW5ndGgAMjZ0aHJlYWRfdGFza19kZWJsb2NrX0NUQlJvdwBpbnRyYXByZWQuY2MAaW50cmFQcmVkTW9kZTwzNQBpbnRyYV9wcmVkaWN0aW9uX2FuZ3VsYXIAaW50cmFQcmVkTW9kZT49MgBpbnRyYV9wcmVkaWN0aW9uX3NhbXBsZV9maWx0ZXJpbmcAc2hkci0+c2xpY2VfdHlwZSA9PSBTTElDRV9UWVBFX0IAbW90aW9uLmNjAGdlbmVyYXRlX2ludGVyX3ByZWRpY3Rpb25fc2FtcGxlcwBtY19jaHJvbWEAdW5pdFggPj0gMCAmJiB1bml0WCA8IHdpZHRoX2luX3VuaXRzAC4uL2xpYmRlMjY1L2ltYWdlLmgAZ2V0AHVuaXRZID49IDAgJiYgdW5pdFkgPCBoZWlnaHRfaW5fdW5pdHMAY3R4LT5oYXNfaW1hZ2UoY29sUGljKQBkZXJpdmVfY29sbG9jYXRlZF9tb3Rpb25fdmVjdG9ycwBkZXJpdmVfY29tYmluZWRfYmlwcmVkaWN0aXZlX21lcmdpbmdfY2FuZGlkYXRlcwByZWZQaWNMaXN0Pj0wAGRlcml2ZV9zcGF0aWFsX2x1bWFfdmVjdG9yX3ByZWRpY3Rpb24AbnVtTVZQQ2FuZExYPT0yAGZpbGxfbHVtYV9tb3Rpb25fdmVjdG9yX3ByZWRpY3RvcnMAUklkeD49MAByZWZwaWMuY2MAcmVhZF9zaG9ydF90ZXJtX3JlZl9waWNfc2V0AFJJZHggPj0gMCAmJiBSSWR4IDwgc2V0cy5zaXplKCkAaj49MCAmJiBqIDwgTUFYX05VTV9SRUZfUElDUwAqJWQlYyAAKiVzCgB2b2lkAGJvb2wAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AGludAB1bnNpZ25lZCBpbnQAbG9uZwB1bnNpZ25lZCBsb25nAGZsb2F0AGRvdWJsZQBzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBOQU4AMDEyMzQ1Njc4OUFCQ0RFRi4AVCEiGQ0BAgMRSxwMEAQLHRIeJ2hub3BxYiAFBg8TFBUaCBYHKCQXGAkKDhsfJSODgn0mKis8PT4/Q0dKTVhZWltcXV5fYGFjZGVmZ2lqa2xyc3R5ent8AElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAAD/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wABAgQHAwYFAGluZmluaXR5AG5hbgBMQ19BTEwATENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMATEFORwBDLlVURi04AFBPU0lYAE1VU0xfTE9DUEFUSABOU3QzX18yOGlvc19iYXNlRQBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBOU3QzX18yOWJhc2ljX2lvc0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFAE5TdDNfXzIxM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjEzYmFzaWNfaXN0cmVhbUl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxM2Jhc2ljX29zdHJlYW1Jd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjE0YmFzaWNfaW9zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjExX19zdGRvdXRidWZJd0VFAE5TdDNfXzIxMV9fc3Rkb3V0YnVmSWNFRQB1bnN1cHBvcnRlZCBsb2NhbGUgZm9yIHN0YW5kYXJkIGlucHV0AE5TdDNfXzIxMF9fc3RkaW5idWZJd0VFAE5TdDNfXzIxMF9fc3RkaW5idWZJY0VFAE5TdDNfXzI3Y29sbGF0ZUljRUUATlN0M19fMjZsb2NhbGU1ZmFjZXRFAE5TdDNfXzI3Y29sbGF0ZUl3RUUAMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRnhYKy1wUGlJbk4AJXAAQwBOU3QzX18yN251bV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzI5X19udW1fZ2V0SWNFRQBOU3QzX18yMTRfX251bV9nZXRfYmFzZUUATlN0M19fMjdudW1fZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yOV9fbnVtX2dldEl3RUUAJXAAAAAATABsbAAlAAAAAABsAE5TdDNfXzI3bnVtX3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjlfX251bV9wdXRJY0VFAE5TdDNfXzIxNF9fbnVtX3B1dF9iYXNlRQBOU3QzX18yN251bV9wdXRJd05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzI5X19udW1fcHV0SXdFRQAlSDolTTolUwAlbS8lZC8leQAlSTolTTolUyAlcAAlYSAlYiAlZCAlSDolTTolUyAlWQBBTQBQTQBKYW51YXJ5AEZlYnJ1YXJ5AE1hcmNoAEFwcmlsAE1heQBKdW5lAEp1bHkAQXVndXN0AFNlcHRlbWJlcgBPY3RvYmVyAE5vdmVtYmVyAERlY2VtYmVyAEphbgBGZWIATWFyAEFwcgBKdW4ASnVsAEF1ZwBTZXAAT2N0AE5vdgBEZWMAU3VuZGF5AE1vbmRheQBUdWVzZGF5AFdlZG5lc2RheQBUaHVyc2RheQBGcmlkYXkAU2F0dXJkYXkAU3VuAE1vbgBUdWUAV2VkAFRodQBGcmkAU2F0ACVtLyVkLyV5JVktJW0tJWQlSTolTTolUyAlcCVIOiVNJUg6JU06JVMlSDolTTolU05TdDNfXzI4dGltZV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIyMF9fdGltZV9nZXRfY19zdG9yYWdlSWNFRQBOU3QzX18yOXRpbWVfYmFzZUUATlN0M19fMjh0aW1lX2dldEl3TlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjIwX190aW1lX2dldF9jX3N0b3JhZ2VJd0VFAE5TdDNfXzI4dGltZV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMF9fdGltZV9wdXRFAE5TdDNfXzI4dGltZV9wdXRJd05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJY0xiMEVFRQBOU3QzX18yMTBtb25leV9iYXNlRQBOU3QzX18yMTBtb25leXB1bmN0SWNMYjFFRUUATlN0M19fMjEwbW9uZXlwdW5jdEl3TGIwRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMUVFRQAwMTIzNDU2Nzg5ACVMZgBOU3QzX18yOW1vbmV5X2dldEljTlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjExX19tb25leV9nZXRJY0VFADAxMjM0NTY3ODkATlN0M19fMjltb25leV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SXdFRQAlLjBMZgBOU3QzX18yOW1vbmV5X3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjExX19tb25leV9wdXRJY0VFAE5TdDNfXzI5bW9uZXlfcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTFfX21vbmV5X3B1dEl3RUUATlN0M19fMjhtZXNzYWdlc0ljRUUATlN0M19fMjEzbWVzc2FnZXNfYmFzZUUATlN0M19fMjE3X193aWRlbl9mcm9tX3V0ZjhJTGozMkVFRQBOU3QzX18yN2NvZGVjdnRJRGljMTFfX21ic3RhdGVfdEVFAE5TdDNfXzIxMmNvZGVjdnRfYmFzZUUATlN0M19fMjE2X19uYXJyb3dfdG9fdXRmOElMajMyRUVFAE5TdDNfXzI4bWVzc2FnZXNJd0VFAE5TdDNfXzI3Y29kZWN2dEljYzExX19tYnN0YXRlX3RFRQBOU3QzX18yN2NvZGVjdnRJd2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjdjb2RlY3Z0SURzYzExX19tYnN0YXRlX3RFRQBOU3QzX18yNmxvY2FsZTVfX2ltcEUATlN0M19fMjVjdHlwZUljRUUATlN0M19fMjEwY3R5cGVfYmFzZUUATlN0M19fMjVjdHlwZUl3RUUAZmFsc2UAdHJ1ZQBOU3QzX18yOG51bXB1bmN0SWNFRQBOU3QzX18yOG51bXB1bmN0SXdFRQBOU3QzX18yMTRfX3NoYXJlZF9jb3VudEUATlN0M19fMjE5X19zaGFyZWRfd2Vha19jb3VudEUAYmFkX3dlYWtfcHRyAE5TdDNfXzIxMmJhZF93ZWFrX3B0ckUAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlczogJXMAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGZvcmVpZ24gZXhjZXB0aW9uAHRlcm1pbmF0aW5nAHVuY2F1Z2h0AFN0OWV4Y2VwdGlvbgBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQBTdDl0eXBlX2luZm8ATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQBwdGhyZWFkX29uY2UgZmFpbHVyZSBpbiBfX2N4YV9nZXRfZ2xvYmFsc19mYXN0KCkAY2Fubm90IGNyZWF0ZSBwdGhyZWFkIGtleSBmb3IgX19jeGFfZ2V0X2dsb2JhbHMoKQBjYW5ub3QgemVybyBvdXQgdGhyZWFkIHZhbHVlIGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZABTdDExbG9naWNfZXJyb3IAU3QxMmxlbmd0aF9lcnJvcgBOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FAHYARG4AYgBjAGgAYQBzAHQAaQBqAG0AZgBkAE4xMF9fY3h4YWJpdjExNl9fZW51bV90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0U=\\\"),staticInit:function(){yA.isWindows=!!process.platform.match(/^win/)},mount:function(A){return h(o),yA.createNode(null,\\\"/\\\",yA.getMode(A.opts.root),0)},createNode:function(A,e,r,i){if(!EA.isDir(r)&&!EA.isFile(r)&&!EA.isLink(r))throw new EA.ErrnoError(hA.EINVAL);var f=EA.createNode(A,e,r);return f.node_ops=yA.node_ops,f.stream_ops=yA.stream_ops,f},getMode:function(A){var e;try{e=ur.lstatSync(A),yA.isWindows&&(e.mode=e.mode|(146&e.mode)>>1)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}return e.mode},realPath:function(A){for(var e=[];A.parent!==A;)e.push(A.name),A=A.parent;return e.push(A.mount.opts.root),e.reverse(),mA.join.apply(null,e)},flagsToPermissionStringMap:{0:\\\"r\\\",1:\\\"r+\\\",2:\\\"r+\\\",64:\\\"r\\\",65:\\\"r+\\\",66:\\\"r+\\\",129:\\\"rx+\\\",193:\\\"rx+\\\",514:\\\"w+\\\",577:\\\"w\\\",578:\\\"w+\\\",705:\\\"wx\\\",706:\\\"wx+\\\",1024:\\\"a\\\",1025:\\\"a\\\",1026:\\\"a+\\\",1089:\\\"a\\\",1090:\\\"a+\\\",1153:\\\"ax\\\",1154:\\\"ax+\\\",1217:\\\"ax\\\",1218:\\\"ax+\\\",4096:\\\"rs\\\",4098:\\\"rs+\\\"},flagsToPermissionString:function(A){if(A&=-2097153,A&=-2049,A&=-32769,(A&=-524289)in yA.flagsToPermissionStringMap)return yA.flagsToPermissionStringMap[A];throw new EA.ErrnoError(hA.EINVAL)},node_ops:{getattr:function(A){var e,r=yA.realPath(A);try{e=ur.lstatSync(r)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}return yA.isWindows&&!e.blksize&&(e.blksize=4096),yA.isWindows&&!e.blocks&&(e.blocks=(e.size+e.blksize-1)/e.blksize|0),{dev:e.dev,ino:e.ino,mode:e.mode,nlink:e.nlink,uid:e.uid,gid:e.gid,rdev:e.rdev,size:e.size,atime:e.atime,mtime:e.mtime,ctime:e.ctime,blksize:e.blksize,blocks:e.blocks}},setattr:function(A,e){var r=yA.realPath(A);try{if(void 0!==e.mode&&(ur.chmodSync(r,e.mode),A.mode=e.mode),void 0!==e.timestamp){var i=new Date(e.timestamp);ur.utimesSync(r,i,i)}void 0!==e.size&&ur.truncateSync(r,e.size)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},lookup:function(A,e){var r=mA.join2(yA.realPath(A),e),i=yA.getMode(r);return yA.createNode(A,e,i)},mknod:function(A,e,r,i){var f=yA.createNode(A,e,r,i),n=yA.realPath(f);try{EA.isDir(f.mode)?ur.mkdirSync(n,f.mode):ur.writeFileSync(n,\\\"\\\",{mode:f.mode})}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}return f},rename:function(A,e,r){var i=yA.realPath(A),f=mA.join2(yA.realPath(e),r);try{ur.renameSync(i,f)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},unlink:function(A,e){var r=mA.join2(yA.realPath(A),e);try{ur.unlinkSync(r)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},rmdir:function(A,e){var r=mA.join2(yA.realPath(A),e);try{ur.rmdirSync(r)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},readdir:function(A){var e=yA.realPath(A);try{return ur.readdirSync(e)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},symlink:function(A,e,r){var i=mA.join2(yA.realPath(A),e);try{ur.symlinkSync(r,i)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},readlink:function(A){var e=yA.realPath(A);try{return e=ur.readlinkSync(e),e=br.relative(br.resolve(A.mount.opts.root),e)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}}},stream_ops:{open:function(A){var e=yA.realPath(A.node);try{EA.isFile(A.node.mode)&&(A.nfd=ur.openSync(e,yA.flagsToPermissionString(A.flags)))}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},close:function(A){try{EA.isFile(A.node.mode)&&A.nfd&&ur.closeSync(A.nfd)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},read:function(A,e,r,i,f){if(0===i)return 0;var n,t=new Buffer(i);try{n=ur.readSync(A.nfd,t,0,i,f)}catch(A){throw new EA.ErrnoError(hA[A.code])}if(0=A.node.size)return 0;var n=A.node.contents.slice(f,f+i),t=BA.reader.readAsArrayBuffer(n);return e.set(new Uint8Array(t),r),n.size},write:function(A,e,r,i,f){throw new EA.ErrnoError(hA.EIO)},llseek:function(A,e,r){var i=e;if(1===r?i+=A.position:2===r&&EA.isFile(A.node.mode)&&(i+=A.node.size),i<0)throw new EA.ErrnoError(hA.EINVAL);return i}}};R+=16,R+=16,R+=16;var EA={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:\\\"/\\\",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(A){if(!(A instanceof EA.ErrnoError))throw A+\\\" : \\\"+p();return wA(A.errno)},lookupPath:function(A,e){if(e=e||{},!(A=mA.resolve(EA.cwd(),A)))return{path:\\\"\\\",node:null};var r={follow_mount:!0,recurse_count:0};for(var i in r)void 0===e[i]&&(e[i]=r[i]);if(8>>0)%EA.nameTable.length},hashAddNode:function(A){var e=EA.hashName(A.parent.id,A.name);A.name_next=EA.nameTable[e],EA.nameTable[e]=A},hashRemoveNode:function(A){var e=EA.hashName(A.parent.id,A.name);if(EA.nameTable[e]===A)EA.nameTable[e]=A.name_next;else for(var r=EA.nameTable[e];r;){if(r.name_next===A){r.name_next=A.name_next;break}r=r.name_next}},lookupNode:function(A,e){var r=EA.mayLookup(A);if(r)throw new EA.ErrnoError(r,A);for(var i=EA.hashName(A.id,e),f=EA.nameTable[i];f;f=f.name_next){var n=f.name;if(f.parent.id===A.id&&n===e)return f}return EA.lookup(A,e)},createNode:function(A,e,r,i){if(!EA.FSNode){EA.FSNode=function(A,e,r,i){A=A||this,this.parent=A,this.mount=A.mount,this.mounted=null,this.id=EA.nextInode++,this.name=e,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i},EA.FSNode.prototype={};Object.defineProperties(EA.FSNode.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(A){A?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(A){A?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return EA.isDir(this.mode)}},isDevice:{get:function(){return EA.isChrdev(this.mode)}}})}var f=new EA.FSNode(A,e,r,i);return EA.hashAddNode(f),f},destroyNode:function(A){EA.hashRemoveNode(A)},isRoot:function(A){return A===A.parent},isMountpoint:function(A){return!!A.mounted},isFile:function(A){return 32768==(61440&A)},isDir:function(A){return 16384==(61440&A)},isLink:function(A){return 40960==(61440&A)},isChrdev:function(A){return 8192==(61440&A)},isBlkdev:function(A){return 24576==(61440&A)},isFIFO:function(A){return 4096==(61440&A)},isSocket:function(A){return 49152==(49152&A)},flagModes:{r:0,rs:1052672,\\\"r+\\\":2,w:577,wx:705,xw:705,\\\"w+\\\":578,\\\"wx+\\\":706,\\\"xw+\\\":706,a:1089,ax:1217,xa:1217,\\\"a+\\\":1090,\\\"ax+\\\":1218,\\\"xa+\\\":1218},modeStringToFlags:function(A){var e=EA.flagModes[A];if(void 0===e)throw new Error(\\\"Unknown file open mode: \\\"+A);return e},flagsToPermissionString:function(A){var e=[\\\"r\\\",\\\"w\\\",\\\"rw\\\"][3&A];return 512&A&&(e+=\\\"w\\\"),e},nodePermissions:function(A,e){return EA.ignorePermissions||(-1===e.indexOf(\\\"r\\\")||292&A.mode)&&(-1===e.indexOf(\\\"w\\\")||146&A.mode)&&(-1===e.indexOf(\\\"x\\\")||73&A.mode)?0:hA.EACCES},mayLookup:function(A){var e=EA.nodePermissions(A,\\\"x\\\");return e||(A.node_ops.lookup?0:hA.EACCES)},mayCreate:function(A,e){try{EA.lookupNode(A,e);return hA.EEXIST}catch(A){}return EA.nodePermissions(A,\\\"wx\\\")},mayDelete:function(A,e,r){var i;try{i=EA.lookupNode(A,e)}catch(A){return A.errno}var f=EA.nodePermissions(A,\\\"wx\\\");if(f)return f;if(r){if(!EA.isDir(i.mode))return hA.ENOTDIR;if(EA.isRoot(i)||EA.getPath(i)===EA.cwd())return hA.EBUSY}else if(EA.isDir(i.mode))return hA.EISDIR;return 0},mayOpen:function(A,e){return A?EA.isLink(A.mode)?hA.ELOOP:EA.isDir(A.mode)&&(\\\"r\\\"!==EA.flagsToPermissionString(e)||512&e)?hA.EISDIR:EA.nodePermissions(A,EA.flagsToPermissionString(e)):hA.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(A,e){A=A||0,e=e||EA.MAX_OPEN_FDS;for(var r=A;r<=e;r++)if(!EA.streams[r])return r;throw new EA.ErrnoError(hA.EMFILE)},getStream:function(A){return EA.streams[A]},createStream:function(A,e,r){EA.FSStream||(EA.FSStream=function(){},EA.FSStream.prototype={},Object.defineProperties(EA.FSStream.prototype,{object:{get:function(){return this.node},set:function(A){this.node=A}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var i=new EA.FSStream;for(var f in A)i[f]=A[f];A=i;var n=EA.nextfd(e,r);return A.fd=n,EA.streams[n]=A},closeStream:function(A){EA.streams[A]=null},chrdev_stream_ops:{open:function(A){var e=EA.getDevice(A.node.rdev);A.stream_ops=e.stream_ops,A.stream_ops.open&&A.stream_ops.open(A)},llseek:function(){throw new EA.ErrnoError(hA.ESPIPE)}},major:function(A){return A>>8},minor:function(A){return 255&A},makedev:function(A,e){return A<<8|e},registerDevice:function(A,e){EA.devices[A]={stream_ops:e}},getDevice:function(A){return EA.devices[A]},getMounts:function(A){for(var e=[],r=[A];r.length;){var i=r.pop();e.push(i),r.push.apply(r,i.mounts)}return e},syncfs:function(e,r){\\\"function\\\"==typeof e&&(r=e,e=!1),EA.syncFSRequests++,1=i.length&&n(null)}i.forEach(function(A){if(!A.type.syncfs)return t(null);A.type.syncfs(A,e,t)})},mount:function(A,e,r){var i,f=\\\"/\\\"===r,n=!r;if(f&&EA.root)throw new EA.ErrnoError(hA.EBUSY);if(!f&&!n){var t=EA.lookupPath(r,{follow_mount:!1});if(r=t.path,i=t.node,EA.isMountpoint(i))throw new EA.ErrnoError(hA.EBUSY);if(!EA.isDir(i.mode))throw new EA.ErrnoError(hA.ENOTDIR)}var o={type:A,opts:e,mountpoint:r,mounts:[]},a=A.mount(o);return(a.mount=o).root=a,f?EA.root=a:i&&(i.mounted=o,i.mount&&i.mount.mounts.push(o)),a},unmount:function(A){var e=EA.lookupPath(A,{follow_mount:!1});if(!EA.isMountpoint(e.node))throw new EA.ErrnoError(hA.EINVAL);var r=e.node,i=r.mounted,f=EA.getMounts(i);Object.keys(EA.nameTable).forEach(function(A){for(var e=EA.nameTable[A];e;){var r=e.name_next;-1!==f.indexOf(e.mount)&&EA.destroyNode(e),e=r}}),r.mounted=null;var n=r.mount.mounts.indexOf(i);h(-1!==n),r.mount.mounts.splice(n,1)},lookup:function(A,e){return A.node_ops.lookup(A,e)},mknod:function(A,e,r){var i=EA.lookupPath(A,{parent:!0}).node,f=mA.basename(A);if(!f||\\\".\\\"===f||\\\"..\\\"===f)throw new EA.ErrnoError(hA.EINVAL);var n=EA.mayCreate(i,f);if(n)throw new EA.ErrnoError(n);if(!i.node_ops.mknod)throw new EA.ErrnoError(hA.EPERM);return i.node_ops.mknod(i,f,e,r)},create:function(A,e){return e=void 0!==e?e:438,e&=4095,e|=32768,EA.mknod(A,e,0)},mkdir:function(A,e){return e=void 0!==e?e:511,e&=1023,e|=16384,EA.mknod(A,e,0)},mkdirTree:function(A,e){for(var r=A.split(\\\"/\\\"),i=\\\"\\\",f=0;f\\\"}))},staticInit:function(){EA.ensureErrnoError(),EA.nameTable=new Array(4096),EA.mount(ZA,{},\\\"/\\\"),EA.createDefaultDirectories(),EA.createDefaultDevices(),EA.createSpecialDirectories(),EA.filesystems={MEMFS:ZA,IDBFS:pA,NODEFS:yA,WORKERFS:BA}},init:function(A,e,r){h(!EA.init.initialized,\\\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\\\"),EA.init.initialized=!0,EA.ensureErrnoError(),d.stdin=A||d.stdin,d.stdout=e||d.stdout,d.stderr=r||d.stderr,EA.createStandardStreams()},quit:function(){EA.init.initialized=!1;var A=d._fflush;A&&A(0);for(var e=0;ethis.length-1||A<0)){var e=A%this.chunkSize,r=A/this.chunkSize|0;return this.getter(r)[e]}},f.prototype.setDataGetter=function(A){this.getter=A},f.prototype.cacheLength=function(){var A=new XMLHttpRequest;if(A.open(\\\"HEAD\\\",o,!1),A.send(null),!(200<=A.status&&A.status<300||304===A.status))throw new Error(\\\"Couldn't load \\\"+o+\\\". Status: \\\"+A.status);var e,i=Number(A.getResponseHeader(\\\"Content-length\\\")),r=(e=A.getResponseHeader(\\\"Accept-Ranges\\\"))&&\\\"bytes\\\"===e,f=(e=A.getResponseHeader(\\\"Content-Encoding\\\"))&&\\\"gzip\\\"===e,n=1048576;r||(n=i);var t=this;t.setDataGetter(function(A){var e=A*n,r=(A+1)*n-1;if(r=Math.min(r,i-1),void 0===t.chunks[A]&&(t.chunks[A]=function(A,e){if(e=n.length)return 0;var t=Math.min(n.length-f,i);if(h(0<=t),n.slice)for(var o=0;o>2]=i.dev,I[r+4>>2]=0,I[r+8>>2]=i.ino,I[r+12>>2]=i.mode,I[r+16>>2]=i.nlink,I[r+20>>2]=i.uid,I[r+24>>2]=i.gid,I[r+28>>2]=i.rdev,I[r+32>>2]=0,I[r+36>>2]=i.size,I[r+40>>2]=4096,I[r+44>>2]=i.blocks,I[r+48>>2]=i.atime.getTime()/1e3|0,I[r+52>>2]=0,I[r+56>>2]=i.mtime.getTime()/1e3|0,I[r+60>>2]=0,I[r+64>>2]=i.ctime.getTime()/1e3|0,I[r+68>>2]=0,I[r+72>>2]=i.ino,0},doMsync:function(A,e,r,i){var f=new Uint8Array(E.subarray(A,A+r));EA.msync(e,f,0,r,i)},doMkdir:function(A,e){return\\\"/\\\"===(A=mA.normalize(A))[A.length-1]&&(A=A.substr(0,A.length-1)),EA.mkdir(A,e,0),0},doMknod:function(A,e,r){switch(61440&e){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-hA.EINVAL}return EA.mknod(A,e,r),0},doReadlink:function(A,e,r){if(r<=0)return-hA.EINVAL;var i=EA.readlink(A),f=Math.min(r,Z(i)),n=B[e+f];return s(i,e,r+1),B[e+f]=n,f},doAccess:function(A,e){if(-8&e)return-hA.EINVAL;var r;r=EA.lookupPath(A,{follow:!0}).node;var i=\\\"\\\";return 4&e&&(i+=\\\"r\\\"),2&e&&(i+=\\\"w\\\"),1&e&&(i+=\\\"x\\\"),i&&EA.nodePermissions(r,i)?-hA.EACCES:0},doDup:function(A,e,r){var i=EA.getStream(r);return i&&EA.close(i),EA.open(A,e,0,r,r).fd},doReadv:function(A,e,r,i){for(var f=0,n=0;n>2],o=I[e+(8*n+4)>>2],a=EA.read(A,B,t,o,i);if(a<0)return-1;if(f+=a,a>2],o=I[e+(8*n+4)>>2],a=EA.write(A,B,t,o,i);if(a<0)return-1;f+=a}return f},varargs:0,get:function(A){return XA.varargs+=4,I[XA.varargs-4>>2]},getStr:function(){return g(XA.get())},getStreamFromFD:function(){var A=EA.getStream(XA.get());if(!A)throw new EA.ErrnoError(hA.EBADF);return A},getSocketFromFD:function(){var A=SOCKFS.getSocket(XA.get());if(!A)throw new EA.ErrnoError(hA.EBADF);return A},getSocketAddress:function(A){var e=XA.get(),r=XA.get();if(A&&0===e)return null;var i=__read_sockaddr(e,r);if(i.errno)throw new EA.ErrnoError(i.errno);return i.addr=DNS.lookup_addr(i.addr)||i.addr,i},get64:function(){var A=XA.get(),e=XA.get();return h(0<=A?0===e:-1===e),A},getZero:function(){h(0===XA.get())}};var WA=a([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],\\\"i8\\\",v);var IA={};function CA(A){for(;A.length;){var e=A.pop();A.pop()(e)}}function GA(A){return this.fromWireType(C[A>>2])}var VA={},FA={},RA={},NA=48,_A=57;function YA(A){if(void 0===A)return\\\"_unknown\\\";var e=(A=A.replace(/[^a-zA-Z0-9_]/g,\\\"$\\\")).charCodeAt(0);return NA<=e&&e<=_A?\\\"_\\\"+A:A}function QA(A,e){return A=YA(A),new Function(\\\"body\\\",\\\"return function \\\"+A+'() {\\\\n \\\"use strict\\\"; return body.apply(this, arguments);\\\\n};\\\\n')(e)}function DA(A,r){var e=QA(r,function(A){this.name=r,this.message=A;var e=new Error(A).stack;void 0!==e&&(this.stack=this.toString()+\\\"\\\\n\\\"+e.replace(/^Error(:[^\\\\n]*)?\\\\n/,\\\"\\\"))});return e.prototype=Object.create(A.prototype),(e.prototype.constructor=e).prototype.toString=function(){return void 0===this.message?this.name:this.name+\\\": \\\"+this.message},e}var JA=void 0;function MA(A){throw new JA(A)}function TA(i,e,f){function r(A){var e=f(A);e.length!==i.length&&MA(\\\"Mismatched type converter count\\\");for(var r=0;r>1])};case 2:return function(A){var e=r?I:C;return this.fromWireType(e[A>>2])};default:throw new TypeError(\\\"Unknown integer type: \\\"+A)}}function Oe(A,e){var r=FA[A];return void 0===r&&HA(e+\\\" has unknown type \\\"+Ne(A)),r}function ze(A){if(null===A)return\\\"null\\\";var e=typeof A;return\\\"object\\\"==e||\\\"array\\\"==e||\\\"function\\\"==e?A.toString():\\\"\\\"+A}function je(A,e){switch(e){case 2:return function(A){return this.fromWireType(G[A>>2])};case 3:return function(A){return this.fromWireType(V[A>>3])};default:throw new TypeError(\\\"Unknown float type: \\\"+A)}}function He(A,e){if(!(A instanceof Function))throw new TypeError(\\\"new_ called with constructor type \\\"+typeof A+\\\" which is not a function\\\");var r=QA(A.name||\\\"unknownFunctionName\\\",function(){});r.prototype=A.prototype;var i=new r,f=A.apply(i,e);return f instanceof Object?f:i}function xe(A,e,r,i,f){var n=e.length;n<2&&HA(\\\"argTypes array size mismatch! Must at least get return value and 'this' types!\\\");for(var t=null!==e[1]&&null!==r,o=!1,a=1;a>2)+i]);return r}function Le(A,e,r){switch(e){case 0:return r?function(A){return B[A]}:function(A){return E[A]};case 1:return r?function(A){return X[A>>1]}:function(A){return W[A>>1]};case 2:return r?function(A){return I[A>>2]}:function(A){return C[A>>2]};default:throw new TypeError(\\\"Unknown integer type: \\\"+A)}}var Ke={};function qe(A){var e=Ke[A];return void 0===e?zA(A):e}function $e(A){return A||HA(\\\"Cannot use deleted val. handle = \\\"+A),Qe[A].value}var Ar=R;function er(A){var e,r;er.called?(r=I[Ar>>2],e=I[r>>2]):(er.called=!0,rr.USER=rr.LOGNAME=\\\"web_user\\\",rr.PATH=\\\"/\\\",rr.PWD=\\\"/\\\",rr.HOME=\\\"/home/web_user\\\",rr.LANG=\\\"C.UTF-8\\\",rr._=d.thisProgram,e=a(1024,\\\"i8\\\",v),r=a(256,\\\"i8*\\\",v),I[r>>2]=e,I[Ar>>2]=r);var i=[],f=0;for(var n in A)if(\\\"string\\\"==typeof A[n]){var t=n+\\\"=\\\"+A[n];i.push(t),f+=t.length}if(1024>2]=e,e+=t.length+1}I[r+4*i.length>>2]=0}R+=16;var rr={};var ir={};var fr=1;function nr(A){return A%4==0&&(A%100!=0||A%400==0)}function tr(A,e){for(var r=0,i=0;i<=e;r+=A[i++]);return r}var or=[31,29,31,30,31,30,31,31,30,31,30,31],ar=[31,28,31,30,31,30,31,31,30,31,30,31];function cr(A,e){for(var r=new Date(A.getTime());0n-r.getDate()))return r.setDate(r.getDate()+e),r;e-=n-r.getDate()+1,r.setDate(1),f<11?r.setMonth(f+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function lr(A,e,r,i){var f=I[i+40>>2],n={tm_sec:I[i>>2],tm_min:I[i+4>>2],tm_hour:I[i+8>>2],tm_mday:I[i+12>>2],tm_mon:I[i+16>>2],tm_year:I[i+20>>2],tm_wday:I[i+24>>2],tm_yday:I[i+28>>2],tm_isdst:I[i+32>>2],tm_gmtoff:I[i+36>>2],tm_zone:f?g(f):\\\"\\\"},t=g(r),o={\\\"%c\\\":\\\"%a %b %d %H:%M:%S %Y\\\",\\\"%D\\\":\\\"%m/%d/%y\\\",\\\"%F\\\":\\\"%Y-%m-%d\\\",\\\"%h\\\":\\\"%b\\\",\\\"%r\\\":\\\"%I:%M:%S %p\\\",\\\"%R\\\":\\\"%H:%M\\\",\\\"%T\\\":\\\"%H:%M:%S\\\",\\\"%x\\\":\\\"%m/%d/%y\\\",\\\"%X\\\":\\\"%H:%M:%S\\\"};for(var a in o)t=t.replace(new RegExp(a,\\\"g\\\"),o[a]);var c=[\\\"Sunday\\\",\\\"Monday\\\",\\\"Tuesday\\\",\\\"Wednesday\\\",\\\"Thursday\\\",\\\"Friday\\\",\\\"Saturday\\\"],l=[\\\"January\\\",\\\"February\\\",\\\"March\\\",\\\"April\\\",\\\"May\\\",\\\"June\\\",\\\"July\\\",\\\"August\\\",\\\"September\\\",\\\"October\\\",\\\"November\\\",\\\"December\\\"];function u(A,e,r){for(var i=\\\"number\\\"==typeof A?A.toString():A||\\\"\\\";i.lengthe?0:(eA(w,A),w.length-1)}if(EA.staticInit(),L.unshift(function(){d.noFSInit||EA.init.initialized||EA.init()}),K.push(function(){EA.ignorePermissions=!1}),q.push(function(){EA.quit()}),d.FS_createFolder=EA.createFolder,d.FS_createPath=EA.createPath,d.FS_createDataFile=EA.createDataFile,d.FS_createPreloadedFile=EA.createPreloadedFile,d.FS_createLazyFile=EA.createLazyFile,d.FS_createLink=EA.createLink,d.FS_createDevice=EA.createDevice,d.FS_unlink=EA.unlink,L.unshift(function(){gA.init()}),q.push(function(){gA.shutdown()}),o){var ur=require(\\\"fs\\\"),br=require(\\\"path\\\");yA.staticInit()}JA=d.InternalError=DA(Error,\\\"InternalError\\\"),SA(),jA=d.BindingError=DA(Error,\\\"BindingError\\\"),te(),Ce(),ye(),Re=d.UnboundTypeError=DA(Error,\\\"UnboundTypeError\\\"),Te(),er(rr),D=k.staticAlloc(4),Y=(_=k.alignMemory(R))+j,Q=k.alignMemory(Y),I[D>>2]=Q;var sr=!(N=!0);function dr(A,e,r){var i=0>4,r=(15&f)<<4|(n=hr.indexOf(A.charAt(a++)))>>2,i=(3&n)<<6|(t=hr.indexOf(A.charAt(a++))),o+=String.fromCharCode(e),64!==n&&(o+=String.fromCharCode(r)),64!==t&&(o+=String.fromCharCode(i)),a>2]=e,e=A.buffer;for(var n=0;n>2],r.adjusted=e,0|(k.setTempRet0(f[n]),e);return e=I[e>>2],0|(k.setTempRet0(i),e)},___cxa_pure_virtual:function(){throw n=!0,\\\"Pure virtual function called!\\\"},___cxa_throw:function(A,e,r){throw kA.infos[A]={ptr:A,adjusted:A,type:e,destructor:r,refcount:0,caught:!1,rethrown:!1},kA.last=A,\\\"uncaught_exception\\\"in dA?dA.uncaught_exception++:dA.uncaught_exception=1,A+\\\" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.\\\"},___gxx_personality_v0:function(){},___lock:function(){},___map_file:function(A,e){return wA(hA.EPERM),-1},___resumeException:function(A){throw kA.last||(kA.last=A),A+\\\" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.\\\"},___setErrNo:wA,___syscall140:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=(XA.get(),XA.get()),f=XA.get(),n=XA.get(),t=i;return EA.llseek(r,t,n),I[f>>2]=r.position,r.getdents&&0===t&&0===n&&(r.getdents=null),0}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall145:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=XA.get(),f=XA.get();return XA.doReadv(r,i,f)}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall146:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=XA.get(),f=XA.get();return XA.doWritev(r,i,f)}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall54:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=XA.get();switch(i){case 21505:case 21506:return r.tty?0:-hA.ENOTTY;case 21519:if(!r.tty)return-hA.ENOTTY;var f=XA.get();return I[f>>2]=0;case 21520:return r.tty?-hA.EINVAL:-hA.ENOTTY;case 21531:f=XA.get();return EA.ioctl(r,i,f);case 21523:return r.tty?0:-hA.ENOTTY;default:Mr(\\\"bad ioctl syscall \\\"+i)}}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall6:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD();return EA.close(r),0}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall91:function(A,e){XA.varargs=e;try{var r=XA.get(),i=XA.get(),f=XA.mappings[r];if(!f)return 0;if(i===f.len){var n=EA.getStream(f.fd);XA.doMsync(r,n,i,f.flags),EA.munmap(n),XA.mappings[r]=null,f.allocated&&Cr(f.malloc)}return 0}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___unlock:function(){},__addDays:cr,__arraySum:tr,__embind_finalize_value_object:function(A){var e=IA[A];delete IA[A];var f=e.rawConstructor,n=e.rawDestructor,u=e.fields;TA([A],u.map(function(A){return A.getterReturnType}).concat(u.map(function(A){return A.setterArgumentType})),function(c){var l={};return u.forEach(function(A,e){var r=A.fieldName,i=c[e],f=A.getter,n=A.getterContext,t=c[e+u.length],o=A.setter,a=A.setterContext;l[r]={read:function(A){return i.fromWireType(f(n,A))},write:function(A,e){var r=[];o(a,A,t.toWireType(r,e)),CA(r)}}}),[{name:e.name,fromWireType:function(A){var e={};for(var r in l)e[r]=l[r].read(A);return n(A),e},toWireType:function(A,e){for(var r in l)if(!(r in e))throw new TypeError(\\\"Missing field\\\");var i=f();for(r in l)l[r].write(i,e[r]);return null!==A&&A.push(n,i),i},argPackAdvance:8,readValueFromPointer:GA,destructorFunction:n}]})},__embind_register_bool:function(A,r,i,f,n){var t=UA(i);xA(A,{name:r=zA(r),fromWireType:function(A){return!!A},toWireType:function(A,e){return e?f:n},argPackAdvance:8,readValueFromPointer:function(A){var e;if(1===i)e=B;else if(2===i)e=X;else{if(4!==i)throw new TypeError(\\\"Unknown boolean type size: \\\"+r);e=I}return this.fromWireType(e[A>>t])},destructorFunction:null})},__embind_register_class:function(c,A,e,l,r,u,i,b,f,s,d,n,k){d=zA(d),u=Fe(r,u),b=b&&Fe(i,b),s=s&&Fe(f,s),k=Fe(n,k);var h=YA(d);le(h,function(){_e(\\\"Cannot construct \\\"+d+\\\" due to unbound types\\\",[l])}),TA([c,A,e],l?[l]:[],function(A){var e,r;A=A[0],r=l?(e=A.registeredClass).instancePrototype:oe.prototype;var i=QA(h,function(){if(Object.getPrototypeOf(this)!==f)throw new jA(\\\"Use 'new' to construct \\\"+d);if(void 0===n.constructor_body)throw new jA(d+\\\" has no accessible constructor\\\");var A=n.constructor_body[arguments.length];if(void 0===A)throw new jA(\\\"Tried to invoke ctor of \\\"+d+\\\" with invalid number of parameters (\\\"+arguments.length+\\\") - expected (\\\"+Object.keys(n.constructor_body).toString()+\\\") parameters instead!\\\");return A.apply(this,arguments)}),f=Object.create(r,{constructor:{value:i}});i.prototype=f;var n=new ue(d,i,f,k,e,u,b,s),t=new Ge(d,n,!0,!1,!1),o=new Ge(d+\\\"*\\\",n,!1,!1,!1),a=new Ge(d+\\\" const*\\\",n,!1,!0,!1);return ae[c]={pointerType:o,constPointerType:a},Ve(h,i),[t,o,a]})},__embind_register_emval:function(A,e){xA(A,{name:e=zA(e),fromWireType:function(A){var e=Qe[A].value;return De(A),e},toWireType:function(A,e){return Ue(e)},argPackAdvance:8,readValueFromPointer:GA,destructorFunction:null})},__embind_register_enum:function(A,e,r,i){var f=UA(r);function n(){}e=zA(e),n.values={},xA(A,{name:e,constructor:n,fromWireType:function(A){return this.constructor.values[A]},toWireType:function(A,e){return e.value},argPackAdvance:8,readValueFromPointer:Se(e,f,i),destructorFunction:null}),le(e,n)},__embind_register_enum_value:function(A,e,r){var i=Oe(A,\\\"enum\\\");e=zA(e);var f=i.constructor,n=Object.create(i.constructor.prototype,{value:{value:r},constructor:{value:QA(i.name+\\\"_\\\"+e,function(){})}});f.values[r]=n,f[e]=n},__embind_register_float:function(A,e,r){var i=UA(r);xA(A,{name:e=zA(e),fromWireType:function(A){return A},toWireType:function(A,e){if(\\\"number\\\"!=typeof e&&\\\"boolean\\\"!=typeof e)throw new TypeError('Cannot convert \\\"'+ze(e)+'\\\" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:je(e,i),destructorFunction:null})},__embind_register_function:function(r,i,A,e,f,n){var t=Pe(i,A);r=zA(r),f=Fe(e,f),le(r,function(){_e(\\\"Cannot call \\\"+r+\\\" due to unbound types\\\",t)},i-1),TA([],t,function(A){var e=[A[0],null].concat(A.slice(1));return Ve(r,xe(r,e,null,f,n),i-1),[]})},__embind_register_integer:function(A,r,e,i,f){r=zA(r),-1===f&&(f=4294967295);var n=UA(e),t=function(A){return A};if(0===i){var o=32-8*e;t=function(A){return A<>>o}}var a=-1!=r.indexOf(\\\"unsigned\\\");xA(A,{name:r,fromWireType:t,toWireType:function(A,e){if(\\\"number\\\"!=typeof e&&\\\"boolean\\\"!=typeof e)throw new TypeError('Cannot convert \\\"'+ze(e)+'\\\" to '+this.name);if(e>>0:0|e},argPackAdvance:8,readValueFromPointer:Le(r,n,0!==i),destructorFunction:null})},__embind_register_memory_view:function(A,e,r){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function f(A){var e=C[A>>=2],r=C[A+1];return new i(C.buffer,r,e)}xA(A,{name:r=zA(r),fromWireType:f,argPackAdvance:8,readValueFromPointer:f},{ignoreDuplicateRegistrations:!0})},__embind_register_std_string:function(A,e){xA(A,{name:e=zA(e),fromWireType:function(A){for(var e=C[A>>2],r=new Array(e),i=0;i>2]=f;for(var t=0;t>2],i=new Array(r),f=A+4>>c,n=0;n>2]=i;for(var n=f+4>>c,t=0;t>2]=fr,ir[fr]=0,fr++,0)},_pthread_mutex_destroy:function(){},_pthread_mutex_init:function(){},_pthread_once:function A(e,r){A.seen||(A.seen={}),e in A.seen||(d.dynCall_v(r),A.seen[e]=1)},_pthread_setspecific:function(A,e){return A in ir?(ir[A]=e,0):hA.EINVAL},_strftime:lr,_strftime_l:function(A,e,r,i){return lr(A,e,r,i)},constNoSmartPtrRawPointerToWireType:se,count_emval_handles:Je,craftInvokerFunction:xe,createNamedFunction:QA,downcastPointer:me,embind_init_charCodes:SA,ensureOverloadTable:ce,enumReadValueFromPointer:Se,exposePublicSymbol:le,extendError:DA,floatReadValueFromPointer:je,flushPendingDeletes:fe,genericPointerToWireType:de,getBasestPointer:Ee,getInheritedInstance:Xe,getInheritedInstanceCount:ge,getLiveInheritedInstances:Ze,getShiftFromSize:UA,getStringOrSymbol:qe,getTypeName:Ne,get_first_emval:Me,heap32VectorToArray:Pe,init_ClassHandle:te,init_RegisteredPointer:Ce,init_embind:ye,init_emval:Te,integerReadValueFromPointer:Le,makeClassHandle:We,makeLegalFunctionName:YA,new_:He,nonConstNoSmartPtrRawPointerToWireType:ke,readLatin1String:zA,registerType:xA,replacePublicSymbol:Ve,requireFunction:Fe,requireHandle:$e,requireRegisteredType:Oe,runDestructor:$A,runDestructors:CA,setDelayFunction:pe,shallowCopyInternalPointer:LA,simpleReadValueFromPointer:GA,throwBindingError:HA,throwInstanceAlreadyDeleted:KA,throwInternalError:MA,throwUnboundTypeError:_e,upcastPointer:be,whenDependentTypesAreResolved:TA,DYNAMICTOP_PTR:D,tempDoublePtr:sA,ABORT:n,STACKTOP:_,STACK_MAX:Y,cttz_i8:WA};var mr,gr=function(A,e,r){var i=A.Int8Array,tr=new i(r),f=A.Int16Array,or=new f(r),n=A.Int32Array,ar=new n(r),t=A.Uint8Array,cr=new t(r),o=A.Uint16Array,lr=new o(r),a=A.Uint32Array,c=(new a(r),A.Float32Array),gA=new c(r),l=A.Float64Array,Q=new l(r),u=A.byteLength,b=0|e.DYNAMICTOP_PTR,d=0|e.tempDoublePtr,ur=(e.ABORT,0|e.STACKTOP),s=(e.STACK_MAX,0|e.cttz_i8),k=0,h=A.NaN,w=A.Infinity,D=0,v=A.Math.floor,V=A.Math.abs,m=(A.Math.sqrt,A.Math.pow,A.Math.cos,A.Math.sin,A.Math.tan,A.Math.acos,A.Math.asin,A.Math.atan,A.Math.atan2,A.Math.exp,A.Math.log,A.Math.ceil),br=A.Math.imul,g=(A.Math.min,A.Math.max,A.Math.clz32),Z=e.abort,p=(e.assert,e.enlargeMemory),y=e.getTotalMemory,B=e.abortOnCannotGrowMemory,E=(e.invoke_i,e.invoke_ii,e.invoke_iii,e.invoke_iiii,e.invoke_iiiii,e.invoke_iiiiid,e.invoke_iiiiii,e.invoke_iiiiiid,e.invoke_iiiiiii,e.invoke_iiiiiiii,e.invoke_iiiiiiiii,e.invoke_v,e.invoke_vi,e.invoke_vii,e.invoke_viii,e.invoke_viiii,e.invoke_viiiii,e.invoke_viiiiii,e.invoke_viiiiiii,e.invoke_viiiiiiii,e.invoke_viiiiiiiii,e.invoke_viiiiiiiiii,e.invoke_viiiiiiiiiiii,e.invoke_viiiiiiiiiiiii,e.ClassHandle,e.ClassHandle_clone,e.ClassHandle_delete,e.ClassHandle_deleteLater,e.ClassHandle_isAliasOf,e.ClassHandle_isDeleted,e.RegisteredClass,e.RegisteredPointer,e.RegisteredPointer_deleteObject,e.RegisteredPointer_destructor,e.RegisteredPointer_fromWireType,e.RegisteredPointer_getPointee,e.__ZSt18uncaught_exceptionv),sr=e.___assert_fail,X=(e.___buildEnvironment,e.___cxa_allocate_exception),W=(e.___cxa_begin_catch,e.___cxa_find_matching_catch,e.___cxa_pure_virtual),I=e.___cxa_throw,C=(e.___gxx_personality_v0,e.___lock),G=e.___map_file,F=(e.___resumeException,e.___setErrNo),R=e.___syscall140,N=e.___syscall145,_=e.___syscall146,Y=e.___syscall54,J=e.___syscall6,M=e.___syscall91,T=e.___unlock,U=(e.__addDays,e.__arraySum,e.__embind_finalize_value_object),S=e.__embind_register_bool,O=e.__embind_register_class,z=e.__embind_register_emval,j=e.__embind_register_enum,H=e.__embind_register_enum_value,x=e.__embind_register_float,P=e.__embind_register_function,L=e.__embind_register_integer,K=e.__embind_register_memory_view,q=e.__embind_register_std_string,$=e.__embind_register_std_wstring,AA=e.__embind_register_value_object,eA=e.__embind_register_value_object_field,rA=e.__embind_register_void,iA=e.__emval_decref,fA=e.__emval_incref,nA=e.__emval_new_array,tA=e.__emval_new_cstring,oA=e.__emval_new_object,aA=(e.__emval_register,e.__emval_set_property),cA=e.__emval_take_value,lA=(e.__isLeapYear,e._abort),uA=(e._embind_repr,e._emscripten_memcpy_big),bA=e._getenv,sA=e._pthread_cond_destroy,dA=e._pthread_cond_init,kA=e._pthread_cond_signal,hA=e._pthread_cond_wait,wA=e._pthread_getspecific,vA=e._pthread_join,mA=e._pthread_key_create,ZA=e._pthread_mutex_destroy,pA=e._pthread_mutex_init,yA=e._pthread_once,BA=e._pthread_setspecific,EA=(e._strftime,e._strftime_l);e.constNoSmartPtrRawPointerToWireType,e.count_emval_handles,e.craftInvokerFunction,e.createNamedFunction,e.downcastPointer,e.embind_init_charCodes,e.ensureOverloadTable,e.enumReadValueFromPointer,e.exposePublicSymbol,e.extendError,e.floatReadValueFromPointer,e.flushPendingDeletes,e.genericPointerToWireType,e.getBasestPointer,e.getInheritedInstance,e.getInheritedInstanceCount,e.getLiveInheritedInstances,e.getShiftFromSize,e.getStringOrSymbol,e.getTypeName,e.get_first_emval,e.heap32VectorToArray,e.init_ClassHandle,e.init_RegisteredPointer,e.init_embind,e.init_emval,e.integerReadValueFromPointer,e.makeClassHandle,e.makeLegalFunctionName,e.new_,e.nonConstNoSmartPtrRawPointerToWireType,e.readLatin1String,e.registerType,e.replacePublicSymbol,e.requireFunction,e.requireHandle,e.requireRegisteredType,e.runDestructor,e.runDestructors,e.setDelayFunction,e.shallowCopyInternalPointer,e.simpleReadValueFromPointer,e.throwBindingError,e.throwInstanceAlreadyDeleted,e.throwInternalError,e.throwUnboundTypeError,e.upcastPointer,e.whenDependentTypesAreResolved;function XA(A){ar[(A|=0)>>2]=4232,(A=0|ar[A+24>>2])&&mu(A)}function WA(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o,a=0;n=(A|=0)+4|0,t=A+8|0,o=A+12|0,tr[A+24>>0]=0,ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ar[A+12>>2]=0,ar[(a=A+16|0)>>2]=r,ar[a+4>>2]=i,a=0|ar[e>>2],(i=r=0|ar[e+4>>2])?(bu(r),r=0|ar[n>>2],ar[A>>2]=a,ar[n>>2]=i,0|r&&du(r)):(ar[A>>2]=a,ar[n>>2]=i),(ar[t>>2]=f)&&(ar[o>>2]=1+(0|ar[f+12>>2]))}function IA(A){var e,r,i,f,n=0;return ur=(f=ur)+16|0,e=f,0|CA(A|=0,1,0)?(r=0|ar[A>>2],(n=0==(0|(i=0|ar[A+4>>2])))||bu(i),A=0|xb[63&ar[16+(0|ar[r>>2])>>2]](r,e,1)?0|tr[e>>0]:(GA(A),0),n||du(i),ur=f,0|(n=A)):(ur=f,(n=0)|n)}function CA(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0;if((0|(r|=0))<0&&sr(55739,47382,290,18687),a=0|ar[(i=c=A+16|0)>>2],!((0|(i=0|ar[i+4>>2]))<(0|r)|(0|i)==(0|r)&a>>>0>>0)){f=0|ar[A+8>>2];do{if(f){if(0|CA(f,e,r)){f=0|ar[(i=c)>>2],i=0|ar[i+4>>2];break}return(c=0)|c}f=a}while(0);return a=0|ob(0|f,0|i,0|e,0|r),ar[c>>2]=a,ar[c+4>>2]=D,0|(c=1)}if(0<(0|i)|0==(0|i)&0>>0){f=0|ar[A+8>>2];do{if(f){for(;;){if(r=0|ar[(n=e=f+16|0)>>2],(0|(n=0|ar[n+4>>2]))<(0|i)|(0|n)==(0|i)&r>>>0>>0){i=7;break}if(r=0|ob(0|r,0|n,0|a,0|i),ar[(n=e)>>2]=r,ar[n+4>>2]=D,!(f=0|ar[f+8>>2])){i=9;break}}if(7==(0|i))sr(18700,47382,327,18717);else if(9==(0|i)){t=0|ar[(o=c)>>2],o=0|ar[o+4>>2];break}}else t=a,o=i}while(0);n=0|ar[A>>2],a=0|ar[n>>2],r=0|ar[a+20>>2],a=0|tb(0|(a=0|jb[127&ar[a+8>>2]](n)),0|D,0|t,0|o),xb[63&r](n,a,D),ar[c>>2]=0,ar[c+4>>2]=0}return tr[A+24>>0]=1,(c=0)|c}function GA(A){var e=0;ar[(e=(A|=0)+16|0)>>2]=0,(e=(ar[e+4>>2]=0)|ar[A+8>>2])&&GA(e),tr[(e=A+24|0)>>0]=1}function VA(A){var e,r,i,f,n=0;return ur=(f=ur)+16|0,e=f,0|CA(A|=0,2,0)?(r=0|ar[A>>2],(n=0==(0|(i=0|ar[A+4>>2])))||bu(i),A=0|xb[63&ar[16+(0|ar[r>>2])>>2]](r,e,2)?65535&((0|cr[e>>0])<<8|0|cr[e+1>>0]):(GA(A),0),n||du(i),ur=f,0|(n=A)):(ur=f,(n=0)|n)}function FA(A){var e,r,i,f,n=0;return ur=(f=ur)+16|0,e=f,0|CA(A|=0,4,0)?(r=0|ar[A>>2],(n=0==(0|(i=0|ar[A+4>>2])))||bu(i),A=0|xb[63&ar[16+(0|ar[r>>2])>>2]](r,e,4)?(0|cr[e+1>>0])<<16|(0|cr[e>>0])<<24|(0|cr[e+2>>0])<<8|0|cr[e+3>>0]:(GA(A),0),n||du(i),ur=f,0|(n=A)):(ur=f,(n=0)|n)}function RA(A,e){A|=0,e|=0;var r,i,f,n=0,t=0,o=0,a=0;ur=(f=ur)+16|0,r=(i=f)+12|0,ar[i>>2]=0,ar[i+4>>2]=0,a=e+16|(ar[i+8>>2]=0);A:do{if(0==(0|ar[a>>2])&0==(0|ar[a+4>>2]))ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;else{t=e+4|0;e:for(;;){if(!(0|CA(e,1,0))){n=5;break}switch(n=0|ar[e>>2],(a=0==(0|(o=0|ar[t>>2])))||bu(o),n=0|xb[63&ar[16+(0|ar[n>>2])>>2]](n,r,1)?(n=0|tr[r>>0])<<24>>24?(_u(i,n),0):2:(GA(e),ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,1),a||du(o),3&n){case 0:break;case 2:n=15;break e;default:break A}}if(5==(0|n)){ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;break}if(15==(0|n)){ar[A>>2]=ar[i>>2],ar[A+4>>2]=ar[i+4>>2],ar[A+8>>2]=ar[i+8>>2],ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0;break}}}while(0);ur=(0<=(0|tr[i+11>>0])||vu(0|ar[i>>2]),f)}function NA(A,e,r){e|=0,r|=0;var i=0;return i=0|ar[(A|=0)>>2],r=0|tb(0|(i=0|jb[127&ar[8+(0|ar[i>>2])>>2]](i)),0|D,0|e,0|r),e=0|ar[A>>2],0|xb[63&ar[12+(0|ar[e>>2])>>2]](e,r,D)}function _A(A,e,r){A|=0,e|=0,r|=0;for(var i=0,f=0,n=0;;){if(f=0|ar[(n=i=A+16|0)>>2],(0|(n=0|ar[n+4>>2]))<(0|r)|(0|n)==(0|r)&f>>>0>>0){A=3;break}if(f=0|ob(0|f,0|n,0|e,0|r),ar[(n=i)>>2]=f,ar[n+4>>2]=D,!(A=0|ar[A+8>>2])){A=5;break}}if(3==(0|A))sr(18700,47382,327,18717);else if(5==(0|A))return}function YA(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;return ar[(A|=0)>>2]=e,ar[A+4>>2]=r,ar[(i=A+8|0)>>2]=r,ar[(a=c=A+16|0)>>2]=0,ar[a+4>>2]=0,ar[(a=A+24|0)>>2]=0,r?(f=e+1|0,ar[A>>2]=f,n=0|cr[e>>0],o=r+-1|0,ar[i>>2]=o,n=0|db(0|n,0,56),t=D,ar[(l=c)>>2]=n,ar[l+4>>2]=t,o?(o=e+2|0,ar[A>>2]=o,f=0|cr[f>>0],l=r+-2|0,ar[i>>2]=l,f=0|db(0|f,0,48),f|=n,n=t|D,ar[(t=c)>>2]=f,ar[t+4>>2]=n,l?(t=e+3|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-3|0,ar[i>>2]=l,o=0|db(0|o,0,40),o|=f,f=n|D,ar[(n=c)>>2]=o,ar[n+4>>2]=f,l?(n=e+4|0,ar[A>>2]=n,t=0|cr[t>>0],l=r+-4|0,ar[i>>2]=l,f|=t,ar[(t=c)>>2]=o,ar[t+4>>2]=f,l?(t=e+5|0,ar[A>>2]=t,n=0|cr[n>>0],l=r+-5|0,ar[i>>2]=l,n=0|db(0|n,0,24),n|=o,f|=D,ar[(o=c)>>2]=n,ar[o+4>>2]=f,l?(o=e+6|0,ar[A>>2]=o,t=0|cr[t>>0],l=r+-6|0,ar[i>>2]=l,n|=t=0|db(0|t,0,16),f|=D,ar[(t=c)>>2]=n,ar[t+4>>2]=f,l?(t=e+7|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-7|0,ar[i>>2]=l,n|=o=0|db(0|o,0,8),f|=D,ar[(o=c)>>2]=n,ar[o+4>>2]=f,l=l?(ar[A>>2]=e+8,e=0|cr[t>>0],ar[i>>2]=r+-8,ar[(l=c)>>2]=n|e,ar[l+4>>2]=f,64-(l=0)|0):64-(l=8)|0,void(ar[a>>2]=l)):(l=64-(l=16)|0,void(ar[a>>2]=l))):(l=64-(l=24)|0,void(ar[a>>2]=l))):(l=64-(l=32)|0,void(ar[a>>2]=l))):(l=64-(l=40)|0,void(ar[a>>2]=l))):(l=64-(l=48)|0,void(ar[a>>2]=l))):(l=64-(l=56)|0,void(ar[a>>2]=l))):(c=(c=64)-c|0,void(ar[a>>2]=c))}function QA(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+24|0)>>2]))<(0|e)){i=64-i|0,n=A+8|0;A:do{if(7<(0|i)){t=A+16|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}return l=0|sb(0|(o=0|ar[(a=c=A+16|0)>>2]),0|(a=0|ar[a+4>>2]),64-e|0),a=0|db(0|o,0|a,0|e),ar[c>>2]=a,ar[c+4>>2]=D,ar[r>>2]=i-e,0|l}function DA(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;for(c=(A|=0)+8|0,i=A+16|0,f=(l=0)|ar[(r=A+24|0)>>2];;){if((0|f)<1){f=64-f|0;A:do{if(7<(0|f)){n=0|ar[c>>2];do{if(!n)break A;u=0|ar[A>>2],ar[A>>2]=u+1,u=0|cr[u>>0],n=n+-1|0,ar[c>>2]=n,u=0|db(0|u,0,0|(f=f+-8|0)),t=ar[(b=i)+4>>2]|D,ar[(o=i)>>2]=ar[b>>2]|u,ar[o+4>>2]=t}while(7<(0|f))}}while(0);o=64-f|0,ar[r>>2]=o}else o=f;if(t=0|db(0|(b=0|ar[(u=i)>>2]),0|(u=0|ar[u+4>>2]),1),n=D,ar[(f=i)>>2]=t,ar[f+4>>2]=n,f=o+-1|0,ar[r>>2]=f,!(-1<(0|u)|-1==(0|u)&4294967295>>0))break;if(19<(0|l)){f=0,a=20;break}l=l+1|0}if(20==(0|a))return 0|f;if(!l)return(ar[e>>2]=0)|(b=1);if((0|o)<=(0|l)){f=65-o|0;A:do{if(7<(0|f)){o=0|ar[c>>2];do{if(!o)break A;b=0|ar[A>>2],ar[A>>2]=b+1,b=0|cr[b>>0],o=o+-1|0,ar[c>>2]=o,t|=b=0|db(0|b,0,0|(f=f+-8|0)),n|=D,ar[(b=i)>>2]=t,ar[b+4>>2]=n}while(7<(0|f))}}while(0);f=64-f|0,ar[r>>2]=f}return b=0|sb(0|t,0|n,64-l|0),c=0|db(0|t,0|n,0|l),ar[(u=i)>>2]=c,ar[u+4>>2]=D,ar[r>>2]=f-l,b=b+(1<>2]=b+-1,1<(0|b)?0|(b=1):(sr(18749,47382,427,47403),0)}function JA(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0;if((0|(t=0|ar[(r=(A|=0)+12|0)>>2]))!=((o=u=0|ar[(i=A+4|0)>>2])-(n=f=0|ar[A>>2])|0))return ar[r>>2]=t+1,void(tr[n+t>>0]=e);(0|o)==(0|(t=0|ar[(u=A+8|0)>>2]))?((0|(t=(l=t-f|0)+1|0))<0&&zl(),o=l<<1,c=(o=l>>>0<1073741823?o>>>0>>0?t:o:2147483647)?0|hu(o):0,tr[(a=c+l|0)>>0]=e,t=a+(0-l)|0,0<(0|l)&&hb(0|t,0|n,0|l),ar[A>>2]=t,ar[i>>2]=a+1,ar[u>>2]=c+o,0|f&&vu(n)):(tr[o>>0]=e,ar[i>>2]=1+(0|ar[i>>2])),ar[r>>2]=1+(0|ar[r>>2])}function MA(A,e){e|=0;var r,i,f=0,n=0,t=0;t=(n=0|ar[(i=(A|=0)+12|0)>>2])+2|0,f=0|ar[A>>2],(r=(0|ar[A+4>>2])-f|0)>>>0>>0?(TA(A,t-r|0),t=A,n=0|ar[i>>2],f=0|ar[A>>2]):t=A,ar[i>>2]=n+1,tr[f+n>>0]=(65535&e)>>>8,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e}function TA(A,e){var r,i,f=0,n=0,t=0,o=0,a=0;if((e|=0)>>>0<=((t=0|ar[(r=(A|=0)+8|0)>>2])-(f=0|ar[(i=A+4|0)>>2])|0)>>>0)for(;f=1+((tr[f>>0]=0)|ar[i>>2])|0,ar[i>>2]=f,0!=(0|(e=e+-1|0)););else{for((0|(f=(o=f-(n=0|ar[A>>2])|0)+e|0))<0&&zl(),a=(t=t-n|0)<<1,a=(n=(f=t>>>0<1073741823?a>>>0>>0?f:a:2147483647)?0|hu(f):0)+o|0,o=n+f|0,f=t=a;t=f=t+1|(tr[f>>0]=0),0!=(0|(e=e+-1|0)););e=0|ar[A>>2],f=a+(0-(n=(0|ar[i>>2])-e|0))|0,0<(0|n)&&hb(0|f,0|e,0|n),ar[A>>2]=f,ar[i>>2]=t,ar[r>>2]=o,e&&vu(e)}}function UA(A,e){e|=0;var r,i,f=0,n=0,t=0;t=(n=0|ar[(i=(A|=0)+12|0)>>2])+4|0,f=0|ar[A>>2],(r=(0|ar[A+4>>2])-f|0)>>>0>>0?(TA(A,t-r|0),t=A,n=0|ar[i>>2],f=0|ar[A>>2]):t=A,ar[i>>2]=n+1,tr[f+n>>0]=e>>>24,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e>>>16,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e>>>8,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e}function SA(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0;switch(0|(e|=0)){case 1:return i>>>0<0|0==(0|i)&r>>>0<256||sr(18760,47382,543,19563),void JA(A,255&r);case 2:return i>>>0<0|0==(0|i)&r>>>0<65536||sr(18774,47382,547,19563),i=(n=0|ar[(t=A+12|0)>>2])+2|0,e=0|ar[A>>2],(f=(0|ar[A+4>>2])-e|0)>>>0>>0?(TA(A,i-f|0),f=A,i=0|ar[t>>2],e=0|ar[A>>2]):(f=A,i=n),ar[t>>2]=i+1,tr[e+i>>0]=(65535&r)>>>8,A=0|ar[t>>2],ar[t>>2]=A+1,void(tr[(0|ar[f>>2])+A>>0]=r);case 4:return i>>>0<1|1==(0|i)&r>>>0<0||sr(18790,47382,551,19563),i=(n=0|ar[(t=A+12|0)>>2])+4|0,e=0|ar[A>>2],(f=(0|ar[A+4>>2])-e|0)>>>0>>0?(TA(A,i-f|0),f=A,i=0|ar[t>>2],e=0|ar[A>>2]):(f=A,i=n),ar[t>>2]=i+1,tr[e+i>>0]=r>>>24,A=0|ar[t>>2],ar[t>>2]=A+1,tr[(0|ar[f>>2])+A>>0]=r>>>16,A=0|ar[t>>2],ar[t>>2]=A+1,tr[(0|ar[f>>2])+A>>0]=r>>>8,A=0|ar[t>>2],ar[t>>2]=A+1,void(tr[(0|ar[f>>2])+A>>0]=r);case 8:return void function(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0;t=(n=0|ar[(i=(A|=0)+12|0)>>2])+8|0,f=0|ar[A>>2],(o=(0|ar[A+4>>2])-f|0)>>>0>>0?(TA(A,t-o|0),t=A,n=0|ar[i>>2],f=0|ar[A>>2]):t=A,A=0|sb(0|e,0|r,56),ar[i>>2]=n+1,tr[f+n>>0]=A,A=0|sb(0|e,0|r,48),o=0|ar[i>>2],ar[i>>2]=o+1,tr[(0|ar[t>>2])+o>>0]=A,o=0|sb(0|e,0|r,40),A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=o,A=0|ar[i>>2],ar[i>>2]=A+1,A=0|sb(0|e,0|(tr[(0|ar[t>>2])+A>>0]=r),24),o=0|ar[i>>2],ar[i>>2]=o+1,tr[(0|ar[t>>2])+o>>0]=A,o=0|sb(0|e,0|r,16),A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=o,A=0|sb(0|e,0|r,8),r=0|ar[i>>2],ar[i>>2]=r+1,tr[(0|ar[t>>2])+r>>0]=A,r=0|ar[i>>2],ar[i>>2]=r+1,tr[(0|ar[t>>2])+r>>0]=e}(A,r,i);default:sr(55739,47382,558,19563)}}function OA(A,e){var r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(a=(A|=0)+12|0,n=0|tr[(t=(e|=0)+11|0)>>0],r=0|ar[(o=e+4|0)>>2],i=1+(0|ar[a>>2])+(n<<24>>24<0?r:255&n)|0,(f=(0|ar[A+4>>2])-(0|ar[A>>2])|0)>>>0>>0?(TA(A,i-f|0),f=0|tr[t>>0],r=0|ar[o>>2]):f=n,!(0|(f<<24>>24<0?r:255&f)))return t=A,e=(o=0|ar[a>>2])+1|0,ar[a>>2]=e,a=0|ar[t>>2],void(tr[(a=a+o|0)>>0]=0);for(i=0,r=f;f=0|tr[(r<<24>>24<0?0|ar[e>>2]:e)+i>>0],n=0|ar[a>>2],ar[a>>2]=n+1,tr[(0|ar[A>>2])+n>>0]=f,(i=i+1|0)>>>0<((r=0|tr[t>>0])<<24>>24<0?0|ar[o>>2]:255&r)>>>0;);t=(o=0|ar[a>>2])+1|0,ar[a>>2]=t,a=0|ar[A>>2],tr[(a=a+o|0)>>0]=0}function zA(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0;a=0|ar[(f=(A|=0)+12|0)>>2],i=(t=0|ar[(n=e+4|0)>>2])-(o=0|ar[e>>2])+a|0,c=0|ar[A>>2],(r=(0|ar[A+4>>2])-c|0)>>>0>>0&&(TA(A,i-r|0),c=0|ar[A>>2],a=0|ar[f>>2],o=0|ar[e>>2],t=0|ar[n>>2]),hb(c+a|0,0|o,t-o|0),ar[f>>2]=(0|ar[n>>2])-(0|ar[e>>2])+(0|ar[f>>2])}function jA(A,e){e|=0;var r,i,f,n,t,o=0,a=0;(0|(o=0|ar[(t=(A|=0)+12|0)>>2]))!=((r=0|ar[(f=A+4|0)>>2])-(i=0|ar[A>>2])|0)&&sr(18810,47382,610,18838),(n=o+e|0)>>>0<=o>>>0?n>>>0>>0&&(0|r)!=(0|(a=i+n|0))&&(ar[f>>2]=a):(TA(A,e),o=0|ar[t>>2]),ar[t>>2]=o+e}function HA(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(b=0|We(f,18865,5),xA(l,e),We(0|We(b,(u=(a=0|tr[(c=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&a),18871,7),(0|tr[c>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(u=0|We(f,18879,6),b=0|We(0|Kf(u,0|ar[(b=e+8|0)>>2],0|ar[b+4>>2]),18886,17),We(0|Lf(b,0|ar[e+16>>2]),18904,2),0|tr[e+36>>0]){if(0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(f,18907,9),l=0|We(0|Pf(l,0|cr[e+37>>0]),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););u=(b=0|We(l,18917,7))+(0|ar[(0|ar[b>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|8,We(0|Lf(b,0|ar[e+40>>2]),30086,1)}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o}function Xe(A,e){var r,i,f=0,n=0,t=0,o=0;Eu(r=(A|=0)+32|0,e|=0),8&(t=(ar[(o=A+44|0)>>2]=0)|ar[(i=A+48|0)>>2])|0&&(e=(e=0|tr[11+r>>0])<<24>>24<0?(n=f=e=0|ar[r>>2])+(0|ar[A+36>>2])|0:(n=f=r)+(255&e)|0,ar[o>>2]=e,ar[A+8>>2]=f,ar[A+12>>2]=n,ar[A+16>>2]=e),16&t&&(o=(e=(e=0|tr[(f=11+r|0)>>0])<<24>>24<0?(t=0|ar[A+36>>2],ar[o>>2]=(0|ar[r>>2])+t,(2147483647&ar[A+40>>2])-1|0):(t=255&e,ar[o>>2]=r+t,10),t),Vu(r,e,0),(e=0|tr[f>>0])<<24>>24<0?(t=f=0|ar[r>>2],n=0|ar[A+36>>2]):(n=255&e,f=t=r),ar[(e=A+24|0)>>2]=f,ar[A+20>>2]=f,ar[A+28>>2]=t+n,3&ar[i>>2]&&(ar[e>>2]=f+o))}function We(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0;return ur=(a=ur)+16|0,n=a+12|0,l=(o=a)+8|0,zf(o,A|=0),0|tr[o>>0]?(c=(0|ar[A>>2])-12|0,ar[l>>2]=ar[A+(0|ar[c>>2])+24>>2],c=A+(0|ar[c>>2])|0,t=0|ar[c+4>>2],f=e+r|0,-1==(0|(r=0|ar[(i=c+76|0)>>2]))&&(Tf(n,c),r=0|un(n,59232),r=0|Hb[31&ar[28+(0|ar[r>>2])>>2]](r,32),bn(n),r=r<<24>>24,ar[i>>2]=r),ar[n>>2]=ar[l>>2],ur=(0|PA(n,e,32==(176&t|0)?f:e,f,c,255&r)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2]),jf(o),a),0|A):(jf(o),ur=a,0|A)}function xA(A,e){A|=0;var r,i,f,n,t,o,a=0;if(ur=(o=ur)+160|0,n=o+136|0,t=o,1970628964!=(0|(a=0|ar[(e|=0)+20>>2])))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,tr[A+11>>0]=4,tr[A+4>>0]=0,tr[A>>0]=a>>>24,tr[A+1>>0]=a>>>16,tr[A+2>>0]=a>>>8,tr[A+3>>0]=a,void(ur=o);i=t+56|0,f=t+4|0,ar[t>>2]=292,ar[i>>2]=312,Jf(t+56|0,f),ar[t+128>>2]=0,ar[t+132>>2]=-1,ar[t>>2]=4304,ar[i>>2]=4324,Sf(f),ar[f>>2]=4340,ar[(r=t+36|0)>>2]=0,ar[4+r>>2]=0,ar[8+r>>2]=0,ar[12+r>>2]=0,ar[t+52>>2]=16,ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,Xe(f,n),(0|tr[11+n>>0])<0&&vu(0|ar[n>>2]),a=t+(0|ar[(0|ar[t>>2])-12>>2])+4|0,ar[a>>2]=-75&ar[a>>2]|8,ar[t+(0|ar[(0|ar[t>>2])-12>>2])+76>>2]=48,ar[t+(0|ar[(0|ar[t>>2])-12>>2])+12>>2]=2,e=e+24|0,a=0;do{switch(0|a){case 4:case 6:case 8:case 10:tr[n>>0]=45,We(t,n,1)}Pf(t,0|cr[(0|ar[e>>2])+a>>0]),a=a+1|0}while((0|a)<16);Ie(A,f),ar[t>>2]=4304,ar[i>>2]=4324,ar[f>>2]=4340,(0|tr[11+r>>0])<0&&vu(0|ar[r>>2]),kf(f),Gf(),bf(i),ur=o}function Ie(A,e){A|=0;var r=0,i=0,f=0,n=0;if(16&(r=0|ar[(e|=0)+48>>2])|0){if((i=0|ar[(r=e+44|0)>>2])>>>0<(f=0|ar[e+24>>2])>>>0&&(i=ar[r>>2]=f),r=0|ar[e+20>>2],ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=i-r|(ar[A+8>>2]=0))>>>0&&pu(),e>>>0<11?tr[A+11>>0]=e:(f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f),(0|r)!=(0|i)){for(f=A;tr[f>>0]=0|tr[r>>0],(0|(r=r+1|0))!=(0|i);)f=f+1|0;A=A+e|0}tr[A>>0]=0}else{if(!(8&r))return ar[A>>2]=0,ar[A+4>>2]=0,void(ar[A+8>>2]=0);if(r=0|ar[e+8>>2],f=0|ar[e+16>>2],ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=f-r|(ar[A+8>>2]=0))>>>0&&pu(),e>>>0<11?tr[A+11>>0]=e:(n=0|hu(i=e+16&-16),ar[A>>2]=n,ar[A+8>>2]=-2147483648|i,ar[A+4>>2]=e,A=n),(0|r)!=(0|f)){for(i=A;tr[i>>0]=0|tr[r>>0],(0|(r=r+1|0))!=(0|f);)i=i+1|0;A=A+e|0}tr[A>>0]=0}}function PA(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0;if(ur=(a=ur)+16|0,o=a,!(b=0|ar[(A|=0)>>2]))return ur=a,(b=0)|b;if(l=(0|(l=i-(c=e)|0))<(0|(u=0|ar[(t=f+12|0)>>2]))?u-l|0:0,0<(0|(f=(u=r)-c|0))&&(0|xb[63&ar[48+(0|ar[b>>2])>>2]](b,e,f))!=(0|f))return ar[A>>2]=0,ur=a,(b=0)|b;do{if(0<(0|l)){if(ar[o>>2]=0,ar[o+4>>2]=0,c=l>>>(ar[o+8>>2]=0)<11?(tr[(e=o+11|0)>>0]=l,f=o):(f=0|hu(e=l+16&-16),ar[o>>2]=f,ar[o+8>>2]=-2147483648|e,ar[o+4>>2]=l,e=o+11|0,o),vb(0|f,0|n,0|l),((tr[f+l>>0]=0)|xb[63&ar[48+(0|ar[b>>2])>>2]](b,(0|tr[e>>0])<0?0|ar[c>>2]:o,l))!=(0|l))return((ar[A>>2]=0)|tr[e>>0])<0&&vu(0|ar[c>>2]),ur=a,(b=0)|b;(0|tr[e>>0])<0&&vu(0|ar[c>>2]);break}}while(0);return 0<(0|(i=i-u|0))&&(0|xb[63&ar[48+(0|ar[b>>2])>>2]](b,r,i))!=(0|i)?(ar[A>>2]=0,ur=a,(b=0)|b):(ar[t>>2]=0,ur=a,0|b)}function LA(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),HA(f,e,r),We(n,(c=(e=0|tr[(r=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&e),(0|tr[r>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a}function KA(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0;c=0|tr[(f=(e|=0)+36|0)>>0]?12:8,l=1970628964==(0|ar[(o=e+20|0)>>2])?16|c:c,a=(0|ar[(n=r+4|0)>>2])-i-c-(0|ar[r>>2])+l|0,ar[(t=r+12|0)>>2]=i,function(A,e){A|=0;var r,i,f,n,t=0,o=0,a=0,c=0;(0|(e|=0))<=-1&&sr(18843,47382,618,18855),e&&(n=0|ar[(f=A+4|0)>>2],a=c=0|ar[A>>2],(i=(r=(o=n)-c|0)+e|0)>>>0<=r>>>0?i>>>0>>0&&(0|o)!=(0|(t=a+i|0))?ar[f>>2]=t:t=n:(TA(A,e),c=a=0|ar[A>>2],t=0|ar[f>>2]),(t=t-c-e|0)>>>0<=(o=0|ar[A+12>>2])>>>0||wb((A=a+o|0)+e|0,0|A,t-o|0))}(r,l-c|0),UA(r,a),UA(r,0|ar[o>>2]);do{if(1970628964==(0|ar[o>>2])){if(i=e+24|0,16==((0|ar[e+28>>2])-(0|ar[i>>2])|0)){zA(r,i);break}sr(19079,19104,309,19111)}}while(0);do{if(0|tr[f>>0]){if((i=0|ar[e+40>>2])>>>0<16777216){UA(r,cr[e+37>>0]<<24|i);break}sr(19126,19104,314,19111)}}while(0);ar[t>>2]=(0|ar[n>>2])-(0|ar[r>>2]),c=0|ar[(a=56592)+4>>2],ar[(l=A)>>2]=ar[a>>2],ar[l+4>>2]=c,yu(A+8|0,56600)}function Ce(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function qA(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+16|0,f=i,n=0|FA(r|=0),tr[e+37>>0]=n>>>24,ar[e+40>>2]=16777215&n,tr[e+36>>0]=1,ar[(e=e+16|0)>>2]=4+(0|ar[e>>2]),!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)}function $A(A,e,r,i){var f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F=0,R=0,N=0,_=0,Y=0;ur=(V=ur)+208|0,N=(r|=0)+16|0,c=r+24|0,l=4+(W=V+184|0)|0,u=(e|=0)+44|0,b=e+48|0,k=12+(C=(I=V)+24|0)|0,h=4+C|0,w=s=64+C|0,v=136+C|0,m=140+C|0,Z=60+C|0,p=11+(X=V+192|0)|0,y=d=8+C|0,B=11+(G=V+168|0)|0,E=11+(g=44+C|0)|0,f=e+52|0,n=-1!=(0|(i|=0)),o=11+(t=I+8|0)|0,a=(A|=0)+8|0,e=0;A:for(;!(0==(0|ar[(R=N)>>2])&0==(0|ar[R+4>>2])||0|tr[c>>0]);){ar[W>>2]=0,ar[l>>2]=0,Ae(I,r,W);do{if((0|ar[I>>2])==(0|ar[14148])){if((R=F=0|ar[b>>2])-(0|ar[u>>2])>>3>>>0<=2e4){R>>>0<(0|ar[f>>2])>>>0?(ar[F>>2]=ar[W>>2],ar[R+4>>2]=ar[l>>2],ar[W>>2]=0,ar[l>>2]=0,ar[b>>2]=R+8):ee(u,W),R=(n&(0|(e=e+1|0))==(0|i))<<31>>31;break}ar[d>>2]=4524,ar[C>>2]=188,ar[s>>2]=208,ar[h>>2]=0,Jf(w,k),ar[v>>2]=0,ar[m>>2]=-1,ar[C>>2]=4504,ar[s>>2]=4544,ar[d>>2]=4524,Sf(k),ar[k>>2]=4340,ar[g>>2]=0,ar[4+g>>2]=0,ar[8+g>>2]=0,ar[12+g>>2]=0,ar[Z>>2]=24,ar[X>>2]=0,ar[4+X>>2]=0,ar[8+X>>2]=0,Xe(k,X),(0|tr[p>>0])<0&&vu(0|ar[X>>2]),We(0|Lf(0|We(y,19273,30),2e4),19304,10),Ie(G,k),oo(A,6,1e3,G),(0|tr[B>>0])<0&&vu(0|ar[G>>2]),ar[C>>2]=4504,ar[s>>2]=4544,ar[y>>2]=4524,ar[k>>2]=4340,(0|tr[E>>0])<0&&vu(0|ar[g>>2]),kf(k),_f(),bf(s),R=1}else F=0|ar[(Y=I)+4>>2],ar[(R=A)>>2]=ar[Y>>2],ar[R+4>>2]=F,ar[a>>2]=ar[t>>2],ar[4+a>>2]=ar[4+t>>2],ar[8+a>>2]=ar[8+t>>2],ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,R=1}while(0);switch((0|tr[o>>0])<0&&vu(0|ar[t>>2]),0|(F=0|ar[l>>2])&&du(F),3&R){case 0:break;case 3:break A;default:_=28;break A}}ur=(28!=(0|_)&&(0|tr[c>>0]?(ar[X>>2]=0,ar[4+X>>2]=0,ar[8+X>>2]=0,oo(A,2,100,X),(0|tr[11+X>>0])<0&&vu(0|ar[X>>2])):(_=0|ar[(N=56592)+4>>2],ar[(Y=A)>>2]=ar[N>>2],ar[Y+4>>2]=_,yu(a,56600))),V)}function Ae(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;ur=(b=ur)+320|0,p=b+216|0,l=b+144|0,a=(Z=b)+304|0,n=b+292|0,i=b+280|0,f=b+268|0,t=b+256|0,c=b+248|0,ar[(u=b+168|0)>>2]=4264,o=8+u|0,ar[40+u>>2]=0,ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,ar[12+o>>2]=0,ar[16+o>>2]=0,ar[20+o>>2]=0,ar[24+o>>2]=0,or[28+o>>1]=0,re(l,u,e);A:do{if(0|ar[l>>2])B=0|ar[(p=l)+4>>2],ar[(y=A)>>2]=ar[p>>2],ar[y+4>>2]=B,B=8+l|0,ar[(y=A+8|0)>>2]=ar[B>>2],ar[y+4>>2]=ar[B+4>>2],ar[y+8>>2]=ar[B+8>>2],ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0;else{if(0|tr[e+24>>0]){ar[p>>2]=0,ar[p+4>>2]=0,ar[p+8>>2]=0,oo(A,2,100,p),(0|tr[p+11>>0])<0&&vu(0|ar[p>>2]);break}s=0|ar[20+u>>2];e:do{if((0|s)<1768714083){if((0|s)<1718909296){if((0|s)<1668246642){if((0|s)<1635135811){switch(0|s){case 1635088451:break;default:g=133;break e}s=0|hu(96),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5196,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,d=(ar[d>>2]=y)+w|0,ar[h>>2]=d,hb(0|y,0|v,0|w),ar[k>>2]=d;break}zl()}}while(0);v=0|ar[(w=36+u|0)+4>>2],ar[(y=s+52|0)>>2]=ar[w>>2],ar[y+4>>2]=v,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5224,ar[(y=s+72|0)>>2]=0,ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y+12>>2]=0,ar[y+16>>2]=0,ar[y+20>>2]=0;break}if((0|s)<1668047216){switch(0|s){case 1635135811:break;default:g=133;break e}s=0|hu(96),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5556,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){B=0|hu(w),ar[k>>2]=B,y=(ar[d>>2]=B)+w|0,ar[h>>2]=y,hb(0|B,0|v,0|w),ar[k>>2]=y;break}zl()}}while(0);for(w=0|ar[(B=36+u|0)+4>>2],ar[(h=s+52|0)>>2]=ar[B>>2],ar[h+4>>2]=w,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5584,tr[s+72>>0]=1,w=(h=s+73|0)+23|0;(0|(h=h+1|(tr[h>>0]=0)))<(0|w););break}switch(0|s){case 1668047216:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5376,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5404,ar[s+72>>2]=0,ar[s+76>>2]=1,ar[s+80>>2]=0,ar[s+84>>2]=1,ar[s+88>>2]=0,ar[s+92>>2]=1,ar[s+96>>2]=0,ar[s+100>>2]=1;break}if((0|s)<1684631142){switch(0|s){case 1668246642:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5916,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5944,ar[s+72>>2]=0,ar[s+76>>2]=0;break}if((0|s)<1685218662){switch(0|s){case 1684631142:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5736,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5764;break}switch(0|s){case 1685218662:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5796,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5824;break}if((0|s)<1752589123){if((0|s)<1735553132){switch(0|s){case 1718909296:break;default:g=133;break e}s=0|hu(96),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4600,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4436,ar[(B=s+72|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0;break}if((0|s)<1751411826){switch(0|s){case 1735553132:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5676,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5704,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break}switch(0|s){case 1751411826:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4656,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4684,ar[s+72>>2]=0,ar[s+76>>2]=1885954932,ar[(B=s+80|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[B+20>>2]=0;break}if((0|s)<1768186228){switch(0|s){case 1752589123:break;default:g=133;break e}s=0|hu(120),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5496,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5524,ar[s+80>>2]=0,ar[s+84>>2]=0,tr[s+104>>0]=4,ar[s+108>>2]=0,ar[s+112>>2]=0,ar[s+116>>2]=0;break}if((0|s)<1768517222){switch(0|s){case 1768186228:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5616,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5644,ar[(B=s+72|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[B+20>>2]=0,ar[B+24>>2]=0;break}switch(0|s){case 1768517222:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4836,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4864;break}if((0|s)<1769104742){if(1768973167<=(0|s)){if((0|s)<1768975713){switch(0|s){case 1768973167:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5016,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5044;break}switch(0|s){case 1768977008:s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4956,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4984;break e;case 1768975713:s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5076,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5104,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break e;default:g=133;break e}}if((0|s)<1768778098){switch(0|s){case 1768714083:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4776,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4804,B=s+72|0,ar[s+96>>2]=0,ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,tr[B+20>>0]=0;break}if((0|s)<1768842853){switch(0|s){case 1768778098:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5316,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5344,tr[s+72>>0]=0;break}switch(0|s){case 1768842853:break;default:g=133;break e}s=0|hu(144),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4896,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);for(h=0|ar[(w=36+u|0)+4>>2],ar[(d=s+52|0)>>2]=ar[w>>2],ar[d+4>>2]=h,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4924,ar[s+72>>2]=0,w=(h=d=s+80|(or[s+76>>1]=0))+60|0;(0|(h=h+4|(ar[h>>2]=0)))<(0|w););tr[d+60>>0]=0;break}if((0|s)<1835365473){if((0|s)<1769107316){switch(0|s){case 1769104742:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5436,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5464,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break}if((0|s)<1769173093){switch(0|s){case 1769107316:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5256,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5284,ar[s+72>>2]=0;break}switch(0|s){case 1769173093:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5136,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5164,ar[s+72>>2]=0,ar[s+76>>2]=0;break}if((0|s)<1885960297){if((0|s)<1885959277){switch(0|s){case 1835365473:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4628,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4468;break}switch(0|s){case 1885959277:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4716,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4744,ar[s+72>>2]=0;break}if((0|s)<1970433056){switch(0|s){case 1885960297:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5976,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=6004,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break}switch(0|s){case 1970433056:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5856,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5884,ar[(B=s+72|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0;break}while(0);if(133==(0|g)){s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=6036,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(g=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[g>>2],ar[B+4>>2]=y,ar[m>>2]=4404,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0}g=m,d=0|ar[(k=o)>>2],k=0|ar[k+4>>2],h=0|ar[(v=16+u|0)>>2];do{if(k>>>0<0|0==(0|k)&d>>>0>>0)k=Z+64|0,ar[(w=Z+8|0)>>2]=4524,h=Z+12|0,ar[Z>>2]=188,ar[k>>2]=208,Jf(Z+64|(ar[Z+4>>2]=0),h),ar[Z+136>>2]=0,ar[Z+140>>2]=-1,ar[Z>>2]=4504,ar[k>>2]=4544,ar[w>>2]=4524,Sf(h),ar[h>>2]=4340,ar[(w=Z+44|0)>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,ar[w+12>>2]=0,ar[Z+60>>2]=24,ar[p>>2]=0,ar[p+4>>2]=0,ar[p+8>>2]=0,Xe(h,p),(0|tr[p+11>>0])<0&&vu(0|ar[p>>2]),y=0|We(d=Z+8|0,19384,10),B=0|We(0|Kf(y,0|ar[(B=o)>>2],0|ar[B+4>>2]),19395,34),We(0|Lf(B,0|ar[v>>2]),19430,7),Ie(a,h),oo(A,2,101,a),(0|tr[11+a>>0])<0&&vu(0|ar[a>>2]),ar[Z>>2]=4504,ar[k>>2]=4544,ar[d>>2]=4524,ar[h>>2]=4340,(0|tr[w+11>>0])<0&&vu(0|ar[w>>2]),kf(h),_f(),bf(k);else{if(20<(0|ar[e+12>>2])){for(ar[n>>2]=0,ar[4+n>>2]=0,d=(ar[8+n>>2]=0)|hu(64),ar[n>>2]=d,ar[8+n>>2]=-2147483584,k=19438,w=(h=d)+(ar[4+n>>2]=61)|0;tr[h>>0]=0|tr[k>>0],k=k+1|0,(0|(h=h+1|0))<(0|w););if(tr[d+61>>0]=0,oo(A,6,1e3,n),0<=(0|tr[11+n>>0]))break;vu(0|ar[n>>2]);break}if(0|NA(e,B=0|ob(0|d,0|k,0|h,0),D)){if(ar[i>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,oo(A,2,100,i),0<=(0|tr[11+i>>0]))break;vu(0|ar[i>>2]);break}if(d=0|ar[(k=o)>>2],(0|(k=0|ar[k+4>>2]))<0){if(ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,oo(A,2,101,f),0<=(0|tr[11+f>>0]))break;vu(0|ar[f>>2]);break}if(h=0|ob(0|d,0|k,0|ar[v>>2],0),w=D,(0|(y=0|ar[(B=e+16|0)+4>>2]))<(0|w)|((0|y)==(0|w)?(0|ar[B>>2])>>>0>>0:0)){if(ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,oo(A,2,101,t),0<=(0|tr[11+t>>0]))break;vu(0|ar[t>>2]);break}if(ar[c>>2]=ar[e>>2],d=4+c|0,k=0|ar[e+4>>2],0|(ar[d>>2]=k)&&bu(k),WA(p,c,h,w,e),0|(d=0|ar[d>>2])&&du(d),ns[127&ar[20+(0|ar[m>>2])>>2]](Z,m,p),d=0|ar[(k=Z)+4>>2],ar[(v=l)>>2]=ar[k>>2],ar[v+4>>2]=d,d=Z+8|0,(0|tr[(k=(v=8+l|0)+11|0)>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+l>>2]=0):(tr[v>>0]=0,tr[k>>0]=0),Cu(v,0),ar[v>>2]=ar[d>>2],ar[v+4>>2]=ar[d+4>>2],ar[v+8>>2]=ar[d+8>>2],(0|ar[l>>2])==(0|ar[14148])&&(ar[r>>2]=g,d=0|ar[(B=r+4|0)>>2],ar[B>>2]=s,s=(d&&du(d),0)),k=0|ar[(d=w=p+16|0)>>2],0<(0|(d=0|ar[d+4>>2]))|0==(0|d)&0>>0&&((h=0|ar[p+8>>2])&&(_A(h,k,d),k=0|ar[(d=w)>>2],d=0|ar[d+4>>2]),y=0|ar[p>>2],B=0|ar[y>>2],Z=0|ar[B+20>>2],B=0|tb(0|(B=0|jb[127&ar[B+8>>2]](y)),0|D,0|k,0|d),xb[63&Z](y,B,D),ar[(B=w)>>2]=0,ar[B+4>>2]=0),B=0|ar[(y=l)+4>>2],ar[(d=A)>>2]=ar[y>>2],ar[d+4>>2]=B,ar[(d=A+8|0)>>2]=ar[v>>2],ar[d+4>>2]=ar[v+4>>2],ar[d+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(d=0|ar[p+4>>2])&&du(d),!s)break A}}while(0);du(s)}}while(0);(0|tr[(s=8+l|0)+11>>0])<0&&vu(0|ar[s>>2]),ar[u>>2]=4264,ur=((d=0|ar[24+u>>2])&&((0|ar[(s=28+u|0)>>2])!=(0|d)&&(ar[s>>2]=d),vu(d)),b)}function ee(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function re(A,e,r){A|=0,e|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(o=ur)+208|0,k=o+196|0,a=o+184|0,c=o+24|0,i=o+40|0,f=o+12|0,n=o,0|NA(r|=0,8,0))return ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,oo(A,2,100,a),0<=(0|tr[a+11>>0])||vu(0|ar[a>>2]),void(ur=o);s=0|FA(r),ar[(a=b=e+8|0)>>2]=s,a=(ar[a+4>>2]=0)|FA(r),ar[(s=e+20|0)>>2]=a,ar[(t=e+16|0)>>2]=8,u=b;do{if(1==(0|ar[u>>2])&0==(0|ar[u+4>>2])){if(0|NA(r,8,0))return ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,oo(A,2,100,c),0<=(0|tr[c+11>>0])||vu(0|ar[c>>2]),void(ur=o);if(l=0|FA(r),c=0|FA(r),ar[(a=b)>>2]=c,ar[a+4>>2]=l,ar[t>>2]=8+(0|ar[t>>2]),a=64+i|0,ar[(l=8+i|0)>>2]=4524,c=12+i|0,ar[i>>2]=188,ar[a>>2]=208,Jf(64+i|(ar[4+i>>2]=0),c),ar[136+i>>2]=0,ar[140+i>>2]=-1,ar[i>>2]=4504,ar[a>>2]=4544,ar[l>>2]=4524,Sf(c),ar[c>>2]=4340,ar[(l=44+i|0)>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,ar[l+12>>2]=0,ar[60+i>>2]=24,ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,Xe(c,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2]),w=0|We(u=8+i|0,23427,9),We(0|Kf(w,0|ar[(h=b)>>2],0|ar[h+4>>2]),23437,24),268435455<(h=0|ar[b+4>>2])>>>0|268435455==(0|h)&4294967295<(0|ar[b>>2])>>>0)return Ie(f,c),oo(A,6,1e3,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),ar[i>>2]=4504,ar[a>>2]=4544,ar[u>>2]=4524,ar[c>>2]=4340,(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),kf(c),_f(),bf(a),void(ur=o);ar[i>>2]=4504,ar[a>>2]=4544,ar[u>>2]=4524,ar[c>>2]=4340,(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),kf(c),_f(),bf(a),a=0|ar[s>>2];break}}while(0);if(1970628964==(0|a)){if(0|NA(r,16,0))return ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,100,n),0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),void(ur=o);do{if(0|CA(r,16,0)){if(b=e+24|0,16<=(c=(u=0|ar[(a=e+28|0)>>2])-(l=0|ar[b>>2])|0)>>>0?16!=(0|c)&&(0|u)!=(0|(d=l+16|0))&&(ar[a>>2]=d):TA(b,16-c|0),a=0|ar[r>>2],c=0|ar[r+4>>2]){bu(c),xb[63&ar[16+(0|ar[a>>2])>>2]](a,0|ar[b>>2],16),du(c);break}xb[63&ar[16+(0|ar[a>>2])>>2]](a,0|ar[b>>2],16);break}}while(0);ar[t>>2]=16+(0|ar[t>>2])}0|tr[r+24>>0]?(ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,oo(A,2,100,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2])):(h=0|ar[(k=56592)+4>>2],ar[(w=A)>>2]=ar[k>>2],ar[w+4>>2]=h,yu(A+8|0,56600)),ur=o}function ie(A,e,r){A|=0,e|=0;var i,f=0;if(ur=(i=ur)+16|0,f=i,!(0|NA(r|=0,7,0)))return f=0|VA(r),or[e+4>>1]=f,f=0|VA(r),or[e+6>>1]=f,f=0|VA(r),or[e+8>>1]=f,r=(255&(0|IA(r)))>>>7,tr[e+10>>0]=r,r=0|ar[(e=56592)+4>>2],ar[(f=A)>>2]=ar[e>>2],ar[f+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)}function fe(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;ur=(t=ur)+16|0,o=t,n=0|hu(32),ar[4+n>>2]=0,ar[8+n>>2]=0,ar[n>>2]=6120,a=0|ar[e>>2],ar[o>>2]=0,ar[(f=o+4|0)>>2]=0,c=(ar[o+8>>2]=0)|ar[r>>2],e=(0|ar[r+4>>2])-c|0,r=c;do{if(e){if(!((0|e)<0)){b=0|hu(e),s=(ar[o>>2]=b)+e|0,ar[o+8>>2]=s,hb(0|b,0|r,0|e),l=b,u=ar[f>>2]=s;break}zl()}else s=b=u=l=0}while(0);if(ar[(c=12+n|0)>>2]=6148,ar[16+n>>2]=a,ar[(r=20+n|0)>>2]=0,ar[(i=24+n|0)>>2]=0,(ar[(o=28+n|0)>>2]=0)|(e=u-l|0)&&((0|e)<0&&zl(),a=0|hu(e),ar[i>>2]=a,ar[r>>2]=a,ar[o>>2]=a+e,0<(0|(e=u-b|0))&&(hb(0|a,0|b,0|e),ar[i>>2]=a+e)),!b)return s=A+4|0,ar[A>>2]=c,ar[s>>2]=n,void(ur=t);(0|s)!=(0|b)&&(ar[f>>2]=b),vu(b),s=A+4|0,ar[A>>2]=c,ar[s>>2]=n,ur=t}function ne(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0;if(ur=(c=ur)+160|0,f=c+136|0,o=(t=c)+56|0,a=t+4|0,ar[t>>2]=292,ar[o>>2]=312,Jf(t+56|0,a),ar[t+128>>2]=0,ar[t+132>>2]=-1,ar[t>>2]=4304,ar[o>>2]=4324,Sf(a),ar[a>>2]=4340,ar[(n=t+36|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[t+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(a,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),l=1+(0|ar[r>>2])|0,ar[r>>2]=l,(0|(u=0|ar[e+44>>2]))!=(0|(i=0|ar[e+48>>2]))){for(b=11+f|0,s=4+f|0,l=1,e=u;;){if(!l){if(0<(0|ar[r>>2]))for(l=0;We(t,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););We(t,30086,1)}if(u=0|ar[e>>2],ns[127&ar[8+(0|ar[u>>2])>>2]](f,u,r),We(t,(l=(u=0|tr[b>>0])<<24>>24<0)?0|ar[f>>2]:f,l?0|ar[s>>2]:255&u),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),(0|(e=e+8|0))==(0|i))break;l=0}l=0|ar[r>>2]}if(ar[r>>2]=(0|l)<1?0:l+-1|0,Ie(A,a),ar[t>>2]=4304,ar[o>>2]=4324,ar[a>>2]=4340,0<=(0|tr[11+n>>0]))return kf(a),Gf(),bf(o),void(ur=c);vu(0|ar[n>>2]),kf(a),Gf(),bf(o),ur=c}function te(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(ar[(A|=0)>>2]=5704,0|(r=0|ar[(e=A+56|0)>>2])){if((0|(i=0|ar[(a=A+60|0)>>2]))!=(0|r)){for(;o=i+-64|0,ar[a>>2]=o,0|(f=0|ar[i+-12>>2])&&((0|(t=0|ar[(n=i+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(f=0|ar[i+-40>>2])&&((0|ar[(i=i+-36|0)>>2])!=(0|f)&&(ar[i>>2]=f),vu(f)),(0|(i=0|ar[a>>2]))!=(0|r););r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function oe(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0,o=0;ar[(A|=0)>>2]=4264,f=e+8|0,ar[(i=A+8|0)>>2]=ar[f>>2],ar[i+4>>2]=ar[f+4>>2],ar[i+8>>2]=ar[f+8>>2],ar[i+12>>2]=ar[f+12>>2],f=e+24|0,ar[(i=A+24|0)>>2]=0,ar[(o=A+28|0)>>2]=0,(ar[A+32>>2]=0)|(r=(0|ar[(n=e+28|0)>>2])-(0|ar[f>>2])|0)&&((0|r)<0&&zl(),t=0|hu(r),ar[o>>2]=t,ar[i>>2]=t,ar[A+32>>2]=t+r,i=0|ar[f>>2],0<(0|(r=(0|ar[n>>2])-i|0))&&(hb(0|t,0|i,0|r),ar[o>>2]=t+r)),t=0|ar[(n=e+36|0)+4>>2],ar[(o=A+36|0)>>2]=ar[n>>2],ar[o+4>>2]=t,ar[A+48>>2]=ar[e+48>>2],Ge(A+52|0,e+52|0)}function ae(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;i=(A|=0)+4|0,f=0|ar[A>>2],67108863<(n=(t=(0|ar[i>>2])-f>>6)+1|0)>>>0&&zl(),f=(c=(0|ar[(l=A+8|0)>>2])-f|0)>>5,f=c>>6>>>0<33554431?f>>>0>>0?n:f:67108863;do{if(f){if(!(67108863>>0)){n=0|hu(f<<6);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else n=0}while(0);if(r=n+(f<<6)|0,oe(t=o=n+(t<<6)|0,e),a=o+64|0,e=0|ar[A>>2],(0|(f=0|ar[i>>2]))==(0|e))f=t,n=c=e;else{for(n=o;oe(n+-64|0,f=f+-64|0),t=n=t+-64|0,(0|f)!=(0|e););f=t,c=0|ar[A>>2],n=0|ar[i>>2]}if(ar[A>>2]=f,ar[i>>2]=a,ar[l>>2]=r,(0|n)!=(0|(a=c)))for(o=n;o=(e=o)+-64|0,0|(f=0|ar[e+-12>>2])&&((0|(t=0|ar[(n=e+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(n=0|ar[e+-40>>2])&&((0|ar[(f=e+-36|0)>>2])!=(0|n)&&(ar[f>>2]=n),vu(n)),(0|o)!=(0|a););c&&vu(c)}function Ge(A,e){e|=0;var r,i,f,n,t=0;ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,(r=(t=((ar[A+8>>2]=0)|ar[(f=e+4|0)>>2])-(0|ar[e>>2])|0)>>2)&&(1073741823>>0&&zl(),i=0|hu(t),ar[n>>2]=i,ar[A>>2]=i,ar[A+8>>2]=i+(r<<2),A=0|ar[e>>2],(0|(t=(0|ar[f>>2])-A|0))<=0||(hb(0|i,0|A,0|t),ar[n>>2]=i+(t>>>2<<2)))}function ce(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0;if(ar[(A|=0)>>2]=5524,0|(r=0|ar[(e=A+92|0)>>2])){if((0|(i=0|ar[(c=A+96|0)>>2]))!=(0|r)){for(f=i;;){if(i=f+-16|0,ar[c>>2]=i,o=0|ar[(a=f+-12|0)>>2]){if((0|(i=0|ar[(t=f+-8|0)>>2]))==(0|o))i=o;else{for(;f=i+-12|0,ar[t>>2]=f,(0|(i=(n=0|ar[f>>2])?((0|ar[(i=i+-8|0)>>2])!=(0|n)&&(ar[i>>2]=n),vu(n),0|ar[t>>2]):f))!=(0|o););i=0|ar[a>>2]}vu(i),i=0|ar[c>>2]}if((0|i)==(0|r))break;f=i}r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function le(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=(A|=0)+4|0,i=0|ar[A>>2],268435455<(f=(o=(0|ar[r>>2])-i>>4)+1|0)>>>0&&zl(),i=(c=(0|ar[(l=A+8|0)>>2])-i|0)>>3,i=c>>4>>>0<134217727?i>>>0>>0?f:i:268435455;do{if(i){if(!(268435455>>0)){t=0|hu(i<<4);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else t=0}while(0);if(a=t+(i<<4)|0,or[(n=f=t+(o<<4)|0)>>1]=0|or[e>>1],i=e+4|0,ar[t+(o<<4)+12>>2]=0,ar[t+(o<<4)+4>>2]=ar[i>>2],c=e+8|0,ar[t+(o<<4)+8>>2]=ar[c>>2],e=e+12|0,ar[t+(o<<4)+12>>2]=ar[e>>2],ar[e>>2]=0,ar[c>>2]=0,e=f+16|(ar[i>>2]=0),t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))i=n,f=c=t;else{for(;i=(u=i)+-16|0,or[f+-16>>1]=0|or[i>>1],c=u+-12|0,ar[(o=f+-12|0)>>2]=0,ar[(b=f+-8|0)>>2]=0,ar[f+-4>>2]=0,ar[o>>2]=ar[c>>2],o=u+-8|0,ar[b>>2]=ar[o>>2],u=u+-4|0,ar[f+-4>>2]=ar[u>>2],ar[u>>2]=0,ar[o>>2]=0,n=f=n+-16|(ar[c>>2]=0),(0|i)!=(0|t););i=n,c=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=e,ar[l>>2]=a,(0|f)!=(0|(A=c))){a=f;do{if(0|(i=0|ar[(e=a+-12|0)>>2])){if((0|(f=0|ar[(o=a+-8|0)>>2]))!=(0|i)){for(;n=f+-12|0,ar[o>>2]=n,(0|(f=(t=0|ar[n>>2])?((0|ar[(f=f+-8|0)>>2])!=(0|t)&&(ar[f>>2]=t),vu(t),0|ar[o>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}a=a+-16|0}while((0|a)!=(0|A))}c&&vu(A)}function ue(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;r=(A|=0)+4|0,i=0|ar[A>>2],357913941<(f=(o=((0|ar[r>>2])-i|0)/12|0)+1|0)>>>0&&zl(),i=(a=((0|ar[(c=A+8|0)>>2])-i|0)/12|0)<<1,i=a>>>0<178956970?i>>>0>>0?f:i:357913941;do{if(i){if(!(357913941>>0)){t=0|hu(12*i|0);break}Zu(c=0|X(8),44519),ar[c>>2]=17660,I(0|c,4016,428)}else t=0}while(0);if(n=f=t+(12*o|0)|0,a=t+(12*i|0)|0,ar[t+(12*o|0)+8>>2]=0,ar[f>>2]=ar[e>>2],i=e+4|0,ar[t+(12*o|0)+4>>2]=ar[i>>2],l=e+8|0,ar[t+(12*o|0)+8>>2]=ar[l>>2],ar[l>>2]=0,ar[i>>2]=0,o=f+12|(ar[e>>2]=0),t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))i=n,f=e=t;else{for(;i=(e=i)+-12|0,ar[(l=f+-12|0)>>2]=0,ar[(u=f+-8|0)>>2]=0,ar[f+-4>>2]=0,ar[l>>2]=ar[i>>2],l=e+-8|0,ar[u>>2]=ar[l>>2],e=e+-4|0,ar[f+-4>>2]=ar[e>>2],ar[e>>2]=0,ar[l>>2]=0,n=f=n+-12|(ar[i>>2]=0),(0|i)!=(0|t););i=n,e=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=o,ar[c>>2]=a,(0|f)!=(0|(t=e)))for(;0|(n=0|ar[(f=(i=f)+-12|0)>>2])&&((0|ar[(i=i+-8|0)>>2])!=(0|n)&&(ar[i>>2]=n),vu(n)),(0|f)!=(0|t););e&&vu(e)}function be(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(ar[(A|=0)>>2]=5464,0|(r=0|ar[(e=A+56|0)>>2])){if((0|(i=0|ar[(a=A+60|0)>>2]))!=(0|r)){for(;o=i+-64|0,ar[a>>2]=o,0|(f=0|ar[i+-12>>2])&&((0|(t=0|ar[(n=i+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(f=0|ar[i+-40>>2])&&((0|ar[(i=i+-36|0)>>2])!=(0|f)&&(ar[i>>2]=f),vu(f)),(0|(i=0|ar[a>>2]))!=(0|r););r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function se(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0,o=0;ar[(A|=0)>>2]=4264,f=e+8|0,ar[(i=A+8|0)>>2]=ar[f>>2],ar[i+4>>2]=ar[f+4>>2],ar[i+8>>2]=ar[f+8>>2],ar[i+12>>2]=ar[f+12>>2],f=e+24|0,ar[(i=A+24|0)>>2]=0,ar[(o=A+28|0)>>2]=0,(ar[A+32>>2]=0)|(r=(0|ar[(n=e+28|0)>>2])-(0|ar[f>>2])|0)&&((0|r)<0&&zl(),t=0|hu(r),ar[o>>2]=t,ar[i>>2]=t,ar[A+32>>2]=t+r,i=0|ar[f>>2],0<(0|(r=(0|ar[n>>2])-i|0))&&(hb(0|t,0|i,0|r),ar[o>>2]=t+r)),t=0|ar[(n=e+36|0)+4>>2],ar[(o=A+36|0)>>2]=ar[n>>2],ar[o+4>>2]=t,ar[A+48>>2]=ar[e+48>>2],Ge(A+52|0,e+52|0)}function de(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;i=(A|=0)+4|0,f=0|ar[A>>2],67108863<(n=(t=(0|ar[i>>2])-f>>6)+1|0)>>>0&&zl(),f=(c=(0|ar[(l=A+8|0)>>2])-f|0)>>5,f=c>>6>>>0<33554431?f>>>0>>0?n:f:67108863;do{if(f){if(!(67108863>>0)){n=0|hu(f<<6);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else n=0}while(0);if(r=n+(f<<6)|0,se(t=o=n+(t<<6)|0,e),a=o+64|0,e=0|ar[A>>2],(0|(f=0|ar[i>>2]))==(0|e))f=t,n=c=e;else{for(n=o;se(n+-64|0,f=f+-64|0),t=n=t+-64|0,(0|f)!=(0|e););f=t,c=0|ar[A>>2],n=0|ar[i>>2]}if(ar[A>>2]=f,ar[i>>2]=a,ar[l>>2]=r,(0|n)!=(0|(a=c)))for(o=n;o=(e=o)+-64|0,0|(f=0|ar[e+-12>>2])&&((0|(t=0|ar[(n=e+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(n=0|ar[e+-40>>2])&&((0|ar[(f=e+-36|0)>>2])!=(0|n)&&(ar[f>>2]=n),vu(n)),(0|o)!=(0|a););c&&vu(c)}function ke(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function he(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;l=0|ar[(b=(A|=0)+4|0)>>2],r=f=0|ar[A>>2],89478485<(n=(c=((t=l)-f|0)/48|0)+1|0)>>>0&&zl(),o=(u=((0|ar[(i=A+8|0)>>2])-f|0)/48|0)<<1,o=u>>>0<44739242?o>>>0>>0?n:o:89478485;do{if(o){if(!(89478485>>0)){a=0|hu(48*o|0);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else a=0}while(0);if(u=a+(48*o|0)|0,ar[(f=n=a+(48*c|0)|0)>>2]=ar[e>>2],o=e+4|0,ar[a+(48*c|0)+4>>2]=ar[o>>2],s=e+8|0,ar[a+(48*c|0)+8>>2]=ar[s>>2],ar[o>>2]=0,o=e+12|(ar[s>>2]=0),ar[(s=a+(48*c|0)+12|0)>>2]=ar[o>>2],ar[s+4>>2]=ar[o+4>>2],ar[s+8>>2]=ar[o+8>>2],ar[s+12>>2]=ar[o+12>>2],s=e+28|0,ar[a+(48*c|0)+28>>2]=ar[s>>2],o=e+32|0,ar[a+(48*c|0)+32>>2]=ar[o>>2],ar[s>>2]=0,a=a+(48*c|(ar[o>>2]=0))+36|0,c=e+36|0,ar[a>>2]=ar[c>>2],ar[a+4>>2]=ar[c+4>>2],ar[a+8>>2]=ar[c+8>>2],a=n+48|0,(0|t)==(0|r))o=l;else{for(;t=(l=t)+-48|0,ar[n+-48>>2]=ar[t>>2],s=l+-44|0,ar[n+-44>>2]=ar[s>>2],c=l+-40|0,ar[n+-40>>2]=ar[c>>2],ar[s>>2]=0,s=l+-36|(ar[c>>2]=0),ar[(c=n+-36|0)>>2]=ar[s>>2],ar[c+4>>2]=ar[s+4>>2],ar[c+8>>2]=ar[s+8>>2],ar[c+12>>2]=ar[s+12>>2],c=l+-20|0,ar[n+-20>>2]=ar[c>>2],s=l+-16|0,ar[n+-16>>2]=ar[s>>2],ar[c>>2]=0,l=l+-12|(ar[s>>2]=0),ar[(s=n+-12|0)>>2]=ar[l>>2],ar[s+4>>2]=ar[l+4>>2],ar[s+8>>2]=ar[l+8>>2],f=n=f+-48|0,(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,n=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|n)!=(0|(t=o)))for(;0|(f=0|ar[n+-16>>2])&&du(f),f=0|ar[n+-40>>2],n=n+-48|0,0|f&&du(f),(0|n)!=(0|t););o&&vu(o)}function we(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;r=(A|=0)+4|0,i=0|ar[A>>2],89478485<(f=(o=((0|ar[r>>2])-i|0)/48|0)+1|0)>>>0&&zl(),i=(a=((0|ar[(c=A+8|0)>>2])-i|0)/48|0)<<1,i=a>>>0<44739242?i>>>0>>0?f:i:89478485;do{if(i){if(!(89478485>>0)){t=0|hu(48*i|0);break}Zu(c=0|X(8),44519),ar[c>>2]=17660,I(0|c,4016,428)}else t=0}while(0);if(a=t+(48*i|0)|0,ar[(n=f=t+(48*o|0)|0)>>2]=ar[e>>2],ar[t+(48*o|0)+4>>2]=ar[e+4>>2],i=0|ar[e+8>>2],0|(ar[t+(48*o|0)+8>>2]=i)&&bu(i),l=e+12|0,ar[(i=t+(48*o|0)+12|0)>>2]=ar[l>>2],ar[i+4>>2]=ar[l+4>>2],ar[i+8>>2]=ar[l+8>>2],ar[i+12>>2]=ar[l+12>>2],ar[t+(48*o|0)+28>>2]=ar[e+28>>2],i=0|ar[e+32>>2],0|(ar[t+(48*o|0)+32>>2]=i)&&bu(i),e=e+36|0,ar[(o=t+(48*o|0)+36|0)>>2]=ar[e>>2],ar[o+4>>2]=ar[e+4>>2],ar[o+8>>2]=ar[e+8>>2],o=f+48|0,e=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|e))i=n,f=t=e;else{for(;i=(t=i)+-48|0,ar[f+-48>>2]=ar[i>>2],l=t+-44|0,ar[f+-44>>2]=ar[l>>2],u=t+-40|0,ar[f+-40>>2]=ar[u>>2],ar[l>>2]=0,l=t+-36|(ar[u>>2]=0),ar[(u=f+-36|0)>>2]=ar[l>>2],ar[u+4>>2]=ar[l+4>>2],ar[u+8>>2]=ar[l+8>>2],ar[u+12>>2]=ar[l+12>>2],u=t+-20|0,ar[f+-20>>2]=ar[u>>2],l=t+-16|0,ar[f+-16>>2]=ar[l>>2],ar[u>>2]=0,t=t+-12|(ar[l>>2]=0),ar[(l=f+-12|0)>>2]=ar[t>>2],ar[l+4>>2]=ar[t+4>>2],ar[l+8>>2]=ar[t+8>>2],n=f=n+-48|0,(0|i)!=(0|e););i=n,t=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=o,ar[c>>2]=a,(0|f)!=(0|(n=t)))for(;0|(i=0|ar[f+-16>>2])&&du(i),i=0|ar[f+-40>>2],f=f+-48|0,0|i&&du(i),(0|f)!=(0|n););t&&vu(t)}function ve(A,e){var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if((e|=0)>>>0<=(t=0|ar[(i=(A|=0)+8|0)>>2])-(f=n=0|ar[(u=A+4|0)>>2])>>3>>>0)return vb(0|n,0,e<<3|0),void(ar[u>>2]=f+(e<<3));r=l=0|ar[A>>2],536870911<(n=(a=n-l>>3)+e|0)>>>0&&zl(),o=(c=t-l|0)>>2,o=c>>3>>>0<268435455?o>>>0>>0?n:o:536870911;do{if(o){if(!(536870911>>0)){c=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else c=0}while(0);if(n=c+(a<<3)|0,c=c+(o<<3)|0,vb(0|(t=n),0,e<<3|0),a=n+(e<<3)|0,(0|f)==(0|r))o=l;else{for(;f=(l=f)+-8|0,ar[n+-8>>2]=ar[f>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[f>>2]=0,t=n=t+-8|(ar[l>>2]=0),(0|f)!=(0|r););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=c,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function me(A,e,r,i,f,n){A|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0;ur=(p=ur)+128|0,u=p+108|0,b=p+115|0,Z=p+96|0,s=p+112|0,g=p+56|0,k=p+32|0,h=p+8|0,d=p,X=0|ar[(e|=0)>>2],y=0|ar[X+24>>2],B=0|ar[X+28>>2];do{if(0|Eo(X,6)){if((0|Xo(0|ar[e>>2],6))==(0|y)&&(0|Wo(0|ar[e>>2],6))==(0|B))break;return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p)}}while(0);if(0==(0|r)&3>>0)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if(X=0|ar[e>>2],a=0|ar[X+32>>2],c=0|ar[X+36>>2],E=0|Eo(X,6)?1:0|tl(0|ar[36+(0|ar[e>>2])>>2]),y=0|ar[e>>2],l=0|ar[y+40>>2],(X=0==(0|(m=0|ar[y+44>>2])))||(bu(m),y=0|ar[e>>2]),Io(Z,y),0|ar[8+Z>>2]||sr(34377,32248,3067,32272),t=255&(0|Vo(0|ar[e>>2],0|ar[16+(0|ar[Z>>2])>>2])),tr[s>>0]=0|tr[b>>0],tr[1+s>>0]=0|tr[1+b>>0],tr[2+s>>0]=0|tr[2+b>>0],X||bu(m),o=0|ar[f>>2],(v=0==(0|(w=0|ar[f+4>>2])))||bu(w),X||du(m),B=1<(0|function(A){var e=0;switch(0|(A|=0)){case 3:case 2:case 1:case 0:case 99:e=1;break;case 14:case 12:case 10:e=3;break;case 15:case 13:case 11:e=4;break;default:sr(55739,25597,118,25653)}return 0|e}(i))?0|tl(i):E,y=11==(1|i)?8:0==(0|n)?t:n,ar[g>>2]=0,ar[(n=4+g|0)>>2]=0,ar[8+g>>2]=0,ar[12+g>>2]=99,ar[16+g>>2]=99,tr[20+g>>0]=0,ar[24+g>>2]=8,ar[28+g>>2]=0,ar[(f=32+g|0)>>2]=0,ar[36+g>>2]=3,ar[k>>2]=a,ar[4+k>>2]=c,tr[8+k>>0]=1&E,tr[(E=9+k|0)>>0]=0|tr[b>>0],tr[E+1>>0]=0|tr[1+b>>0],tr[E+2>>0]=0|tr[2+b>>0],ar[12+k>>2]=t,ar[16+k>>2]=l,ar[20+k>>2]=m,X||bu(m),ar[h>>2]=r,ar[4+h>>2]=i,tr[8+h>>0]=1&B,tr[(r=9+h|0)>>0]=0|tr[s>>0],tr[r+1>>0]=0|tr[1+s>>0],tr[r+2>>0]=0|tr[2+s>>0],ar[12+h>>2]=12==(-4&i|0)&(0|y)<9?10:y,ar[16+h>>2]=o,ar[20+h>>2]=w,v||bu(w),ar[d>>2]=3,ar[u>>2]=ar[d>>2],y=0|function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0,sA=0,dA=0,kA=0,hA=0,wA=0,vA=0,mA=0;if(ur=(v=ur)+256|0,o=v+96|0,mA=v+232|0,w=v+168|0,h=v+156|0,R=v+80|0,s=v+144|0,d=v+208|0,k=v+184|0,b=v+180|0,c=(l=v)+244|0,u=v+64|0,a=v+48|0,Z=0|ar[(A|=0)>>2],(0|(m=0|ar[(wA=A+4|0)>>2]))!=(0|Z))for(;g=m+-8|0,ar[wA>>2]=g,(0|(m=(m=0|ar[m+-4>>2])?(du(m),0|ar[wA>>2]):g))!=(0|Z););if(ar[(kA=A+12|0)>>2]=ar[r>>2],ar[kA+4>>2]=ar[r+4>>2],ar[kA+8>>2]=ar[r+8>>2],ar[kA+12>>2]=ar[r+12>>2],m=0|ar[(kA=r+16|0)>>2],0|(g=0|ar[(t=r+20|0)>>2])&&bu(g),ar[A+28>>2]=m,m=0|ar[(vA=A+32|0)>>2],ar[vA>>2]=g,0|m&&du(m),ar[A+36>>2]=ar[i>>2],(0|ar[e>>2])==(0|ar[r>>2])&&(0|ar[e+4>>2])==(0|ar[r+4>>2])&&(0|tr[e+8>>0])==(0|tr[r+8>>0])&&(0|ar[e+12>>2])==(0|ar[r+12>>2]))return ur=v,0|(mA=1);ar[mA>>2]=0,ar[(vA=mA+4|0)>>2]=0,y=(ar[mA+8>>2]=0)|hu(16),ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y>>2]=6932,ar[(m=y+12|0)>>2]=6492,ar[o>>2]=m,ar[(m=4+o|0)>>2]=y,y=mA+8|0,ke(mA,o),0|(m=0|ar[m>>2])&&du(m),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=6960,ar[(m=g+12|0)>>2]=6988,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7012,ar[(m=g+12|0)>>2]=7040,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7064,ar[(m=g+12|0)>>2]=6516,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7092,ar[(m=g+12|0)>>2]=6540,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7120,ar[(m=g+12|0)>>2]=6908,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7148,ar[(m=g+12|0)>>2]=6564,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7176,ar[(m=g+12|0)>>2]=6588,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7204,ar[(m=g+12|0)>>2]=6660,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7232,ar[(m=g+12|0)>>2]=6684,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7260,ar[(m=g+12|0)>>2]=6636,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7288,ar[(m=g+12|0)>>2]=6612,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7316,ar[(m=g+12|0)>>2]=6708,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7344,ar[(m=g+12|0)>>2]=6732,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7372,ar[(m=g+12|0)>>2]=7400,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7424,ar[(m=g+12|0)>>2]=7452,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7476,ar[(m=g+12|0)>>2]=6756,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7504,ar[(m=g+12|0)>>2]=6780,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7532,ar[(m=g+12|0)>>2]=6832,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7560,ar[(m=g+12|0)>>2]=6884,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);ar[w>>2]=0,ar[(n=4+w|0)>>2]=0,ar[8+w>>2]=0,ar[h>>2]=0,ar[(f=4+h|0)>>2]=0,ar[8+h>>2]=0,ar[R>>2]=ar[e>>2],ar[R+4>>2]=ar[e+4>>2],ar[R+8>>2]=ar[e+8>>2],ar[R+12>>2]=ar[e+12>>2],p=0|ar[e+16>>2],(I=0==(0|(W=0|ar[e+20>>2])))||bu(W),B=4+o|0,X=8+o|0,E=12+o|0,ar[(e=28+o|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[o>>2]=-1,ar[B>>2]=0,ar[X>>2]=0,ar[E>>2]=ar[R>>2],ar[E+4>>2]=ar[R+4>>2],ar[E+8>>2]=ar[R+8>>2],ar[E+12>>2]=ar[R+12>>2],e=28+o|0,g=W;do{if(I)dA=32+o|0,ar[e>>2]=p,ar[dA>>2]=g,y=e,g=p=dA;else{if(bu(W),m=0|ar[(Z=32+o|0)>>2],ar[e>>2]=p,ar[Z>>2]=g,!m){y=e,g=p=Z;break}du(m),y=e,g=p=Z}}while(0);gA[36+o>>2]=0,gA[40+o>>2]=0,m=(gA[44+o>>2]=0)|ar[f>>2],dA=8+h|0;do{if(m>>>0<(0|ar[dA>>2])>>>0)ar[m>>2]=ar[o>>2],ar[m+4>>2]=ar[B>>2],ar[m+8>>2]=ar[X>>2],ar[B>>2]=0,ar[X>>2]=0,ar[(sA=m+12|0)>>2]=ar[E>>2],ar[sA+4>>2]=ar[E+4>>2],ar[sA+8>>2]=ar[E+8>>2],ar[sA+12>>2]=ar[E+12>>2],ar[m+28>>2]=ar[y>>2],ar[m+32>>2]=ar[g>>2],ar[e>>2]=0,bA=36+o|(ar[p>>2]=0),ar[(sA=m+36|0)>>2]=ar[bA>>2],ar[sA+4>>2]=ar[bA+4>>2],ar[sA+8>>2]=ar[bA+8>>2],ar[f>>2]=m+48;else{if(he(h,o),!(m=0|ar[p>>2]))break;du(m)}}while(0);0|(m=0|ar[X>>2])&&du(m),I||du(W),m=0|ar[h>>2],g=0|ar[f>>2];A:do{if((0|m)==(0|g))p=0;else{P=8+w|0,L=r+4|0,K=r+8|0,q=r+12|0,$=16+d|0,AA=20+d|0,eA=16+k|0,rA=20+k|0,iA=4+s|0,fA=l+4|0,nA=l+8|0,tA=l+12|0,oA=l+16|0,aA=l+20|0,cA=l+24|0,uA=lA=l+28|0,bA=l+32|0,H=l+40|0,x=l+44|0,sA=j=l+36|0,C=0;e:for(;;){if((0|g)==(0|m))g=-1;else for(p=(g-m|0)/48|0,g=-1,Z=0;C=(z=0==(0|Z)|(F=.30000001192092896*gA[m+(48*Z|0)+36>>2]+.6000000238418579*gA[m+(48*Z|0)+40>>2]+.10000000149011612*gA[m+(48*Z|0)+44>>2])>>0

>>0;);for(Z=m+(48*g|0)|0,(0|(p=0|ar[n>>2]))==(0|ar[P>>2])?we(w,Z):(ar[p>>2]=ar[Z>>2],ar[p+4>>2]=ar[m+(48*g|0)+4>>2],Z=0|ar[m+(48*g|0)+8>>2],0|(ar[p+8>>2]=Z)&&bu(Z),z=m+(48*g|0)+12|0,ar[(Z=p+12|0)>>2]=ar[z>>2],ar[Z+4>>2]=ar[z+4>>2],ar[Z+8>>2]=ar[z+8>>2],ar[Z+12>>2]=ar[z+12>>2],ar[p+28>>2]=ar[m+(48*g|0)+28>>2],Z=0|ar[m+(48*g|0)+32>>2],0|(ar[p+32>>2]=Z)&&bu(Z),O=m+(48*g|0)+36|0,ar[(z=p+36|0)>>2]=ar[O>>2],ar[z+4>>2]=ar[O+4>>2],ar[z+8>>2]=ar[O+8>>2],ar[n>>2]=48+(0|ar[n>>2])),p=0|ar[f>>2],y=0|ar[h>>2],ar[y+(48*g|0)>>2]=ar[p+-48>>2],m=0|ar[p+-44>>2],0|(Z=0|ar[p+-40>>2])&&bu(Z),ar[y+(48*g|0)+4>>2]=m,m=0|ar[(z=y+(48*g|0)+8|0)>>2],ar[z>>2]=Z,0|m&&du(m),Z=p+-36|0,ar[(m=y+(48*g|0)+12|0)>>2]=ar[Z>>2],ar[m+4>>2]=ar[Z+4>>2],ar[m+8>>2]=ar[Z+8>>2],ar[m+12>>2]=ar[Z+12>>2],m=0|ar[p+-20>>2],0|(Z=0|ar[p+-16>>2])&&bu(Z),ar[y+(48*g|0)+28>>2]=m,m=0|ar[(z=y+(48*g|0)+32|0)>>2],ar[z>>2]=Z,0|m&&du(m),m=y+(48*g|0)+36|0,g=p+-12|0,ar[m>>2]=ar[g>>2],ar[m+4>>2]=ar[g+4>>2],ar[m+8>>2]=ar[g+8>>2],g=(m=0|ar[f>>2])+-48|0;ar[f>>2]=m+-48,0|(Z=0|ar[m+-16>>2])&&du(Z),0|(m=0|ar[m+-40>>2])&&du(m),(0|(m=0|ar[f>>2]))!=(0|g););Z=0|ar[n>>2];do{if((0|ar[Z+-36>>2])==(0|ar[r>>2])){if((0|ar[Z+-32>>2])!=(0|ar[L>>2]))break;if((0|tr[Z+-28>>0])!=(0|tr[K>>0]))break;if((0|ar[Z+-24>>2])==(0|ar[q>>2]))break e}}while(0);if((0|(m=0|ar[mA>>2]))!=(0|(z=0|ar[vA>>2]))){for(;;){if(p=0|ar[m>>2],y=0|ar[8+(0|ar[p>>2])>>2],g=Z+-36|0,ar[d>>2]=ar[g>>2],ar[4+d>>2]=ar[g+4>>2],ar[8+d>>2]=ar[g+8>>2],ar[12+d>>2]=ar[g+12>>2],ar[$>>2]=ar[Z+-20>>2],g=0|ar[Z+-16>>2],0|(ar[AA>>2]=g)&&bu(g),ar[k>>2]=ar[r>>2],ar[4+k>>2]=ar[r+4>>2],ar[8+k>>2]=ar[r+8>>2],ar[12+k>>2]=ar[r+12>>2],ar[eA>>2]=ar[kA>>2],g=0|ar[t>>2],0|(ar[rA>>2]=g)&&bu(g),ar[b>>2]=ar[i>>2],ar[o>>2]=ar[b>>2],os[63&y](s,p,d,k,o),0|(g=0|ar[rA>>2])&&du(g),0|(g=0|ar[AA>>2])&&du(g),(0|(g=0|ar[s>>2]))!=(0|(S=0|ar[iA>>2]))){O=m+4|0;do{if((0|(y=p=0|ar[w>>2]))!=(0|(U=W=0|ar[n>>2]))){e=0|ar[g>>2],B=g+4|0,E=g+8|0,X=g+12|0,Z=0;r:do{do{if((0|ar[p+12>>2])==(0|e)){if((0|ar[p+16>>2])!=(0|ar[B>>2]))break;if((0|tr[p+20>>0])!=(0|tr[E>>0]))break;if(Z|=T=(0|ar[p+24>>2])==(0|ar[X>>2]),T)break r}}while(0);p=p+48|0}while((0|p)!=(0|W));Z||(hA=182)}else hA=182;r:do{if(182==(0|hA)){Z=(hA=0)|ar[h>>2],p=0|ar[f>>2];i:do{if((0|Z)!=(0|p)){T=0|ar[g>>2],e=g+4|0,B=g+8|0,E=g+12|0;f:for(;;){N=Z+12|0;do{if((0|ar[N>>2])==(0|T)){if((0|(Y=0|ar[(_=Z+16|0)>>2]))!=(0|ar[e>>2]))break;if((D=0|tr[(Q=Z+20|0)>>0])<<24>>24!=(0|tr[B>>0]))break;if((0|(M=0|ar[(J=Z+24|0)>>2]))==(0|ar[E>>2]))break f}}while(0);if((0|(Z=Z+48|0))==(0|p))break i}if(V=+gA[(p=g+24|0)>>2]+ +gA[W+-12>>2],F=+gA[g+28>>2]+ +gA[W+-8>>2],G=+gA[g+32>>2]+ +gA[W+-4>>2],X=Z+40|0,W=Z+44|0,!(.30000001192092896*gA[(E=Z+36|0)>>2]+.6000000238418579*gA[X>>2]+.10000000149011612*gA[W>>2]>.30000001192092896*V+.6000000238418579*F+.10000000149011612*G))break r;B=g+9|0,tr[c>>0]=0|tr[B>>0],tr[1+c>>0]=0|tr[B+1>>0],tr[2+c>>0]=0|tr[B+2>>0],B=0|ar[g+16>>2],(R=0==(0|(I=0|ar[g+20>>2])))||bu(I),ar[u>>2]=ar[p>>2],ar[4+u>>2]=ar[p+4>>2],ar[8+u>>2]=ar[p+8>>2],ar[l>>2]=0,ar[l+4>>2]=0,p=(ar[l+8>>2]=0)|ar[m>>2],0|(e=0|ar[O>>2])&&bu(e),tr[o>>0]=0|tr[c>>0],tr[1+o>>0]=0|tr[1+c>>0],tr[2+o>>0]=0|tr[2+c>>0],R||bu(I),ar[l>>2]=ar[u>>2],ar[l+4>>2]=ar[4+u>>2],ar[l+8>>2]=ar[8+u>>2],ar[Z>>2]=((U-y|0)/48|0)-1,ar[Z+4>>2]=p,p=0|ar[(U=Z+8|0)>>2],ar[U>>2]=e,0|p&&du(p),ar[N>>2]=T,ar[_>>2]=Y,tr[Q>>0]=D,tr[(U=Z+21|0)>>0]=0|tr[o>>0],tr[U+1>>0]=0|tr[1+o>>0],tr[U+2>>0]=0|tr[2+o>>0],ar[J>>2]=M,ar[Z+28>>2]=B,p=0|ar[(U=Z+32|0)>>2],ar[U>>2]=I,0|p&&du(p),ar[E>>2]=ar[l>>2],ar[E+4>>2]=ar[l+4>>2],ar[E+8>>2]=ar[l+8>>2],R||du(I),gA[Z+36>>2]=V,gA[X>>2]=F,gA[W>>2]=G;break r}}while(0);ar[o>>2]=ar[g>>2],ar[4+o>>2]=ar[g+4>>2],ar[8+o>>2]=ar[g+8>>2],ar[12+o>>2]=ar[g+12>>2],e=0|ar[g+16>>2],(E=0==(0|(B=0|ar[g+20>>2])))?(p=W,Z=U):(bu(B),p=Z=0|ar[n>>2],y=0|ar[w>>2]),V=+gA[g+24>>2]+ +gA[p+-12>>2],F=+gA[g+28>>2]+ +gA[p+-8>>2],G=+gA[g+32>>2]+ +gA[p+-4>>2],ar[a>>2]=ar[o>>2],ar[4+a>>2]=ar[4+o>>2],ar[8+a>>2]=ar[8+o>>2],ar[12+a>>2]=ar[12+o>>2],E||bu(B),ar[fA>>2]=0,ar[nA>>2]=0,ar[tA>>2]=99,ar[oA>>2]=99,tr[aA>>0]=0,ar[cA>>2]=8,ar[lA>>2]=0,ar[lA+4>>2]=0,ar[lA+8>>2]=0,ar[lA+12>>2]=0,ar[lA+16>>2]=0,ar[l>>2]=((Z-y|0)/48|0)-1,p=0|ar[m>>2],y=Z=0|ar[O>>2];do{if(Z){if(bu(Z),Z=0|ar[nA>>2],ar[fA>>2]=p,ar[nA>>2]=y,!Z)break;du(Z)}else ar[fA>>2]=p,ar[nA>>2]=y}while(0);ar[tA>>2]=ar[a>>2],ar[tA+4>>2]=ar[4+a>>2],ar[tA+8>>2]=ar[8+a>>2],ar[tA+12>>2]=ar[12+a>>2],E||bu(B),ar[uA>>2]=e,Z=0|ar[bA>>2],ar[bA>>2]=B,0|Z&&du(Z),gA[j>>2]=V,gA[H>>2]=F,gA[x>>2]=G,Z=0|ar[f>>2];do{if(Z>>>0<(0|ar[dA>>2])>>>0)ar[Z>>2]=ar[l>>2],ar[Z+4>>2]=ar[fA>>2],ar[Z+8>>2]=ar[nA>>2],ar[fA>>2]=0,ar[nA>>2]=0,ar[(U=Z+12|0)>>2]=ar[tA>>2],ar[U+4>>2]=ar[tA+4>>2],ar[U+8>>2]=ar[tA+8>>2],ar[U+12>>2]=ar[tA+12>>2],ar[Z+28>>2]=ar[uA>>2],ar[Z+32>>2]=ar[bA>>2],ar[uA>>2]=0,ar[bA>>2]=0,ar[(U=Z+36|0)>>2]=ar[sA>>2],ar[U+4>>2]=ar[sA+4>>2],ar[U+8>>2]=ar[sA+8>>2],ar[f>>2]=Z+48;else{if(he(h,l),!(Z=0|ar[bA>>2]))break;du(Z)}}while(0);0|(Z=0|ar[nA>>2])&&du(Z),E||(du(B),du(B))}}while(0);g=g+36|0}while((0|g)!=(0|S));g=0|ar[s>>2]}if(0|g){if((0|(Z=0|ar[iA>>2]))!=(0|g)){for(;p=Z+-36|0,ar[iA>>2]=p,(0|(Z=(Z=0|ar[Z+-16>>2])?(du(Z),0|ar[iA>>2]):p))!=(0|g););g=0|ar[s>>2]}vu(g)}if((0|(m=m+8|0))==(0|z))break;Z=0|ar[n>>2]}g=0|ar[f>>2]}if((0|(m=0|ar[h>>2]))==(0|g)){p=0;break A}}if(m=((Z-(hA=0|ar[w>>2])|0)/48|0)-1|0,Z=hA,m)for(g=0;g=g+1|0,0!=(0|(m=0|ar[Z+(48*m|0)>>2])););else g=0;m=(p=0|ar[wA>>2])-(Z=0|ar[A>>2])>>3;do{if(m>>>0>>0)ve(A,g-m|0);else{if(m>>>0<=g>>>0)break;if((0|p)==(0|(y=Z+(g<<3)|0)))break;for(Z=p;m=Z+-8|0,ar[wA>>2]=m,(Z=0|ar[Z+-4>>2])&&(du(Z),m=0|ar[wA>>2]),(0|m)!=(0|y);)Z=m}}while(0);if(Z=0|ar[w>>2],0|(m=(((0|ar[n>>2])-Z|0)/48|0)-1|0))for(B=g+-1|0,e=0;g=B-e|0,p=0|ar[A>>2],y=0|ar[Z+(48*m|0)+4>>2],0|(Z=0|ar[Z+(48*m|0)+8>>2])&&bu(Z),ar[p+(g<<3)>>2]=y,g=0|ar[(wA=p+(g<<3)+4|0)>>2],ar[wA>>2]=Z,0|g&&du(g),Z=0|ar[w>>2],m=0|ar[Z+(48*m|0)>>2];)e=e+1|0;p=1,m=0|ar[h>>2]}}while(0);if(0|m){if((0|(g=0|ar[f>>2]))!=(0|m)){for(;ar[f>>2]=g+-48,0|(Z=0|ar[g+-16>>2])&&du(Z),0|(g=0|ar[g+-40>>2])&&du(g),(0|(g=0|ar[f>>2]))!=(0|m););m=0|ar[h>>2]}vu(m)}if(0|(m=0|ar[w>>2])){if((0|(g=0|ar[n>>2]))!=(0|m)){for(;ar[n>>2]=g+-48,0|(Z=0|ar[g+-16>>2])&&du(Z),0|(g=0|ar[g+-40>>2])&&du(g),(0|(g=0|ar[n>>2]))!=(0|m););m=0|ar[w>>2]}vu(m)}if(0|(m=0|ar[mA>>2])){if((0|(g=0|ar[vA>>2]))!=(0|m)){for(;Z=g+-8|0,ar[vA>>2]=Z,(0|(g=(g=0|ar[g+-4>>2])?(du(g),0|ar[vA>>2]):Z))!=(0|m););m=0|ar[mA>>2]}vu(m)}return ur=v,0|(mA=p)}(g,k,h,u),v||du(w),X||du(m),y?function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;ur=(c=ur)+64|0,f=c+48|0,n=c+40|0,t=c+32|0,o=c+8|0,a=c,l=0|ar[(r|=0)>>2],0|(r=u=0|ar[r+4>>2])&&(bu(u),bu(u)),u=0|ar[e>>2],i=0|ar[e+4>>2];A:do{if((0|u)!=(0|i)){for(g=4+t|0,Z=e+12|0,p=16+o|0,y=e+28|0,B=20+o|0,E=e+32|0,v=e+36|0,m=4+n|0,d=l;l=0|ar[u>>2],e=0|ar[12+(0|ar[l>>2])>>2],ar[t>>2]=d,h=r,ar[g>>2]=h,(w=0==(0|r))||bu(h),ar[o>>2]=ar[Z>>2],ar[4+o>>2]=ar[Z+4>>2],ar[8+o>>2]=ar[Z+8>>2],ar[12+o>>2]=ar[Z+12>>2],ar[p>>2]=ar[y>>2],b=0|ar[E>>2],0|(ar[B>>2]=b)&&bu(b),ar[a>>2]=ar[v>>2],ar[f>>2]=ar[a>>2],os[63&e](n,l,t,o,f),l=0|ar[n>>2],k=0|ar[m>>2],ar[n>>2]=0,ar[m>>2]=0,!w&&(du(h),0|(X=0|ar[m>>2]))&&du(X),0|(e=0|ar[B>>2])&&du(e),0|(e=0|ar[g>>2])&&du(e),s=l;){if(r=0|ar[y>>2],(b=0==(0|(e=0|ar[E>>2])))||(bu(e),bu(e)),ar[s+40>>2]=r,r=0|ar[(I=s+44|0)>>2],ar[I>>2]=e,0|r&&du(r),b||du(e),r=0|ar[(e=d)+48>>2],(b=0==(0|(e=0|ar[e+52>>2])))||(bu(e),bu(e)),ar[s+48>>2]=r,r=0|ar[(I=s+52|0)>>2],ar[I>>2]=e,0|r&&du(r),b||du(e),0|k&&bu(k),w||du(h),(0|(u=u+8|0))==(0|i)){r=k,W=34;break A}d=l,r=k}ar[A>>2]=0,ar[A+4>>2]=0,k&&du(k)}else W=34}while(0);34==(0|W)&&(ar[A>>2]=l,ar[A+4>>2]=r),ur=(r&&du(r),c)}(A,g,e):(ar[A>>2]=0,ar[A+4>>2]=0),0|(y=0|ar[f>>2])&&du(y),0|(y=0|ar[g>>2])){if((0|(B=0|ar[n>>2]))!=(0|y)){for(;f=B+-8|0,ar[n>>2]=f,(0|(B=(B=0|ar[B+-4>>2])?(du(B),0|ar[n>>2]):f))!=(0|y););y=0|ar[g>>2]}vu(y)}v||du(w),Co(Z,0|ar[4+Z>>2]),X||du(m),ur=p}function ge(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;switch(gA[(A|=0)>>2]=0,gA[(i=A+4|0)>>2]=0,e<<16>>16){case 13:case 12:switch(r<<16>>16){case 1:f=.30000001192092896,n=.6000000238418579,t=.15000000596046448,o=.05999999865889549,a=.6399999856948853,c=.33000001311302185,l=.3127000033855438,u=.32899999618530273;break;case 4:f=.20999999344348907,n=.7099999785423279,t=.14000000059604645,o=.07999999821186066,a=.6700000166893005,c=.33000001311302185,l=.3100000023841858,u=.3160000145435333;break;case 5:f=.28999999165534973,n=.6000000238418579,t=.15000000596046448,o=.05999999865889549,a=.6399999856948853,c=.33000001311302185,l=.3127000033855438,u=.32899999618530273;break;case 7:case 6:f=.3100000023841858,n=.5950000286102295,t=.1550000011920929,o=.07000000029802322,a=.6299999952316284,c=.3400000035762787,l=.3127000033855438,u=.32899999618530273;break;case 8:f=.24300000071525574,n=.6919999718666077,t=.14499999582767487,o=.04899999871850014,a=.6809999942779541,c=.3190000057220459,l=.3100000023841858,u=.3160000145435333;break;case 9:f=.17000000178813934,n=.796999990940094,t=.13099999725818634,o=.04600000008940697,a=.7080000042915344,c=.2919999957084656,l=.3127000033855438,u=.32899999618530273;break;case 10:a=n=1,c=o=t=f=0,l=.33333298563957214,u=.3333300054073334;break;case 11:f=.26499998569488525,n=.6899999976158142,t=.15000000596046448,o=.05999999865889549,a=.6800000071525574,c=.3199999928474426,l=.3140000104904175,u=.35100001096725464;break;case 12:f=.26499998569488525,n=.6899999976158142,t=.15000000596046448,o=.05999999865889549,a=.6800000071525574,c=.3199999928474426,l=.3127000033855438,u=.32899999618530273;break;case 22:f=.29499998688697815,n=.6050000190734863,t=.1550000011920929,o=.07699999958276749,a=.6299999952316284,c=.3400000035762787,l=.3127000033855438,u=.32899999618530273;break;default:u=l=c=a=o=t=n=f=0}h=1-(u+l),b=u*(t*(k=c*(s=1-(n+f))-(d=1-(c+a))*n)+(f*(o*d-c*(w=1-(o+t)))+a*(v=n*w-o*s))),gA[A>>2]=c*(h*(o*f-t*n)+(l*v+u*(t*s-f*w)))/b,f=o*(h*(a*n-c*f)+(l*k+u*(d*f-a*s)))/b;break;case 1:gA[A>>2]=.2125999927520752,f=.0722000002861023;break;case 4:gA[A>>2]=.30000001192092896,f=.10999999940395355;break;case 6:case 5:gA[A>>2]=.29899999499320984,f=.11400000005960464;break;case 7:gA[A>>2]=.21199999749660492,f=.08699999749660492;break;case 10:case 9:gA[A>>2]=.26269999146461487,f=.059300001710653305;break;default:return}gA[i>>2]=f}function Ze(A){tr[(A|=0)>>0]=1,gA[A+4>>2]=1.4019999504089355,gA[A+8>>2]=-.34413599967956543,gA[A+12>>2]=-.714136004447937,gA[A+16>>2]=1.7719999551773071}function pe(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0;ur=(n=ur)+16|0,t=n,tr[(A|=0)>>0]=0,ar[(i=A+4|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ge(t,e,r),f=+gA[t+4>>2],o=+gA[t>>2],tr[A>>0]=1,o=0!=f|0!=o?(a=1-o,gA[i>>2]=2*a,c=2*(u=1-f),a=2*o*a/(l=o+f+-1),2*f*u/l):(gA[i>>2]=1.4019999504089355,c=1.7719999551773071,a=-.714136004447937,-.34413599967956543),gA[A+8>>2]=o,gA[A+12>>2]=a,gA[A+16>>2]=c,ur=n}function ye(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;for(ur=(t=ur)+16|0,f=t,i=(c=n=(A|=0)+4|(tr[A>>0]=0))+36|0;(0|(c=c+4|(ar[c>>2]=0)))<(0|i););ge(f,e,r),o=+gA[f+4>>2],a=+gA[f>>2],tr[A>>0]=1,0!=o|0!=a?(b=(u=1-(gA[n>>2]=a))-o,l=-o/u*.5,u=(b=-(gA[A+8>>2]=b))/u*.5,b=b/(s=1-o)*.5,a=-a/s*.5):(gA[n>>2]=.29899999499320984,gA[A+8>>2]=.5870000123977661,l=-.08131200075149536,u=-.41868799924850464,b=-.3312639892101288,a=-.16873499751091003,o=.11400000005960464),gA[A+12>>2]=o,gA[A+16>>2]=a,gA[A+20>>2]=b,gA[A+24>>2]=.5,gA[A+28>>2]=.5,gA[A+32>>2]=u,gA[A+36>>2]=l,ur=t}function Be(A){tr[(A|=0)>>0]=1,gA[A+4>>2]=.29899999499320984,gA[A+8>>2]=.5870000123977661,gA[A+12>>2]=.11400000005960464,gA[A+16>>2]=-.16873499751091003,gA[A+20>>2]=-.3312639892101288,gA[A+24>>2]=.5,gA[A+28>>2]=.5,gA[A+32>>2]=-.41868799924850464,gA[A+36>>2]=-.08131200075149536}function Ee(A,e){return 0|function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0;ur=(t=ur)+16|0,n=t,a=548+(A|=0)|0,i=0==(0|ar[(r=A+580|0)>>2]),f=0|tr[a>>0];do{if(i){if(f<<24>>24==0&&0==(0|tr[A+549>>0])){c=8;break}if((0|ar[A+377216>>2])==(0|ar[A+377220>>2]))return ra(A+376148|0),ur=(e&&(ar[e>>2]=ar[A+376200>>2]),t),(c=0)|c;c=7}else c=7}while(0);7==(0|c)&&f<<24>>24==0&&(c=8);if(8==(0|c)&&!(0!=(0|tr[A+549>>0])|1^i))return ur=(e&&(ar[e>>2]=1),t),0|(c=13);if(!(0|Lo(A+376148|0,0)))return ur=(e&&(ar[e>>2]=1),t),0|(c=9);tr[n>>0]=0;do{if(0|ar[r>>2]){if(a=0|ya(a)){o=0|Uo(A,a),tr[n>>0]=1,c=23;break}sr(35126,34700,1314,35130)}else{if(0|tr[A+549>>0]&&(0|ar[A+377216>>2])==(0|ar[A+377220>>2])){if(!e){o=13;break}ar[e>>2]=1,o=13;break}o=0|Yo(A,n),c=23}}while(0);23==(0|c)&&e&&(ar[e>>2]=0==(0|o)&0!=(1&tr[n>>0])&1);return ur=t,0|(c=o)}(A|=0,e|=0)}function Ve(A,e,r,i,f,n){return 0|function(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;ur=(t=ur)+16|0,d=t,0|ar[8+(A|=0)>>2]&&sr(36856,36882,375,36896);tr[A+1>>0]=0,k=0|function(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(n=ur)+16|0,i=n,f=40+(A|=0)|0,(0|(t=0|ar[(s=A+44|0)>>2]))==(0|ar[f>>2])){for(t=0|hu(48),tr[t>>0]=0,tr[t+1>>0]=0,tr[t+2>>0]=0,ar[(a=t+32|0)>>2]=0,ar[(o=t+36|0)>>2]=0,ar[(l=t+40|0)>>2]=0,c=0|hu(64),ar[a>>2]=c,a=c+64|0,ar[l>>2]=a,l=c+64|0;((ar[c>>2]=0)|(c=c+4|0))<(0|l););ar[o>>2]=a,ar[(b=t+8|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[b+16>>2]=0,ar[b+20>>2]=0,b=t}else b=0|ar[(u=t+-4|0)>>2],ar[s>>2]=u;tr[b>>0]=0,tr[b+1>>0]=0,tr[b+2>>0]=0,ar[(l=b+8|0)>>2]=0,ar[l+4>>2]=0,ar[b+16>>2]=0,ar[(l=b+24|0)>>2]=0,t=0|ar[(r=b+32|0)>>2],(0|(o=0|ar[(u=b+36|0)>>2]))!=(0|t)&&(ar[u>>2]=o+(~((o+-4-t|0)>>>2)<<2));if((0|ar[(a=b+28|0)>>2])>=(0|e))return ur=n,0|(s=b);if(0|(c=0|yc(e)))return 0|(o=0|ar[(t=b+20|0)>>2])&&(hb(0|c,0|o,0|ar[l>>2]),Bc(o)),ar[t>>2]=c,ar[a>>2]=e,ur=n,0|(s=b);ar[i>>2]=b,t=b,o=0|ar[s>>2];do{if(o-(0|ar[f>>2])>>2>>>0<16){if((0|o)==(0|ar[A+48>>2])){pa(f,i);break}ar[o>>2]=t,ar[s>>2]=4+(0|ar[s>>2]);break}Bc(0|ar[b+20>>2]),0|(t=0|ar[r>>2])&&((0|(o=0|ar[u>>2]))!=(0|t)&&(ar[u>>2]=o+(~((o+-4-t|0)>>>2)<<2)),vu(t)),vu(b)}while(0);return ur=n,(s=0)|s}(A,r);A:do{if(k){a=k+28|0;do{if((0|ar[a>>2])<(0|r)){if(0|(o=0|yc(r))){0|(l=0|ar[(c=k+20|0)>>2])&&(hb(0|o,0|l,0|ar[k+24>>2]),Bc(l)),ar[c>>2]=o,ar[a>>2]=r;break}if(ar[d>>2]=k,o=k,a=A+40|0,(l=0|ar[(c=A+44|0)>>2])-(0|ar[a>>2])>>2>>>0<16){if((0|l)==(0|ar[A+48>>2])){pa(a,d);break A}ar[l>>2]=o,ar[c>>2]=4+(0|ar[c>>2]);break A}Bc(0|ar[k+20>>2]),0|(o=0|ar[k+32>>2])&&((0|(c=0|ar[(a=k+36|0)>>2]))!=(0|o)&&(ar[a>>2]=c+(~((c+-4-o|0)>>>2)<<2)),vu(o)),vu(k);break A}o=0|ar[k+20>>2]}while(0);hb(0|o,0|e,0|r),ar[(s=k+24|0)>>2]=r,ar[(u=k+8|0)>>2]=i,ar[u+4>>2]=f,ar[k+16>>2]=n;e:do{if(2<(0|r))for(f=k+32|0,n=k+36|0,u=k+40|0,o=0|ar[k+20>>2],i=0,l=r;;){switch((a=0|tr[(e=o+2|0)>>0])<<24>>24){case 0:case 3:0==(0|tr[o>>0])&&a<<24>>24==3&0==(0|tr[(b=o+1|0)>>0])?(c=0|ar[n>>2],a=i+2+(c-(0|ar[f>>2])>>2)|0,ar[d>>2]=a,(0|c)==(0|ar[u>>2])?ga(f,d):(ar[c>>2]=a,ar[n>>2]=c+4),wb(0|e,o+3|0,-3-i+(0|ar[s>>2])|0),a=(0|ar[s>>2])-1|0,ar[s>>2]=a,c=i+1|0,o=b):(c=i,a=l);break;default:c=i+2|0,o=e,a=l}if((a+-2|0)<=(0|(i=c+1|0)))break e;o=o+1|0,l=a}}while(0);return o=0|ar[(e=A+16|0)>>2],d=(0|ar[A+20>>2])-o|0,c=0|ar[(a=A+28|0)>>2],l=0|ar[(i=A+32|0)>>2],(0|(0==(0|d)?0:(d<<8)-1|0))==(l+c|0)?(Ea(A+12|0),c=0|ar[a>>2],a=0|ar[i>>2],o=0|ar[e>>2]):a=l,ar[(0|ar[o+((d=a+c|0)>>>10<<2)>>2])+((1023&d)<<2)>>2]=k,ar[i>>2]=a+1,ar[(k=A+36|0)>>2]=(0|ar[k>>2])+(0|ar[s>>2]),ur=t,(k=0)|k}ar[d>>2]=0}while(0);return ur=t,0|(k=7)}((A|=0)+548|0,e|=0,r|=0,i|=0,f|=0,n|=0)}function Fe(A){var e=0;return(0|ar[(A|=0)+376200>>2])<=0?(e=0)|e:(e=0|ar[A+376196>>2],(e=0|ar[(0|ar[(0|ar[A+376184>>2])+(e>>>10<<2)>>2])+((1023&e)<<2)>>2])?(fa(A+376148|(tr[e+100>>0]=0)),0|e):(e=0)|e)}function Re(A){var e;0|ar[(A|=0)+376200>>2]&&(e=0|ar[A+376196>>2],fa(A+376148|(tr[100+(0|ar[(0|ar[(0|ar[A+376184>>2])+(e>>>10<<2)>>2])+((1023&e)<<2)>>2])>>0]=0)))}function Ne(A,e,r){switch(A|=0,r|=0,0|(e|=0)){case 0:return void(tr[A+512>>0]=0!=(0|r)&1);case 6:return void(tr[A+514>>0]=0!=(0|r)&1);case 7:return void(tr[A+532>>0]=0!=(0|r)&1);case 8:return void(tr[A+533>>0]=0!=(0|r)&1);default:sr(55739,34548,503,34557)}}function _e(A,e){switch(A|=0,0|(e|=0)){case 0:A=A+72|0;break;case 2:case 1:A=A+80|0;break;default:return(e=0)|e}return 0|(e=0|ar[A>>2])}function Ye(A,e){switch(A|=0,0|(e|=0)){case 0:A=A+76|0;break;case 2:case 1:A=A+84|0;break;default:return(e=0)|e}return 0|(e=0|ar[A>>2])}function Qe(A,e){switch(A|=0,0|(e|=0)){case 0:A=A+5760|0;break;case 2:case 1:A=A+5768|0;break;default:return(e=0)|e}return 0|(e=0|ar[A>>2])}function De(A){return 0|ar[(A|=0)+20>>2]}function Je(A,e,r){A|=0,r|=0;var i,f,n=0;if(3<=(e|=0)>>>0&&sr(34582,34548,639,34609),f=0|ar[A+60+(e<<2)>>2],!r)return 0|f;switch(i=0|ar[(0==(0|e)?A+40|0:A+44|0)>>2],0|e){case 0:A=A+5760|0,n=7;break;case 2:case 1:A=A+5768|0,n=7;break;default:A=0}return 7==(0|n)&&(A=(7+(0|ar[A>>2])|0)/8|0),n=0|br(A,i),ar[r>>2]=n,0|f}function Me(A){var e,r=0,i=0,f=0,n=0,t=0,o=0;if(ar[(A|=0)>>2]=7696,(0|(r=0|ar[(n=A+377216|0)>>2]))!=(0|(i=0|ar[(t=A+377220|0)>>2])))for(;(f=0|ar[i+-4>>2])&&(Te(f),vu(f),i=0|ar[t>>2],r=0|ar[n>>2]),i=i+-4|0,(0|r)!=(0|(ar[t>>2]=i)););0|r&&vu(r),function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(n=8+(A|=0)|0,a=0|ar[(t=A+12|0)>>2],o=0|ar[n>>2],(0|a)!=(0|o))for(l=0;(c=0|ar[o+(l<<2)>>2])&&(aa(c),vu(c),o=0|ar[n>>2],a=0|ar[t>>2]),(l=l+1|0)>>>0>2>>>0;);a=0|ar[(i=A+36|0)>>2],o=0|ar[(r=A+48|0)>>2],c=a+(o>>>10<<2)|0,b=0|ar[(f=A+40|0)>>2],o=(0|(l=b))==(0|(e=a))?(b=A+52|(u=0),0):(u=(0|ar[(b=A+52|0)>>2])+o|0,u=(0|ar[a+(u>>>10<<2)>>2])+((1023&u)<<2)|0,(0|ar[c>>2])+((1023&o)<<2)|0);A:for(;;){do{if((0|o)==(0|u))break A;o=o+4|0}while(4096!=(o-(0|ar[c>>2])|0));o=0|ar[(c=o=c+4|0)>>2]}if(ar[b>>2]=0,2<(o=l-e>>2)>>>0)for(;vu(0|ar[a>>2]),a=4+(0|ar[i>>2])|0,ar[i>>2]=a,o=(0|ar[f>>2])-a>>2,2>>0;);switch(0|o){case 1:o=512,s=14;break;case 2:o=1024,s=14}14==(0|s)&&(ar[r>>2]=o);if(o=0|ar[i>>2],a=0|ar[f>>2],(0|o)!=(0|a)){for(;vu(0|ar[o>>2]),(0|(o=o+4|0))!=(0|a););o=0|ar[i>>2],(0|(a=0|ar[f>>2]))!=(0|o)&&(ar[f>>2]=a+(~((a+-4-o|0)>>>2)<<2))}0|(o=0|ar[A+32>>2])&&vu(o);0|(c=0|ar[A+20>>2])&&((0|(a=0|ar[(o=A+24|0)>>2]))!=(0|c)&&(ar[o>>2]=a+(~((a+-4-c|0)>>>2)<<2)),vu(c));if(!(o=0|ar[n>>2]))return;(0|(a=0|ar[t>>2]))!=(0|o)&&(ar[t>>2]=a+(~((a+-4-o|0)>>>2)<<2));vu(o)}(A+376148|0),function(A){var e,r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0;o=0|ar[(f=8+(A|=0)|0)>>2],t=0|ar[(i=A+20|0)>>2],a=o+(t>>>10<<2)|0,l=0|ar[(n=A+12|0)>>2],t=(0|(e=l))==(0|(r=o))?(l=A+24|(c=0),0):(c=(0|ar[(l=A+24|0)>>2])+t|0,c=(0|ar[o+(c>>>10<<2)>>2])+((1023&c)<<2)|0,(0|ar[a>>2])+((1023&t)<<2)|0);A:for(;;){do{if((0|t)==(0|c))break A;t=t+4|0}while(4096!=(t-(0|ar[a>>2])|0));t=0|ar[(a=t=a+4|0)>>2]}if(ar[l>>2]=0,2<(t=e-r>>2)>>>0)for(;vu(0|ar[o>>2]),o=4+(0|ar[f>>2])|0,ar[f>>2]=o,t=(0|ar[n>>2])-o>>2,2>>0;);switch(0|t){case 1:t=512,u=13;break;case 2:t=1024,u=13}13==(0|u)&&(ar[i>>2]=t);if(t=0|ar[f>>2],o=0|ar[n>>2],(0|t)!=(0|o)){for(;vu(0|ar[t>>2]),(0|(t=t+4|0))!=(0|o););t=0|ar[f>>2],(0|(o=0|ar[n>>2]))!=(0|t)&&(ar[n>>2]=o+(~((o+-4-t|0)>>>2)<<2))}if(!(t=0|ar[A+4>>2]))return;vu(t)}(A+375396|0),Ga(A+370984|0),Ga(A+366584|0),Ga(A+362184|0),Ga(A+357784|0),Ga(A+353384|0),Ga(A+348984|0),Ga(A+344584|0),Ga(A+340184|0),Ga(A+335784|0),Ga(A+331384|0),Ga(A+326984|0),Ga(A+322584|0),Ga(A+318184|0),Ga(A+313784|0),Ga(A+309384|0),Ga(A+304984|0),Ga(A+300584|0),Ga(A+296184|0),Ga(A+291784|0),Ga(A+287384|0),Ga(A+282984|0),Ga(A+278584|0),Ga(A+274184|0),Ga(A+269784|0),Ga(A+265384|0),Ga(A+260984|0),Ga(A+256584|0),Ga(A+252184|0),Ga(A+247784|0),Ga(A+243384|0),Ga(A+238984|0),Ga(A+234584|0),Ga(A+230184|0),Ga(A+225784|0),Ga(A+221384|0),Ga(A+216984|0),Ga(A+212584|0),Ga(A+208184|0),Ga(A+203784|0),Ga(A+199384|0),Ga(A+194984|0),Ga(A+190584|0),Ga(A+186184|0),Ga(A+181784|0),Ga(A+177384|0),Ga(A+172984|0),Ga(A+168584|0),Ga(A+164184|0),Ga(A+159784|0),Ga(A+155384|0),Ga(A+150984|0),Ga(A+146584|0),Ga(A+142184|0),Ga(A+137784|0),Ga(A+133384|0),Ga(A+128984|0),Ga(A+124584|0),Ga(A+120184|0),Ga(A+115784|0),Ga(A+111384|0),Ga(A+106984|0),Ga(A+102584|0),Ga(A+98184|0),Ga(A+93784|0),Ac(A+88616|0),Ac(A+83448|0),Ac(A+78280|0),Ac(A+73112|0),Ac(A+67944|0),Ac(A+62776|0),Ac(A+57608|0),Ac(A+52440|0),Ac(A+47272|0),Ac(A+42104|0),Ac(A+36936|0),Ac(A+31768|0),Ac(A+26600|0),Ac(A+21432|0),Ac(A+16264|0),Ac(A+11096|0),e=A+600|0,o=A+11096|0;do{if(0|(r=0|ar[o+-16>>2])&&((0|ar[(i=o+-12|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),0|(r=0|ar[o+-28>>2])&&((0|(f=0|ar[(i=o+-24|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-2-r|0)>>>1)<<1)),vu(r)),0|(r=0|ar[(n=o+-64|0)>>2])){if((0|(i=0|ar[(t=o+-60|0)>>2]))!=(0|r)){for(;i=i+-12|0,ar[t>>2]=i,(f=0|ar[i>>2])&&(vu(f),i=0|ar[t>>2]),(0|i)!=(0|r););r=0|ar[n>>2]}vu(r)}o=o+-656|0}while((0|o)!=(0|e));!function(A){var e,r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;ur=(i=ur)+16|0,e=i,f=0|ar[(r=32+(A|=0)|0)>>2];A:do{if(0|f){c=A+16|0,l=A+28|0,u=A+36|0,b=A+40|0,s=A+44|0,a=A+48|0;do{if(n=0|ar[c>>2],t=0|ar[l>>2],o=0|ar[(0|ar[n+(t>>>10<<2)>>2])+((1023&t)<<2)>>2],ar[r>>2]=f+-1,t=t+1|0,2047<(ar[l>>2]=t)>>>0&&(vu(0|ar[n>>2]),ar[c>>2]=4+(0|ar[c>>2]),ar[l>>2]=(0|ar[l>>2])-1024),ar[u>>2]=(0|ar[u>>2])-(0|ar[o+24>>2]),!o)break A;ar[e>>2]=o,f=o,n=0|ar[s>>2];do{if(n-(0|ar[b>>2])>>2>>>0<16){if((0|n)==(0|ar[a>>2])){pa(b,e);break}ar[n>>2]=f,ar[s>>2]=4+(0|ar[s>>2]);break}Bc(0|ar[o+20>>2]),0|(f=0|ar[o+32>>2])&&((0|(t=0|ar[(n=o+36|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),vu(o)}while(0);f=0|ar[r>>2]}while(0!=(0|f))}}while(0);if(o=0|ar[A+8>>2]){ar[e>>2]=o,f=o,c=A+40|0,n=0|ar[(a=A+44|0)>>2];do{if(n-(0|ar[c>>2])>>2>>>0<16){if((0|n)==(0|ar[A+48>>2])){pa(c,e);break}ar[n>>2]=f,ar[a>>2]=4+(0|ar[a>>2]);break}Bc(0|ar[o+20>>2]),0|(f=0|ar[o+32>>2])&&((0|(t=0|ar[(n=o+36|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),vu(o)}while(0);u=b=a}else b=u=A+44|0,c=A+40|0;if(t=0|ar[u>>2],o=0|ar[c>>2],(0|(f=t))!=(0|(n=o)))for(l=0;(a=0|ar[n+(l<<2)>>2])&&(Bc(0|ar[a+20>>2]),0|(f=0|ar[a+32>>2])&&((0|(t=0|ar[(n=a+36|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),vu(a),f=0|ar[u>>2],o=0|ar[c>>2],t=f),(l=l+1|0)>>>0>2>>>0;);0|n&&((0|f)!=(0|n)&&(ar[b>>2]=f+(~((f+-4-n|0)>>>2)<<2)),vu(n));f=0|ar[(b=A+16|0)>>2],n=0|ar[(u=A+28|0)>>2],o=f+(n>>>10<<2)|0,t=0|ar[(s=A+20|0)>>2],n=(0|(a=t))==(0|(c=f))?l=0:(l=(0|ar[r>>2])+n|0,l=(0|ar[f+(l>>>10<<2)>>2])+((1023&l)<<2)|0,(0|ar[o>>2])+((1023&n)<<2)|0);A:for(;;){do{if((0|n)==(0|l))break A;n=n+4|0}while(4096!=(n-(0|ar[o>>2])|0));n=0|ar[(o=n=o+4|0)>>2]}if(ar[r>>2]=0,2<(n=a-c>>2)>>>0)for(;vu(0|ar[f>>2]),f=4+(0|ar[b>>2])|0,ar[b>>2]=f,t=0|ar[s>>2],n=t-f>>2,2>>0;);switch(0|n){case 1:n=512,d=45;break;case 2:n=1024,d=45}45==(0|d)&&(ar[u>>2]=n);if((0|f)!=(0|t)){for(;vu(0|ar[f>>2]),(0|(f=f+4|0))!=(0|t););f=0|ar[b>>2],(0|(n=0|ar[s>>2]))!=(0|f)&&(ar[s>>2]=n+(~((n+-4-f|0)>>>2)<<2))}(f=0|ar[A+12>>2])&&vu(f),ur=i}(A+548|0)}function Te(A){var e,r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(i=(A|=0)+10632|0,(0|(n=0|ar[(l=A+10636|0)>>2]))!=(0|(f=0|ar[i>>2]))){a=0;do{if(o=0|ar[f+(a<<2)>>2]){if(Ba(548+(0|ar[o+144>>2])|0,0|ar[o>>2]),0|(n=0|ar[o+136>>2])){if(0|(f=0|ar[(t=n+-16|0)+12>>2]))for(f=n+(18624*f|0)|0;kt(f+-44|0),(0|(f=f+-18624|0))!=(0|n););mu(t)}Jn(o+44|0),vu(o),f=0|ar[i>>2],n=0|ar[l>>2]}a=a+1|0}while(a>>>0>2>>>0)}if(e=A+10664|0,(0|(f=0|ar[(r=A+10668|0)>>2]))!=(0|(n=t=0|ar[e>>2])))for(c=0,a=n,o=t;(t=0|ar[a+(c<<2)>>2])?(is[511&ar[4+(0|ar[t>>2])>>2]](t),n=t=0|ar[e>>2],f=0|ar[r>>2]):t=o,!(f-t>>2>>>0<=(c=c+1|0)>>>0);)o=a=t;if(f=0|ar[(o=A+10676|0)>>2]){if((0|(n=0|ar[(t=A+10680|0)>>2]))!=(0|f)){for(;c=n+-8|0,kt(ar[t>>2]=c),(0|(n=0|ar[t>>2]))!=(0|f););f=0|ar[o>>2]}vu(f),f=0|ar[e>>2]}else f=n;0|f&&((0|(n=0|ar[r>>2]))!=(0|f)&&(ar[r>>2]=n+(~((n+-4-f|0)>>>2)<<2)),vu(f)),0|(f=0|ar[A+10644>>2])&&((0|(t=0|ar[(n=A+10648|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(80*~(((t+-80-f|0)>>>0)/80|0)|0)),vu(f)),(f=0|ar[i>>2])&&((0|(n=0|ar[l>>2]))!=(0|f)&&(ar[l>>2]=n+(~((n+-4-f|0)>>>2)<<2)),vu(f)),aa(l=A+8|0)}function Ue(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0;if(0|ar[(i=(A|=0)+136|0)>>2]&&sr(34678,34700,169,34710),n=0|wu(230614>>0|4294967279<(n=18624*e|0)>>>0?-1:n+16|0),ar[n+12>>2]=e,n=n+16|0,!e)return ar[i>>2]=n,void(ar[(n=A+140|0)>>2]=e);for(r=n+(18624*e|0)|0,f=n;st(f+18580|0),o=f+18592|0,t=0==(0|(t=15&(c=f+48|0)))?c:c+(16-t)|0,ar[(a=f+18508|0)>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a+12>>2]=0,ar[a+16>>2]=0,ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,vb((ar[o+16>>2]=0)|(ar[f+2112>>2]=t),0,2048),(0|(f=f+18624|0))!=(0|r););ar[i>>2]=n,ar[(c=A+140|0)>>2]=e}function Se(A,e){A|=0;var r,i=0,f=0,n=0,t=0;vb((e|=0)+48|0,0,2064),ar[e+18532>>2]=-1,ar[e+18536>>2]=-1,r=0|ar[e+18596>>2],(0|(A=0|ar[16+(0|ar[e+18600>>2])>>2]))<=0||(A=(1+((0|(n=0|ar[(0|ar[10284+r>>2])+((0|ar[(0|ar[10272+r>>2])+(A<<2)>>2])-1<<2)>>2]))%(0|(t=0|ar[5820+r>>2]))|0)<<(f=0|ar[5804+r>>2]))-1|0,f=(1+((0|n)/(0|t)|0)<>2])-1|0,n=(0|ar[1252+r>>2])-1|0,A=((0|t)<(0|A)?t:A)>>(i=0|ar[10368+r>>2]),i=((0|n)<(0|f)?n:f)>>i,(0|A)<=-1&&sr(48482,48519,118,48539),(0|(f=0|ar[10372+r>>2]))<=(0|A)&&sr(48482,48519,118,48539),(0|i)<=-1&&sr(48543,48519,119,48539),(0|i)>=(0|ar[10376+r>>2])&&sr(48543,48519,119,48539),t=(0|ar[10360+r>>2])+(3*((0|br(f,i))+A|0)|0)+2|0,ar[e+18528>>2]=tr[t>>0])}function Oe(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function ze(A,e){A|=0,e|=0;var r,i,f,n=0,t=0,o=0;if(ur=(f=ur)+656|0,ar[(n=(r=f)+592|0)>>2]=0,ar[(i=r+596|0)>>2]=0,ar[r+600>>2]=0,ar[(t=r+628|0)>>2]=0,ar[t+4>>2]=0,ar[t+8>>2]=0,ar[t+12>>2]=0,ar[t+16>>2]=0,o=(e=(ar[t+20>>2]=0)|function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(l=0|At(r|=0,4),15<(0|(ar[A>>2]=l)))return 0|(r=8);if(et(r,2),l=0|At(r,6),ar[A+4>>2]=l+1,62<(0|l))return 0|(r=8);if(l=0|At(r,3),ar[(t=A+8|0)>>2]=l+1,6<(0|l))return 0|(r=8);l=0|At(r,1),ar[A+12>>2]=l,et(r,16),Ln(A+16|0,r,0|ar[t>>2]),l=0|At(r,1),ar[(o=A+484|0)>>2]=l,i=0|ar[t>>2],l?0<(0|i)&&(a=0,f=7):(a=i+-1|0,f=7);do{if(7==(0|f)){for(i=a;;){if(n=0|it(r),ar[(l=A+488+(12*i|0)|0)>>2]=n,n=0|it(r),ar[(f=A+488+(12*i|0)+4|0)>>2]=n,n=0|it(r),ar[A+488+(12*i|0)+8>>2]=n,-99999==(0|ar[l>>2])){i=8,f=48;break}if(i=i+1|0,-99999==(0|n)|-99999==(0|ar[f>>2])){i=8,f=48;break}if((0|i)>=(0|ar[t>>2])){f=11;break}}if(11==(0|f)){if(0|ar[o>>2])break;if(8<=(0|a)&&sr(44587,44512,144,44627),(0|a)<=0)break;for(f=A+488+(12*a|0)|0,n=A+488+(12*a|0)+4|0,t=A+488+(12*a|0)+8|0,i=0;ar[A+488+(12*i|0)>>2]=ar[f>>2],ar[A+488+(12*i|0)+4>>2]=ar[n>>2],ar[A+488+(12*i|0)+8>>2]=ar[t>>2],(0|(i=i+1|0))!=(0|a););}else if(48==(0|f))return 0|i}}while(0);if(a=255&(0|At(r,6)),tr[(c=A+584|0)>>0]=a,a=0|it(r),-99999==(0|(ar[(l=A+588|0)>>2]=a))|1023<(t=a+1|0)>>>0)return er(e,8,0),0|(r=8);if(ar[l>>2]=t,a=A+592|0,i=0|ar[(o=A+596|0)>>2],n=0|ar[a>>2],t>>>0<=(f=(i-n|0)/12|0)>>>0){if(t>>>0>>0&&(0|i)!=(0|(u=n+(12*t|0)|0)))for(;i=i+-12|0,ar[o>>2]=i,(f=0|ar[i>>2])&&(vu(f),i=0|ar[o>>2]),(0|i)!=(0|u););}else!function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(t=0|ar[(i=8+(A|=0)|0)>>2],n=0|ar[(u=A+4|0)>>2],((t-(f=n)|0)/12|0)>>>0>=e>>>0)return vb(0|n,0,12*e|0),ar[u>>2]=f+(12*e|0);l=0|ar[A>>2],357913941<(n=(a=(n-(r=l)|0)/12|0)+e|0)>>>0&&zl();o=(c=(t-l|0)/12|0)<<1,o=c>>>0<178956970?o>>>0>>0?n:o:357913941;do{if(o){if(!(357913941>>0)){c=0|hu(12*o|0);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else c=0}while(0);if(n=c+(12*a|0)|0,c=c+(12*o|0)|0,vb(0|(t=n),0,12*e|0),a=n+(12*e|0)|0,(0|f)==(0|r))o=l;else{for(;f=(l=f)+-12|0,ar[n+-12>>2]=ar[f>>2],e=l+-8|0,ar[n+-8>>2]=ar[e>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[f>>2]=0,ar[e>>2]=0,ar[l>>2]=0,t=n=t+-12|0,(0|f)!=(0|r););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=c,(0|f)!=(0|(t=o)))for(;0|(n=0|ar[(f=f+-12|0)>>2])&&vu(n),(0|f)!=(0|t););if(!o)return;vu(o)}(a,t-f|0);if(1<(0|ar[l>>2]))for(f=1,n=0|ar[a>>2],i=0|tr[c>>0];;){for(Kn(n+(12*f|0)|0,1+(255&i)|0,0),n=0;o=0!=(0|At(r,1)),t=0|ar[a>>2],i=(0|ar[t+(12*f|0)>>2])+(n>>>5<<2)|0,u=1<<(31&n),e=0|ar[i>>2],ar[i>>2]=o?e|u:e&~u,i=0|tr[c>>0],(0|n)<(255&i|0);)n=n+1|0;if(!((0|(f=f+1|0))<(0|ar[l>>2])))break;n=t}if(u=255&(0|At(r,1)),(tr[A+604>>0]=u)<<24>>24&&(u=0|At(r,32),ar[A+608>>2]=u,u=0|At(r,32),ar[A+612>>2]=u,u=255&(0|At(r,1)),(tr[A+616>>0]=u)<<24>>24)&&(i=1+(0|it(r))|0,ar[A+620>>2]=i,i=0|it(r),1023<(0|(ar[(e=A+624|0)>>2]=i))&&sr(55739,44512,189,44627),c=A+628|0,o=0|ar[(f=A+632|0)>>2],t=0|ar[c>>2],i>>>0<=(n=o-t>>1)>>>0?i>>>0>>0&&(0|o)!=(0|(b=t+(i<<1)|0))&&(ar[f>>2]=o+(~((o+-2-b|0)>>>1)<<1)):(function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;if(a=0|ar[(t=8+(A|=0)|0)>>2],o=0|ar[(l=A+4|0)>>2],e>>>0<=a-o>>1>>>0)return vb(0|o,0,e<<1|0),ar[l>>2]=o+(e<<1);n=0|ar[A>>2],(0|(o=(i=(f=o-n|0)>>1)+e|0))<0&&zl();a=(a=a-n|0)>>1>>>0<1073741823?a>>>0>>0?o:a:2147483647;do{if(a){if(!((0|a)<0)){c=0|hu(a<<1);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);vb(0|(r=c+(i<<1)|0),0,e<<1|0),o=r+(0-i<<1)|0,0<(0|f)&&hb(0|o,0|n,0|f);if(ar[A>>2]=o,ar[l>>2]=r+(e<<1),ar[t>>2]=c+(a<<1),!n)return;vu(n)}(c,i-n|0),i=0|ar[e>>2]),f=A+640|0,a=0|ar[(n=A+644|0)>>2],o=0|ar[f>>2],i>>>0<=(t=a-o|0)>>>0?i>>>0>>0&&(0|a)!=(0|(s=o+i|0))&&(ar[n>>2]=s):(function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0;if(t=0|ar[(r=8+(A|=0)|0)>>2],f=0|ar[(i=A+4|0)>>2],e>>>0<=(t-f|0)>>>0){for(;tr[f>>0]=0,f=1+(0|ar[i>>2])|0,ar[i>>2]=f,0!=(0|(e=e+-1|0)););return}n=0|ar[A>>2],(0|(f=(o=f-n|0)+e|0))<0&&zl();a=(t=t-n|0)<<1,n=(f=t>>>0<1073741823?a>>>0>>0?f:a:2147483647)?0|hu(f):0;a=n+o|0,o=n+f|0,f=t=a;for(;tr[f>>0]=0,t=f=t+1|0,e=e+-1|0,0!=(0|e););e=0|ar[A>>2],n=(0|ar[i>>2])-e|0,f=a+(0-n)|0,0<(0|n)&&hb(0|f,0|e,0|n);if(ar[A>>2]=f,ar[i>>2]=t,ar[r>>2]=o,!e)return;vu(e)}(f,i-t|0),i=0|ar[e>>2]),0<(0|i)))return r=65535&(0|it(r)),or[ar[c>>2]>>1]=r,(r=0)|r;return r=255&(0|At(r,1)),tr[A+652>>0]=r,(r=0)|r}(r,A+4|0,e))||(-1<(0|(e=0|ar[A+520>>2]))&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;switch(ur=(h=ur)+208|0,I=h+192|0,k=h+184|0,d=h+176|0,W=h+168|0,s=h+160|0,X=h+152|0,b=h+144|0,E=h+128|0,u=h+120|0,B=h+112|0,a=h+104|0,y=h+96|0,f=h+88|0,i=h+80|0,o=h+72|0,t=h+64|0,n=h+56|0,r=h+48|0,p=h+40|0,Z=h+32|0,g=h+24|0,m=h+16|0,v=h+8|0,l=(w=h)+200|0,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=h}if(Pn(c=0|ar[e>>2],44632,w),ar[v>>2]=ar[A>>2],Pn(c,44673,v),ar[m>>2]=ar[A+4>>2],Pn(c,44717,m),v=A+8|0,ar[g>>2]=ar[v>>2],Pn(c,44761,g),ar[Z>>2]=ar[A+12>>2],Pn(c,44805,Z),Z=0|ar[v>>2],$n(A+16|0,1,c),w=Z+-1|0,1<(0|Z))for(e=0;ar[p>>2]=e,Pn(c,44849,p),$n(A+68+(52*e|0)|0,0,c),(0|(e=e+1|0))!=(0|w););if(p=A+484|0,ar[r>>2]=ar[p>>2],Pn(c,44882,r),0|ar[p>>2]){if(0<(0|ar[v>>2]))for(e=0;y=0|ar[A+488+(12*e|0)>>2],ar[n>>2]=e,ar[4+n>>2]=y,Pn(c,44929,n),ar[t>>2]=ar[A+488+(12*e|0)+4>>2],Pn(c,44971,t),ar[o>>2]=ar[A+488+(12*e|0)+8>>2],Pn(c,45012,o),(0|(e=e+1|0))<(0|ar[v>>2]););}else ar[i>>2]=ar[A+488>>2],Pn(c,45053,i),ar[f>>2]=ar[A+492>>2],Pn(c,45098,f),ar[y>>2]=ar[A+496>>2],Pn(c,45143,y);if(Z=A+584|0,ar[a>>2]=cr[Z>>0],Pn(c,45188,a),g=A+588|0,ar[B>>2]=ar[g>>2],Pn(c,45213,B),1<(0|ar[g>>2])){v=A+592|0,m=4+l|0,w=1;do{for(e=0;ar[l>>2]=(0|ar[(0|ar[v>>2])+(12*w|0)>>2])+(e>>>5<<2),ar[m>>2]=1<<(31&e),ar[E>>2]=w,ar[E+4>>2]=e,tr[(B=E+8|0)>>0]=0|tr[l>>0],tr[B+1>>0]=0|tr[1+l>>0],tr[B+2>>0]=0|tr[2+l>>0],tr[B+3>>0]=0|tr[3+l>>0],tr[B+4>>0]=0|tr[4+l>>0],tr[B+5>>0]=0|tr[5+l>>0],tr[B+6>>0]=0|tr[6+l>>0],tr[B+7>>0]=0|tr[7+l>>0],Pn(c,45273,E),(0|e)<(0|cr[Z>>0]);)e=e+1|0;w=w+1|0}while((0|w)<(0|ar[g>>2]))}if(E=A+604|0,ar[u>>2]=tr[E>>0],Pn(c,45238,u),0|tr[E>>0]&&(ar[b>>2]=ar[A+608>>2],Pn(c,45310,b),ar[X>>2]=ar[A+612>>2],Pn(c,45338,X),X=A+616|0,ar[s>>2]=tr[X>>0],Pn(c,45366,s),0|tr[X>>0])&&(ar[W>>2]=ar[A+620>>2],Pn(c,45408,W),W=A+624|0,ar[d>>2]=ar[W>>2],Pn(c,45441,d),0<(0|ar[W>>2])))return I=0|lr[ar[A+628>>2]>>1],ar[k>>2]=0,ar[4+k>>2]=I,Pn(c,45474,k),ur=h;ar[I>>2]=tr[A+652>>0],Pn(c,45502,I),ur=h}(r,e),hb(0|(o=A+600+(656*(e=0|ar[r>>2])|0)|0),0|r,592),(0|o)==(0|r)?(n=r+604|0,ar[(o=A+600+(656*e|0)+604|0)>>2]=ar[n>>2],ar[o+4>>2]=ar[n+4>>2],ar[o+8>>2]=ar[n+8>>2],ar[o+12>>2]=ar[n+12>>2],ar[o+16>>2]=ar[n+16>>2],ar[o+20>>2]=ar[n+20>>2]):(je(A+600+(656*e|0)+592|0,0|ar[n>>2],0|ar[i>>2]),n=r+604|0,ar[(o=A+600+(656*e|0)+604|0)>>2]=ar[n>>2],ar[o+4>>2]=ar[n+4>>2],ar[o+8>>2]=ar[n+8>>2],ar[o+12>>2]=ar[n+12>>2],ar[o+16>>2]=ar[n+16>>2],ar[o+20>>2]=ar[n+20>>2],He(A+600+(656*e|0)+628|0,0|ar[t>>2],0|ar[r+632>>2]),xe(A+600+(656*e|0)+640|0,0|ar[r+640>>2],0|ar[r+644>>2])),tr[A+600+(656*e|0)+652>>0]=0|tr[r+652>>0],0),0|(e=0|ar[r+640>>2])&&((0|ar[(A=r+644|0)>>2])!=(0|e)&&(ar[A>>2]=e),vu(e)),0|(e=0|ar[t>>2])&&((0|(n=0|ar[(A=r+632|0)>>2]))!=(0|e)&&(ar[A>>2]=n+(~((n+-2-e|0)>>>1)<<1)),vu(e)),!(e=0|ar[(t=r+592|0)>>2]))return ur=f,0|o;if((0|(A=0|ar[i>>2]))!=(0|e)){for(;A=A+-12|0,ar[i>>2]=A,(n=0|ar[A>>2])&&(vu(n),A=0|ar[i>>2]),(0|A)!=(0|e););e=0|ar[t>>2]}return vu(e),ur=f,0|o}function je(A,e,r){var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(ur=(c=ur)+32|0,t=c+24|0,n=c+16|0,o=c+8|0,a=c,f=((r|=0)-(e|=0)|0)/12|0,(((u=0|ar[(d=(A|=0)+8|0)>>2])-(l=i=0|ar[A>>2])|0)/12|0)>>>0>>0){if(i){if((0|(u=0|ar[(s=A+4|0)>>2]))==(0|l))u=i;else{for(;u=u+-12|0,ar[s>>2]=u,(b=0|ar[u>>2])&&(vu(b),u=0|ar[s>>2]),(0|u)!=(0|l););u=0|ar[A>>2]}vu(u),ar[d>>2]=0,ar[s>>2]=0,u=ar[A>>2]=0}if(357913941>>0&&zl(),u=(m=(0|u)/12|0)<<1,357913941<(u=m>>>0<178956970?u>>>0>>0?f:u:357913941)>>>0&&zl(),b=0|hu(12*u|0),ar[(m=A+4|0)>>2]=b,ar[A>>2]=b,ar[d>>2]=b+(12*u|0),(0|e)==(0|r))return void(ur=c);for(w=4+o|0,v=a+4|0,h=e;;){if(ar[b>>2]=0,ar[(u=b+4|0)>>2]=0,(ar[(s=b+8|0)>>2]=0)|(k=0|ar[(d=h+4|0)>>2])){if((0|k)<0){u=42;break}Z=0|hu((k=1+((k+-1|0)>>>5)|0)<<2),ar[b>>2]=Z,ar[u>>2]=0,ar[s>>2]=k,s=0|ar[h>>2],ar[o>>2]=s,k=(ar[w>>2]=0)|ar[d>>2],ar[a>>2]=s+(k>>>5<<2),ar[v>>2]=31&k,ar[n>>2]=ar[o>>2],ar[4+n>>2]=ar[4+o>>2],ar[t>>2]=ar[a>>2],ar[4+t>>2]=ar[a+4>>2],Pe(b,n,t)}if(h=h+12|0,u=12+(0|ar[m>>2])|0,ar[m>>2]=u,(0|h)==(0|r)){u=45;break}b=u}if(42==(0|u))zl();else if(45==(0|u))return void(ur=c)}w=(d=((0|ar[(v=A+4|0)>>2])-i|0)/12|0)>>>0>>0,d=e+(12*d|0)|0,h=w?d:r;A:do{if((0|h)==(0|e))g=l;else{for(;;){if((0|l)!=(0|e)){if(u=0|ar[(k=e+4|0)>>2]){if(u>>>0>ar[(s=l+8|0)>>2]<<5>>>0){if((b=0|ar[l>>2])&&(vu(b),ar[l>>2]=0,ar[s>>2]=0,u=(ar[l+4>>2]=0)|ar[k>>2]),(0|u)<0)break;b=0|hu((u=1+((u+-1|0)>>>5)|0)<<2),ar[l>>2]=b,ar[l+4>>2]=0,ar[s>>2]=u,u=0|ar[k>>2]}else b=0|ar[l>>2];wb(0|b,0|ar[e>>2],4+((u+-1|0)>>>5<<2)|0),u=0|ar[k>>2]}else u=0;ar[l+4>>2]=u}if(l=l+12|0,(0|(e=e+12|0))==(0|h)){g=l;break A}}zl()}}while(0);if(w)if((0|h)!=(0|r)){for(k=4+o|0,e=a+4|0,h=0|ar[v>>2];;){if(ar[h>>2]=0,ar[(l=h+4|0)>>2]=0,(ar[(u=h+8|0)>>2]=0)|(s=0|ar[(b=d+4|0)>>2])){if((0|s)<0){u=20;break}Z=0|hu((g=1+((s+-1|0)>>>5)|0)<<2),ar[h>>2]=Z,ar[l>>2]=0,ar[u>>2]=g,g=0|ar[d>>2],ar[o>>2]=g,Z=(ar[k>>2]=0)|ar[b>>2],ar[a>>2]=g+(Z>>>5<<2),ar[e>>2]=31&Z,ar[n>>2]=ar[o>>2],ar[4+n>>2]=ar[4+o>>2],ar[t>>2]=ar[a>>2],ar[4+t>>2]=ar[a+4>>2],Pe(h,n,t)}if(d=d+12|0,l=12+(0|ar[v>>2])|0,ar[v>>2]=l,(0|d)==(0|r)){u=45;break}h=l}if(20==(0|u))zl();else if(45==(0|u))return void(ur=c)}else ur=c;else{if((0|(l=0|ar[v>>2]))==(0|g))return void(ur=c);for(;l=l+-12|0,ar[v>>2]=l,(u=0|ar[l>>2])&&(vu(u),l=0|ar[v>>2]),(0|l)!=(0|g););ur=c}}function He(A,e,r){var i,f,n,t,o=0,a=0,c=0,l=0;if((c=(l=(i=r|=0)-(e|=0)|0)>>1)>>>0<=(o=0|ar[(f=(A|=0)+8|0)>>2])-(n=t=0|ar[A>>2])>>1>>>0)return 0|(r=(o=(a=c=(A=(a=(0|ar[(l=A+4|0)>>2])-t>>1)>>>0>>0)?e+(a<<1)|0:r)-e|0)>>1)&&wb(0|t,0|e,0|o),r=n+(r<<1)|0,A?!((0|(o=i-a|0))<=0)&&(hb(0|ar[l>>2],0|c,0|o),void(ar[l>>2]=(0|ar[l>>2])+(o>>>1<<1))):(0|(o=0|ar[l>>2]))!=(0|r)&&void(ar[l>>2]=o+(~((o+-2-r|0)>>>1)<<1));(a=t)&&((0|(r=0|ar[(o=A+4|0)>>2]))!=(0|n)&&(ar[o>>2]=r+(~((r+-2-t|0)>>>1)<<1)),vu(a),ar[f>>2]=0,ar[o>>2]=0,o=ar[A>>2]=0),(0|l)<0&&zl(),(0|(o=o>>1>>>0<1073741823?o>>>0>>0?c:o:2147483647))<0&&zl(),r=0|hu(o<<1),ar[(a=A+4|0)>>2]=r,ar[A>>2]=r,ar[f>>2]=r+(o<<1),(0|l)<=0||(hb(0|r,0|e,0|l),ar[a>>2]=r+(l>>>1<<1))}function xe(A,e,r){var i,f,n=0,t=0,o=0,a=0,c=0;return f=(c=r|=0)-(i=e|=0)|0,((n=0|ar[(o=(A|=0)+8|0)>>2])-(a=t=0|ar[A>>2])|0)>>>0>>0?(t&&((0|ar[(n=A+4|0)>>2])!=(0|a)&&(ar[n>>2]=a),vu(a),ar[o>>2]=0,ar[n>>2]=0,n=ar[A>>2]=0),(0|f)<0&&zl(),c=n<<1,(0|(n=n>>>0<1073741823?c>>>0>>0?f:c:2147483647))<0&&zl(),a=0|hu(n),ar[(c=A+4|0)>>2]=a,ar[A>>2]=a,ar[o>>2]=a+n,hb(0|a,0|e,0|f),void(ar[c>>2]=a+f)):(0|(n=(t=r=(A=(t=(0|ar[(o=A+4|0)>>2])-t|0)>>>0>>0)?e+t|0:r)-i|0)&&wb(0|a,0|e,0|n),n=a+n|0,A?!((0|(n=c-t|0))<=0)&&(hb(0|ar[o>>2],0|r,0|n),void(ar[o>>2]=(0|ar[o>>2])+n)):(0|ar[o>>2])!=(0|n)&&void(ar[o>>2]=n))}function Pe(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0;if(ur=(u=ur)+48|0,a=u+40|0,o=u+32|0,f=u+8|0,t=(n=u)+24|0,l=u+16|0,h=0|ar[(d=(A|=0)+4|0)>>2],c=0|ar[(b=e)>>2],b=0|ar[b+4>>2],s=0|ar[(k=r)>>2],k=0|ar[k+4>>2],i=s-c<<3,ar[d>>2]=h-b+k+i,e=d=(0|ar[A>>2])+(h>>>5<<2)|0,(0|b)!=(0|(r=31&h)))return ar[(h=f)>>2]=c,ar[h+4>>2]=b,ar[(h=n)>>2]=s,ar[h+4>>2]=k,ar[t>>2]=e,ar[4+t>>2]=r,ar[o>>2]=ar[f>>2],ar[4+o>>2]=ar[4+f>>2],ar[a>>2]=ar[n>>2],ar[4+a>>2]=ar[n+4>>2],function(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;if(d=0|ar[(e|=0)>>2],u=0|ar[e+4>>2],o=((0|ar[r>>2])-d<<3)+(0|ar[r+4>>2])-u|0,r=d,(0|o)<=0)return e=i+4|0,i=0|ar[i>>2],ar[A>>2]=i,i=A+4|0,A=0|ar[e>>2],ar[i>>2]=A;u?(t=-1>>>((t=32-u|0)-(l=(0|o)<(0|t)?o:t)|0)&-1<>2],f=0|ar[(b=i+4|0)>>2],n=(c=32-f|0)>>>0>>0?c:l,a=0|ar[i>>2],f=ar[a>>2]&~(-1>>>(c-n|0)&-1<>2]=f,c=0|ar[b>>2],ar[a>>2]=(u>>>0>>0?t<>>(u-c|0))|f,f=(0|ar[b>>2])+n|0,a=a+(f>>>5<<2)|0,ar[i>>2]=a,f&=31,ar[b>>2]=f,0<(0|(c=l-n|0))&&(ar[a>>2]=t>>>(u+n|0)|ar[a>>2]&~(-1>>>(32-c|0)),ar[b>>2]=c,f=c),r=r+4|0,ar[e>>2]=r,o=o-l|0):f=0|ar[(b=f=i+4|0)>>2];if(d=32-f|0,c=-1<>2],u=(s=(f=o+-32|0)>>>5)+1|0,s=f-(s<<5)|0,f=r,n=0|ar[a>>2],t=a;k=0|ar[f>>2],h=n&l,ar[t>>2]=h,ar[t>>2]=k<>2]|h,n=ar[(t=t+4|0)>>2]&c|k>>>d,ar[t>>2]=n,!((0|(o=o+-32|0))<=31);)f=f+4|0;r=r+(u<<2)|0,ar[e>>2]=r,ar[i>>2]=a+(u<<2),o=s}if((0|o)<=0)return k=b,h=0|ar[i>>2],ar[A>>2]=h,h=A+4|0,k=0|ar[k>>2],ar[h>>2]=k;if(t=ar[r>>2]&-1>>>(32-o|0),n=(0|d)<(0|o)?d:o,f=0|ar[i>>2],r=ar[f>>2]&~(-1<>2]&-1>>>(d-n|0)),ar[f>>2]=r,ar[f>>2]=r|t<>2],r=(0|ar[b>>2])+n|0,f=f+(r>>>5<<2)|0,ar[i>>2]=f,ar[b>>2]=31&r,(0|(r=o-n|0))<=0)return k=b,h=0|ar[i>>2],ar[A>>2]=h,h=A+4|0,k=0|ar[k>>2],ar[h>>2]=k;ar[f>>2]=ar[f>>2]&~(-1>>>(32-r|0))|t>>>n,ar[b>>2]=r,k=b,h=0|ar[i>>2],ar[A>>2]=h,h=A+4|0,k=0|ar[k>>2],ar[h>>2]=k}(l,o,a,t),void(ur=u);r=k-b+i|0,k=c,0<(0|r)&&(e=b?(e=-1>>>((e=32-b|0)-(h=(0|r)<(0|e)?r:e)|0)&-1<>2]=ar[d>>2]&~e|ar[k>>2]&e,r=r-h|0,b=31&(e=h+b|0),d=d+(e>>>5<<2)|0,k=k+4|0):(b=0,c),wb(0|d,0|e,(s=(0|r)/32|0)<<2|0),A=r-(s<<5)|0,e=r=d+(s<<2)|0,0<(0|A)&&(b=-1>>>(32-A|0),ar[r>>2]=ar[r>>2]&~b|ar[k+(s<<2)>>2]&b,b=A)),ar[l>>2]=e,ar[4+l>>2]=b,ur=u}function Le(A,e){A|=0,e|=0;var r,i,f=0;return ur=(i=ur)+5168|0,$a(r=i),0|(e=0|function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(c=255&(0|At(r|=0,4)),tr[A+1>>0]=c,c=1+(0|At(r,3))|0,117440512<((tr[(o=A+2|0)>>0]=c)<<24|0))return 0|(A=8);if(i=255&(0|At(r,1)),tr[A+3>>0]=i,Ln(A+4|0,r,0|tr[o>>0]),-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(15<(0|(ar[A+472>>2]=i)))return 0|(A=8);if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);3==(0|(ar[(f=A+476|0)>>2]=i))?(n=255&(0|At(r,1)),i=0|ar[f>>2]):n=0;if(tr[A+480>>0]=n,ar[A+5012>>2]=n<<24>>24==0?i:0,3>>0)return er(e,1019,0),0|(A=8);if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(f=A+484|0)>>2]=i,-99999==(0|(n=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+488>>2]=n,i=0|ar[f>>2],0==(0|n)|0==(0|i))return 0|(A=8);if(7e4<(0|n)|7e4<(0|i))return 0|(A=8);if(c=255&(0|At(r,1)),(tr[A+492>>0]=c)<<24>>24){if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+496>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+500>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+504>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8)}else ar[A+496>>2]=0,ar[A+500>>2]=0,ar[A+504>>2]=0,i=0;if(ar[A+508>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+512>>2]=i+8,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+516>>2]=i+8,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);a=i+4|0,ar[(c=A+520|0)>>2]=a,ar[A+5032>>2]=1<>0]=a)<<24>>24?(i=0,l=35):(n=0|tr[o>>0],i=(n<<24>>24)-1|0);for(;;){if(35==(0|l)&&(n=0|tr[o>>0]),(0|(f=n<<24>>24))<=(0|i)){l=44;break}if(-99999==(0|(f=0|it(r)))|15<(0|f)){l=38;break}if(ar[A+528+(i<<2)>>2]=f+1,-99999==(0|(f=0|it(r)))){l=40;break}if(ar[(n=A+556+(i<<2)|0)>>2]=f,-99999==(0|(f=0|it(r)))){l=42;break}ar[A+584+(i<<2)>>2]=f,ar[A+5128+(i<<2)>>2]=f+-1+(0|ar[n>>2]),i=i+1|0,l=35}{if(38==(0|l))return er(e,8,0),0|(A=8);if(40==(0|l))return er(e,8,0),0|(A=8);if(42==(0|l))return er(e,8,0),0|(A=8);if(44==(0|l)){if(0|tr[t>>0]&&(i=f+-1|0,8<=n<<24>>24&&sr(41633,41639,317,44627),1>24))for(n=A+528+(i<<2)|0,t=A+556+(i<<2)|0,f=A+584+(i<<2)|0,i=0;ar[A+528+(i<<2)>>2]=ar[n>>2],ar[A+556+(i<<2)>>2]=ar[t>>2],ar[A+584+(i<<2)>>2]=ar[f>>2],(0|(i=i+1|0))<((0|tr[o>>0])-1|0););if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(t=A+612|0)>>2]=i+3,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(o=A+616|0)>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(f=A+620|0)>>2]=i+2,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(n=A+624|0)>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+628>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+632>>2]=i,6<(0|(i=0|ar[t>>2])))return 0|(A=8);if(6<((0|ar[o>>2])+i|0))return 0|(A=8);if(5<(0|(i=0|ar[f>>2])))return 0|(A=8);if(5<((0|ar[n>>2])+i|0))return 0|(A=8);a=255&(0|At(r,1)),tr[A+636>>0]=a;do{if(a<<24>>24){if(a=255&(0|At(r,1)),tr[A+637>>0]=a,i=A+638|0,!(a<<24>>24)){rc(i);break}if(!(i=0|ec(r,0,i,0)))break;return 0|i}}while(0);a=255&(0|At(r,1)),tr[A+4702>>0]=a,a=255&(0|At(r,1)),tr[A+4703>>0]=a,a=255&(0|At(r,1)),tr[A+4704>>0]=a;do{if(a<<24>>24){if(i=1+(0|At(r,4))&255,tr[A+4705>>0]=i,i=1+(0|At(r,4))&255,tr[A+4706>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+4708>>2]=i+3,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);ar[A+4712>>2]=i,i=255&(0|At(r,1));break}tr[A+4705>>0]=0,tr[A+4706>>0]=0,ar[A+4708>>2]=0,ar[A+4712>>2]=0,i=0}while(0);if(tr[A+4716>>0]=i,-99999==(0|(o=0|it(r))))return er(e,8,0),0|(A=8);if(64>>0)return er(e,1014,0),0|(A=8);if(a=A+4720|0,t=0|ar[(n=A+4724|0)>>2],f=0|ar[a>>2],o>>>0<=(i=(t-f|0)/100|0)>>>0){do{if(o>>>0>>0){if((0|t)==(0|(i=f+(100*o|0)|0)))break;ar[n>>2]=t+(100*~(((t+-100-i|0)>>>0)/100|0)|0)}}while(0);0<(0|o)&&(l=87)}else!function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0;if(n=0|ar[(r=8+(A|=0)|0)>>2],i=0|ar[(a=A+4|0)>>2],e>>>0<=((n-i|0)/100|0)>>>0){do{for(f=i+100|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););i=100+(0|ar[a>>2])|0,ar[a>>2]=i,e=e+-1|0}while(0!=(0|e));return}f=0|ar[A>>2],42949672<(i=(t=(i-f|0)/100|0)+e|0)>>>0&&zl();o=(n=(n-f|0)/100|0)<<1,i=n>>>0<21474836?o>>>0>>0?i:o:42949672;do{if(i){if(!(42949672>>0)){f=0|hu(100*i|0);break}Zu(a=0|X(8),44519),ar[a>>2]=17660,I(0|a,4016,428)}else f=0}while(0);o=f+(100*t|0)|0,t=f+(100*i|0)|0,n=i=o;do{for(f=i+100|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););n=i=n+100|0,e=e+-1|0}while(0!=(0|e));e=0|ar[A>>2],f=(0|ar[a>>2])-e|0,i=o+(100*((0|f)/-100|0)|0)|0,0<(0|f)&&hb(0|i,0|e,0|f);if(ar[A>>2]=i,ar[a>>2]=n,ar[r>>2]=t,!e)return;vu(e)}(a,o-i|0),l=87;A:do{if(87==(0|l)){for(i=0;;){if(!(0|Zc(e,A,r,(0|ar[a>>2])+(100*i|0)|0,i,a,0))){i=1005;break}if((0|o)<=(0|(i=i+1|0)))break A}return 0|i}}while(0);l=255&(0|At(r,1)),tr[A+4732>>0]=l;do{if(l<<24>>24){if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(32<(0|(ar[(f=A+4736|0)>>2]=i)))return 0|(A=8);if(!(0<(0|i)))break;for(i=0;l=0|At(r,0|ar[c>>2]),ar[A+4740+(i<<2)>>2]=l,l=255&(0|At(r,1)),tr[A+4868+i>>0]=l,(0|(i=i+1|0))<(0|ar[f>>2]););}else ar[A+4736>>2]=0}while(0);l=255&(0|At(r,1)),tr[A+4900>>0]=l,l=255&(0|At(r,1)),tr[A+4901>>0]=l,l=255&(0|At(r,1)),(tr[A+4902>>0]=l)<<24>>24&&function(A,e,r,i){A|=0,e|=0,i|=0;var f,n,t=0,o=0,a=0,c=0;o=0!=(0|At(r|=0,1)),tr[A>>0]=1&o;do{if(o){if((0|(i=0|At(r,8)))<18){or[A+2>>1]=0|or[17796+(i<<2)>>1],i=0|or[17796+(i<<2)+2>>1];break}if(255==(0|i)){i=65535&(0|At(r,16)),or[A+2>>1]=i,i=65535&(0|At(r,16));break}or[A+2>>1]=0,i=0;break}or[A+2>>1]=0,i=0}while(0);or[A+4>>1]=i,o=0!=(0|At(r,1)),tr[A+6>>0]=1&o,o&&(o=0!=(0|At(r,1))&1,tr[A+7>>0]=o);if(ar[(i=A+12|0)>>2]=5,tr[(t=A+16|0)>>0]=0,tr[(f=A+18|0)>>0]=2,tr[(n=A+19|0)>>0]=2,tr[(o=A+20|0)>>0]=2,c=0!=(0|At(r,1)),tr[A+8>>0]=1&c,c&&(c=0|At(r,3),ar[i>>2]=(0|c)<5?c:5,c=0!=(0|At(r,1))&1,tr[t>>0]=c,c=0!=(0|At(r,1)),tr[A+17>>0]=1&c,c)){switch(i=0|At(r,8),c=255&i,(tr[f>>0]=c)<<24>>24){case 3:case 0:a=14;break;default:10<(255&i)>>>0&&(a=14)}switch(14==(0|a)&&(tr[f>>0]=2),i=0|At(r,8),c=255&i,(tr[n>>0]=c)<<24>>24){case 3:case 0:a=17;break;default:17<(254&i)>>>0&&(a=17)}17==(0|a)&&(tr[n>>0]=2),c=0|At(r,8),tr[o>>0]=9<((255&c)-1|0)>>>0?2:255&c}c=0!=(0|At(r,1)),tr[A+21>>0]=1&c;do{if(c){if(-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(tr[A+22>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;i&=255;break}tr[A+22>>0]=0,i=0}while(0);if(tr[A+23>>0]=i,c=0!=(0|At(r,1))&1,tr[A+24>>0]=c,c=0!=(0|At(r,1))&1,tr[A+25>>0]=c,c=0!=(0|At(r,1))&1,tr[A+26>>0]=c,c=0!=(0|At(r,1)),tr[A+27>>0]=1&c,c){if(-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+28>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+32>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+36>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8}else ar[A+28>>2]=0,ar[A+32>>2]=0,ar[A+36>>2]=0,i=0;ar[A+40>>2]=i,c=0!=(0|At(r,1)),tr[A+44>>0]=1&c,c&&(c=0|At(r,32),ar[A+48>>2]=c,c=0|At(r,32),ar[A+52>>2]=c);if(i=0!=(0|At(r,1))&1,tr[A+56>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+60>>2]=i+1,c=0!=(0|At(r,1)),tr[A+64>>0]=1&c,c)return c=502;c=0!=(0|At(r,1)),tr[A+65>>0]=1&c;do{if(c){if(i=0!=(0|At(r,1))&1,tr[A+66>>0]=i,i=0!=(0|At(r,1))&1,tr[A+67>>0]=i,i=0!=(0|At(r,1))&1,tr[A+68>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(4095<(61440&(or[(t=A+70|0)>>1]=i))>>>0&&(er(e,8,0),or[t>>1]=0),-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(16<(255&(tr[(t=A+72|0)>>0]=i))>>>0&&(er(e,8,0),tr[t>>0]=2),-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(16<(255&(tr[(t=A+73|0)>>0]=i))>>>0&&(er(e,8,0),tr[t>>0]=1),-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(15<(240&(tr[(t=A+74|0)>>0]=i))>>>0&&(er(e,8,0),tr[t>>0]=15),-99999==(0|(t=0|it(r))))return er(e,8,0),c=8;if(15<(240&(tr[(i=A+75|0)>>0]=t))>>>0){er(e,8,0);break}return c=0}tr[A+66>>0]=0,tr[A+67>>0]=1,tr[A+68>>0]=0,or[A+70>>1]=0,tr[A+72>>0]=2,tr[A+73>>0]=1,tr[A+74>>0]=15,i=A+75|0}while(0);tr[i>>0]=15,c=0}(A+4904|0,e,r,A),e=255&(0|At(r,1)),tr[A+4980>>0]=e;do{if(e<<24>>24){if(l=255&(0|At(r,1)),tr[(e=A+4981|0)>>0]=l,l=255&(0|At(r,1)),tr[A+4982>>0]=l,l=255&(0|At(r,6)),tr[A+4983>>0]=l,!(0|tr[e>>0]))break;ic(A+4984|0,0,r)}else tr[A+4981>>0]=0}while(0);return 0|(i=0|function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;s=0|ar[476+(A|=0)>>2],a=0|ar[7988+(s<<2)>>2],ar[A+5016>>2]=a,c=0|ar[8004+(s<<2)>>2],ar[A+5020>>2]=c,d=0==(0|ar[A+5012>>2]),ar[A+5024>>2]=d?1:a,ar[A+5028>>2]=d?1:c,d=0|ar[A+512>>2],ar[A+4996>>2]=d,ar[A+5e3>>2]=(6*d|0)-48,e=0|ar[A+516>>2],ar[A+5004>>2]=e,ar[A+5008>>2]=(6*e|0)-48,r=0|ar[A+612>>2],ar[A+5036>>2]=r,i=(0|ar[A+616>>2])+r|0,ar[A+5040>>2]=i,f=1<>2]=f,o=1<>2]=o,n=0|ar[A+484>>2],b=(f-1+n|0)/(0|f)|0,ar[A+5052>>2]=b,l=(n-1+o|0)/(0|o)|0,ar[A+5056>>2]=l,t=0|ar[A+488>>2],k=((u=t-1|0)+f|0)/(0|f)|0,ar[A+5060>>2]=k,u=(u+o|0)/(0|o)|0,ar[A+5064>>2]=u,b=0|br(k,b),ar[A+5068>>2]=b,b=0|br(u,l),ar[A+5072>>2]=b,b=0|br(t,n),ar[A+5076>>2]=b,o=0!=(0|s)&&0==(0|tr[A+480>>0])?(ar[A+5080>>2]=(0|o)/(0|a)|0,(0|o)/(0|c)|0):(ar[A+5080>>2]=0,0);if(ar[A+5084>>2]=o,b=0|ar[A+620>>2],ar[A+5100>>2]=b,s=(0|ar[A+624>>2])+b|0,ar[A+5104>>2]=s,o=i-b|0,(0|ar[A+628>>2])>(0|o))return 0|(k=8);if((0|ar[A+632>>2])>(0|o))return 0|(k=8);k=r-1|0,ar[A+5108>>2]=k,k=i-k|0,ar[A+5112>>2]=l<>2]=u<>2],ar[A+5120>>2]=k,ar[A+5124>>2]=(0|ar[A+4712>>2])+k,k=l<>2]=k,u<<=o,ar[A+5092>>2]=u,k=0|br(u,k),ar[A+5096>>2]=k,l=0|tr[A+4990>>0]?(a=o=0,c=1<>0]=a,tr[A+5157>>0]=o,ar[A+5160>>2]=l,ar[A+5164>>2]=c,(0|n)%(0|f)|0)return 0|(k=8);if(0!=((0|t)%(0|f)|0)|(0|r)<(0|b))return 0|(k=8);if((0|((0|i)<5?i:5))<(0|s)|8<(d+-8|0)>>>0|8<(e-8|0)>>>0)return 0|(k=8);return tr[A>>0]=1,(k=0)|k}(A))?0|(A=i):(tr[A>>0]=1,(A=0)|A)}}return 0}(r,A+4|0,e))?(A=e,Ac(r),ur=i,0|A):(-1<(0|(e=0|ar[A+516>>2]))&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0;switch(ur=(L=ur)+496|0,P=L+480|0,x=L+472|0,H=L+464|0,j=L+456|0,z=L+448|0,O=L+440|0,S=L+432|0,U=L+424|0,T=L+416|0,M=L+408|0,J=L+400|0,D=L+392|0,bA=L+384|0,Q=L+376|0,Y=L+368|0,_=L+360|0,N=L+344|0,lA=L+336|0,cA=L+328|0,F=L+320|0,V=L+312|0,y=L+304|0,p=L+296|0,Z=L+288|0,g=L+280|0,G=L+272|0,C=L+264|0,aA=L+256|0,I=L+248|0,W=L+240|0,X=L+232|0,h=L+224|0,k=L+216|0,d=L+208|0,s=L+200|0,oA=L+192|0,tA=L+184|0,E=L+176|0,B=L+168|0,m=L+160|0,v=L+152|0,w=L+144|0,nA=L+136|0,b=L+128|0,u=L+120|0,l=L+112|0,c=L+104|0,a=L+96|0,o=L+88|0,t=L+80|0,n=L+72|0,fA=L+64|0,f=L+56|0,i=L+48|0,r=L+40|0,rA=L+32|0,eA=L+24|0,AA=L+16|0,$=L+8|0,q=L,0|(e|=0)){case 1:K=10172;break;case 2:K=10676;break;default:return ur=L}switch(Pn(R=0|ar[K>>2],41865,q),ar[$>>2]=tr[A+1>>0],Pn(R,41906,$),iA=A+2|0,ar[AA>>2]=tr[iA>>0],Pn(R,41936,AA),ar[eA>>2]=tr[A+3>>0],Pn(R,41966,eA),function(A,e,r){e|=0;var i,f,n;{if(ur=(n=ur)+16|0,f=n,$n(A|=0,1,r|=0),i=e+-1|0,!(1<(0|e)))return ur=n;e=0}for(;ar[f>>2]=e,Pn(r,44849,f),$n(A+52+(52*e|0)|0,0,r),e=e+1|0,(0|e)!=(0|i););ur=n}(A+4|0,0|tr[iA>>0],R),ar[rA>>2]=ar[A+472>>2],Pn(R,42001,rA),0|(q=0|ar[(K=A+476|0)>>2])){case 0:$=42045;break;case 1:$=42056;break;case 2:$=42062;break;default:$=3==(0|q)?42031:42037}ar[r>>2]=q,ar[4+r>>2]=$,Pn(R,42068,r),3==(0|ar[K>>2])&&(ar[i>>2]=tr[A+480>>0],Pn(R,42103,i));ar[f>>2]=ar[A+484>>2],Pn(R,42136,f),ar[fA>>2]=ar[A+488>>2],Pn(R,42169,fA),fA=A+492|0,ar[n>>2]=tr[fA>>0],Pn(R,42202,n),0|tr[fA>>0]&&(ar[t>>2]=ar[A+496>>2],Pn(R,42235,t),ar[o>>2]=ar[A+500>>2],Pn(R,42263,o),ar[a>>2]=ar[A+504>>2],Pn(R,42291,a),ar[c>>2]=ar[A+508>>2],Pn(R,42319,c));if(ar[l>>2]=ar[A+512>>2],Pn(R,42347,l),ar[u>>2]=ar[A+516>>2],Pn(R,42370,u),ar[b>>2]=ar[A+520>>2],Pn(R,42393,b),K=A+524|0,ar[nA>>2]=tr[K>>0],Pn(R,42426,nA),nA=0|tr[iA>>0],(0|(K=0==(0|tr[K>>0])?(nA<<24>>24)-1|0:0))<(nA<<24>>24|0))for(;ar[s>>2]=K,Pn(R,42756,s),ar[d>>2]=ar[A+528+(K<<2)>>2],Pn(R,42766,d),ar[k>>2]=ar[A+556+(K<<2)>>2],Pn(R,42805,k),ar[h>>2]=ar[A+584+(K<<2)>>2],Pn(R,42844,h),K=K+1|0,(0|K)<(0|tr[iA>>0]););iA=A+612|0,ar[w>>2]=ar[iA>>2],Pn(R,42473,w),rA=A+616|0,ar[v>>2]=ar[rA>>2],Pn(R,42511,v),eA=A+620|0,ar[m>>2]=ar[eA>>2],Pn(R,42558,m),AA=A+624|0,ar[B>>2]=ar[AA>>2],Pn(R,42596,B),ar[E>>2]=ar[A+628>>2],Pn(R,42641,E),ar[tA>>2]=ar[A+632>>2],Pn(R,42683,tA),tA=A+636|0,ar[oA>>2]=tr[tA>>0],Pn(R,42725,oA),0|tr[tA>>0]&&(oA=A+637|0,ar[X>>2]=tr[oA>>0],Pn(R,42883,X),0|tr[oA>>0])&&Pn(R,42924,W);ar[I>>2]=tr[A+4702>>0],Pn(R,42968,I),ar[aA>>2]=tr[A+4703>>0],Pn(R,43010,aA),aA=A+4704|0,ar[C>>2]=tr[aA>>0],Pn(R,43052,C),0|tr[aA>>0]&&(ar[G>>2]=tr[A+4705>>0],Pn(R,43094,G),ar[g>>2]=tr[A+4706>>0],Pn(R,43130,g),ar[Z>>2]=ar[A+4708>>2],Pn(R,43166,Z),ar[p>>2]=ar[A+4712>>2],Pn(R,43208,p),ar[y>>2]=tr[A+4716>>0],Pn(R,43259,y));if(q=A+4720|0,$=A+4724|0,ar[V>>2]=((0|ar[$>>2])-(0|ar[q>>2])|0)/100|0,Pn(R,43295,V),(0|ar[$>>2])!=(0|ar[q>>2]))for(K=0;ar[cA>>2]=K,Pn(R,43367,cA),pc((0|ar[q>>2])+(100*K|0)|0,16,R),(K=K+1|0)>>>0<(((0|ar[$>>2])-(0|ar[q>>2])|0)/100|0)>>>0;);if(cA=A+4732|0,ar[F>>2]=tr[cA>>0],Pn(R,43329,F),0|tr[cA>>0]&&(uA=A+4736|0,ar[lA>>2]=ar[uA>>2],Pn(R,43388,lA),0<(0|ar[uA>>2])))for(K=0;cA=0|ar[A+4740+(K<<2)>>2],lA=0|tr[A+4868+K>>0],ar[N>>2]=K,ar[4+N>>2]=cA,ar[8+N>>2]=lA,Pn(R,43421,N),(0|(K=K+1|0))<(0|ar[uA>>2]););ar[_>>2]=tr[A+4900>>0],Pn(R,43490,_),ar[Y>>2]=tr[A+4901>>0],Pn(R,43531,Y),K=A+4902|0,ar[Q>>2]=tr[K>>0],Pn(R,43572,Q),ar[bA>>2]=tr[A+4980>>0],Pn(R,43613,bA),bA=A+4981|0,ar[D>>2]=tr[bA>>0],Pn(R,43649,D),ar[J>>2]=tr[A+4982>>0],Pn(R,43685,J),ar[M>>2]=tr[A+4983>>0],Pn(R,43721,M),ar[T>>2]=ar[A+5048>>2],Pn(R,43757,T),ar[U>>2]=ar[A+5044>>2],Pn(R,43776,U),ar[S>>2]=1<<(0|ar[rA>>2])+(0|ar[iA>>2]),Pn(R,43795,S),ar[O>>2]=1<>2],Pn(R,43814,O),ar[z>>2]=1<<(0|ar[AA>>2])+(0|ar[eA>>2]),Pn(R,43833,z),ar[j>>2]=ar[A+5056>>2],Pn(R,43852,j),ar[H>>2]=ar[A+5064>>2],Pn(R,43882,H),ar[x>>2]=ar[A+5016>>2],Pn(R,43912,x),ar[P>>2]=ar[A+5020>>2],Pn(R,43942,P),0|tr[bA>>0]&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b;switch(ur=(b=ur)+80|0,a=b+72|0,o=b+64|0,t=b+56|0,n=b+48|0,f=b+40|0,u=b+32|0,l=b+24|0,c=b+16|0,i=b+8|0,r=b,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=b}Pn(e=0|ar[e>>2],43972,r),ar[i>>2]=cr[A>>0],Pn(e,44029,i),ar[c>>2]=cr[A+1>>0],Pn(e,44075,c),ar[l>>2]=cr[A+2>>0],Pn(e,44121,l),ar[u>>2]=cr[A+3>>0],Pn(e,44167,u),ar[f>>2]=cr[A+4>>0],Pn(e,44213,f),ar[n>>2]=cr[A+5>>0],Pn(e,44259,n),ar[t>>2]=cr[A+6>>0],Pn(e,44305,t),ar[o>>2]=cr[A+7>>0],Pn(e,44351,o),ar[a>>2]=cr[A+8>>0],Pn(e,44397,a),ur=b}(A+4984|0,e);0|tr[K>>0]&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y=0,Q=0,D=0,J=0,M=0;switch(ur=(_=ur)+304|0,a=_+288|0,o=_+280|0,t=_+272|0,N=_+264|0,R=_+256|0,F=_+248|0,V=_+240|0,G=_+232|0,C=_+224|0,M=_+216|0,I=_+208|0,W=_+200|0,X=_+192|0,E=_+184|0,B=_+176|0,J=_+168|0,y=_+160|0,p=_+152|0,Z=_+144|0,g=_+136|0,m=_+128|0,v=_+120|0,w=_+112|0,h=_+104|0,k=_+96|0,d=_+88|0,D=_+80|0,s=_+72|0,b=_+64|0,u=_+56|0,l=_+48|0,c=_+40|0,f=_+32|0,Q=_+24|0,n=_+16|0,i=_+8|0,Y=_,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=_}if(Pn(r=0|ar[e>>2],45969,Y),Y=0|lr[A+4>>1],ar[i>>2]=lr[A+2>>1],ar[4+i>>2]=Y,Pn(r,46010,i),ar[n>>2]=cr[A+6>>0],Pn(r,46046,n),ar[Q>>2]=cr[A+7>>0],Pn(r,46079,Q),Q=A+8|0,ar[f>>2]=cr[Q>>0],Pn(r,46112,f),0|tr[Q>>0]){switch(0|ar[A+12>>2]){case 0:e=45959;break;case 1:e=45955;break;case 2:e=45950;break;case 3:e=45944;break;case 4:e=45940;break;default:e=45928}ar[c>>2]=e,Pn(r,46148,c),ar[l>>2]=cr[A+16>>0],Pn(r,46184,l),ar[u>>2]=cr[A+17>>0],Pn(r,46220,u),ar[b>>2]=cr[A+18>>0],Pn(r,46260,b),ar[s>>2]=cr[A+19>>0],Pn(r,46296,s),ar[D>>2]=cr[A+20>>0],Pn(r,46332,D)}D=A+21|0,ar[d>>2]=cr[D>>0],Pn(r,46368,d),0|tr[D>>0]&&(ar[k>>2]=cr[A+22>>0],Pn(r,46402,k),ar[h>>2]=cr[A+23>>0],Pn(r,46445,h));ar[w>>2]=cr[A+24>>0],Pn(r,46488,w),ar[v>>2]=cr[A+25>>0],Pn(r,46524,v),ar[m>>2]=cr[A+26>>0],Pn(r,46560,m),ar[g>>2]=cr[A+27>>0],Pn(r,46596,g),ar[Z>>2]=ar[A+28>>2],Pn(r,46632,Z),ar[p>>2]=ar[A+32>>2],Pn(r,46668,p),ar[y>>2]=ar[A+36>>2],Pn(r,46704,y),ar[J>>2]=ar[A+40>>2],Pn(r,46740,J),J=A+44|0,ar[B>>2]=cr[J>>0],Pn(r,46776,B),0|tr[J>>0]&&(ar[E>>2]=ar[A+48>>2],Pn(r,46812,E),ar[X>>2]=ar[A+52>>2],Pn(r,46848,X));ar[W>>2]=cr[A+56>>0],Pn(r,46884,W),ar[I>>2]=ar[A+60>>2],Pn(r,46926,I),ar[M>>2]=cr[A+64>>0],Pn(r,46968,M),M=A+65|0,ar[C>>2]=cr[M>>0],Pn(r,47006,C),0|tr[M>>0]&&(ar[G>>2]=cr[A+66>>0],Pn(r,47047,G),ar[V>>2]=cr[A+67>>0],Pn(r,47088,V),ar[F>>2]=cr[A+68>>0],Pn(r,47136,F),ar[R>>2]=lr[A+70>>1],Pn(r,47177,R),ar[N>>2]=cr[A+72>>0],Pn(r,47218,N),ar[t>>2]=cr[A+73>>0],Pn(r,47259,t),ar[o>>2]=cr[A+74>>0],Pn(r,47300,o),ar[a>>2]=cr[A+75>>0],Pn(r,47341,a)),ur=_}(A+4904|0,e),ur=L}(r,e),hb(0|(f=A+11096+(5168*(e=0|ar[r+472>>2])|0)|0),0|r,4717),(0|f)!=(0|r)&&Ke(A+11096+(5168*e|0)+4720|0,0|ar[r+4720>>2],0|ar[r+4724>>2]),hb(A+11096+(5168*e|0)+4732|0,r+4732|0,436),f=0,Ac(r),ur=i,0|f)}function Ke(A,e,r){var i,f,n,t=0,o=0,a=0,c=0,l=0;if((a=(0|(c=(i=r|=0)-(e|=0)|0))/100|0)>>>0<=(((t=0|ar[(f=(A|=0)+8|0)>>2])-(n=l=0|ar[A>>2])|0)/100|0)>>>0)return 0|(t=(o=a=(A=(o=((0|ar[(c=A+4|0)>>2])-l|0)/100|0)>>>0>>0)?e+(100*o|0)|0:r)-e|0)&&wb(0|l,0|e,0|t),r=n+(100*((0|t)/100|0)|0)|0,A?!((0|(t=i-o|0))<=0)&&(hb(0|ar[c>>2],0|a,0|t),void(ar[c>>2]=(0|ar[c>>2])+(100*((t>>>0)/100|0)|0))):(0|(t=0|ar[c>>2]))!=(0|r)&&void(ar[c>>2]=t+(100*~(((t+-100-r|0)>>>0)/100|0)|0));(o=l)&&((0|(r=0|ar[(t=A+4|0)>>2]))!=(0|n)&&(ar[t>>2]=r+(100*~(((r+-100-l|0)>>>0)/100|0)|0)),vu(o),ar[f>>2]=0,ar[t>>2]=0,t=ar[A>>2]=0),42949672>>0&&zl(),t=(l=(0|t)/100|0)<<1,42949672<(t=l>>>0<21474836?t>>>0>>0?a:t:42949672)>>>0&&zl(),r=0|hu(100*t|0),ar[(o=A+4|0)>>2]=r,ar[A>>2]=r,ar[f>>2]=r+(100*t|0),(0|c)<=0||(hb(0|r,0|e,0|c),ar[o>>2]=r+(100*((c>>>0)/100|0)|0))}function qe(A,e){A|=0,e|=0;var r,i,f,n=0;return ur=(f=ur)+4400|0,Ia(i=f),r=0|function(A,e,r){e|=0,r|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(Ca(A|=0,0),u=0|it(e),63<(0|(tr[A+1>>0]=u))|-99999==(0|u))return er(r+4|0,1009,0),(r=0)|r;if(u=0|it(e),63<(0|(tr[(n=A+2|0)>>0]=u))|-99999==(0|u))return er(r+4|0,1010,0),(r=0)|r;if(u=255&(0|At(e,1)),tr[A+3>>0]=u,u=255&(0|At(e,1)),tr[A+31>>0]=u,u=255&(0|At(e,3)),tr[A+4132>>0]=u,u=255&(0|At(e,1)),tr[A+4>>0]=u,u=255&(0|At(e,1)),tr[A+5>>0]=u,u=0|it(e),i=255&u,tr[(f=A+6|0)>>0]=i,-99999==(0|u))return er(r+4|0,1006,0),(r=0)|r;if(tr[f>>0]=i+1<<24>>24,u=0|it(e),i=255&u,tr[(f=A+7|0)>>0]=i,-99999==(0|u))return er(r+4|0,1006,0),(r=0)|r;if(tr[f>>0]=i+1<<24>>24,l=0|tr[n>>0],!(0|tr[(u=r+11096+(5168*l|0)|0)>>0]))return er(r+4|0,1010,0),(r=0)|r;if(i=0|ft(e),-99999==(0|(ar[(f=A+8|0)>>2]=i)))return er(r+4|0,1006,0),(r=0)|r;if(ar[f>>2]=i+26,c=255&(0|At(e,1)),tr[A+12>>0]=c,c=255&(0|At(e,1)),tr[A+13>>0]=c,c=255&(0|At(e,1)),(tr[A+14>>0]=c)<<24>>24){if(c=0|it(e),-99999==(0|(ar[A+16>>2]=c)))return er(r+4|0,1006,0),(r=0)|r}else ar[A+16>>2]=0;if(c=0|ft(e),-99999==(0|(ar[A+20>>2]=c)))return er(r+4|0,1006,0),(r=0)|r;if(c=0|ft(e),-99999==(0|(ar[A+24>>2]=c)))return er(r+4|0,1006,0),(r=0)|r;if(a=255&(0|At(e,1)),tr[A+28>>0]=a,a=255&(0|At(e,1)),tr[A+29>>0]=a,a=255&(0|At(e,1)),tr[A+30>>0]=a,a=255&(0|At(e,1)),tr[A+32>>0]=a,a=255&(0|At(e,1)),tr[(c=A+34|0)>>0]=a,a=255&(0|At(e,1)),tr[A+33>>0]=a,0|tr[c>>0]){if(i=0|it(e),-99999==(0|(ar[(a=A+36|0)>>2]=i))|9<(0|i))return er(r+4|0,1006,0),(r=0)|r;if(ar[a>>2]=i+1,i=0|it(e),-99999==(0|(ar[(c=A+40|0)>>2]=i))|9<(0|i))return er(r+4|0,1006,0),(r=0)|r;ar[c>>2]=i+1,o=0|At(e,1),tr[A+44>>0]=o;do{if(!(255&o)){n=0|ar[r+11096+(5168*l|0)+5056>>2],f=0|ar[r+11096+(5168*l|0)+5064>>2],o=0|ar[a>>2],i=o+-1|0;A:do{if(1<(0|o)){for(o=0;i=0|it(e),-99999!=(0|(ar[(t=A+4172+(o<<2)|0)>>2]=i));)if(i=i+1|0,ar[t>>2]=i,n=n-i|0,o=o+1|0,(0|(i=(0|ar[a>>2])-1|0))<=(0|o))break A;return er(r+4|0,1006,0),(r=0)|r}}while(0);if((0|n)<1)return(r=0)|r;ar[A+4172+(i<<2)>>2]=n,a=0|ar[c>>2],i=a+-1|0;A:do{if(1<(0|a)){for(t=0;i=0|it(e),-99999!=(0|(ar[(n=A+4212+(t<<2)|0)>>2]=i));)if(i=i+1|0,ar[n>>2]=i,f=f-i|0,t=t+1|0,(0|(i=(0|ar[c>>2])-1|0))<=(0|t))break A;return er(r+4|0,1006,0),(r=0)|r}}while(0);if((0|f)<1)return(r=0)|r;ar[A+4212+(i<<2)>>2]=f;break}}while(0);i=255&(0|At(e,1))}else ar[A+36>>2]=1,ar[A+40>>2]=1,tr[A+44>>0]=1,i=0;tr[A+45>>0]=i,ar[(i=A+52|0)>>2]=0,ar[(n=A+56|0)>>2]=0,c=255&(0|At(e,1)),tr[A+46>>0]=c,c=255&(0|At(e,1)),tr[A+47>>0]=c;do{if(c<<24>>24){if(c=255&(0|At(e,1)),tr[A+48>>0]=c,c=255&(0|At(e,1)),!((tr[A+49>>0]=c)<<24>>24)){if(f=0|ft(e),-99999==(0|(ar[i>>2]=f)))return er(r+4|0,1006,0),(r=0)|r;if(ar[i>>2]=f<<1,i=0|ft(e),-99999==(0|(ar[n>>2]=i)))return er(r+4|0,1006,0),(r=0)|r;ar[n>>2]=i<<1;break}}else tr[A+48>>0]=0,tr[A+49>>0]=0}while(0);if(c=0|At(e,1),i=255&c,tr[A+60>>0]=i,0!=(255&c|0)&&0==(0|tr[r+11096+(5168*l|0)+636>>0]))return er(r+4|0,1006,0),(r=0)|r;if(i<<24>>24){if(0|(i=0|ec(e,u,A+61|0,1)))return er(r+4|0,i,0),(r=0)|r}else hb(A+61|0,r+11096+(5168*l|0)+638|0,4064);if(i=255&(0|At(e,1)),tr[A+4125>>0]=i,i=0|it(e),-99999==(0|(ar[(f=A+4128|0)>>2]=i)))return er(r+4|0,1006,0),(r=0)|r;if(ar[f>>2]=i+2,(0|i)>((0|ar[r+11096+(5168*l|0)+612>>2])-2+(0|ar[r+11096+(5168*l|0)+616>>2])|0))return(r=0)|r;return l=255&(0|At(e,1)),tr[A+4133>>0]=l,l=255&(0|At(e,1)),!((tr[A+4134>>0]=l)<<24>>24&&(c=255&(0|At(e,1)),tr[(l=A+4135|0)>>0]=c,c=255&(0|At(e,1)),tr[A+4136>>0]=c,c=255&(0|At(e,6)),tr[A+4137>>0]=c,0|tr[l>>0]))||0|function(A,e,r,i){A|=0,e|=0,r|=0;var f,n=0,t=0,o=0;f=0|tr[2+(i|=0)>>0],0|tr[i+13>>0]&&(t=2+(0|it(e))&255,tr[A>>0]=t);t=0!=(0|At(e,1)),tr[A+1>>0]=1&t,3==(0|ar[(n=r+11096+(5168*f|0)+5012|0)>>2])|1^t||er(r+4|0,1006,0);o=0!=(0|At(e,1)),i=1&o,tr[(t=A+2|0)>>0]=i,0!=(0|ar[n>>2])|1^o||(er(r+4|0,1006,0),i=0|tr[t>>0]);A:do{if(i<<24>>24){if(-99999!=(0|(i=0|it(e)))&&(0|i)<=(0|ar[r+11096+(5168*f|0)+616>>2])){if(tr[A+3>>0]=i,-99999==(0|(i=0|it(e)))|5<(0|i))return er(r+4|0,1006,0),(o=0)|o;if(o=i+1|0,!(255&(tr[(t=A+4|0)>>0]=o)))break;for(n=0;;){if(24<((i=0|ft(e))+12|0)>>>0){i=15;break}if(tr[A+5+n>>0]=i,24<((i=0|ft(e))+12|0)>>>0){i=17;break}if(tr[A+11+n>>0]=i,(0|(n=n+1|0))>=(0|cr[t>>0]))break A}if(15==(0|i))return er(r+4|0,1006,0),(o=0)|o;if(17==(0|i))return er(r+4|0,1006,0),(o=0)|o}return er(r+4|0,1006,0),(o=0)|o}}while(0);if(-99999!=(0|(i=0|it(e)))&&(o=0|ar[r+11096+(5168*f|0)+4996>>2],(0|i)<=(0|((0|o)<10?0:o+-10|0))))return tr[A+17>>0]=i,-99999!=(0|(i=0|it(e)))&&(o=0|ar[r+11096+(5168*f|0)+5004>>2],(0|i)<=(0|((0|o)<10?0:o+-10|0)))?(tr[A+18>>0]=i,0|(o=1)):(er(r+4|0,1006,0),(o=0)|o);return er(r+4|0,1006,0),(o=0)|o}(A+4138|0,e,r,A)?(function(A,e){A|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(t=ur,y=0|ar[(n=5040+(e|=0)|0)>>2],ar[A+4160>>2]=y-(0|ar[A+16>>2]),ar[A+4164>>2]=y-(0|cr[A+4141>>0]),ar[A+4168>>2]=cr[A+4138>>0],y=A+36|0,0|tr[A+44>>0]){if(a=0|ar[y>>2],ur=(l=ur)+(15+(4+(a<<2)|0)&-16)|0,0<=(0|a)){for(c=0|ar[e+5056>>2],o=0;B=(0|br(c,o))/(0|a)|0,ar[l+(o<<2)>>2]=B,(0|o)!=(0|a);)o=o+1|0;if(0<(0|a))for(a=(o=0)|ar[l>>2];p=a,a=0|ar[l+((o=(B=o)+1|0)<<2)>>2],ar[A+4172+(B<<2)>>2]=a-p,(0|o)<(0|ar[y>>2]););}if(a=0|ar[(l=A+40|0)>>2],ur=(u=ur)+(15+(4+(a<<2)|0)&-16)|0,0<=(0|a)){for(c=0|ar[e+5064>>2],o=0;B=(0|br(c,o))/(0|a)|0,ar[u+(o<<2)>>2]=B,(0|o)!=(0|a);)o=o+1|0;if(0<(0|a))for(a=(o=0)|ar[u>>2];p=a,a=0|ar[u+((o=(B=o)+1|0)<<2)>>2],ar[A+4212+(B<<2)>>2]=a-p,(0|o)<(0|ar[l>>2]););}}if(ar[A+4252>>2]=0,0<(0|ar[y>>2]))for(a=o=0;a=(0|ar[A+4172+(o<<2)>>2])+a|0,ar[A+4252+((o=o+1|0)<<2)>>2]=a,(0|o)<(0|ar[y>>2]););if(ar[A+4296>>2]=0,0<(0|ar[(p=A+40|0)>>2]))for(a=o=0;o=(0|ar[A+4212+(a<<2)>>2])+o|0,ar[A+4296+((a=a+1|0)<<2)>>2]=o,(0|a)<(0|ar[p>>2]););B=A+4340|0,a=0|ar[(v=e+5072|0)>>2],u=0|ar[(o=A+4344|0)>>2],l=0|ar[B>>2],a>>>0<=(c=u-l>>2)>>>0?a>>>0>>0&&(0|u)!=(0|(b=l+(a<<2)|0))&&(ar[o>>2]=u+(~((u+-4-b|0)>>>2)<<2)):(Va(B,a-c|0),a=0|ar[v>>2]);w=A+4352|0,l=0|ar[(u=A+4356|0)>>2],c=0|ar[w>>2],a>>>0<=(o=l-c>>2)>>>0?a>>>0>>0&&(0|l)!=(0|(s=c+(a<<2)|0))&&(ar[u>>2]=l+(~((l+-4-s|0)>>>2)<<2)):(Va(w,a-o|0),a=0|ar[v>>2]);i=A+4364|0,u=0|ar[(o=A+4368|0)>>2],l=0|ar[i>>2],a>>>0<=(c=u-l>>2)>>>0?a>>>0>>0&&(0|u)!=(0|(d=l+(a<<2)|0))&&(ar[o>>2]=u+(~((u+-4-d|0)>>>2)<<2)):(Va(i,a-c|0),a=0|ar[v>>2]);r=A+4376|0,u=0|ar[(o=A+4380|0)>>2],l=0|ar[r>>2],a>>>0<=(c=u-l>>2)>>>0?a>>>0>>0&&(0|u)!=(0|(k=l+(a<<2)|0))&&(ar[o>>2]=u+(~((u+-4-k|0)>>>2)<<2)):Va(r,a-c|0);f=A+4388|0,o=0|ar[e+5096>>2],u=0|ar[(a=A+4392|0)>>2],l=0|ar[f>>2],o>>>0<=(c=u-l>>2)>>>0?o>>>0>>0&&(0|u)!=(0|(h=l+(o<<2)|0))&&(ar[a>>2]=u+(~((u+-4-h|0)>>>2)<<2)):Va(f,o-c|0);A:do{if(0<(0|ar[v>>2])){for(d=e+5056|0,s=0;;){if(h=0|ar[d>>2],k=(0|s)%(0|h)|0,h=(0|s)/(0|h)|0,0<(0|(c=0|ar[y>>2])))for(a=0,o=-1;o=(0|k)<(0|ar[A+4252+(a<<2)>>2])?o:a,(0|(a=a+1|0))<(0|c););else o=-1;if(0<(0|(l=0|ar[p>>2])))for(c=0,a=-1;a=(0|h)<(0|ar[A+4296+(c<<2)>>2])?a:c,(0|(c=c+1|0))<(0|l););else a=-1;if(b=(0|ar[B>>2])+(s<<2)|0,(ar[b>>2]=0)<(0|o))for(u=A+4212+(a<<2)|0,c=l=0;c=c+(0|br(0|ar[A+4172+(l<<2)>>2],0|ar[u>>2]))|0,ar[b>>2]=c,(0|(l=l+1|0))!=(0|o););else c=0;if(0<(0|a))for(l=0;c=c+(0|br(0|ar[A+4212+(l<<2)>>2],0|ar[d>>2]))|0,ar[b>>2]=c,(0|(l=l+1|0))!=(0|a););if((a|o|0)<=-1)break;if(Z=c+(0|br(h-(0|ar[A+4296+(a<<2)>>2])|0,0|ar[A+4172+(o<<2)>>2]))|0,ar[b>>2]=Z,Z=k-(0|ar[A+4252+(o<<2)>>2])+Z|0,ar[b>>2]=Z,(0|(s=(ar[(0|ar[w>>2])+(Z<<2)>>2]=s)+1|0))>=(0|ar[v>>2]))break A}sr(37364,37385,618,37392)}}while(0);if(0<(0|(o=0|ar[p>>2]))){Z=e+5056|0,a=(c=l=0)|ar[y>>2];do{if(0<(0|a)){g=A+4296+(c<<2)|0,w=l,o=(v=0)|ar[(m=A+4296+((c=c+1|0)<<2)|0)>>2];do{if(u=0|ar[g>>2],v=(l=v)+1|0,(0|u)<(0|o)){k=A+4252+(l<<2)|0,a=0|ar[(h=A+4252+(v<<2)|0)>>2];do{if((0|(d=0|ar[k>>2]))<(0|a)){for(l=0|ar[B>>2],b=0|ar[i>>2],s=0|ar[r>>2],o=d;a=l+((0|br(0|ar[Z>>2],u))+o<<2)|0,ar[b+(ar[a>>2]<<2)>>2]=w,a=s+((0|br(0|ar[Z>>2],u))+o<<2)|0,ar[a>>2]=w,o=o+1|0,a=0|ar[h>>2],(0|o)<(0|a););o=0|ar[m>>2]}u=u+1|0}while((0|u)<(0|o));a=0|ar[y>>2]}w=w+1|0}while((0|v)<(0|a));l=w,o=0|ar[p>>2]}else c=c+1|0}while((0|c)<(0|o))}if((0|(o=0|ar[(k=e+5092|0)>>2]))<=0)return ur=t;w=e+5100|0,d=e+5056|0,a=0|ar[(h=e+5088|(s=0))>>2];do{if(0<(0|a)){u=0|ar[B>>2],b=0|ar[f>>2],l=0;do{if(e=0|ar[w>>2],A=0|ar[n>>2],y=u+((0|br(0|ar[d>>2],s<>A))+(l<>A)<<2)|0,o=b+((0|br(a,s))+l<<2)|0,ar[o>>2]=ar[y>>2]<<(A-e<<1),o=0|ar[n>>2],(0|(a=0|ar[w>>2]))<(0|o))for(c=o-a|0,o=a=0;o=(0==((e=1<>2],s))+l<<2)|0,ar[a>>2]=(0|ar[a>>2])+o,l=l+1|0,a=0|ar[h>>2]}while((0|l)<(0|a));o=0|ar[k>>2]}s=s+1|0}while((0|s)<(0|o));ur=t}(A,u),tr[A>>0]=1,0|(r=1)):(r=0)|r}(i,e,A),-1<(0|(e=0|ar[A+524>>2]))&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P=0,L=0,K=0,q=0,$=0,AA=0;switch(ur=(x=ur)+400|0,U=x+392|0,T=x+384|0,M=x+376|0,J=x+368|0,D=x+360|0,Q=x+352|0,Y=x+344|0,_=x+336|0,N=x+328|0,R=x+320|0,F=x+312|0,V=x+304|0,G=x+296|0,C=x+288|0,AA=x+280|0,H=x+272|0,j=x+264|0,$=x+256|0,z=x+248|0,O=x+240|0,S=x+232|0,I=x+224|0,W=x+216|0,X=x+208|0,B=x+200|0,y=x+192|0,p=x+184|0,Z=x+176|0,g=x+168|0,v=x+160|0,w=x+152|0,h=x+144|0,k=x+136|0,d=x+128|0,s=x+120|0,b=x+112|0,u=x+104|0,l=x+96|0,c=x+88|0,o=x+80|0,t=x+72|0,n=x+64|0,f=x+56|0,i=x+48|0,r=x+40|0,q=x+32|0,m=x+24|0,a=x+16|0,K=x+8|0,L=x,0|(e|=0)){case 1:P=10172;break;case 2:P=10676;break;default:return ur=x}Pn(E=0|ar[P>>2],37411,L),ar[K>>2]=tr[A+1>>0],Pn(E,37452,K),ar[a>>2]=tr[A+2>>0],Pn(E,37485,a),ar[m>>2]=tr[A+3>>0],Pn(E,37518,m),ar[q>>2]=tr[A+4>>0],Pn(E,37562,q),ar[r>>2]=tr[A+5>>0],Pn(E,37595,r),ar[i>>2]=tr[A+6>>0],Pn(E,37628,i),ar[f>>2]=tr[A+7>>0],Pn(E,37664,f),ar[n>>2]=ar[A+8>>2],Pn(E,37700,n),ar[t>>2]=tr[A+12>>0],Pn(E,37733,t),ar[o>>2]=tr[A+13>>0],Pn(E,37766,o),q=A+14|0,ar[c>>2]=tr[q>>0],Pn(E,37799,c),0|tr[q>>0]&&(ar[l>>2]=ar[A+16>>2],Pn(E,37832,l));if(ar[u>>2]=ar[A+20>>2],Pn(E,37865,u),ar[b>>2]=ar[A+24>>2],Pn(E,37900,b),ar[s>>2]=tr[A+28>>0],Pn(E,37935,s),ar[d>>2]=tr[A+29>>0],Pn(E,37982,d),ar[k>>2]=tr[A+30>>0],Pn(E,38017,k),ar[h>>2]=tr[A+31>>0],Pn(E,38052,h),ar[w>>2]=tr[A+32>>0],Pn(E,38087,w),q=A+34|0,ar[v>>2]=tr[q>>0],Pn(E,38122,v),ar[g>>2]=tr[A+33>>0],Pn(E,38157,g),0|tr[q>>0]){if(L=A+36|0,ar[Z>>2]=ar[L>>2],Pn(E,38195,Z),K=A+40|0,ar[p>>2]=ar[K>>2],Pn(E,38221,p),ar[y>>2]=tr[A+44>>0],Pn(E,38247,y),Pn(E,38273,B),0<=(0|ar[L>>2]))for(P=0;ar[I>>2]=ar[A+4252+(P<<2)>>2],Pn(E,38320,I),(0|P)<(0|ar[L>>2]);)P=P+1|0;if(Pn(E,45728,X),Pn(E,38298,W),0<=(0|ar[K>>2]))for(P=0;ar[z>>2]=ar[A+4296+(P<<2)>>2],Pn(E,38320,z),(0|P)<(0|ar[K>>2]);)P=P+1|0;Pn(E,45728,S),ar[O>>2]=tr[A+45>>0],Pn(E,38325,O)}ar[$>>2]=tr[A+46>>0],Pn(E,38369,$),$=A+47|0,ar[j>>2]=tr[$>>0],Pn(E,38417,j),0|tr[$>>0]&&(ar[H>>2]=tr[A+48>>0],Pn(E,38461,H),ar[AA>>2]=tr[A+49>>0],Pn(E,38506,AA),ar[C>>2]=ar[A+52>>2],Pn(E,38546,C),ar[G>>2]=ar[A+56>>2],Pn(E,38564,G));ar[V>>2]=tr[A+60>>0],Pn(E,38582,V),ar[F>>2]=tr[A+4125>>0],Pn(E,38622,F),ar[R>>2]=ar[A+4128>>2],Pn(E,38659,R),ar[N>>2]=tr[A+4132>>0],Pn(E,38696,N),ar[_>>2]=tr[A+4133>>0],Pn(E,38733,_),ar[Y>>2]=tr[A+4134>>0],Pn(E,38783,Y),AA=A+4135|0,ar[Q>>2]=tr[AA>>0],Pn(E,38819,Q),ar[D>>2]=tr[A+4136>>0],Pn(E,38855,D),ar[J>>2]=tr[A+4137>>0],Pn(E,38891,J),ar[M>>2]=ar[A+4160>>2],Pn(E,38927,M),ar[T>>2]=ar[A+4164>>2],Pn(E,38963,T),ar[U>>2]=ar[A+4168>>2],Pn(E,39004,U),0|tr[AA>>0]&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b=0,s=0,d=0;switch(ur=(u=ur)+80|0,l=u+72|0,c=u+64|0,a=u+56|0,o=u+48|0,n=u+40|0,s=u+32|0,t=u+24|0,b=u+16|0,f=u+8|0,i=u,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=u}if(Pn(r=0|ar[e>>2],36905,i),ar[f>>2]=cr[A>>0],Pn(r,36948,f),ar[b>>2]=cr[A+1>>0],Pn(r,36994,b),b=A+2|0,ar[t>>2]=cr[b>>0],Pn(r,37040,t),0|tr[b>>0]&&(ar[s>>2]=cr[A+3>>0],Pn(r,37086,s),d=A+4|0,ar[n>>2]=cr[d>>0],Pn(r,37132,n),0|tr[d>>0]))for(e=0;s=0|tr[A+5+e>>0],ar[o>>2]=e,ar[4+o>>2]=s,Pn(r,37178,o),s=0|tr[A+11+e>>0],ar[a>>2]=e,ar[4+a>>2]=s,Pn(r,37225,a),(0|(e=e+1|0))<(0|cr[d>>0]););ar[c>>2]=cr[A+17>>0],Pn(r,37272,c),ar[l>>2]=cr[A+18>>0],Pn(r,37318,l),ur=u}(A+4138|0,e),ur=x}(i,e),r?(hb(0|(n=A+93784+(4400*(e=0|tr[i+1>>0])|0)|0),0|i,4340),ur=(n=((0|n)==(0|i)||($e(A+93784+(4400*e|0)+4340|0,0|ar[i+4340>>2],0|ar[i+4344>>2]),$e(A+93784+(4400*e|0)+4352|0,0|ar[i+4352>>2],0|ar[i+4356>>2]),$e(A+93784+(4400*e|0)+4364|0,0|ar[i+4364>>2],0|ar[i+4368>>2]),$e(A+93784+(4400*e|0)+4376|0,0|ar[i+4376>>2],0|ar[i+4380>>2]),$e(A+93784+(4400*e|0)+4388|0,0|ar[i+4388>>2],0|ar[i+4392>>2])),r?0:1006),Ga(i),f),0|n):(A=r?0:1006,Ga(i),ur=f,0|A)}function $e(A,e,r){var i,f,n,t=0,o=0,a=0,c=0,l=0;if((a=(c=(i=r|=0)-(e|=0)|0)>>2)>>>0<=(t=0|ar[(f=(A|=0)+8|0)>>2])-(n=l=0|ar[A>>2])>>2>>>0)return 0|(r=(t=(o=a=(A=(o=(0|ar[(c=A+4|0)>>2])-l>>2)>>>0>>0)?e+(o<<2)|0:r)-e|0)>>2)&&wb(0|l,0|e,0|t),r=n+(r<<2)|0,A?!((0|(t=i-o|0))<=0)&&(hb(0|ar[c>>2],0|a,0|t),void(ar[c>>2]=(0|ar[c>>2])+(t>>>2<<2))):(0|(t=0|ar[c>>2]))!=(0|r)&&void(ar[c>>2]=t+(~((t+-4-r|0)>>>2)<<2));(o=l)&&((0|(r=0|ar[(t=A+4|0)>>2]))!=(0|n)&&(ar[t>>2]=r+(~((r+-4-l|0)>>>2)<<2)),vu(o),ar[f>>2]=0,ar[t>>2]=0,t=ar[A>>2]=0),1073741823>>0&&zl(),l=t>>1,1073741823<(t=t>>2>>>0<536870911?l>>>0>>0?a:l:1073741823)>>>0&&zl(),r=0|hu(t<<2),ar[(o=A+4|0)>>2]=r,ar[A>>2]=r,ar[f>>2]=r+(t<<2),(0|c)<=0||(hb(0|r,0|e,0|c),ar[o>>2]=r+(c>>>2<<2))}function Ar(A,e){e|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0;r=(A|=0)+4|0,i=0|ar[A>>2],53687091<(n=(o=(0|(f=(0|ar[r>>2])-i|0))/80|0)+1|0)>>>0&&zl(),c=(a=((0|ar[(l=A+8|0)>>2])-i|0)/80|0)<<1,n=a>>>0<26843545?c>>>0>>0?n:c:53687091;do{if(n){if(!(53687091>>0)){t=0|hu(80*n|0);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else t=0}while(0);for(a=t+(80*n|0)|0,n=e,t=(o=c=t+(80*o|0)|0)+80|0;ar[o>>2]=ar[n>>2],n=n+4|0,(0|(o=o+4|0))<(0|t););n=c+(80*((0|f)/-80|0)|0)|0,0<(0|f)&&hb(0|n,0|i,0|f),ar[A>>2]=n,ar[r>>2]=c+80,ar[l>>2]=a,i&&vu(i)}function er(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;A:do{if(r){f=0|ar[(i=A+164|0)>>2];do{if(0<(0|f)){for(r=0;;){if((0|ar[A+84+(r<<2)>>2])==(0|e)){r=10;break}if((0|f)<=(0|(r=r+1|0))){r=5;break}}if(5==(0|r)){if((0|f)<20)break;break A}if(10==(0|r))return}}while(0);ar[i>>2]=f+1,ar[A+84+(f<<2)>>2]=e}}while(0);20==(0|(r=0|ar[(i=A+80|0)>>2]))?(e=1001,r=19):ar[i>>2]=r+1,ar[A+(r<<2)>>2]=e}function rr(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(ur=(t=ur)+16|0,f=t+4|0,b=t+8|0,n=t,s=0|hu(1356),o=s,ar[776+(o|=0)>>2]=0,ar[o+780>>2]=0,ar[o+784>>2]=0,st(o+1332|0),ar[o+1344>>2]=0,ar[o+1348>>2]=0,ar[o+1352>>2]=0,La(o),l=0|function(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;tr[(i|=0)>>0]=0,La(A),tr[(l=A+12|0)>>0]=0,w=255&(0|At(e,1)),tr[(c=A+4|0)>>0]=w,0|tr[r+377214>>0]&&(w=255&(0|At(e,1)),tr[A+5>>0]=w);if(w=0|it(e),64<(0|(ar[A+8>>2]=w))|-99999==(0|w))return er(r+4|0,1009,0),(i=0)|i;if(!(0|tr[r+93784+(4400*w|0)>>0]))return er(r+4|0,1009,0),(i=0)|i;if(n=0|tr[r+93784+(4400*w|0)+2>>0],!(0|tr[(u=r+11096+(5168*n|0)|0)>>0]))return er(r+4|0,1010,0),tr[i>>0]=0,(i=0)|i;if(0|tr[c>>0])o=t=0,h=23;else{for(t=0|tr[r+93784+(4400*w|0)+3>>0]?255&(0|At(e,1)):0,tr[l>>0]=t,o=0|ar[r+11096+(5168*n|0)+5072>>2],t=0;(1<>0]){if(!t)return tr[i>>0]=0,er(r+4|0,1021,0),(i=0)|i;if(!(o=0|ar[r+376228>>2]))return 0|(i=16);hb(0|A,0|o,776),(a=(0|o)==(0|A))||$e(A+776|0,0|ar[o+776>>2],0|ar[o+780>>2]),hb(A+788|0,o+788|0,544),gt(A+1332|0,o+1332|0),tr[A+1340>>0]=0|tr[o+1340>>0],a||$e(A+1344|0,0|ar[o+1344>>2],0|ar[o+1348>>2]),tr[c>>0]=0,o=1,h=23}else o=0}23==(0|h)&&(tr[l>>0]=o);if(0<=(0|(ar[(f=A+16|0)>>2]=t))&&(0|t)<(0|ar[r+11096+(5168*n|0)+5072>>2])){if(!(o<<24>>24)){if(0<(0|tr[(o=r+93784+(4400*w|0)+4132|0)>>0]))for(t=0;et(e,1),(0|(t=t+1|0))<(0|tr[o>>0]););if(s=0|it(e),2<(0|(ar[(d=A+20|0)>>2]=s))|-99999==(0|s))return er(r+4|0,1007,0),tr[i>>0]=0,(i=0)|i;if(t=0|tr[r+93784+(4400*w|0)+31>>0]?255&(0|At(e,1)):1,tr[A+24>>0]=t,1==(0|tr[r+11096+(5168*n|0)+480>>0])&&(s=255&(0|At(e,2)),tr[A+25>>0]=s),ar[(t=A+28|0)>>2]=0,(((tr[(o=A+32|0)>>0]=0)|tr[r+377212>>0])-19&255)<2)ar[t>>2]=0,ar[A+140>>2]=0,ar[A+144>>2]=0,t=0;else{b=0|At(e,0|ar[(s=r+11096+(5168*n|0)+520|0)>>2]),ar[t>>2]=b,b=255&(0|At(e,1)),tr[o>>0]=b;do{if(b<<24>>24){for(a=r+11096+(5168*n|0)+4720|0,t=0|ar[(u=r+11096+(5168*n|0)+4724|0)>>2],c=0|ar[a>>2],l=(t-c|0)/100|0,o=0;(1<>2],t=0|ar[u>>2]):(o=c,c=0),(0|(ar[A+136>>2]=c))<((t-o|0)/100|0)){for(ar[A+808>>2]=c,t=o+(100*c|0)|0,o=(a=A+812|0)+100|0;or[a>>1]=0|or[t>>1],t=t+2|0,(0|(a=a+2|0))<(0|o););break}return er(r+4|0,1015,0),0|(i=8)}for(a=r+11096+(5168*n|0)+4720|0,Zc(r+4|0,u,e,t=A+34|0,((0|ar[(o=r+11096+(5168*n|0)+4724|0)>>2])-(0|ar[a>>2])|0)/100|0,a,1),ar[A+808>>2]=((0|ar[o>>2])-(0|ar[a>>2])|0)/100|0,o=(a=A+812|0)+100|0;or[a>>1]=0|or[t>>1],t=t+2|0,(0|(a=a+2|0))<(0|o););}while(0);A:do{if(0|tr[r+11096+(5168*n|0)+4732>>0]){l=r+11096+(5168*n|0)+4736|0;do{if(0<(0|ar[l>>2])){if(b=0|it(e),-99999!=(0|(ar[A+140>>2]=b)))break;return 0|(t=8)}ar[A+140>>2]=0}while(0);if(t=0|it(e),-99999==(0|(ar[(u=A+144|0)>>2]=t)))return 0|(i=8);if(o=0|ar[(b=A+140|0)>>2],((t=o+t|0)+(0|cr[A+908>>0])+(0|cr[A+909>>0])|0)>(0|ar[r+11096+(5168*n|0)+528+((0|tr[r+11096+(5168*n|0)+2>>0])-1<<2)>>2]))return er(r+4|0,1018,0),tr[i>>0]=0,(i=0)|i;if(!(0<(0|t))){t=0;break}for(c=t=0;;){if((0|c)<(0|o)){for(a=0|ar[l>>2],o=0;(1<>0]=a,(0|(a&=255))>=(0|ar[l>>2]))break;ar[r+376232+(c<<2)>>2]=ar[r+11096+(5168*n|0)+4740+(a<<2)>>2],o=(0|cr[o>>0])+(r+11096+(5168*n|0)+4868)|0}else v=0|At(e,0|ar[s>>2]),ar[(a=A+164+(c<<2)|0)>>2]=v,v=255&(0|At(e,1)),tr[(o=A+228+c|0)>>0]=v,ar[r+376232+(c<<2)>>2]=ar[a>>2];if(v=0|tr[o>>0],ar[r+376296+(c<<2)>>2]=v<<24>>24,t=(v<<24>>24!=0&1)+t|0,v=255&(0|At(e,1)),(tr[A+244+c>>0]=v)<<24>>24){if(o=0|it(e),-99999==(0|(ar[A+260+(c<<2)>>2]=o))){t=8,h=189;break}}else ar[A+260+(c<<2)>>2]=0,o=0;do{if(c){if((0|c)==(0|ar[b>>2]))break;o=(0|ar[r+376360+(c+-1<<2)>>2])+o|0}}while(0);if(ar[r+376360+(c<<2)>>2]=o,c=c+1|0,o=0|ar[b>>2],(0|c)>=((0|ar[u>>2])+o|0))break A}return 189==(0|h)?0|t:(er(r+4|0,1023,0),tr[i>>0]=0,(v=0)|v)}ar[A+140>>2]=0,ar[A+144>>2]=0,t=0}while(0);o=0|tr[r+11096+(5168*n|0)+4900>>0]?255&(0|At(e,1)):0,tr[A+324>>0]=o}o=0|tr[r+11096+(5168*n|0)+4703>>0]?(v=255&(0|At(e,1)),tr[A+325>>0]=v,0|ar[r+11096+(5168*n|0)+5012>>2]?255&(0|At(e,1)):0):tr[A+325>>0]=0,tr[(u=A+326|0)>>0]=o,ar[(c=A+328|0)>>2]=0,ar[(l=A+332|0)>>2]=0;do{if((0|ar[d>>2])>>>0<2){v=255&(0|At(e,1)),tr[A+327>>0]=v;do{if(v<<24>>24){if(o=0|it(e),-99999==(0|(ar[c>>2]=o)))return er(r+4|0,1007,0),0|(v=8);if(o=o+1|0,ar[c>>2]=o,0|ar[d>>2])break;if(a=0|it(e),-99999==(0|(ar[l>>2]=a)))return er(r+4|0,1007,0),0|(v=8);o=0|ar[c>>2],a=a+1|0,h=86;break}o=0|tr[r+93784+(4400*w|0)+6>>0],ar[c>>2]=o,a=0|tr[r+93784+(4400*w|0)+7>>0],h=86}while(0);if(86==(0|h)&&(ar[l>>2]=a),16<(0|o))return 0|(v=8);if(16<(0|ar[l>>2]))return 0|(v=8);t=(0|cr[A+911>>0])+t|0,ar[A+912>>2]=t;do{if(1<(0|t)&&0!=(0|tr[r+93784+(4400*w|0)+4125>>0])){for(o=0;(1<>0]=v;do{if(v<<24>>24){if(!(0<(0|ar[c>>2])))break;for(t=0;v=255&(0|At(e,o)),tr[A+338+t>>0]=v,(0|(t=t+1|0))<(0|ar[c>>2]););}}while(0);if(0|ar[d>>2]){tr[A+337>>0]=0;break}if(v=255&(0|At(e,1)),!((tr[A+337>>0]=v)<<24>>24))break;if(!(0<(0|ar[l>>2])))break;for(t=0;v=255&(0|At(e,o)),tr[A+354+t>>0]=v,(0|(t=t+1|0))<(0|ar[l>>2]););}else tr[A+336>>0]=0,tr[A+337>>0]=0}while(0);0|ar[d>>2]||(v=255&(0|At(e,1)),tr[A+370>>0]=v),t=0|tr[r+93784+(4400*w|0)+5>>0]?255&(0|At(e,1)):0,tr[A+371>>0]=t;do{if(0|tr[A+324>>0]){do{if(0|ar[d>>2])tr[(o=A+372|0)>>0]=1,t=1,h=108;else{if(t=255&(0|At(e,1)),(tr[(o=A+372|0)>>0]=t)<<24>>24){h=108;break}h=1<(0|ar[l>>2])?110:(t=0,113)}}while(0);108==(0|h)&&(h=1<(0|ar[c>>2])?110:113);do{if(110==(0|h)){if(a=0|it(e),-99999==(0|(ar[A+376>>2]=a)))return er(r+4|0,1007,0),0|(v=8);t=0|tr[o>>0];break}113==(0|h)&&(ar[A+376>>2]=0,a=0)}while(0);if(t<<24>>24){if((0|a)<(0|ar[c>>2]))break}else if((0|a)<(0|ar[l>>2]))break;return er(r+4|0,8,0),0|(v=8)}}while(0);h=0!=(0|tr[r+93784+(4400*w|0)+29>>0])&&1==(0|ar[d>>2])?122:120;do{if(120==(0|h)){if(!(0|tr[r+93784+(4400*w|0)+30>>0]))break;0|ar[d>>2]||(h=122)}}while(0);do{if(122==(0|h)){if(0|Pa(e,A,r))break;return er(r+4|0,8,0),0|(v=8)}}while(0);if(t=0|it(e),-99999==(0|(ar[A+736>>2]=t)))return er(r+4|0,1007,0),0|(v=8);ar[A+804>>2]=5-t;break}}while(0);if(v=0|ft(e),-99999==(0|(ar[A+740>>2]=v)))return er(r+4|0,1007,0),0|(v=8);do{if(0|tr[r+93784+(4400*w|0)+28>>0]){if(v=0|ft(e),-99999==(0|(ar[A+744>>2]=v)))return er(r+4|0,1007,0),0|(v=8);if(v=0|ft(e),-99999!=(0|(ar[A+748>>2]=v)))break;return er(r+4|0,1007,0),0|(v=8)}ar[A+744>>2]=0,ar[A+748>>2]=0}while(0);0|tr[r+93784+(4400*w|0)+4140>>0]&&(v=255&(0|At(e,1)),tr[A+752>>0]=v),t=0|tr[r+93784+(4400*w|0)+48>>0]?255&(0|At(e,1)):0,tr[A+753>>0]=t,ar[(o=A+756|0)>>2]=ar[r+93784+(4400*w|0)+52>>2],ar[(a=A+760|0)>>2]=ar[r+93784+(4400*w|0)+56>>2];do{if(t<<24>>24){if(v=255&(0|At(e,1)),(tr[A+754>>0]=v)<<24>>24)break;if(t=0|ft(e),-99999==(0|(ar[o>>2]=t)))return er(r+4|0,1007,0),0|(v=8);if(ar[o>>2]=t<<1,t=0|ft(e),-99999==(0|(ar[a>>2]=t)))return er(r+4|0,1007,0),0|(v=8);ar[a>>2]=t<<1;break}tr[A+754>>0]=0|tr[r+93784+(4400*w|0)+49>>0]}while(0);t=0|tr[r+93784+(4400*w|0)+46>>0];A:do{if(t<<24>>24){do{if(!(0|tr[A+325>>0])){if(0|tr[u>>0])break;if(0|tr[A+754>>0])break A}}while(0);t=255&(0|At(e,1))}else t=0}while(0);tr[A+764>>0]=t}0==(0|tr[(o=r+93784+(4400*w|0)+34|0)>>0])&&0==(0|tr[r+93784+(4400*w|0)+33>>0])?ar[A+768>>2]=0:h=155;A:do{if(155==(0|h)){if(t=0|it(e),-99999==(0|(ar[(b=A+768|0)>>2]=t)))return er(r+4|0,1007,0),0|(v=8);if(0|tr[r+93784+(4400*w|0)+33>>0]&&(((0|ar[f>>2])/(0|ar[r+11096+(5168*n|0)+5056>>2])|0)+t|0)>=(0|ar[r+11096+(5168*n|0)+5064>>2]))return er(r+4|0,1007,0),0|(v=8);if(0|tr[o>>0]&&(0|t)>(0|br(0|ar[r+93784+(4400*w|0)+40>>2],0|ar[r+93784+(4400*w|0)+36>>2])))return er(r+4|0,1007,0),0|(v=8);if(u=A+776|0,l=0|ar[(o=A+780|0)>>2],c=0|ar[u>>2],t>>>0<=(a=l-c>>2)>>>0?t>>>0>>0&&(0|l)!=(0|(k=c+(t<<2)|0))&&(ar[o>>2]=l+(~((l+-4-k|0)>>>2)<<2)):(Va(u,t-a|0),t=0|ar[b>>2]),0<(0|t)){if(t=0|it(e),-99999==(0|(ar[(l=A+772|0)>>2]=t)))return er(r+4|0,1007,0),0|(v=8);if(o=t+1|0,ar[l>>2]=o,31<(0|t))return 0|(v=8);if(0<(0|ar[b>>2]))for(t=0;;){if(o=1+(0|At(e,o))|0,a=0|ar[u>>2],ar[(c=a+(t<<2)|0)>>2]=o,0<(0|t)&&(ar[c>>2]=o+(0|ar[a+(t+-1<<2)>>2])),(0|(t=t+1|0))>=(0|ar[b>>2]))break A;o=0|ar[l>>2]}}}}while(0);do{if(0|tr[r+93784+(4400*w|0)+4133>>0]){if(t=0|it(e),-99999==(0|(ar[(o=A+788|0)>>2]=t))|1e3<(0|t))return er(r+4|0,1007,0),0|(v=8);if(!(0<(0|t)))break;for(t=0;At(e,8),(0|(t=t+1|0))<(0|ar[o>>2]););}}while(0);switch(ar[A+792>>2]=(0|ar[A+740>>2])+(0|ar[r+93784+(4400*w|0)+8>>2]),0|ar[A+20>>2]){case 2:t=0,h=187;break;case 1:t=1+(0|tr[A+371>>0])|0,h=187;break;case 0:t=2-(0|tr[A+371>>0])|0,h=187}return 187==(0|h)&&(ar[A+796>>2]=t),ar[A+804>>2]=5-(0|ar[A+736>>2]),tr[i>>0]=1,(v=0)|v}return er(r+4|0,1020,0),0|(v=8)}(s,e,A,b),ar[n>>2]=l,!(0|tr[b>>0]))return 0|(a=0|ar[A+376224>>2])&&(tr[a+10516>>0]=2),Ba(A+548|0,r),0|(a=0|ar[s+1344>>2])&&((0|(c=0|ar[(i=s+1348|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),kt(s+1332|0),0|(a=0|ar[s+776>>2])&&((0|(c=0|ar[(i=s+780|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),vu(s),ur=t,0|(s=l);if(-1<(0|(a=0|ar[A+528>>2]))&&function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0;switch(ur=(D=ur)+448|0,Q=D+432|0,iA=D+424|0,Y=D+416|0,N=D+408|0,R=D+400|0,F=D+392|0,V=D+384|0,rA=D+376|0,I=D+368|0,W=D+360|0,X=D+352|0,E=D+344|0,B=D+328|0,y=D+312|0,p=D+296|0,Z=D+280|0,G=D+264|0,C=D+248|0,eA=D+240|0,m=D+232|0,v=D+224|0,w=D+216|0,h=D+208|0,k=D+200|0,d=D+192|0,$=D+184|0,q=D+176|0,K=D+168|0,L=D+160|0,P=D+152|0,x=D+144|0,b=D+136|0,u=D+128|0,l=D+120|0,c=D+112|0,a=D+104|0,o=D+96|0,H=D+88|0,t=D+80|0,j=D+72|0,n=D+64|0,f=D+56|0,i=D+48|0,U=D+40|0,z=D+32|0,O=D+24|0,S=D+16|0,T=D+8|0,J=D,0|(r|=0)){case 1:r=10172;break;case 2:r=10676;break;default:return ur=D}_=0|ar[r>>2],g=0|ar[(M=A+8|0)>>2],0|tr[e+93784+(4400*g|0)>>0]||sr(39698,39242,1278,39712);s=0|tr[e+93784+(4400*g|0)+2>>0],0|tr[e+11096+(5168*s|0)>>0]||sr(39738,39242,1281,39712);Pn(_,39752,J),r=A+4|0,ar[T>>2]=tr[r>>0],Pn(_,39795,T),(-8&tr[(J=e+377212|0)>>0])<<24>>24==16&&(ar[S>>2]=tr[A+5>>0],Pn(_,39838,S));ar[O>>2]=ar[M>>2],Pn(_,39881,O),0|tr[r>>0]||(ar[z>>2]=tr[A+12>>0],Pn(_,39924,z),ar[U>>2]=ar[A+16>>2],Pn(_,39967,U));z=0|ar[(O=A+20|0)>>2],ar[i>>2]=0==(0|z)?66:1==(0|z)?80:73,Pn(_,40010,i),0|tr[e+93784+(4400*g|0)+31>>0]&&(ar[f>>2]=tr[A+24>>0],Pn(_,40053,f));1==(0|tr[e+11096+(5168*s|0)+480>>0])&&(ar[n>>2]=tr[A+25>>0],Pn(_,40096,n));ar[j>>2]=ar[A+28>>2],Pn(_,40139,j),2<=((0|tr[J>>0])-19&255)&&(j=A+32|0,ar[t>>2]=tr[j>>0],Pn(_,40182,t),r=e+11096+(5168*s|0)+4720|0,J=(0|ar[e+11096+(5168*s|0)+4724>>2])-(0|ar[r>>2])|0,0|tr[j>>0]?100<(0|J)&&(H=A+136|0,ar[o>>2]=ar[H>>2],Pn(_,40225,o),pc((0|ar[r>>2])+(100*(0|ar[H>>2])|0)|0,16,_)):(ar[H>>2]=(0|J)/100|0,Pn(_,43367,H),pc(A+34|0,16,_)),0|tr[e+11096+(5168*s|0)+4732>>0]&&(0<(0|ar[e+11096+(5168*s|0)+4736>>2])&&(ar[a>>2]=ar[A+140>>2],Pn(_,40268,a)),ar[c>>2]=ar[A+144>>2],Pn(_,40315,c)),0|tr[e+11096+(5168*s|0)+4900>>0]&&(ar[l>>2]=tr[A+324>>0],Pn(_,40362,l)));0|tr[e+11096+(5168*s|0)+4703>>0]&&(ar[u>>2]=tr[A+325>>0],Pn(_,40400,u),ar[b>>2]=tr[A+326>>0],Pn(_,40438,b));if((0|ar[O>>2])>>>0<2){if(r=A+327|0,ar[x>>2]=tr[r>>0],Pn(_,40476,x),S=A+328|0,x=0|tr[r>>0]?79659:40515,ar[P>>2]=ar[S>>2],ar[P+4>>2]=x,Pn(_,40526,P),0|ar[O>>2]||(P=0|tr[r>>0]?79659:40515,ar[L>>2]=ar[A+332>>2],ar[L+4>>2]=P,Pn(_,40566,L)),0|tr[e+93784+(4400*g|0)+4125>>0]&&1<(0|ar[A+912>>2])){if(L=A+336|0,ar[K>>2]=tr[L>>0],Pn(_,40606,K),0|tr[L>>0]&&0<(0|ar[S>>2]))for(r=0;K=0|cr[A+338+r>>0],ar[q>>2]=r,ar[q+4>>2]=K,Pn(_,40646,q),(0|(r=r+1|0))<(0|ar[S>>2]););if(q=A+337|0,ar[$>>2]=tr[q>>0],Pn(_,40656,$),0|tr[q>>0]&&0<(0|ar[(AA=A+332|0)>>2]))for(r=0;$=0|cr[A+354+r>>0],ar[d>>2]=r,ar[4+d>>2]=$,Pn(_,40646,d),(0|(r=r+1|0))<(0|ar[AA>>2]););}0|ar[O>>2]||(ar[k>>2]=tr[A+370>>0],Pn(_,40696,k)),ar[h>>2]=tr[A+371>>0],Pn(_,40733,h),0|tr[A+324>>0]&&(ar[w>>2]=tr[A+372>>0],Pn(_,40770,w),ar[v>>2]=ar[A+376>>2],Pn(_,40807,v)),45==(0|(U=0!=(0|tr[e+93784+(4400*g|0)+29>>0])&&1==(0|ar[O>>2])?47:45))&&0|tr[e+93784+(4400*g|0)+30>>0]&&0==(0|ar[O>>2])&&(U=47);A:do{if(47==(0|U)){ar[m>>2]=cr[A+380>>0],Pn(_,40844,m),0|ar[e+11096+(5168*s|0)+476>>2]&&(ar[eA>>2]=cr[A+381>>0],Pn(_,40881,eA)),T=A+332|0,M=0;do{r=0==(0|M);do{if(r)U=53;else{if(1!=(0|M))break;if(0|ar[O>>2])break A;U=53}}while(0);do{if(53==(0|U)){if(!((U=0)<(0|(J=0|ar[(r?S:T)>>2]))))break;for(r=0;eA=0|or[A+446+(M<<5)+(r<<1)>>1],ar[C>>2]=M,ar[4+C>>2]=r,ar[8+C>>2]=eA,Pn(_,40918,C),eA=0|tr[A+510+(M<<4)+r>>0],ar[G>>2]=M,ar[4+G>>2]=r,ar[8+G>>2]=eA,Pn(_,40955,G),eA=0|or[A+542+(M<<6)+(r<<2)>>1],ar[Z>>2]=M,ar[4+Z>>2]=r,ar[8+Z>>2]=0,ar[12+Z>>2]=eA,Pn(_,40992,Z),eA=0|tr[A+670+(M<<5)+(r<<1)>>0],ar[p>>2]=M,ar[4+p>>2]=r,ar[8+p>>2]=0,ar[12+p>>2]=eA,Pn(_,41030,p),eA=0|or[A+542+(M<<6)+(r<<2)+2>>1],ar[y>>2]=M,ar[4+y>>2]=r,ar[8+y>>2]=1,ar[12+y>>2]=eA,Pn(_,40992,y),eA=0|tr[A+670+(M<<5)+(r<<1)+1>>0],ar[B>>2]=M,ar[4+B>>2]=r,ar[8+B>>2]=1,ar[12+B>>2]=eA,Pn(_,41030,B),(0|(r=r+1|0))!=(0|J););}}while(0);M=M+1|0}while(2!=(0|M))}}while(0);ar[E>>2]=ar[A+736>>2],Pn(_,41068,E)}ar[X>>2]=ar[A+740>>2],Pn(_,41105,X),0|tr[e+93784+(4400*g|0)+28>>0]&&(ar[W>>2]=ar[A+744>>2],Pn(_,41134,W),ar[I>>2]=ar[A+748>>2],Pn(_,41163,I));J=A+753|0,0|tr[e+93784+(4400*g|0)+48>>0]&&(ar[rA>>2]=tr[J>>0],Pn(_,41192,rA));r=A+754|0,rA=0|tr[J>>0]?41230:41241,ar[V>>2]=tr[r>>0],ar[4+V>>2]=rA,Pn(_,41252,V),0|tr[J>>0]&&0==(0|tr[r>>0])&&(ar[F>>2]=ar[A+756>>2],Pn(_,41299,F),ar[R>>2]=ar[A+760>>2],Pn(_,41324,R));do{if(0|tr[e+93784+(4400*g|0)+46>>0]){if(0==(0|tr[A+325>>0])&&0==(0|tr[A+326>>0])&&0|tr[r>>0])break;ar[N>>2]=tr[A+764>>0],Pn(_,41349,N)}}while(0);if(0==(0|tr[e+93784+(4400*g|0)+34>>0])&&0==(0|tr[e+93784+(4400*g|0)+33>>0]))return ur=D;if(M=A+768|0,ar[Y>>2]=ar[M>>2],Pn(_,41400,Y),(0|ar[M>>2])<=0)return ur=D;if(ar[iA>>2]=ar[A+772>>2],Pn(_,41433,iA),(0|ar[M>>2])<=0)return ur=D;J=A+776|0,r=0;for(;iA=0|ar[(0|ar[J>>2])+(r<<2)>>2],ar[Q>>2]=r,ar[4+Q>>2]=iA,Pn(_,41466,Q),r=r+1|0,(0|r)<(0|ar[M>>2]););ur=D}(s,A,a),u=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l=0,u=0,b=0,s=0,d=0;ur=(c=ur)+16|0,l=c,ar[(i|=0)>>2]=0,tr[A+377228>>0]=0,u=0|ar[r+8>>2],0|tr[(b=e+93784+(4400*u|0)|0)>>0]||(ar[l>>2]=u,function(A,e,r){A|=0,e|=0,r|=0;var i,f,n;if(ur=(n=ur)+16|0,i=n,!(-9999<=(0|ar[14391])&!0))return ur=n;f=42==(0|tr[e>>0]),A=0|ar[2543],f||Ui(44499,5,1,A);ar[i>>2]=r,Qc(A,e+(1&f)|0,i),Oi(A),ur=n}(1,34889,l),sr(55739,34700,1987,34915));if(ar[(s=e+375392|0)>>2]=b,d=0|tr[e+93784+(4400*u|0)+2>>0],ar[(l=e+375388|0)>>2]=e+11096+(5168*d|0),ar[(a=e+375384|0)>>2]=e+600+(656*(0|tr[e+11096+(5168*d|0)+1>>0])|0),function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0;r=0|ar[375388+(A|=0)>>2],e=(i=0==(0|r))?(e=0|ar[A+375384>>2])?(0|ar[e+8>>2])-1|0:6:(0|tr[r+2>>0])-1|0;do{if((0|tr[A+376116>>0])!=(0|e)){if(i?(e=0|ar[A+375384>>2])?(e=0|ar[e+8>>2],f=10):e=6:(e=0|tr[r+2>>0],f=10),10==(0|f)){if(!(0<(0|e)))break;e=e+-1|0}for(t=e+1|0,o=A+375896|0;;){if((0|(i=(0|(n=100*e|0))/(0|t)|0))<=(0|(n=(n+100|0)/(0|t)|0)))for(f=n-i|0,r=i;c=0|ar[o>>2],e=(a=(0|c)<(0|e))?c:e,tr[A+375916+(r<<1)>>0]=e,tr[A+375916+(r<<1)+1>>0]=a?100:255&((100*(r-i|0)|0)/(0|f)|0),(0|r)<(0|n);)r=r+1|0;if(ar[A+376120+(e<<2)>>2]=n,!(0<(0|e)))break;e=e+-1|0}}}while(0);a=0|ar[A+375900>>2],c=0|tr[A+375916+(a<<1)>>0],ar[A+375904>>2]=c,ar[A+375908>>2]=tr[A+375916+(a<<1)+1>>0],ar[A+375912>>2]=c}(A),0|tr[(d=r+4|0)>>0]){if(ar[e+376204>>2]=ar[r+28>>2],l=0|ar[l>>2],u=0|tr[l+4703>>0]?0!=(0|tr[e+533>>0]):1,-1==(0|(u=0|ia(e+376148|0,l,A,f,n,o,u))))return ar[i>>2]=9,ur=c,(r=0)|r;l=0|ar[e+376156>>2],u=(0|ar[e+376160>>2])-l>>2>>>0>u>>>0?0|ar[l+(u<<2)>>2]:0,tr[(b=u+10518|0)>>0]=0|tr[t>>0],tr[b+1>>0]=0|tr[t+1>>0],tr[b+2>>0]=0|tr[t+2>>0],ar[(b=e+376224|0)>>2]=u,l=0|ar[a>>2],hb(0|(t=u+108|0),0|l,592),(0|t)==(0|l)?(i=l+604|0,ar[(t=u+712|0)>>2]=ar[i>>2],ar[t+4>>2]=ar[i+4>>2],ar[t+8>>2]=ar[i+8>>2],ar[t+12>>2]=ar[i+12>>2],ar[t+16>>2]=ar[i+16>>2],ar[t+20>>2]=ar[i+20>>2]):(je(u+700|0,0|ar[l+592>>2],0|ar[l+596>>2]),i=l+604|0,ar[(t=u+712|0)>>2]=ar[i>>2],ar[t+4>>2]=ar[i+4>>2],ar[t+8>>2]=ar[i+8>>2],ar[t+12>>2]=ar[i+12>>2],ar[t+16>>2]=ar[i+16>>2],ar[t+20>>2]=ar[i+20>>2],He(u+736|0,0|ar[l+628>>2],0|ar[l+632>>2]),xe(u+748|0,0|ar[l+640>>2],0|ar[l+644>>2])),tr[u+760>>0]=0|tr[l+652>>0],l=0|ar[s>>2],hb(0|(s=u+5932|0),0|l,4340),(0|s)!=(0|l)&&($e(u+10272|0,0|ar[l+4340>>2],0|ar[l+4344>>2]),$e(u+10284|0,0|ar[l+4352>>2],0|ar[l+4356>>2]),$e(u+10296|0,0|ar[l+4364>>2],0|ar[l+4368>>2]),$e(u+10308|0,0|ar[l+4376>>2],0|ar[l+4380>>2]),$e(u+10320|0,0|ar[l+4388>>2],0|ar[l+4392>>2])),ar[u+10332>>2]=e,function(A){var e,r=0;0|(r=0|ar[10360+(A|=0)>>2])&&vb(0|r,0,3*(0|ar[A+10364>>2])|0);0|(r=0|ar[A+10340>>2])&&vb(0|r,0,24*(0|ar[A+10344>>2])|0);0|(r=0|ar[A+10460>>2])&&vb(0|r,0,0|ar[A+10464>>2]);if((0|(e=0|ar[A+10344>>2]))<=0)return;A=0|ar[A+10524>>2],r=0;for(;ar[A+(80*r|0)>>2]=0,r=r+1|0,(0|r)<(0|e););}(u),l=e+377212|0;do{if(0|ma(0|tr[l>>0])){if(!(0|ha(0|tr[l>>0])||0|wa(0|tr[l>>0])||0!=(0|tr[e+376208>>0]))&&0==(0|tr[e+376211>>0])){tr[e+376209>>0]=0,tr[e+376210>>0]=0;break}tr[e+376209>>0]=1,tr[e+376211>>0]=0}}while(0);0|va(0|tr[l>>0])&&0!=(0|tr[e+376209>>0])?tr[100+(0|ar[b>>2])>>0]=0:tr[100+(0|ar[b>>2])>>0]=0!=(0|tr[r+24>>0])&1,function(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0;0|ma(0|tr[(i=377212+(e|=0)|0)>>0])&&0!=(0|tr[e+376209>>0])?(ar[(n=e+376212|0)>>2]=0,tr[A+377228>>0]=1,A=r+28|0,A=(r=0)|ar[(f=A)>>2]):(n=0|ar[5032+(0|ar[e+375388>>2])>>2],A=0|ar[(t=r+28|0)>>2],f=0|ar[e+376216>>2],r=0|ar[e+376220>>2],(0|A)<(0|f)&&((0|n)/2|0)<=(f-A|0)?r=r+n|0:(0|f)<(0|A)&&(r=r-(((0|n)/2|0)<(A-f|0)?n:0)|0),ar[(n=e+376212|0)>>2]=r,f=t);if(t=0|ar[e+376224>>2],ar[t+92>>2]=A+r,ar[t+88>>2]=A,0|tr[t+10520>>0])return;if(0|function(A){return(255&(A|=0))<15?0==(1&A)|0:0}(0|tr[i>>0]))return;if(0|va(0|tr[i>>0]))return;if(0|function(A){return(1|(A|=0))<<24>>24==7|0}(0|tr[i>>0]))return;ar[e+376216>>2]=ar[f>>2],ar[e+376220>>2]=ar[n>>2]}(A,e,r),l=u+96|0,0|tr[d>>0]&&(ar[l>>2]=1,function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(ur=(c=ur)+32|0,t=c+4|0,ar[(o=(f=c)+16|0)>>2]=0,ar[(a=4+o|0)>>2]=0,ar[8+o>>2]=0,i=0|ar[ar[(n=e+376224|0)>>2]>>2],0|ma(0|tr[(h=e+377212|0)>>0])&&0|tr[e+376209>>0]&&(u=0|ar[n>>2],w=0|ar[u+92>>2],v=A+376156|0,b=0|ar[(m=A+376160|0)>>2],l=0|ar[v>>2],0<(b-l|0)))for(g=e+376156|0,Z=e+376160|0,p=8+o|0,k=0,d=b;b=0|ar[g>>2],b=(0|ar[Z>>2])-b>>2>>>0>k>>>0?0|ar[b+(k<<2)>>2]:0,0!=(0|ar[b+96>>2])&&(0|ar[b+92>>2])<(0|w)&&(0|ar[(y=b+104|0)>>2])>>>0>(0|ar[u>>2])>>>0?(b=0|ar[b>>2],ar[t>>2]=b,(s=0|ar[a>>2])>>>0<(0|ar[p>>2])>>>0?(ar[s>>2]=b,ar[a>>2]=s+4,b=d):(Mo(o,t),b=0|ar[m>>2],l=0|ar[v>>2],u=0|ar[n>>2]),ar[y>>2]=ar[u>>2]):b=d,!((b-l>>2|0)<=(0|(k=k+1|0)));)d=b;if(0|ha(0|tr[h>>0]))ar[e+376552>>2]=0,ar[e+376556>>2]=0,ar[e+376560>>2]=0,u=l=0;else{if((l=0|tr[r+908>>0])<<24>>24)for(k=255&l,d=s=b=0;y=0==(0|tr[r+876+b>>0]),l=(1&y)+d|0,u=(1&(1^y))+s|0,ar[(y?e+376700+(d<<2)|0:e+376572+(s<<2)|0)>>2]=(0|or[r+812+(b<<1)>>1])+(0|ar[92+(0|ar[n>>2])>>2]),!((0|k)<=(0|(b=b+1|0)));)s=u,d=l;else l=u=0;if(ar[e+376552>>2]=u,(u=0|tr[r+909>>0])<<24>>24)for(k=255&u,s=b=0;;){if(y=0==(0|tr[r+892+b>>0]),d=(1&y)+l|0,u=(1&(1^y))+s|0,ar[(y?e+376700+(l<<2)|0:e+376636+(s<<2)|0)>>2]=(0|or[r+844+(b<<1)>>1])+(0|ar[92+(0|ar[n>>2])>>2]),(0|k)<=(0|(b=b+1|0))){l=d;break}s=u,l=d}else u=0;if(ar[e+376556>>2]=u,ar[e+376560>>2]=l,k=r+140|0,0<((0|ar[(h=r+144|0)>>2])+(0|ar[k>>2])|0))for(w=r+28|0,v=e+375388|0,u=l=d=0;b=0|ar[e+376232+(d<<2)>>2],0|tr[(s=r+244+d|0)>>0]&&(b=(0|ar[92+(0|ar[n>>2])>>2])+b-(0|ar[w>>2])-(0|br(0|ar[5032+(0|ar[v>>2])>>2],0|ar[e+376360+(d<<2)>>2]))|0),0|ar[e+376296+(d<<2)>>2]?(ar[e+376764+(l<<2)>>2]=b,ar[e+376424+(l<<2)>>2]=tr[s>>0],l=l+1|0):(ar[e+376828+(u<<2)>>2]=b,ar[e+376488+(u<<2)>>2]=tr[s>>0],u=u+1|0),(0|(d=d+1|0))<((0|ar[h>>2])+(0|ar[k>>2])|0););else u=l=0}ar[(v=e+376564|0)>>2]=l,ar[(w=e+376568|0)>>2]=u,m=A+376156|0,l=(0|ar[(g=A+376160|0)>>2])-(0|ar[m>>2])|0,u=l>>2,ar[t>>2]=0,ar[(b=4+t|0)>>2]=0,ar[(s=8+t|0)>>2]=0,0|u&&((0|l)<0&&zl(),p=0|hu((y=1+((u+-1|0)>>>5)|0)<<2),ar[t>>2]=p,ar[s>>2]=y,ar[b>>2]=u,vb(0|p,0,(y=u>>>5)<<2|0),l=u-(y<<5)|0,u=p+(y<<2)|0,0|l&&(ar[u>>2]=ar[u>>2]&~(-1>>>(32-l|0))));if(0<(0|(l=0|ar[v>>2])))for(d=e+376148|0,k=e+376156|0,h=e+375388|0,s=0;l=0|ar[(b=e+376764+(s<<2)|0)>>2],l=0|ar[e+376424+(s<<2)>>2]?0|Ko(d,l,i,1):0|qo(d,l,i,1),(0|(ar[(u=e+377084+(s<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[h>>2],0|ar[b>>2],1),ar[u>>2]=l),y=(0|ar[t>>2])+(l>>>5<<2)|0,ar[y>>2]=ar[y>>2]|1<<(31&l),0|tr[10516+(0|ar[(0|ar[k>>2])+(l<<2)>>2])>>0]&&(tr[10516+(0|ar[n>>2])>>0]=4),s=s+1|0,l=0|ar[v>>2],(0|s)<(0|l););if(0<(0|(u=0|ar[w>>2]))){for(k=e+376148|0,h=e+375388|0,d=0;l=0|ar[(b=e+376828+(d<<2)|0)>>2],l=0|ar[e+376488+(d<<2)>>2]?0|Ko(k,l,i,1):0|qo(k,l,i,1),(0|(ar[(u=e+377148+(d<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[h>>2],0|ar[b>>2],1),ar[u>>2]=l),s=(0|ar[t>>2])+(l>>>5<<2)|0,ar[s>>2]=ar[s>>2]|1<<(31&l),d=d+1|0,s=0|ar[w>>2],(0|d)<(0|s););l=0|ar[v>>2]}else s=u;if(0<(0|l))for(b=0|ar[e+376156>>2],u=0;ar[96+(0|ar[b+(ar[e+377084+(u<<2)>>2]<<2)>>2])>>2]=2,(0|(u=u+1|0))<(0|l););if(0<(0|s))for(u=0|ar[e+376156>>2],l=0;ar[96+(0|ar[u+(ar[e+377148+(l<<2)>>2]<<2)>>2])>>2]=2,(0|(l=l+1|0))<(0|s););if(0<(0|ar[(d=e+376552|0)>>2]))for(k=e+376148|0,h=e+376156|0,w=e+375388|0,s=0;l=0|Ko(k,0|ar[(u=e+376572+(s<<2)|0)>>2],i,0),(0|(ar[(b=e+376892+(s<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[w>>2],0|ar[u>>2],0),ar[b>>2]=l),y=(0|ar[t>>2])+(l>>>5<<2)|0,ar[y>>2]=ar[y>>2]|1<<(31&l),0|tr[10516+(0|ar[(0|ar[h>>2])+(l<<2)>>2])>>0]&&(tr[10516+(0|ar[n>>2])>>0]=4),(0|(s=s+1|0))<(0|ar[d>>2]););if(0<(0|ar[(d=e+376556|0)>>2]))for(k=e+376148|0,h=e+376156|0,w=e+375388|0,s=0;l=0|Ko(k,0|ar[(u=e+376636+(s<<2)|0)>>2],i,0),(0|(ar[(b=e+376956+(s<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[w>>2],0|ar[u>>2],0),ar[b>>2]=l),y=(0|ar[t>>2])+(l>>>5<<2)|0,ar[y>>2]=ar[y>>2]|1<<(31&l),0|tr[10516+(0|ar[(0|ar[h>>2])+(l<<2)>>2])>>0]&&(tr[10516+(0|ar[n>>2])>>0]=4),(0|(s=s+1|0))<(0|ar[d>>2]););if(0<(0|ar[(u=e+376560|0)>>2]))for(b=e+376148|0,l=0;s=0|Ko(b,0|ar[e+376700+(l<<2)>>2],i,0),-1<(0|(ar[e+377020+(l<<2)>>2]=s))&&(A=(0|ar[t>>2])+(s>>>5<<2)|0,ar[A>>2]=ar[A>>2]|1<<(31&s)),(0|(l=l+1|0))<(0|ar[u>>2]););if(u=0|ar[g>>2],l=0|ar[m>>2],0<(u-l|0))for(v=e+376156|0,h=e+376160|0,w=8+o|0,k=0,d=u;!(((u=ar[(0|ar[t>>2])+(k>>>5<<2)>>2]&1<<(31&k)?d:(u=0|ar[v>>2],b=(0|ar[h>>2])-u>>2>>>0>k>>>0?0|ar[u+(k<<2)>>2]:0,u=0|ar[n>>2],(0|b)!=(0|u)&&(0|ar[(B=b+104|0)>>2])>>>0>(0|ar[u>>2])>>>0&&0!=(0|ar[b+96>>2])?(b=0|ar[b>>2],ar[f>>2]=b,(s=0|ar[a>>2])>>>0<(0|ar[w>>2])>>>0?(ar[s>>2]=b,ar[a>>2]=s+4,b=d):(Mo(o,f),b=0|ar[g>>2],l=0|ar[m>>2],u=0|ar[n>>2]),ar[B>>2]=ar[u>>2],b):d))-l>>2|0)<=(0|(k=k+1|0)));)d=u;(0|(l=r+1344|0))!=(0|o)&&$e(l,0|ar[o>>2],0|ar[a>>2]);0|(l=0|ar[t>>2])&&vu(l);if(!(l=0|ar[o>>2]))return ur=c;(0|(u=0|ar[a>>2]))!=(0|l)&&(ar[a>>2]=u+(~((u+-4-l|0)>>>2)<<2));vu(l),ur=c}(A,e,r)),ar[l>>2]=1,function(A){A|=0,ar[14391]=A}(0|ar[92+(0|ar[b>>2])>>2]),tr[A+376208>>0]=0}else if(!(0|ar[e+376224>>2]))return ur=c,(r=0)|r;if((0|ar[r+20>>2])>>>0<2&&!(0|function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;ur=(b=ur)+480|0,v=b+192|0,u=(l=b)+384|0,m=0|ar[912+(r|=0)>>2],h=0|ar[(i=r+328|0)>>2],k=(0|m)<(0|h)?h:m,s=96+(A=u)|0;for(;tr[A>>0]=0,A=A+1|0,(0|A)<(0|s););f=e+376552|0,n=e+376556|0,t=e+376564|0,o=e+376892|0,a=e+376956|0,c=e+377084|0,A=0;for(;!((0|k)<=(0|A));){if(0<(0|(d=0|ar[f>>2])))for(hb(v+(A<<2)|0,0|o,0|br((s=A-k|0)>>>0<(w=0-d|0)>>>0?w:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[n>>2],(0|A)<(0|k)&0<(0|d))for(hb(v+(A<<2)|0,0|a,0|br((s=A-k|0)>>>0<(w=0-(1<(0|d)?d:1)|0)>>>0?w:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[t>>2],(0|A)<(0|k)&0<(0|d))for(vb(u+A|0,1,0-(s=(s=A-k|0)>>>0<(w=0-(1<(0|d)?d:1)|0)>>>0?w:s)|0),hb(v+(A<<2)|0,0|c,0|br(s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(!A){Z=13;break}}if(13==(0|Z))return 20==(0|(A=0|ar[(s=e+84|0)>>2]))?(s=1001,A=19):(ar[s>>2]=A+1,s=1016),ar[e+4+(A<<2)>>2]=s,ur=b,(e=0)|e;17<=(0|h)&&sr(34944,34700,1781,34977);A:do{if(0<(0|h)){for(k=r+336|0,h=e+376156|0,w=e+376160|0,d=0;;){if(A=0|tr[k>>0]?0|cr[r+338+d>>0]:d,ar[(s=r+916+(d<<2)|0)>>2]=ar[v+(A<<2)>>2],tr[r+1300+d>>0]=0|tr[u+A>>0],A=0|ar[s>>2],s=0|ar[h>>2],(0|ar[w>>2])-s>>2>>>0<=A>>>0){A=0,Z=54;break}if(!(A=0|ar[s+(A<<2)>>2])){A=0,Z=54;break}if(ar[r+1044+(d<<2)>>2]=ar[A+92>>2],ar[r+1172+(d<<2)>>2]=ar[A+96>>2],d=d+1|0,(0|(A=0|ar[i>>2]))<=(0|d)){g=A;break A}}if(54==(0|Z))return ur=b,0|A}else g=h}while(0);if(0|ar[r+20>>2])return ur=b,0|(e=1);h=0|ar[(v=r+332|0)>>2],k=(0|m)<(0|h)?h:m,A=0;for(;!((0|k)<=(0|A));){if(0<(0|(d=0|ar[n>>2])))for(hb(l+(A<<2)|0,0|a,0|br((s=A-k|0)>>>0<(m=0-d|0)>>>0?m:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[f>>2],(0|A)<(0|k)&0<(0|d))for(hb(l+(A<<2)|0,0|o,0|br((s=A-k|0)>>>0<(m=0-(1<(0|d)?d:1)|0)>>>0?m:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[t>>2],(0|A)<(0|k)&0<(0|d))for(vb(48+u+A|0,1,0-(s=(s=A-k|0)>>>0<(m=0-(1<(0|d)?d:1)|0)>>>0?m:s)|0),hb(l+(A<<2)|0,0|c,0|br(s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(!A){Z=38;break}}if(38==(0|Z))return 20==(0|(A=0|ar[(s=e+84|0)>>2]))?(s=1001,A=19):(ar[s>>2]=A+1,s=1016),ar[e+4+(A<<2)>>2]=s,ur=b,(e=0)|e;if(16<(0|g))return 20==(0|(A=0|ar[(s=e+84|0)>>2]))?(s=1001,A=19):(ar[s>>2]=A+1,s=1012),ar[e+4+(A<<2)>>2]=s,ur=b,(e=0)|e;17<=(0|h)&&sr(35011,34700,1834,34977);if((0|h)<=0)return ur=b,0|(e=1);h=r+337|0,w=e+376156|0,k=e+376160|0,d=0;for(;;){if(A=0|tr[h>>0]?0|cr[r+354+d>>0]:d,ar[(s=r+980+(d<<2)|0)>>2]=ar[l+(A<<2)>>2],tr[r+1316+d>>0]=0|tr[48+u+A>>0],A=0|ar[s>>2],s=0|ar[w>>2],(0|ar[k>>2])-s>>2>>>0<=A>>>0){A=0,Z=54;break}if(!(A=0|ar[s+(A<<2)>>2])){A=0,Z=54;break}if(ar[r+1108+(d<<2)>>2]=ar[A+92>>2],ar[r+1236+(d<<2)>>2]=ar[A+96>>2],(0|(d=d+1|0))>=(0|ar[v>>2])){A=1,Z=54;break}}return 54!=(0|Z)?0:(ur=b,0|A)}(0,e,r)))return ur=c,(r=0)|r;u=0|tr[r+12>>0]?800+(0|ar[(l=u=e+376228|0)>>2])|0:(l=e+376228|0,r+16|0);return ar[r+800>>2]=ar[u>>2],ar[l>>2]=r,ur=c,0|(r=1)}(A,A,s,n,0|ar[(u=r+8|0)>>2],0|ar[u+4>>2],i,0|ar[r+16>>2]),a=0|ar[(b=A+376224|0)>>2],!u)return 0|a&&(tr[a+10516>>0]=2),Ba(A+548|0,r),0|(a=0|ar[s+1344>>2])&&((0|(c=0|ar[(i=s+1348|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),kt(s+1332|0),0|(a=0|ar[s+776>>2])&&((0|(c=0|ar[(i=s+780|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),vu(s),s=0|ar[n>>2],ur=t,0|s;if(ar[f>>2]=s,i=a+48|0,l=0|ar[(c=a+52|0)>>2],ar[s>>2]=l-(0|ar[i>>2])>>2,(0|l)==(0|ar[a+56>>2])?function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(i,f):(ar[l>>2]=s,ar[c>>2]=4+(0|ar[c>>2])),et(e,1),rt(e),l=(0|ar[e>>2])-(0|ar[r+20>>2])|0,0<(0|ar[(u=s+768|0)>>2]))for(c=(a=0)|ar[(i=s+776|0)>>2];k=0|Za(r,0|ar[c+(a<<2)>>2],l),c=0|ar[i>>2],ar[(d=c+(a<<2)|0)>>2]=(0|ar[d>>2])-k,(0|(a=a+1|0))<(0|ar[u>>2]););if(0|tr[s+4>>0]){for(na((c=0|hu(10688))+8|0),i=(a=c+10632|0)+56|0;(0|(a=a+4|(ar[a>>2]=0)))<(0|i););ar[f>>2]=c,ar[c>>2]=ar[b>>2],(0|(i=0|ar[(a=A+377220|0)>>2]))==(0|ar[A+377224>>2])?function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(A+377216|0,f):(ar[i>>2]=c,ar[a>>2]=4+(0|ar[a>>2]))}else a=A+377220|0;return(0|ar[A+377216>>2])!=(0|ar[a>>2])&&(l=0|hu(152),ar[l>>2]=0,ar[(i=l+4|0)>>2]=0,ar[l+32>>2]=0,Dn(l+44|(tr[l+36>>0]=0)),ar[l+124>>2]=0,ar[l+128>>2]=-1,ar[l+132>>2]=-1,ar[l+136>>2]=0,ar[l+144>>2]=A,ar[l+40>>2]=0,ar[l+140>>2]=0,ar[f>>2]=l,ar[l>>2]=r,ar[i>>2]=s,ar[(i=l+8|0)>>2]=ar[e>>2],ar[i+4>>2]=ar[e+4>>2],ar[i+8>>2]=ar[e+8>>2],ar[i+12>>2]=ar[e+12>>2],ar[i+16>>2]=ar[e+16>>2],ar[i+20>>2]=ar[e+20>>2],tr[l+36>>0]=0|tr[A+377228>>0],a=0|ar[(0|ar[a>>2])-4>>2],(0|(c=0|ar[(i=a+10636|0)>>2]))==(0|ar[a+10640>>2])?function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(a+10632|0,f):(ar[c>>2]=l,ar[i>>2]=4+(0|ar[i>>2]))),k=0|Yo(A,f),ar[n>>2]=k,ur=t,(k=0)|k}function ir(A,e,r,i,f,n,t){A|=0,e|=0,f|=0,n|=0,t|=0;var o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;for(c=ur=(o=ur)+31&-32,ur=ur+112|0,100<(l=((i|=0)-(r|=0)|0)/12|0)>>>0?(c=0|yc(l))?g=a=c:gu():(a=c,g=0),c=0,b=r,s=a;(0|b)!=(0|i);)(u=0|tr[b+8+3>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,u?tr[s>>0]=1:(tr[s>>0]=2,c=c+1|0,l=l+-1|0),b=b+12|0,s=s+1|0;m=0,w=c;A:for(;;){c=0|ar[A>>2];do{if(c){if(0|Uf(c=(0|(u=0|ar[c+12>>2]))==(0|ar[c+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](c):0|gf(0|ar[u>>2]),-1)){ar[A>>2]=0,s=1;break}s=0==(0|ar[A>>2]);break}s=1}while(0);if(c=(u=0|ar[e>>2])?0|Uf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|gf(0|ar[c>>2]),-1)?(u=ar[e>>2]=0,1):0:(u=0,1),b=0|ar[A>>2],!(0!=(0|l)&(s^c)))break;for(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|gf(0|ar[c>>2]),t||(c=0|Hb[31&ar[28+(0|ar[f>>2])>>2]](f,c)),v=m+1|0,k=r,d=0,h=a;(0|k)!=(0|i);){do{if(1==(0|tr[h>>0])){if(u=(0|tr[(b=k+8+3|0)>>0])<0?0|ar[k>>2]:k,u=0|ar[u+(m<<2)>>2],t||(u=0|Hb[31&ar[28+(0|ar[f>>2])>>2]](f,u)),s=l+-1|0,(0|c)!=(0|u)){tr[h>>0]=0,u=d,b=w,l=s;break}(u=0|tr[b>>0])<<24>>24<0?u=0|ar[k+4>>2]:u&=255,(0|u)==(0|v)?(tr[h>>0]=2,b=w+(u=1)|0,l=s):(u=1,b=w)}else u=d,b=w}while(0);k=k+12|0,d=u,h=h+1|0,w=b}if(d)if(c=0|ar[A>>2],(0|(b=0|ar[(u=c+12|0)>>2]))==(0|ar[c+16>>2])?jb[127&ar[40+(0|ar[c>>2])>>2]](c):(ar[u>>2]=b+4,gf(0|ar[b>>2])),1<(w+l|0)>>>0)for(b=r,s=a,c=w;;){if((0|b)==(0|i)){m=v,w=c;continue A}2==(0|tr[s>>0])&&((u=0|tr[b+8+3>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,(0|u)!=(0|v)&&(c=c+-1|(tr[s>>0]=0))),b=b+12|0,s=s+1|0}else m=v;else m=v}do{if(b){if(0|Uf(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|gf(0|ar[c>>2]),-1)){ar[A>>2]=0,l=1;break}l=0==(0|ar[A>>2]);break}l=1}while(0);do{if(u){if(0|Uf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|gf(0|ar[c>>2]),-1)){ar[e>>2]=0,Z=41;break}if(l)break;Z=77;break}Z=41}while(0);for(41==(0|Z)&&l&&(Z=77),77==(0|Z)&&(ar[n>>2]=2|ar[n>>2]);;){if((0|r)==(0|i)){Z=81;break}if(2==(0|tr[a>>0]))break;r=r+12|0,a=a+1|0}return 81==(0|Z)&&(ar[n>>2]=4|ar[n>>2],r=i),Bc(g),ur=o,0|r}function fr(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t;return t=ur=(n=ur)+31&-32,ur=ur+16|0,ar[t>>2]=f,f=0|rf(r),r=0|Yc(A,e,i,t),0|f&&rf(f),ur=n,0|r}function nr(A,e,r){A|=0,e|=0,r|=0;var i=0;A:do{switch((176&ar[r+4>>2])<<24>>24){case 16:switch(i=A+1|0,(r=0|tr[A>>0])<<24>>24){case 43:case 45:A=i;break A}if(1<(e-A|0)&r<<24>>24==48){switch(0|tr[i>>0]){case 88:case 120:break;default:0;break A}A=A+2|0}else 0;break;case 32:A=e;break;default:0}}while(0);return 0|A}function dr(A,e,r){A|=0,e|=0;var i,f,n,t=0;for(2048&(r|=0)&&(tr[A>>0]=43,A=A+1|0),1024&r&&(tr[A>>0]=35,A=A+1|0),i=0!=(16384&r|0),(f=260==(0|(n=260&r)))?t=0:(tr[A>>0]=46,tr[A+1>>0]=42,t=1,A=A+2|0);(r=0|tr[e>>0])<<24>>24;)tr[A>>0]=r,e=e+1|0,A=A+1|0;A:do{switch(511&n){case 4:r=i?70:102;break;case 256:r=i?69:101;break;default:if(f){r=i?65:97;break A}r=i?71:103;break A}}while(0);return tr[A>>0]=r,0|t}function kr(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n;return n=ur=(f=ur)+31&-32,ur=ur+16|0,ar[n>>2]=i,i=0|rf(e),e=0|function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,n=0,t=0;f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=ar[r>>2],A=0<=(0|(f=0|Yc(0,0,e,f)))&&(t=0|yc(n=f+1|0),0!=(0|(ar[A>>2]=t)))?0|Yc(t,n,e,r):-1;return ur=i,0|A}(A,r,n),0|i&&rf(i),ur=f,0|e}function hr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;switch(l=ur=(b=ur)+31&-32,ur=ur+16|0,u=0|un(t|=0,59232),c=0|un(t,59248),fs[63&ar[20+(0|ar[c>>2])>>2]](l,c),ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:v=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,t),s=0|ar[n>>2],ar[n>>2]=s+1,tr[s>>0]=v,s=A+1|0;break;default:s=A}v=r;A:do{if(1<(v-s|0)&&48==(0|tr[s>>0])){switch(0|tr[(t=s+1|0)>>0]){case 88:case 120:break;default:t=s,m=10;break A}for(h=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,48),w=0|ar[n>>2],ar[n>>2]=w+1,tr[w>>0]=h,s=s+2|0,w=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,0|tr[t>>0]),t=0|ar[n>>2],ar[n>>2]=t+1,tr[t>>0]=w,t=s;;){if(r>>>0<=t>>>0)break A;if(!(0|lf(w=0|tr[t>>0],dn())))break A;t=t+1|0}}else t=s,m=10}while(0);A:do{if(10==(0|m))for(;;){if(r>>>(m=0)<=t>>>0)break A;if(!(0|af(w=0|tr[t>>0],dn())))break A;t=t+1|0,m=10}}while(0);k=0|tr[(o=11+l|0)>>0],a=4+l|0,h=s,w=A;A:do{if(0|(k<<24>>24<0?0|ar[a>>2]:255&k)){e:do{if((0|s)!=(0|t))for(A=t,d=s;;){if((A=A+-1|0)>>>0<=d>>>0)break e;k=0|tr[d>>0],tr[d>>0]=0|tr[A>>0],tr[A>>0]=k,d=d+1|0}}while(0);for(k=0|jb[127&ar[16+(0|ar[c>>2])>>2]](c),A=d=0;!(t>>>0<=s>>>0);)0<(g=0|tr[((0|tr[o>>0])<0?0|ar[l>>2]:l)+A>>0])<<24>>24&(0|d)==(g<<24>>24|0)&&(d=0|ar[n>>2],ar[n>>2]=d+1,tr[d>>0]=k,A=(A>>>0<(((d=0|tr[o>>0])<<24>>24<0?0|ar[a>>2]:255&d)-1|0)>>>0&1)+A|0,d=0),Z=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,0|tr[s>>0]),g=0|ar[n>>2],ar[n>>2]=g+1,tr[g>>0]=Z,s=s+1|0,d=d+1|0;if((0|(A=i+(h-w)|0))==(0|(s=0|ar[n>>2])))A=u;else for(;;){if((s=s+-1|0)>>>0<=A>>>0){A=u;break A}Z=0|tr[A>>0],tr[A>>0]=0|tr[s>>0],tr[s>>0]=Z,A=A+1|0}}else Pb[7&ar[32+(0|ar[u>>2])>>2]](u,s,t,0|ar[n>>2]),ar[n>>2]=(0|ar[n>>2])+(t-h),A=u}while(0);for(;!(r>>>0<=t>>>0);){if(s=0|tr[t>>0],t=t+1|0,s<<24>>24==46){m=29;break}g=0|Hb[31&ar[28+(0|ar[A>>2])>>2]](u,s),Z=0|ar[n>>2],ar[n>>2]=Z+1,tr[Z>>0]=g}29==(0|m)&&(g=0|jb[127&ar[12+(0|ar[c>>2])>>2]](c),Z=0|ar[n>>2],ar[n>>2]=Z+1,tr[Z>>0]=g),Pb[7&ar[32+(0|ar[u>>2])>>2]](u,t,r,0|ar[n>>2]),Z=(0|ar[n>>2])+(v-t)|0,ar[n>>2]=Z,ar[f>>2]=(0|e)==(0|r)?Z:i+(e-w)|0,Bu(l),ur=b}function wr(A,e,r,i){A|=0,e|=0,r|=0;var f=0;for(2048&(i|=0)&&(tr[A>>0]=43,A=A+1|0),f=512&i?(tr[A>>0]=35,A+1|0):A;(A=0|tr[e>>0])<<24>>24;)tr[f>>0]=A,e=e+1|0,f=f+1|0;switch(74&i){case 64:A=111;break;case 8:A=16384&i|0?88:120;break;default:A=r?100:117}tr[f>>0]=A}function vr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,c=0|un(t|=0,59232),d=0|un(t,59248),fs[63&ar[20+(0|ar[d>>2])>>2]](u,d),a=4+u|0,l=A,s=r,0|((k=0|tr[(o=11+u|0)>>0])<<24>>24<0?0|ar[a>>2]:255&k)){switch(ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:t=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,t),k=0|ar[n>>2],ar[n>>2]=k+1,tr[k>>0]=t,A=A+1|0}A:do{if(1<(s-A|0)&&48==(0|tr[A>>0])){switch(0|tr[(t=A+1|0)>>0]){case 88:case 120:break;default:break A}k=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,48),s=0|ar[n>>2],ar[n>>2]=s+1,tr[s>>0]=k,s=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,0|tr[t>>0]),k=0|ar[n>>2],ar[n>>2]=k+1,tr[k>>0]=s,A=A+2|0}}while(0);A:do{if((0|A)!=(0|r))for(t=r,s=A;;){if((t=t+-1|0)>>>0<=s>>>0)break A;k=0|tr[s>>0],tr[s>>0]=0|tr[t>>0],tr[t>>0]=k,s=s+1|0}}while(0);for(k=0|jb[127&ar[16+(0|ar[d>>2])>>2]](d),d=A,s=t=0;!(r>>>0<=d>>>0);)(h=0|tr[((0|tr[o>>0])<0?0|ar[u>>2]:u)+t>>0])<<24>>24!=0&(0|s)==(h<<24>>24|0)&&(s=0|ar[n>>2],ar[n>>2]=s+1,tr[s>>0]=k,t=(t>>>0<(((s=0|tr[o>>0])<<24>>24<0?0|ar[a>>2]:255&s)-1|0)>>>0&1)+t|0,s=0),w=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,0|tr[d>>0]),h=0|ar[n>>2],ar[n>>2]=h+1,tr[h>>0]=w,d=d+1|0,s=s+1|0;if((0|(t=i+(A-l)|0))!=(0|(A=0|ar[n>>2]))){for(;!((A=A+-1|0)>>>0<=t>>>0);)w=0|tr[t>>0],tr[t>>0]=0|tr[A>>0],tr[A>>0]=w,t=t+1|0;t=0|ar[n>>2]}}else Pb[7&ar[32+(0|ar[c>>2])>>2]](c,A,r,i),t=i+(s-l)|0,ar[n>>2]=t;ar[f>>2]=(0|e)==(0|r)?t:i+(e-l)|0,Bu(u),ur=b}function mr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;o=ur=(a=ur)+31&-32,ur=ur+16|0,t=12+o|0,c=0|ar[(A|=0)>>2];A:do{if(c){if(l=(0|(l=i-(h=e)>>2))<(0|(u=0|ar[(b=f+12|0)>>2]))?u-l|0:0,f=(h=(u=r)-h|0)>>2,0<(0|h)&&(0|xb[63&ar[48+(0|ar[c>>2])>>2]](c,e,f))!=(0|f)){c=ar[A>>2]=0;break}do{if(0<(0|l)){ar[o>>2]=0,ar[4+o>>2]=0,1073741807>>(ar[8+o>>2]=0)&&pu();do{if(2<=l>>>0){if(!(1073741823<(f=l+4&2147483644)>>>0)){s=0|hu(f<<2),ar[o>>2]=s,ar[(d=8+o|0)>>2]=-2147483648|f,ar[4+o>>2]=l,d=d+3|0,k=o;break}lA()}else tr[(d=8+o+3|0)>>0]=l,k=s=o}while(0);if(gr(s,l,n),ln(s+(l<<2)|(ar[t>>2]=0),t),(0|xb[63&ar[48+(0|ar[c>>2])>>2]](c,(0|tr[d>>0])<0?0|ar[o>>2]:k,l))==(0|l)){Qu(o);break}ar[A>>2]=0,Qu(o),c=0;break A}}while(0);if(i=(h=i-u|0)>>2,0<(0|h)&&(0|xb[63&ar[48+(0|ar[c>>2])>>2]](c,r,i))!=(0|i)){c=ar[A>>2]=0;break}ar[b>>2]=0}else c=0}while(0);return ur=a,0|c}function gr(A,e,r){return A|=0,r|=0,(e|=0)&&function(A,e,r){A|=0,e|=0;var i=0;if(0|(r|=0))for(i=A;r=r+-1|0,ar[i>>2]=e,r;)i=i+4|0}(A,r,e),0|A}function Zr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;switch(l=ur=(b=ur)+31&-32,ur=ur+16|0,u=0|un(t|=0,59264),c=0|un(t,59272),fs[63&ar[20+(0|ar[c>>2])>>2]](l,c),ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:g=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,t),t=0|ar[n>>2],ar[n>>2]=t+4,ar[t>>2]=g,t=A+1|0;break;default:t=A}g=r;A:do{if(1<(g-t|0)&&48==(0|tr[t>>0])){switch(0|tr[(s=t+1|0)>>0]){case 88:case 120:break;default:s=t,Z=10;break A}for(v=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,48),m=0|ar[n>>2],ar[n>>2]=m+4,ar[m>>2]=v,t=t+2|0,m=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,0|tr[s>>0]),s=0|ar[n>>2],ar[n>>2]=s+4,ar[s>>2]=m,s=t;;){if(r>>>0<=s>>>0)break A;if(!(0|lf(m=0|tr[s>>0],dn())))break A;s=s+1|0}}else s=t,Z=10}while(0);A:do{if(10==(0|Z))for(;;){if(r>>>(Z=0)<=s>>>0)break A;if(!(0|af(m=0|tr[s>>0],dn())))break A;s=s+1|0,Z=10}}while(0);w=0|tr[(o=11+l|0)>>0],a=4+l|0,v=t,m=A;A:do{if(0|(w<<24>>24<0?0|ar[a>>2]:255&w)){e:do{if((0|t)!=(0|s))for(A=s,d=t;;){if((A=A+-1|0)>>>0<=d>>>0)break e;w=0|tr[d>>0],tr[d>>0]=0|tr[A>>0],tr[A>>0]=w,d=d+1|0}}while(0);for(w=0|jb[127&ar[16+(0|ar[c>>2])>>2]](c),d=A=0;!(s>>>0<=t>>>0);)k=0|tr[o>>0],0<(p=0|tr[((h=k<<24>>24<0)?0|ar[l>>2]:l)+A>>0])<<24>>24&(0|d)==(p<<24>>24|0)&&(d=0|ar[n>>2],ar[n>>2]=d+4,ar[d>>2]=w,A=(A>>>0<((h?0|ar[a>>2]:255&k)-1|0)>>>0&1)+A|0,d=0),h=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,0|tr[t>>0]),p=0|ar[n>>2],ar[n>>2]=p+4,ar[p>>2]=h,t=t+1|0,d=d+1|0;if((0|(t=i+(v-m<<2)|0))==(0|(d=0|ar[n>>2])))A=u;else for(A=d;;){if((A=A+-4|0)>>>0<=t>>>0){A=u,t=d;break A}p=0|ar[t>>2],ar[t>>2]=ar[A>>2],ar[A>>2]=p,t=t+4|0}}else Pb[7&ar[48+(0|ar[u>>2])>>2]](u,t,s,0|ar[n>>2]),t=(0|ar[n>>2])+(s-v<<2)|0,ar[n>>2]=t,A=u}while(0);for(;!(r>>>0<=s>>>0);){if(t=0|tr[s>>0],s=s+1|0,t<<24>>24==46){Z=29;break}v=0|Hb[31&ar[44+(0|ar[A>>2])>>2]](u,t),t=(p=0|ar[n>>2])+4|0,ar[n>>2]=t,ar[p>>2]=v}29==(0|Z)&&(Z=0|jb[127&ar[12+(0|ar[c>>2])>>2]](c),t=(p=0|ar[n>>2])+4|0,ar[n>>2]=t,ar[p>>2]=Z),Pb[7&ar[48+(0|ar[u>>2])>>2]](u,s,r,t),p=(0|ar[n>>2])+(g-s<<2)|0,ar[n>>2]=p,ar[f>>2]=(0|e)==(0|r)?p:i+(e-m<<2)|0,Bu(l),ur=b}function pr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,c=0|un(t|=0,59264),d=0|un(t,59272),fs[63&ar[20+(0|ar[d>>2])>>2]](u,d),a=4+u|0,l=A,s=r,0|((w=0|tr[(o=11+u|0)>>0])<<24>>24<0?0|ar[a>>2]:255&w)){switch(ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:h=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,t),w=0|ar[n>>2],ar[n>>2]=w+4,ar[w>>2]=h,A=A+1|0}A:do{if(1<(s-A|0)&&48==(0|tr[A>>0])){switch(0|tr[(t=A+1|0)>>0]){case 88:case 120:break;default:break A}w=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,48),h=0|ar[n>>2],ar[n>>2]=h+4,ar[h>>2]=w,h=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,0|tr[t>>0]),w=0|ar[n>>2],ar[n>>2]=w+4,ar[w>>2]=h,A=A+2|0}}while(0);A:do{if((0|A)!=(0|r))for(t=r,s=A;;){if((t=t+-1|0)>>>0<=s>>>0)break A;w=0|tr[s>>0],tr[s>>0]=0|tr[t>>0],tr[t>>0]=w,s=s+1|0}}while(0);for(w=0|jb[127&ar[16+(0|ar[d>>2])>>2]](d),h=A,s=t=0;!(r>>>0<=h>>>0);)d=0|tr[o>>0],(v=0|tr[((k=d<<24>>24<0)?0|ar[u>>2]:u)+t>>0])<<24>>24!=0&(0|s)==(v<<24>>24|0)&&(s=0|ar[n>>2],ar[n>>2]=s+4,ar[s>>2]=w,t=(t>>>0<((k?0|ar[a>>2]:255&d)-1|0)>>>0&1)+t|0,s=0),k=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,0|tr[h>>0]),v=0|ar[n>>2],ar[n>>2]=v+4,ar[v>>2]=k,h=h+1|0,s=s+1|0;if((0|(t=i+(A-l<<2)|0))!=(0|(A=0|ar[n>>2]))){for(;!((A=A+-4|0)>>>0<=t>>>0);)v=0|ar[t>>2],ar[t>>2]=ar[A>>2],ar[A>>2]=v,t=t+4|0;t=0|ar[n>>2]}}else Pb[7&ar[48+(0|ar[c>>2])>>2]](c,A,r,i),t=i+(s-l<<2)|0,ar[n>>2]=t;ar[f>>2]=(0|e)==(0|r)?t:i+(e-l<<2)|0,Bu(u),ur=b}function yr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[ar[(A=(A|=0)+8|0)>>2]>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|Vn(r,o,A,A+168|0,n,f,0))-A|0))<168&&(ar[e>>2]=((0|A)/12|0)%7|0),ur=t}function Br(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[4+(0|ar[(A=(A|=0)+8|0)>>2])>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|Vn(r,o,A,A+288|0,n,f,0))-A|0))<288&&(ar[e>>2]=((0|A)/12|0)%12|0),ur=t}function Er(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;s=ur=(d=ur)+31&-32,ur=ur+16|0,a=8+s|0,b=4+s|0,Tf(c=12+s|0,i|=0),l=0|un(c,59232),bn(c),u=8+l|(ar[f>>2]=0),k=0;A:for(;;){for(Z=(0|t)!=(0|o),h=k;;){if(k=0|ar[e>>2],!(Z&0==(0|h)))break A;g=(w=k)?0|Mf(h=(0|(h=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[h>>0]),-1)?(m=1,k=ar[e>>2]=0):(m=0,w):(k=0,m=1,w),h=v=0|ar[r>>2];do{if(v){if(0|Mf(w=(0|(w=0|ar[v+12>>2]))==(0|ar[v+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](v):0|hf(0|tr[w>>0]),-1)){h=ar[r>>2]=0,y=16;break}if(m)break;y=61;break A}y=16}while(0);if(16==(0|y)){if(y=0,m){y=61;break A}v=0}if((0|xb[63&ar[36+(0|ar[l>>2])>>2]](l,0|tr[t>>0],0))<<24>>24==37){y=19;break}if(-1<(h=0|tr[t>>0])<<24>>24&&(p=0|ar[u>>2],8192&or[p+(h<<24>>24<<1)>>1])){y=27;break}if(h=(0|(h=0|ar[(w=k+12|0)>>2]))==(0|ar[(v=k+16|0)>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[h>>0]),(g=0|Hb[31&ar[12+(0|ar[l>>2])>>2]](l,255&h))<<24>>24==(0|Hb[31&ar[12+(0|ar[l>>2])>>2]](l,0|tr[t>>0]))<<24>>24){y=57;break}h=ar[f>>2]=4}e:do{if(19==(0|y)){if(((y=0)|(m=t+1|0))==(0|o)){y=61;break A}switch((w=0|xb[63&ar[36+(0|ar[l>>2])>>2]](l,0|tr[m>>0],0))<<24>>24){case 48:case 69:if((0|(t=t+2|0))==(0|o)){y=61;break A}v=w,k=0|xb[63&ar[36+(0|ar[l>>2])>>2]](l,0|tr[t>>0],0),t=m;break;default:v=0,k=w}Z=0|ar[36+(0|ar[A>>2])>>2],ar[b>>2]=g,ar[s>>2]=h,ar[a>>2]=ar[b>>2],ar[c>>2]=ar[s>>2],Z=0|es[15&Z](A,a,c,i,f,n,k,v),ar[e>>2]=Z,t=t+2|0}else if(27==(0|y)){for(;;){if(((y=0)|(t=t+1|0))==(0|o)){t=o;break}if((h=0|tr[t>>0])<<24>>24<=-1)break;if(!(8192&or[p+(h<<24>>24<<1)>>1]))break;y=27}for(h=v;;){k?0|Mf(w=(0|(w=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[w>>0]),-1)?(m=1,k=ar[e>>2]=0):m=0:(m=1,k=0);do{if(v){if(0|Mf(w=(0|(w=0|ar[v+12>>2]))==(0|ar[v+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](v):0|hf(0|tr[w>>0]),-1)){h=ar[r>>2]=0,y=43;break}if(m^0==(0|h)){v=g=h;break}break e}y=43}while(0);if(43==(0|y)){if(y=0,m)break e;g=h,v=0}if((255&(h=(0|(h=0|ar[(w=k+12|0)>>2]))==(0|ar[(m=k+16|0)>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[h>>0])))<<24>>24<=-1)break e;if(!(8192&or[(0|ar[u>>2])+(h<<24>>24<<1)>>1]))break e;(0|(h=0|ar[w>>2]))!=(0|ar[m>>2])?(ar[w>>2]=h+1,hf(0|tr[h>>0]),h=g):(jb[127&ar[40+(0|ar[k>>2])>>2]](k),h=g)}}else if(57==(0|y)){if(t=t+1|(y=0),(0|(h=0|ar[w>>2]))==(0|ar[v>>2])){jb[127&ar[40+(0|ar[k>>2])>>2]](k);break}ar[w>>2]=h+1,hf(0|tr[h>>0]);break}}while(0);k=0|ar[f>>2]}61==(0|y)&&(ar[f>>2]=4),w=k?0|Mf(t=(0|(t=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[t>>0]),-1)?(k=ar[e>>2]=0,1):0:(k=0,1),t=0|ar[r>>2];do{if(t){if(0|Mf(t=(0|(h=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[h>>0]),-1)){ar[r>>2]=0,y=74;break}if(w)break;y=76;break}y=74}while(0);return 74==(0|y)&&w&&(y=76),76==(0|y)&&(ar[f>>2]=2|ar[f>>2]),ur=d,0|k}function Xr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|Jr(r,A,f,n,2))+-1|0)>>>0<31&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Wr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<24&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Ir(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|Jr(r,A,f,n,2))+-1|0)>>>0<12&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Cr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,3)))<366&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Gr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<13&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A+-1:ar[f>>2]=4|r,ur=t}function Vr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<60&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Fr(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0;var n,t=0,o=0;n=(f|=0)+8|0;A:for(;;){A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);f=0|ar[r>>2];do{if(f){if(0|Mf(A=(0|(A=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,o=15;break}if(t){t=f;break}t=f;break A}o=15}while(0);if(15==(0|o)){if(o=0,t){t=0;break}t=0}if(A=0|ar[e>>2],(255&(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0])))<<24>>24<=-1)break;if(!(8192&or[(0|ar[n>>2])+(A<<24>>24<<1)>>1]))break;A=0|ar[e>>2],(0|(t=0|ar[(f=A+12|0)>>2]))!=(0|ar[A+16>>2])?(ar[f>>2]=t+1,hf(0|tr[t>>0])):jb[127&ar[40+(0|ar[A>>2])>>2]](A)}A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);do{if(t){if(0|Mf(A=(0|(A=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,o=38;break}if(f)break;o=40;break}o=38}while(0);38==(0|o)&&f&&(o=40),40==(0|o)&&(ar[i>>2]=2|ar[i>>2])}function Rr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0;o=ur=(a=ur)+31&-32,ur=ur+16|0,t=4+o|0,l=0|jb[127&ar[8+(0|ar[(l=(A|=0)+8|0)>>2])>>2]](l),c=(A=0|tr[l+11>>0])<<24>>24<0?0|ar[l+4>>2]:255&A,(A=0|tr[l+12+11>>0])<<24>>24<0?A=0|ar[l+16>>2]:A&=255;do{if((0|c)!=(0-A|0)){if(ar[o>>2]=ar[i>>2],ar[t>>2]=ar[o>>2],A=(0|Vn(r,t,l,l+24|0,n,f,0))-l|0,12==(0|(c=0|ar[e>>2]))&0==(0|A)){ar[e>>2]=0;break}(0|c)<12&12==(0|A)&&(ar[e>>2]=c+12)}else ar[f>>2]=4|ar[f>>2]}while(0);ur=a}function Nr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<61&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function _r(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,1)))<7&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Yr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|Jr(r,A,f,n,4),4&ar[f>>2]||(A=(0|A)<69?A+2e3|0:(0|A)<100?A+1900|0:A,ar[e>>2]=A+-1900),ur=t}function Qr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|Jr(r,A,f,n,4),4&ar[f>>2]||(ar[e>>2]=A+-1900),ur=t}function Dr(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;A=0|ar[(e|=0)>>2];do{if(A){if(0|Mf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[n>>0]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);n=0|ar[r>>2];do{if(n){if(0|Mf(A=(0|(A=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,a=14;break}if(t){o=n,a=16;break}A=6,a=38;break}a=14}while(0);14==(0|a)&&(a=t?(A=6,38):(o=0,16));A:do{if(16==(0|a))if(A=0|ar[e>>2],A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[n>>0]),(0|xb[63&ar[36+(0|ar[f>>2])>>2]](f,255&A,0))<<24>>24==37){A=0|ar[e>>2],(0|(t=0|ar[(n=A+12|0)>>2]))==(0|ar[A+16>>2])?jb[127&ar[40+(0|ar[A>>2])>>2]](A):(ar[n>>2]=t+1,hf(0|tr[t>>0])),A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[n>>0]),-1)){ar[e>>2]=0,n=1;break}n=0==(0|ar[e>>2]);break}n=1}while(0);do{if(0|o){if(0|Mf(A=(0|(A=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0;break}if(n)break A;A=2,a=38;break A}}while(0);n&&(A=2,a=38)}else A=4,a=38}while(0);38==(0|a)&&(ar[i>>2]=ar[i>>2]|A)}function Jr(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;n=0|ar[(A|=0)>>2];do{if(n){if(0|Mf(n=(0|(t=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|hf(0|tr[t>>0]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);t=0|ar[e>>2];do{if(t){if(0|Mf(n=(0|(n=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[n>>0]),-1)){ar[e>>2]=0,k=14;break}if(o){k=17;break}k=16;break}k=14}while(0);14==(0|k)&&(k=o?16:(t=0,17));A:do{if(16==(0|k))ar[r>>2]=6|ar[r>>2],n=0;else if(17==(0|k)){if(n=0|ar[A>>2],-1<(o=255&(n=(0|(o=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|hf(0|tr[o>>0])))<<24>>24&&2048&or[(0|ar[(d=i+8|0)>>2])+(n<<24>>24<<1)>>1]){for(n=(0|xb[63&ar[36+(0|ar[i>>2])>>2]](i,o,0))<<24>>24,o=0|ar[A>>2],a=l=((0|(c=0|ar[(a=o+12|0)>>2]))==(0|ar[o+16>>2])?jb[127&ar[40+(0|ar[o>>2])>>2]](o):(ar[a>>2]=c+1,hf(0|tr[c>>0])),t);;){n=n+-48|0,s=f+-1|0,t=0|ar[A>>2];do{if(t){if(0|Mf(t=(0|(o=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[o>>0]),-1)){ar[A>>2]=0,c=1;break}c=0==(0|ar[A>>2]);break}c=1}while(0);do{if(a){if(0|Mf(t=(0|(t=0|ar[a+12>>2]))==(0|ar[a+16>>2])?0|jb[127&ar[36+(0|ar[a>>2])>>2]](a):0|hf(0|tr[t>>0]),-1)){t=1,u=b=ar[e>>2]=0;break}t=0==(0|(b=l)),u=l;break}b=l,t=1,u=0}while(0);if(o=0|ar[A>>2],!(1<(0|f)&(c^t)))break;if((o=255&(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[t>>0])))<<24>>24<=-1)break A;if(!(2048&or[(0|ar[d>>2])+(t<<24>>24<<1)>>1]))break A;n=((0|xb[63&ar[36+(0|ar[i>>2])>>2]](i,o,0))<<24>>24)+(10*n|0)|0,t=0|ar[A>>2],(0|(a=0|ar[(o=t+12|0)>>2]))!=(0|ar[t+16>>2])?(ar[o>>2]=a+1,hf(0|tr[a>>0]),f=s,l=b,a=u):(jb[127&ar[40+(0|ar[t>>2])>>2]](t),f=s,l=b,a=u)}do{if(o){if(0|Mf(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[t>>0]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);do{if(b){if(0|Mf(t=(0|(t=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|hf(0|tr[t>>0]),-1)){ar[e>>2]=0,k=62;break}if(o)break A;break}k=62}while(0);if(62==(0|k)&&!o)break;ar[r>>2]=2|ar[r>>2];break}ar[r>>2]=4|ar[r>>2],n=0}}while(0);return 0|n}function Mr(A){return 0|function(A){var e=0;e=A|=0;for(;0|ar[e>>2];)e=e+4|0;return e-A>>2|0}(A|=0)}function Tr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[ar[(A=(A|=0)+8|0)>>2]>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|ir(r,o,A,A+168|0,n,f,0))-A|0))<168&&(ar[e>>2]=((0|A)/12|0)%7|0),ur=t}function Ur(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[4+(0|ar[(A=(A|=0)+8|0)>>2])>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|ir(r,o,A,A+288|0,n,f,0))-A|0))<288&&(ar[e>>2]=((0|A)/12|0)%12|0),ur=t}function Sr(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;b=ur=(s=ur)+31&-32,ur=ur+16|0,a=8+b|0,u=4+b|0,Tf(c=12+b|0,i|=0),l=0|un(c,59264),bn(c),d=ar[f>>2]=0;A:for(;;){for(g=(0|t)!=(0|o),k=d;;){if(d=0|ar[e>>2],!(g&0==(0|k)))break A;m=(h=d)?0|Uf(k=(0|(k=0|ar[d+12>>2]))==(0|ar[d+16>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[k>>2]),-1)?(v=1,d=ar[e>>2]=0):(v=0,h):(d=0,v=1,h),k=w=0|ar[r>>2];do{if(w){if(0|Uf(h=(0|(h=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[h>>2]),-1)){k=ar[r>>2]=0,Z=16;break}if(v)break;Z=58;break A}Z=16}while(0);if(16==(0|Z)){if(Z=0,v){Z=58;break A}w=0}if((0|xb[63&ar[52+(0|ar[l>>2])>>2]](l,0|ar[t>>2],0))<<24>>24==37){Z=19;break}if(0|xb[63&ar[12+(0|ar[l>>2])>>2]](l,8192,0|ar[t>>2])){Z=26;break}if(k=(0|(k=0|ar[(h=d+12|0)>>2]))==(0|ar[(w=d+16|0)>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[k>>2]),(0|(m=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,k)))==(0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,0|ar[t>>2]))){Z=54;break}k=ar[f>>2]=4}e:do{if(19==(0|Z)){if(((Z=0)|(v=t+4|0))==(0|o)){Z=58;break A}switch((h=0|xb[63&ar[52+(0|ar[l>>2])>>2]](l,0|ar[v>>2],0))<<24>>24){case 48:case 69:if((0|(t=t+8|0))==(0|o)){Z=58;break A}w=h,d=0|xb[63&ar[52+(0|ar[l>>2])>>2]](l,0|ar[t>>2],0),t=v;break;default:w=0,d=h}g=0|ar[36+(0|ar[A>>2])>>2],ar[u>>2]=m,ar[b>>2]=k,ar[a>>2]=ar[u>>2],ar[c>>2]=ar[b>>2],g=0|es[15&g](A,a,c,i,f,n,d,w),ar[e>>2]=g,t=t+8|0}else if(26==(0|Z)){for(;;){if(((Z=0)|(t=t+4|0))==(0|o)){t=o;break}if(!(0|xb[63&ar[12+(0|ar[l>>2])>>2]](l,8192,0|ar[t>>2])))break;Z=26}for(k=w;;){d?0|Uf(h=(0|(h=0|ar[d+12>>2]))==(0|ar[d+16>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[h>>2]),-1)?(v=1,d=ar[e>>2]=0):v=0:(v=1,d=0);do{if(w){if(0|Uf(h=(0|(h=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[h>>2]),-1)){k=ar[r>>2]=0,Z=41;break}if(v^0==(0|k)){w=m=k;break}break e}Z=41}while(0);if(41==(0|Z)){if(Z=0,v)break e;m=k,w=0}if(k=(0|(k=0|ar[(h=d+12|0)>>2]))==(0|ar[(v=d+16|0)>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[k>>2]),!(0|xb[63&ar[12+(0|ar[l>>2])>>2]](l,8192,k)))break e;(0|(k=0|ar[h>>2]))!=(0|ar[v>>2])?(ar[h>>2]=k+4,gf(0|ar[k>>2]),k=m):(jb[127&ar[40+(0|ar[d>>2])>>2]](d),k=m)}}else if(54==(0|Z)){if(t=t+4|(Z=0),(0|(k=0|ar[h>>2]))==(0|ar[w>>2])){jb[127&ar[40+(0|ar[d>>2])>>2]](d);break}ar[h>>2]=k+4,gf(0|ar[k>>2]);break}}while(0);d=0|ar[f>>2]}58==(0|Z)&&(ar[f>>2]=4),h=d?0|Uf(t=(0|(t=0|ar[d+12>>2]))==(0|ar[d+16>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[t>>2]),-1)?(d=ar[e>>2]=0,1):0:(d=0,1),t=0|ar[r>>2];do{if(t){if(0|Uf(t=(0|(k=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[k>>2]),-1)){ar[r>>2]=0,Z=71;break}if(h)break;Z=73;break}Z=71}while(0);return 71==(0|Z)&&h&&(Z=73),73==(0|Z)&&(ar[f>>2]=2|ar[f>>2]),ur=s,0|d}function Or(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|ii(r,A,f,n,2))+-1|0)>>>0<31&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function zr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<24&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function jr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|ii(r,A,f,n,2))+-1|0)>>>0<12&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Hr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,3)))<366&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function xr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<13&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A+-1:ar[f>>2]=4|r,ur=t}function Pr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<60&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Lr(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0;A:for(;;){A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);n=0|ar[r>>2];do{if(n){if(0|Uf(A=(0|(A=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,o=15;break}if(t){t=n;break}t=n;break A}o=15}while(0);if(15==(0|o)){if(o=0,t){t=0;break}t=0}if(A=0|ar[e>>2],A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),!(0|xb[63&ar[12+(0|ar[f>>2])>>2]](f,8192,A)))break;A=0|ar[e>>2],(0|(t=0|ar[(n=A+12|0)>>2]))!=(0|ar[A+16>>2])?(ar[n>>2]=t+4,gf(0|ar[t>>2])):jb[127&ar[40+(0|ar[A>>2])>>2]](A)}A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,n=1;break}n=0==(0|ar[e>>2]);break}n=1}while(0);do{if(t){if(0|Uf(A=(0|(A=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,o=37;break}if(n)break;o=39;break}o=37}while(0);37==(0|o)&&n&&(o=39),39==(0|o)&&(ar[i>>2]=2|ar[i>>2])}function Kr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0;o=ur=(a=ur)+31&-32,ur=ur+16|0,t=4+o|0,l=0|jb[127&ar[8+(0|ar[(l=(A|=0)+8|0)>>2])>>2]](l),c=(A=0|tr[l+8+3>>0])<<24>>24<0?0|ar[l+4>>2]:255&A,(A=0|tr[l+20+3>>0])<<24>>24<0?A=0|ar[l+16>>2]:A&=255;do{if((0|c)!=(0-A|0)){if(ar[o>>2]=ar[i>>2],ar[t>>2]=ar[o>>2],A=(0|ir(r,t,l,l+24|0,n,f,0))-l|0,12==(0|(c=0|ar[e>>2]))&0==(0|A)){ar[e>>2]=0;break}(0|c)<12&12==(0|A)&&(ar[e>>2]=c+12)}else ar[f>>2]=4|ar[f>>2]}while(0);ur=a}function qr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<61&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function $r(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,1)))<7&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Ai(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|ii(r,A,f,n,4),4&ar[f>>2]||(A=(0|A)<69?A+2e3|0:(0|A)<100?A+1900|0:A,ar[e>>2]=A+-1900),ur=t}function ei(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|ii(r,A,f,n,4),4&ar[f>>2]||(ar[e>>2]=A+-1900),ur=t}function ri(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;A=0|ar[(e|=0)>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);n=0|ar[r>>2];do{if(n){if(0|Uf(A=(0|(A=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,a=14;break}if(t){o=n,a=16;break}A=6,a=38;break}a=14}while(0);14==(0|a)&&(a=t?(A=6,38):(o=0,16));A:do{if(16==(0|a))if(A=0|ar[e>>2],A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),(0|xb[63&ar[52+(0|ar[f>>2])>>2]](f,A,0))<<24>>24==37){A=0|ar[e>>2],(0|(t=0|ar[(n=A+12|0)>>2]))==(0|ar[A+16>>2])?jb[127&ar[40+(0|ar[A>>2])>>2]](A):(ar[n>>2]=t+4,gf(0|ar[t>>2])),A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,n=1;break}n=0==(0|ar[e>>2]);break}n=1}while(0);do{if(0|o){if(0|Uf(A=(0|(A=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0;break}if(n)break A;A=2,a=38;break A}}while(0);n&&(A=2,a=38)}else A=4,a=38}while(0);38==(0|a)&&(ar[i>>2]=ar[i>>2]|A)}function ii(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;n=0|ar[(A|=0)>>2];do{if(n){if(0|Uf(n=(0|(t=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[t>>2]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);t=0|ar[e>>2];do{if(t){if(0|Uf(n=(0|(n=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,d=14;break}if(o){d=17;break}d=16;break}d=14}while(0);14==(0|d)&&(d=o?16:(t=0,17));A:do{if(16==(0|d))ar[r>>2]=6|ar[r>>2],n=0;else if(17==(0|d)){if(n=0|ar[A>>2],n=(0|(o=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[o>>2]),!(0|xb[63&ar[12+(0|ar[i>>2])>>2]](i,2048,n))){ar[r>>2]=4|ar[r>>2],n=0;break}for(n=(0|xb[63&ar[52+(0|ar[i>>2])>>2]](i,n,0))<<24>>24,o=0|ar[A>>2],a=l=((0|(c=0|ar[(a=o+12|0)>>2]))==(0|ar[o+16>>2])?jb[127&ar[40+(0|ar[o>>2])>>2]](o):(ar[a>>2]=c+4,gf(0|ar[c>>2])),t);;){n=n+-48|0,s=f+-1|0,t=0|ar[A>>2];do{if(t){if(0|Uf(t=(0|(o=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[o>>2]),-1)){ar[A>>2]=0,c=1;break}c=0==(0|ar[A>>2]);break}c=1}while(0);do{if(a){if(0|Uf(t=(0|(t=0|ar[a+12>>2]))==(0|ar[a+16>>2])?0|jb[127&ar[36+(0|ar[a>>2])>>2]](a):0|gf(0|ar[t>>2]),-1)){t=1,u=b=ar[e>>2]=0;break}t=0==(0|(b=l)),u=l;break}b=l,t=1,u=0}while(0);if(o=0|ar[A>>2],!(1<(0|f)&(c^t)))break;if(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|gf(0|ar[t>>2]),!(0|xb[63&ar[12+(0|ar[i>>2])>>2]](i,2048,t)))break A;n=((0|xb[63&ar[52+(0|ar[i>>2])>>2]](i,t,0))<<24>>24)+(10*n|0)|0,t=0|ar[A>>2],(0|(a=0|ar[(o=t+12|0)>>2]))!=(0|ar[t+16>>2])?(ar[o>>2]=a+4,gf(0|ar[a>>2]),f=s,l=b,a=u):(jb[127&ar[40+(0|ar[t>>2])>>2]](t),f=s,l=b,a=u)}do{if(o){if(0|Uf(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|gf(0|ar[t>>2]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);do{if(b){if(0|Uf(t=(0|(t=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|gf(0|ar[t>>2]),-1)){ar[e>>2]=0,d=60;break}if(o)break A;break}d=60}while(0);if(60==(0|d)&&!o)break;ar[r>>2]=2|ar[r>>2]}}while(0);return 0|n}function fi(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u=0;t=ur=(a=ur)+31&-32,ur=ur+16|0,tr[t>>0]=37,tr[(o=1+t|0)>>0]=f,tr[(u=2+t|0)>>0]=n,tr[3+t>>0]=0,n<<24>>24&&(tr[o>>0]=n,tr[u>>0]=f),u=0|(c=e,l=0|ar[r>>2],(l|=0)-(c|=0)|0),u=e+(0|EA(0|e,0|u,0|t,0|i,0|ar[A>>2]))|0,ar[r>>2]=u,ur=a}function ni(A){(0|(0|ar[(A|=0)>>2]))!=(0|dn())&&of(0|ar[A>>2])}function ti(){lA()}function oi(A,e,r){return A|=0,r|=0,0|(e|=0)&&vb(0|A,255&(0|hf(r))|0,0|e),0|A}function ai(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0;for(V=ur=(J=ur)+31&-32,ur=ur+512|0,j=96+V|0,D=80+V|0,G=72+V|0,E=68+V|0,X=500+V|0,W=497+V|0,I=496+V|0,F=56+V|0,R=44+V|0,N=32+V|0,_=20+V|0,Y=8+V|0,C=4+V|0,ar[(B=88+V|0)>>2]=l,ar[D>>2]=j,ar[(Q=4+D|0)>>2]=444,ar[G>>2]=j,ar[E>>2]=j+400,ar[F>>2]=0,ar[4+F>>2]=0,l=ar[8+F>>2]=0;3!=(0|l);)l=l+1|(ar[F+(l<<2)>>2]=0);for(ar[R>>2]=0,ar[4+R>>2]=0,l=ar[8+R>>2]=0;3!=(0|l);)l=l+1|(ar[R+(l<<2)>>2]=0);for(ar[N>>2]=0,ar[4+N>>2]=0,l=ar[8+N>>2]=0;3!=(0|l);)l=l+1|(ar[N+(l<<2)>>2]=0);for(ar[_>>2]=0,ar[4+_>>2]=0,l=ar[8+_>>2]=0;3!=(0|l);)l=l+1|(ar[_+(l<<2)>>2]=0);for(ar[Y>>2]=0,ar[4+Y>>2]=0,l=ar[8+Y>>2]=0;3!=(0|l);)l=l+1|(ar[Y+(l<<2)>>2]=0);!function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){for(e=0|un(e,60952),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),tr[i>>0]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),tr[f>>0]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Bu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}else{for(e=0|un(e,60944),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),tr[i>>0]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),tr[f>>0]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Bu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}ar[c>>2]=A,ur=b}(r,i,X,W,I,F,R,N,_,C),ar[c>>2]=ar[a>>2],m=o+8|0,g=11+N|0,Z=4+N|0,p=11+_|0,y=4+_|0,u=0!=(512&f|0),b=11+R|0,s=4+R|0,d=11+Y|0,k=4+Y|0,h=3+X|0,w=11+F|0,v=4+F|0,z=j=0;A:for(;;){if(o=0!=(0|j),4<=z>>>0){H=234;break}l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);r=0|ar[e>>2];do{if(r){if(0|Mf(l=(0|(l=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[l>>0]),-1)){ar[e>>2]=0,H=31;break}if(i){O=r;break}H=234;break A}H=31}while(0);if(31==(0|H)){if(H=0,i){H=234;break}O=0}l=3!=(0|z);e:do{switch(0|tr[X+z>>0]){case 1:if(l){if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24<=-1){H=44;break A}if(!(8192&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1])){H=44;break A}l=0|ar[A>>2],_u(Y,255&(l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,0|hf(0|tr[i>>0])))),o=l=O,H=46}else l=j;break;case 0:l?(o=l=O,H=46):l=j;break;case 3:if((0|(l=(l=0|tr[g>>0])<<24>>24<0?0|ar[Z>>2]:255&l))==(0-(o=(o=0|tr[p>>0])<<24>>24<0?0|ar[y>>2]:255&o)|0))l=j;else{if(f=0==(0|l),l=0|ar[A>>2],i=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2]),f|0==(0|o)){if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),l&=255,f){if(l<<24>>24!=(0|tr[((0|tr[p>>0])<0?0|ar[_>>2]:_)>>0])){l=j;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),l=(tr[t>>0]=1)<((l=0|tr[p>>0])<<24>>24<0?0|ar[y>>2]:255&l)>>>0?_:j;break e}if(l<<24>>24!=(0|tr[((0|tr[g>>0])<0?0|ar[N>>2]:N)>>0])){tr[t>>0]=1,l=j;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),l=1<((l=0|tr[g>>0])<<24>>24<0?0|ar[Z>>2]:255&l)>>>0?N:j;break e}if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),r=0|ar[A>>2],f=(0|(o=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2]),(255&l)<<24>>24==(0|tr[((0|tr[g>>0])<0?0|ar[N>>2]:N)>>0])){f?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=o+1,hf(0|tr[o>>0])),l=1<((l=0|tr[g>>0])<<24>>24<0?0|ar[Z>>2]:255&l)>>>0?N:j;break e}if((255&(l=f?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[o>>0])))<<24>>24!=(0|tr[((0|tr[p>>0])<0?0|ar[_>>2]:_)>>0])){H=103;break A}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),l=(tr[t>>0]=1)<((l=0|tr[p>>0])<<24>>24<0?0|ar[y>>2]:255&l)>>>0?_:j}break;case 2:if(!(z>>>0<2|o)&&!(u|2==(0|z)&0!=(0|tr[h>>0]))){l=0;break e}l=(r=0|tr[b>>0])<<24>>24<0,U=0|ar[R>>2],T=i=l?U:R;r:do{if(0!=(0|z)&&(0|cr[X+(z+-1)>>0])<2){for(l=i+(l?0|ar[s>>2]:255&r)|0,M=T;(0|(o=M))!=(0|l)&&!((f=0|tr[o>>0])<<24>>24<=-1)&&8192&or[(0|ar[m>>2])+(f<<24>>24<<1)>>1];)M=o+1|0;if((f=M-T|0)>>>0<=(o=(l=(o=0|tr[d>>0])<<24>>24<0)?0|ar[k>>2]:255&o)>>>0)for(l=(o=(l?0|ar[Y>>2]:Y)+o|0)+(0-f)|0;;){if((0|l)==(0|o)){i=M,l=U,o=S=O;break r}if((0|tr[l>>0])!=(0|tr[i>>0])){i=T,l=U,o=S=O;break r}i=i+1|0,l=l+1|0}else i=T,l=U,o=S=O}else i=T,l=U,o=S=O}while(0);r:for(;l=((M=r<<24>>24<0)?l:R)+(M?0|ar[s>>2]:255&r)|0,(0|(M=i))!=(0|l);){l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(o){if(0|Mf(l=(0|(l=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[l>>0]),-1)){l=ar[e>>2]=0,H=132;break}if(r^0==(0|S)){f=l=S;break}l=M;break r}l=S,H=132}while(0);if(132==(0|H)){if(H=0,r){l=M;break}f=0}if(r=0|ar[A>>2],(255&(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0])))<<24>>24!=(0|tr[M>>0])){l=M;break}r=0|ar[A>>2],(0|(o=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2])?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=o+1,hf(0|tr[o>>0])),S=l,i=M+1|0,r=0|tr[b>>0],l=0|ar[R>>2],o=f}if(u&&(0|l)!=(((S=(O=0|tr[b>>0])<<24>>24<0)?0|ar[R>>2]:R)+(S?0|ar[s>>2]:255&O)|0)){H=144;break A}l=j;break;case 4:T=0,o=l=O;r:for(;;){r=0|ar[A>>2];do{if(r){if(0|Mf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(o){if(0|Mf(r=(0|(r=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[r>>0]),-1)){l=ar[e>>2]=0,H=158;break}if(i^0==(0|l)){M=f=l;break}o=l;break r}H=158}while(0);if(158==(0|H)){if(H=0,i){o=l;break}f=l,M=0}if(l=0|ar[A>>2],-1<(r=255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24&&0!=(2048&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1]))(0|(l=0|ar[c>>2]))==(0|ar[B>>2])&&(li(a,c,B),l=0|ar[c>>2]),ar[c>>2]=l+1,tr[l>>0]=r,l=T+1|0;else{if(O=0|tr[w>>0],!(r<<24>>24==(0|tr[I>>0])&(0|T?0!=(0|(O<<24>>24<0?0|ar[v>>2]:255&O)):0))){o=f;break}(0|(l=0|ar[G>>2]))==(0|ar[E>>2])&&(ui(D,G,E),l=0|ar[G>>2]),ar[G>>2]=l+4,ar[l>>2]=T,l=0}r=0|ar[A>>2],(0|(o=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=o+1,hf(0|tr[o>>0]),T=l,l=f,o=M):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),T=l,l=f,o=M)}l=0|ar[G>>2],0|T&&(0|ar[D>>2])!=(0|l)&&((0|l)==(0|ar[E>>2])&&(ui(D,G,E),l=0|ar[G>>2]),ar[G>>2]=l+4,ar[l>>2]=T);r:do{if(0<(0|ar[C>>2])){l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(o){if(0|Mf(l=(0|(l=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[l>>0]),-1)){ar[e>>2]=0,H=193;break}if(r)break;H=232;break A}H=193}while(0);if(193==(0|H)){if(H=0,r){H=232;break A}o=0}if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24!=(0|tr[W>>0])){H=232;break A}for(l=0|ar[A>>2],l=((0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),o);;){if((0|ar[C>>2])<=0)break r;r=0|ar[A>>2];do{if(r){if(0|Mf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(o){if(0|Mf(r=(0|(r=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[r>>0]),-1)){l=ar[e>>2]=0,H=216;break}if(i^0==(0|l)){o=f=l;break}H=232;break A}H=216}while(0);if(216==(0|H)){if(H=0,i){H=232;break A}f=l,o=0}if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24<=-1){H=232;break A}if(!(2048&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1])){H=232;break A}(0|ar[c>>2])==(0|ar[B>>2])&&li(a,c,B),l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),r=0|ar[c>>2],ar[c>>2]=r+1,tr[r>>0]=l,ar[C>>2]=(0|ar[C>>2])-1,l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))!=(0|ar[l+16>>2])?(ar[r>>2]=i+1,hf(0|tr[i>>0]),l=f):(jb[127&ar[40+(0|ar[l>>2])>>2]](l),l=f)}}}while(0);if((0|ar[c>>2])==(0|ar[a>>2])){H=232;break A}l=j;break;default:l=j}}while(0);e:do{if(46==(0|H))for(;;){r=(H=0)|ar[A>>2];do{if(r){if(0|Mf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(o){if(0|Mf(r=(0|(r=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[r>>0]),-1)){l=ar[e>>2]=0,H=59;break}if(i^0==(0|l)){o=f=l;break}l=j;break e}H=59}while(0);if(59==(0|H)){if(H=0,i){l=j;break e}f=l,o=0}if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24<=-1){l=j;break e}if(!(8192&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1])){l=j;break e}l=0|ar[A>>2],_u(Y,255&(l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,0|hf(0|tr[i>>0])))),l=f,H=46}}while(0);j=l,z=z+1|0}A:do{if(44==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(103==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(144==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(232==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(234==(0|H)){e:do{if(o){f=j+11|0,M=j+4|0,o=1;r:for(;;){if((l=0|tr[f>>0])<<24>>24<0?l=0|ar[M>>2]:l&=255,l>>>0<=o>>>0)break e;l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);l=0|ar[e>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[e>>2]=0,H=253;break}if(i)break;break r}H=253}while(0);if(253==(0|H)&&(H=0,i))break;if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),r=(0|tr[f>>0])<0?0|ar[j>>2]:j,(255&l)<<24>>24!=(0|tr[r+o>>0]))break;l=o+1|0,r=0|ar[A>>2],(0|(o=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=o+1,hf(0|tr[o>>0]),o=l):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),o=l)}ar[n>>2]=4|ar[n>>2],r=0;break A}}while(0);if((0|(r=0|ar[D>>2]))!=(0|(l=0|ar[G>>2]))){if(ar[V>>2]=0,gn(F,r,l,V),0|ar[V>>2]){ar[n>>2]=4|ar[n>>2],r=0;break}r=1;break}r=1}}while(0);return Bu(Y),Bu(_),Bu(N),Bu(R),Bu(F),l=0|ar[D>>2],(ar[D>>2]=0)|l&&is[511&ar[Q>>2]](l),ur=J,0|r}function ci(A,e,r){return(e|=0)>>>0<=(A|=0)>>>0&A>>>0<(r|=0)>>>0|0}function li(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;t=444!=(0|ar[(f=(A|=0)+4|0)>>2]),n=0|ar[A>>2],o=0==(0|(o=(o=(0|ar[r>>2])-n|0)>>>0<2147483647?o<<1:-1))?1:o,i=(0|ar[e>>2])-n|0,(n=0|Ec(t?n:0,o))||gu(),t?ar[A>>2]=n:(t=0|ar[A>>2],ar[A>>2]=n,t&&(is[511&ar[f>>2]](t),n=0|ar[A>>2])),ar[f>>2]=445,ar[e>>2]=n+i,ar[r>>2]=(0|ar[A>>2])+o}function ui(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;t=444!=(0|ar[(f=(A|=0)+4|0)>>2]),n=0|ar[A>>2],o=0==(0|(o=(o=(0|ar[r>>2])-n|0)>>>0<2147483647?o<<1:-1))?4:o,i=(0|ar[e>>2])-n>>2,(n=0|Ec(t?n:0,o))||gu(),t?ar[A>>2]=n:(t=0|ar[A>>2],ar[A>>2]=n,t&&(is[511&ar[f>>2]](t),n=0|ar[A>>2])),ar[f>>2]=445,ar[e>>2]=n+(i<<2),ar[r>>2]=(0|ar[A>>2])+(o>>>2<<2)}function bi(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0;for(G=ur=(D=ur)+31&-32,ur=ur+512|0,z=104+G|0,Q=88+G|0,C=80+G|0,B=76+G|0,E=504+G|0,X=72+G|0,W=68+G|0,V=56+G|0,F=44+G|0,R=32+G|0,N=20+G|0,_=8+G|0,I=4+G|0,ar[(y=96+G|0)>>2]=l,ar[Q>>2]=z,ar[(Y=4+Q|0)>>2]=444,ar[C>>2]=z,ar[B>>2]=z+400,ar[V>>2]=0,ar[4+V>>2]=0,l=ar[8+V>>2]=0;3!=(0|l);)l=l+1|(ar[V+(l<<2)>>2]=0);for(ar[F>>2]=0,ar[4+F>>2]=0,l=ar[8+F>>2]=0;3!=(0|l);)l=l+1|(ar[F+(l<<2)>>2]=0);for(ar[R>>2]=0,ar[4+R>>2]=0,l=ar[8+R>>2]=0;3!=(0|l);)l=l+1|(ar[R+(l<<2)>>2]=0);for(ar[N>>2]=0,ar[4+N>>2]=0,l=ar[8+N>>2]=0;3!=(0|l);)l=l+1|(ar[N+(l<<2)>>2]=0);for(ar[_>>2]=0,ar[4+_>>2]=0,l=ar[8+_>>2]=0;3!=(0|l);)l=l+1|(ar[_+(l<<2)>>2]=0);!function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){for(e=0|un(e,60968),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=a+8+3|0)>>0])<0?(r=0|ar[a>>2],ar[l>>2]=0,ln(r,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=o+8+3|0)>>0])<0?(a=0|ar[o>>2],ar[l>>2]=0,ln(a,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),ar[i>>2]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),ar[f>>2]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=t+8+3|0)>>0])<0?(n=0|ar[t>>2],ar[l>>2]=0,ln(n,l),ar[t+4>>2]=0):(ar[l>>2]=0,ln(t,l),tr[A>>0]=0),Mu(t,0),ar[t>>2]=ar[u>>2],ar[t+4>>2]=ar[4+u>>2],ar[t+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Qu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}else{for(e=0|un(e,60960),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=a+8+3|0)>>0])<0?(r=0|ar[a>>2],ar[l>>2]=0,ln(r,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=o+8+3|0)>>0])<0?(a=0|ar[o>>2],ar[l>>2]=0,ln(a,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),ar[i>>2]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),ar[f>>2]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=t+8+3|0)>>0])<0?(n=0|ar[t>>2],ar[l>>2]=0,ln(n,l),ar[t+4>>2]=0):(ar[l>>2]=0,ln(t,l),tr[A>>0]=0),Mu(t,0),ar[t>>2]=ar[u>>2],ar[t+4>>2]=ar[4+u>>2],ar[t+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Qu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}ar[c>>2]=A,ur=b}(r,i,E,X,W,V,F,R,N,I),ar[c>>2]=ar[a>>2],m=8+R+3|0,g=4+R|0,Z=8+N+3|0,p=4+N|0,u=0!=(512&f|0),b=8+F+3|0,s=4+F|0,d=8+_+3|0,k=4+_|0,h=3+E|0,w=11+V|0,v=4+V|0,O=z=0;A:for(;;){if(f=0!=(0|z),4<=O>>>0){j=229;break}l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);r=0|ar[e>>2];do{if(r){if(0|Uf(l=(0|(l=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[l>>2]),-1)){ar[e>>2]=0,j=31;break}if(i){S=r;break}j=229;break A}j=31}while(0);if(31==(0|j)){if(j=0,i){j=229;break}S=0}l=3!=(0|O);e:do{switch(0|tr[E+O>>0]){case 1:if(l){if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,8192,l))){j=43;break A}l=0|ar[A>>2],Ou(_,l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,0|gf(0|ar[i>>2]))),f=l=S,j=45}else l=z;break;case 0:l?(f=l=S,j=45):l=z;break;case 3:if((0|(l=(l=0|tr[m>>0])<<24>>24<0?0|ar[g>>2]:255&l))==(0-(f=(f=0|tr[Z>>0])<<24>>24<0?0|ar[p>>2]:255&f)|0))l=z;else{if(J=0==(0|l),l=0|ar[A>>2],i=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2]),J|0==(0|f)){if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),J){if((0|l)!=(0|ar[((0|tr[Z>>0])<0?0|ar[N>>2]:N)>>2])){l=z;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),l=(tr[t>>0]=1)<((l=0|tr[Z>>0])<<24>>24<0?0|ar[p>>2]:255&l)>>>0?N:z;break e}if((0|l)!=(0|ar[((0|tr[m>>0])<0?0|ar[R>>2]:R)>>2])){tr[t>>0]=1,l=z;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),l=1<((l=0|tr[m>>0])<<24>>24<0?0|ar[g>>2]:255&l)>>>0?R:z;break e}if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),r=0|ar[A>>2],J=(0|(f=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2]),(0|l)==(0|ar[((0|tr[m>>0])<0?0|ar[R>>2]:R)>>2])){J?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=f+4,gf(0|ar[f>>2])),l=1<((l=0|tr[m>>0])<<24>>24<0?0|ar[g>>2]:255&l)>>>0?R:z;break e}if((0|(l=J?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[f>>2])))!=(0|ar[((0|tr[Z>>0])<0?0|ar[N>>2]:N)>>2])){j=101;break A}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),l=(tr[t>>0]=1)<((l=0|tr[Z>>0])<<24>>24<0?0|ar[p>>2]:255&l)>>>0?N:z}break;case 2:if(!(O>>>0<2|f)&&!(u|2==(0|O)&0!=(0|tr[h>>0]))){l=0;break e}i=0|tr[b>>0],f=0|ar[F>>2],l=i<<24>>24<0?f:F;r:do{if(0!=(0|O)&&(0|cr[E+(O+-1)>>0])<2){for(;(0|(r=l))!=(((U=i<<24>>24<0)?f:F)+((U?0|ar[s>>2]:255&i)<<2)|0);){if(!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,8192,0|ar[r>>2]))){j=108;break}l=r+4|0,i=0|tr[b>>0],f=0|ar[F>>2]}if(108==(0|j)&&(i=(j=0)|tr[b>>0],f=0|ar[F>>2]),T=l-(U=J=i<<24>>24<0?f:F)>>2,(M=(r=(M=0|tr[d>>0])<<24>>24<0)?0|ar[k>>2]:255&M)>>>0>>0)r=U,J=T=S;else for(r=(M=(r?0|ar[_>>2]:_)+(M<<2)|0)+(0-T<<2)|0;;){if((0|r)==(0|M)){r=l,J=T=S;break r}if((0|ar[r>>2])!=(0|ar[J>>2])){r=U,J=T=S;break r}J=J+4|0,r=r+4|0}}else r=l,J=T=S}while(0);r:for(;(0|(M=r))!=(0|(l=((l=i<<24>>24<0)?f:F)+((l?0|ar[s>>2]:255&i)<<2)|0));){l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(J){if(0|Uf(l=(0|(l=0|ar[J+12>>2]))==(0|ar[J+16>>2])?0|jb[127&ar[36+(0|ar[J>>2])>>2]](J):0|gf(0|ar[l>>2]),-1)){l=ar[e>>2]=0,j=129;break}if(r^0==(0|T)){J=l=T;break}l=M;break r}l=T,j=129}while(0);if(129==(0|j)){if(j=0,r){l=M;break}J=0}if(r=0|ar[A>>2],(0|(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2])))!=(0|ar[M>>2])){l=M;break}r=0|ar[A>>2],(0|(f=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2])?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=f+4,gf(0|ar[f>>2])),T=l,r=M+4|0,i=0|tr[b>>0],f=0|ar[F>>2]}if(u&&(0|l)!=(((U=(S=0|tr[b>>0])<<24>>24<0)?0|ar[F>>2]:F)+((U?0|ar[s>>2]:255&S)<<2)|0)){j=141;break A}l=z;break;case 4:T=0,f=l=S;r:for(;;){r=0|ar[A>>2];do{if(r){if(0|Uf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(f){if(0|Uf(r=(0|(r=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[r>>2]),-1)){l=ar[e>>2]=0,j=155;break}if(i^0==(0|l)){M=J=l;break}f=l;break r}j=155}while(0);if(155==(0|j)){if(j=0,i){f=l;break}J=l,M=0}if(l=0|ar[A>>2],r=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,2048,r))(0|(l=0|ar[c>>2]))==(0|ar[y>>2])&&(di(a,c,y),l=0|ar[c>>2]),ar[c>>2]=l+4,ar[l>>2]=r,l=T+1|0;else{if(S=0|tr[w>>0],!((0|r)==(0|ar[W>>2])&(0|T?0!=(0|(S<<24>>24<0?0|ar[v>>2]:255&S)):0))){f=J;break}(0|(l=0|ar[C>>2]))==(0|ar[B>>2])&&(ui(Q,C,B),l=0|ar[C>>2]),ar[C>>2]=l+4,ar[l>>2]=T,l=0}r=0|ar[A>>2],(0|(f=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=f+4,gf(0|ar[f>>2]),T=l,l=J,f=M):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),T=l,l=J,f=M)}l=0|ar[C>>2],0|T&&(0|ar[Q>>2])!=(0|l)&&((0|l)==(0|ar[B>>2])&&(ui(Q,C,B),l=0|ar[C>>2]),ar[C>>2]=l+4,ar[l>>2]=T);r:do{if(0<(0|ar[I>>2])){l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(f){if(0|Uf(l=(0|(l=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[l>>2]),-1)){ar[e>>2]=0,j=189;break}if(r)break;j=227;break A}j=189}while(0);if(189==(0|j)){if(j=0,r){j=227;break A}f=0}if(l=0|ar[A>>2],(0|(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2])))!=(0|ar[X>>2])){j=227;break A}for(l=0|ar[A>>2],l=((0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),f);;){if((0|ar[I>>2])<=0)break r;r=0|ar[A>>2];do{if(r){if(0|Uf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(f){if(0|Uf(r=(0|(r=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[r>>2]),-1)){l=ar[e>>2]=0,j=212;break}if(i^0==(0|l)){f=J=l;break}j=227;break A}j=212}while(0);if(212==(0|j)){if(j=0,i){j=227;break A}J=l,f=0}if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,2048,l))){j=227;break A}(0|ar[c>>2])==(0|ar[y>>2])&&di(a,c,y),l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),r=0|ar[c>>2],ar[c>>2]=r+4,ar[r>>2]=l,ar[I>>2]=(0|ar[I>>2])-1,l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))!=(0|ar[l+16>>2])?(ar[r>>2]=i+4,gf(0|ar[i>>2]),l=J):(jb[127&ar[40+(0|ar[l>>2])>>2]](l),l=J)}}}while(0);if((0|ar[c>>2])==(0|ar[a>>2])){j=227;break A}l=z;break;default:l=z}}while(0);e:do{if(45==(0|j))for(;;){r=(j=0)|ar[A>>2];do{if(r){if(0|Uf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(f){if(0|Uf(r=(0|(r=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[r>>2]),-1)){l=ar[e>>2]=0,j=58;break}if(i^0==(0|l)){f=J=l;break}l=z;break e}j=58}while(0);if(58==(0|j)){if(j=0,i){l=z;break e}J=l,f=0}if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,8192,l))){l=z;break e}l=0|ar[A>>2],Ou(_,l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,0|gf(0|ar[i>>2]))),l=J,j=45}}while(0);z=l,O=O+1|0}A:do{if(43==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(101==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(141==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(227==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(229==(0|j)){e:do{if(f){J=z+8+3|0,M=z+4|0,f=1;r:for(;;){if((l=0|tr[J>>0])<<24>>24<0?l=0|ar[M>>2]:l&=255,l>>>0<=f>>>0)break e;l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);l=0|ar[e>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[e>>2]=0,j=248;break}if(i)break;break r}j=248}while(0);if(248==(0|j)&&(j=0,i))break;if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),r=(0|tr[J>>0])<0?0|ar[z>>2]:z,(0|l)!=(0|ar[r+(f<<2)>>2]))break;l=f+1|0,r=0|ar[A>>2],(0|(f=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=f+4,gf(0|ar[f>>2]),f=l):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),f=l)}ar[n>>2]=4|ar[n>>2],r=0;break A}}while(0);if((0|(r=0|ar[Q>>2]))!=(0|(l=0|ar[C>>2]))){if(ar[G>>2]=0,gn(V,r,l,G),0|ar[G>>2]){ar[n>>2]=4|ar[n>>2],r=0;break}r=1;break}r=1}}while(0);return Qu(_),Qu(N),Qu(R),Qu(F),Bu(V),l=0|ar[Q>>2],(ar[Q>>2]=0)|l&&is[511&ar[Y>>2]](l),ur=D,0|r}function si(A,e,r){return(e|=0)>>>0<=(A|=0)>>>0&A>>>0<(r|=0)>>>0|0}function di(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;t=444!=(0|ar[(f=(A|=0)+4|0)>>2]),n=0|ar[A>>2],o=0==(0|(o=(o=(0|ar[r>>2])-n|0)>>>0<2147483647?o<<1:-1))?4:o,i=(0|ar[e>>2])-n>>2,(n=0|Ec(t?n:0,o))||gu(),t?ar[A>>2]=n:(t=0|ar[A>>2],ar[A>>2]=n,t&&(is[511&ar[f>>2]](t),n=0|ar[A>>2])),ar[f>>2]=445,ar[e>>2]=n+(i<<2),ar[r>>2]=(0|ar[A>>2])+(o>>>2<<2)}function ki(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s=0;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){if(s=0|un(r,60952),e){for(fs[63&ar[44+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}else{for(fs[63&ar[40+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}for(A=0|jb[127&ar[12+(0|ar[s>>2])>>2]](s),tr[f>>0]=A,A=0|jb[127&ar[16+(0|ar[s>>2])>>2]](s),tr[n>>0]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),A=0|jb[127&ar[36+(0|ar[s>>2])>>2]](s)}else{if(s=0|un(r,60944),e){for(fs[63&ar[44+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}else{for(fs[63&ar[40+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}for(A=0|jb[127&ar[12+(0|ar[s>>2])>>2]](s),tr[f>>0]=A,A=0|jb[127&ar[16+(0|ar[s>>2])>>2]](s),tr[n>>0]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),A=0|jb[127&ar[36+(0|ar[s>>2])>>2]](s)}ar[c>>2]=A,ur=b}function hi(A,e,r,i,f,n,t,o,a,c,l,u,b,s,d){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,s|=0,d|=0;var k,h,w,v,m,g,Z,p,y,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0;for(ar[(r|=0)>>2]=A,k=s+11|0,y=s+4|0,h=b+11|0,w=b+4|0,v=0==(512&i|0),m=t+8|0,g=0<(0|d),Z=u+11|0,p=u+4|0,G=0;4!=(0|G);){A:do{switch(0|tr[a+G>>0]){case 0:ar[e>>2]=ar[r>>2];break;case 1:ar[e>>2]=ar[r>>2],I=0|Hb[31&ar[28+(0|ar[t>>2])>>2]](t,32),C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=I;break;case 3:0|((B=(C=0|tr[k>>0])<<24>>24<0)?0|ar[y>>2]:255&C)&&(I=0|tr[(B?0|ar[s>>2]:s)>>0],C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=I);break;case 2:if(!(v|0==(0|(E=(B=(E=0|tr[h>>0])<<24>>24<0)?0|ar[w>>2]:255&E)))){for(X=(C=B?0|ar[b>>2]:b)+E|0,B=0|ar[r>>2],E=C;(0|E)!=(0|X);)tr[B>>0]=0|tr[E>>0],B=B+1|0,E=E+1|0;ar[r>>2]=B}break;case 4:for(E=0|ar[r>>2],X=f=o?f+1|0:f;!(n>>>0<=X>>>0)&&!((B=0|tr[X>>0])<<24>>24<=-1)&&2048&or[(0|ar[m>>2])+(B<<24>>24<<1)>>1];)X=X+1|0;if(g){for(W=d;f>>>0>>0&(B=0<(0|W));)B=0|tr[(C=X+-1|0)>>0],I=0|ar[r>>2],ar[r>>2]=I+1,tr[I>>0]=B,W=W+-1|0,X=C;for(I=B?0|Hb[31&ar[28+(0|ar[t>>2])>>2]](t,48):0,B=W;W=0|ar[r>>2],ar[r>>2]=W+1,!((0|B)<=0);)tr[W>>0]=I,B=B+-1|0;tr[W>>0]=c}e:do{if((0|X)==(0|f))I=0|Hb[31&ar[28+(0|ar[t>>2])>>2]](t,48),C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=I;else for(C=W=(I=0|((B=(C=0|tr[Z>>0])<<24>>24<0)?0|ar[p>>2]:255&C)?0|tr[(B?0|ar[u>>2]:u)>>0]:-1,0);;){if((0|X)==(0|f))break e;B=(0|C)==(0|I)?(I=0|ar[r>>2],ar[r>>2]=I+1,tr[I>>0]=l,I=(W=W+1|0)>>>0<((B=(I=0|tr[Z>>0])<<24>>24<0)?0|ar[p>>2]:255&I)>>>0?(I=0|tr[(B?0|ar[u>>2]:u)+W>>0])<<24>>24==127?-1:I<<24>>24:C,0):C,F=0|tr[(V=X+-1|0)>>0],C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=F,C=B+1|0,X=V}}while(0);if((0|E)!=(0|(B=0|ar[r>>2])))for(;;){if((B=B+-1|0)>>>0<=E>>>0)break A;F=0|tr[E>>0],tr[E>>0]=0|tr[B>>0],tr[B>>0]=F,E=E+1|0}}}while(0);G=G+1|0}if(1<(f=(B=(f=0|tr[k>>0])<<24>>24<0)?0|ar[y>>2]:255&f)>>>0){for(E=(F=B?0|ar[s>>2]:s)+f|0,B=0|ar[r>>2],f=F;(0|(f=f+1|0))!=(0|E);)tr[B>>0]=0|tr[f>>0],B=B+1|0;ar[r>>2]=B}switch((176&i)<<24>>24){case 32:ar[e>>2]=ar[r>>2];break;case 16:break;default:ar[e>>2]=A}}function wi(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;A:do{if(36>>0)ar[(f=10364)>>2]=22,i=f=0;else{for(d=A+4|0,s=A+100|0;0!=(0|mi(n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A))););e:do{switch(0|n){case 43:case 45:if(n=(45==(0|n))<<31>>31,(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0){ar[d>>2]=t+1,b=n,n=0|cr[t>>0];break e}b=n,n=0|vi(A);break e;default:b=0}}while(0);t=0==(0|e);do{if(16==(16|e)&48==(0|n)){if(120!=(32|(n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A)))){if(t){e=8,l=46;break}l=32;break}if(n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A),15<(0|cr[52625+n>>0])){if((i=0!=(0|ar[s>>2]))&&(ar[d>>2]=(0|ar[d>>2])-1),!r){nl(A,0),i=f=0;break A}if(!i){i=f=0;break A}ar[d>>2]=(0|ar[d>>2])-1,i=f=0;break A}e=16,l=46}else{if(e=t?10:e,!((0|cr[52625+n>>0])>>>0>>0)){0|ar[s>>2]&&(ar[d>>2]=(0|ar[d>>2])-1),nl(A,0),ar[(f=10364)>>2]=22,i=f=0;break A}l=32}}while(0);e:do{if(32==(0|l))if(10==(0|e)){if((e=n+-48|0)>>>0<10){for(n=0,t=e;n=(10*n|0)+t|0,(t=(e=(e=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=e+1,0|cr[e>>0]):0|vi(A))+-48|0)>>>0<10&n>>>0<429496729;);r=0}else e=n,r=n=0;if((o=e+-48|0)>>>0<10){t=e;do{if(e=0|nb(0|n,0|r,10,0),(u=~(c=((0|o)<0)<<31>>31))>>>0<(a=D)>>>0|(0|a)==(0|u)&~o>>>0>>0){e=10,l=72;break e}n=0|tb(0|e,0|a,0|o,0|c),r=D,o=(t=(e=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=e+1,0|cr[e>>0]):0|vi(A))+-48|0}while(o>>>0<10&(r>>>0<429496729|429496729==(0|r)&n>>>0<2576980378));9>>0?(t=b,e=r):(e=10,l=72)}else t=b,e=r}else l=46}while(0);e:do{if(46==(0|l)){if(!(e+-1&e)){if(l=0|tr[52881+((23*e|0)>>>5&7)>>0],(t=255&(r=0|tr[52625+n>>0]))>>>0>>0){for(n=0,o=t;n=o|n<>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),n>>>0<134217728&(o=255&(r=0|tr[52625+t>>0]))>>>0>>0;);o=0}else t=n,n=o=0;if(a=0|sb(-1,-1,0|l),e>>>0<=(255&r)>>>0|(c=D)>>>0>>0|(0|o)==(0|c)&a>>>0>>0){r=o,l=72;break}for(t=o;;){if(n=0|db(0|n,0|t,0|l),o=D,n|=255&r,t=(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),e>>>0<=(255&(r=0|tr[52625+t>>0]))>>>0|c>>>0>>0|(0|o)==(0|c)&a>>>0>>0){r=o,l=72;break e}t=o}}if((t=255&(r=0|tr[52625+n>>0]))>>>0>>0){for(n=0,o=t;n=o+(0|br(n,e))|0,t=(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),n>>>0<119304647&(o=255&(r=0|tr[52625+t>>0]))>>>0>>0;);o=0}else t=n,o=n=0;if((255&r)>>>0>>0)for(l=0|lb(-1,-1,0|e,0),u=D,c=o;;){if(u>>>0>>0|(0|c)==(0|u)&l>>>0>>0){r=c,l=72;break e}if(o=0|nb(0|n,0|c,0|e,0),4294967295<(a=D)>>>0|-1==(0|a)&~(r&=255)>>>0>>0){r=c,l=72;break e}if(n=0|tb(0|r,0,0|o,0|a),o=D,t=(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),e>>>0<=(255&(r=0|tr[52625+t>>0]))>>>0){r=o,l=72;break}c=o}else r=o,l=72}}while(0);if(72==(0|l))if((0|cr[52625+t>>0])>>>0>>0){for(;n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A),(0|cr[52625+n>>0])>>>0>>0;);ar[(t=10364)>>2]=34,t=0==(1&i|0)&!0?b:0,e=f,n=i}else t=b,e=r;if(0|ar[s>>2]&&(ar[d>>2]=(0|ar[d>>2])-1),!(e>>>0>>0|(0|e)==(0|f)&n>>>0>>0)){if(!(0!=(1&i|0)|!1|0!=(0|t))){ar[(d=10364)>>2]=34,i=0|tb(0|i,0|f,-1,-1),f=D;break}if(f>>>0>>0|(0|e)==(0|f)&i>>>0>>0){ar[(d=10364)>>2]=34;break}}i=0|ob(n^t|0,e^(i=((0|t)<0)<<31>>31)|0,0|t,0|i),f=D}}while(0);return D=f,0|i}function vi(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0;return!(0!=(0|(t=0|ar[(r=(A|=0)+104|0)>>2]))&&(0|ar[A+108>>2])>=(0|t))&&0<=(0|(e=0|gi(A)))?(i=0|ar[r>>2],r=A+8|0,i?i=((t=n=0|ar[r>>2])-(r=0|ar[A+4>>2])|0)<(0|(i=i-(0|ar[(f=A+108|0)>>2])|0))?n=t:(n=r+(i+-1)|0,t):(f=A+108|0,n=i=0|ar[r>>2],r=0|ar[A+4>>2]),ar[A+100>>2]=n,0|i&&(ar[f>>2]=i+1-r+(0|ar[f>>2])),(0|cr[(r=r+-1|0)>>0])!=(0|e)&&(tr[r>>0]=e)):o=4,4==(0|o)&&(ar[A+100>>2]=0,e=-1),0|e}function mi(A){return 1&(32==(0|(A|=0))|(A+-9|0)>>>0<5)|0}function gi(A){var e,r;return e=ur=(r=ur)+31&-32,ur=ur+16|0,A=0==(0|Zi(A|=0))&&1==(0|xb[63&ar[A+32>>2]](A,e,1))?0|cr[e>>0]:-1,ur=r,0|A}function Zi(A){var e=0,r=0;return r=0|tr[(e=(A|=0)+74|0)>>0],tr[e>>0]=r+255|r,r=A+28|0,(0|ar[(e=A+20|0)>>2])>>>0>(0|ar[r>>2])>>>0&&xb[63&ar[A+36>>2]](A,0,0),ar[A+16>>2]=0,ar[r>>2]=0,(ar[e>>2]=0)|(e=4&(e=0|ar[A>>2])?(ar[A>>2]=32|e,-1):(r=(0|ar[A+44>>2])+(0|ar[A+48>>2])|0,ar[A+8>>2]=r,ar[A+4>>2]=r,e<<27>>31))}function pi(A,e,r){var i,f,n;return 0|(0|(i=A|=0,f=e|=0,n=r|=0,0|(n=0|fl(i|=0,f|=0,n|=0,0,-2147483648))))}function yi(){return 0|(0|ar[ar[2622]>>2]?4:1)}function Bi(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o;return f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=r,r=0|(n=A,t=e,o=f,0|Yc(n|=0,2147483647,t|=0,o|=0)),ur=i,0|r}function Ei(A,e){A|=0,e|=0;var r,i;return i=ur=(r=ur)+31&-32,ur=ur+16|0,ar[i>>2]=A,ar[4+i>>2]=e,e=0|Ic(0|M(91,0|i)),ur=r,0|e}function Xi(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0;f=0|ar[(e|=0)>>2],a=0!=(0|i)&&0!=(0|(n=0|ar[i>>2]))?A?(ar[i>>2]=0,o=r,t=f,43):(t=f,i=r,25):5;A:do{if(5==(0|a)){if(i=0!=(0|A),0|ar[ar[(a=10488)>>2]>>2]){if(i){i=r,a=15;break}i=r,a=14;break}if(!i){r=0|Vc(f),a=59;break}e:do{if(r){for(i=r;(n=0|tr[f>>0])<<24>>24;){if(f=f+1|0,ar[A>>2]=n<<24>>24&57343,!(i=i+-1|0))break e;A=A+4|0}ar[A>>2]=0,r=r-i|(ar[e>>2]=0),a=59;break A}}while(0);ar[e>>2]=f,a=59}}while(0);A:for(;;){e:do{if(14==(0|a)){for(;;){if(((255&(n=0|tr[f>>0]))-1|0)>>>0<127&&0==(3&f|0)&&(n=255&(a=0|ar[f>>2]),!(-2139062144&(a+-16843009|a)))){for(;i=i+-4|0,!(-2139062144&((n=0|ar[(f=f+4|0)>>2])+-16843009|n)|0););n&=255}if(127<=((n&=255)+-1|0)>>>0)break;f=f+1|0,i=i+-1|0}if(!(50<(n=n+-194|0)>>>0)){n=0|ar[9896+(n<<2)>>2],t=f+1|0,a=25;continue A}a=53}else{if(15==(0|a)){r:do{if(i){for(;;){n=0|tr[f>>0];do{if(((255&n)-1|0)>>>0<127&&4>>0&0==(3&f|0)){for(;;){if(-2139062144&((n=0|ar[f>>2])+-16843009|n)|0){a=38;break}if(ar[A>>2]=255&n,ar[A+4>>2]=cr[f+1>>0],ar[A+8>>2]=cr[f+2>>0],t=f+4|0,n=A+16|0,ar[A+12>>2]=cr[f+3>>0],!(4<(i=i+-4|0)>>>0)){a=37;break}A=n,f=t}if(37==(0|a)){A=n,n=0|tr[(f=t)>>0];break}if(38==(0|a)){n&=255;break}}}while(0);if(127<=((n&=255)+-1|0)>>>0)break;if(f=f+1|0,ar[A>>2]=n,!(i=i+-1|0))break r;A=A+4|0}if(50<(n=n+-194|0)>>>0){a=53;break e}n=0|ar[9896+(n<<2)>>2],o=i,t=f+1|0,a=43;continue A}}while(0);ar[e>>2]=f,a=59;continue A}if(25==(0|a)){if(!(7<((a=(0|cr[t>>0])>>>3)+-16|a+(n>>26))>>>0)){if(f=t+1|0,33554432&n){if((-64&tr[f>>0])<<24>>24!=-128){f=t,a=52;break}if(f=t+2|0,524288&n){if((-64&tr[f>>0])<<24>>24!=-128){f=t,a=52;break}f=t+3|0}}i=i+-1|0,a=14;continue A}f=t,a=52}else if(43==(0|a)){if(!(7<((f=(i=(a=0)|cr[t>>0])>>>3)+-16|f+(n>>26))>>>0)){f=t+1|0,i=i+-128|n<<6;do{if((0|i)<0){if(63<(n=(0|cr[f>>0])-128|0)>>>0){f=t+-1|0,r=A;break e}if(f=t+2|0,(0|(i=n|i<<6))<0){if(63<(n=(0|cr[f>>0])-128|0)>>>0){f=t+-1|0,r=A;break e}f=t+3|0,i=n|i<<6;break}}}while(0);ar[A>>2]=i,A=A+4|0,i=o+-1|0,a=15;continue A}f=t,i=o,a=52}else if(59==(0|a))return 0|r}}while(0);if(52==(0|a)&&(f=f+-1|(a=0),n?r=A:a=53),53==(0|a)){if(!(0|tr[f>>0])){0|A&&(ar[A>>2]=0,ar[e>>2]=0),r=r-i|0,a=59;continue}r=A}ar[(a=10364)>>2]=84,r?(ar[e>>2]=f,r=-1,a=59):(r=-1,a=59)}return 0}function Wi(A){var e=0,r=0,i=0;0<=(0|ar[(A|=0)+76>>2])&&0!=(0|Jc())?e=(r=0|ar[(e=A+4|0)>>2])>>>0<(0|ar[A+8>>2])>>>0?(ar[e>>2]=r+1,0|cr[r>>0]):0|gi(A):i=3;do{if(3==(0|i)){if((r=0|ar[(e=A+4|0)>>2])>>>0<(0|ar[A+8>>2])>>>0){ar[e>>2]=r+1,e=0|cr[r>>0];break}e=0|gi(A);break}}while(0);return 0|e}function Ii(A,e,r){A|=0,e|=0,r|=0;var i,f;return f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=r,r=0|Qc(A,e,f),ur=i,0|r}function Ci(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;A:do{if(A){e:do{if(3>>0){for(i=r,t=0|ar[e>>2];;){if(126<((o=0|ar[t>>2])+-1|0)>>>0){if(!o)break;if(-1==(0|(o=0|$c(A,o)))){r=-1;break A}A=A+o|0,i=i-o|0}else tr[A>>0]=o,A=A+1|0,i=i+-1|0,t=0|ar[e>>2];if(t=t+4|0,ar[e>>2]=t,i>>>0<=3)break e}tr[A>>0]=0,r=r-i|(ar[e>>2]=0);break A}i=r}while(0);if(i){for(t=0|ar[e>>2];;){if(126<((o=0|ar[t>>2])+-1|0)>>>0){if(!o){t=19;break}if(-1==(0|(o=0|$c(f,o)))){r=-1;break A}if(i>>>0>>0){t=22;break}$c(A,0|ar[t>>2]),A=A+o|0,i=i-o|0}else tr[A>>0]=o,A=A+1|0,i=i+-1|0,t=0|ar[e>>2];if(t=t+4|0,ar[e>>2]=t,!i)break A}if(19==(0|t)){tr[A>>0]=0,r=r-i|(ar[e>>2]=0);break}if(22==(0|t)){r=r-i|0;break}}}else if(r=0|ar[e>>2],i=0|ar[r>>2]){A=r,r=0;do{if(127>>0){if(-1==(0|(i=0|$c(f,i)))){r=-1;break A}}else i=1;r=i+r|0,i=0|ar[(A=A+4|0)>>2]}while(0!=(0|i))}else r=0}while(0);return ur=n,0|r}function Gi(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t=0,o=0,a=0,c=0;t=ur=(n=ur)+31&-32,ur=ur+16|0,i=0|ar[(f=0==(0|(i|=0))?58152:i)>>2];A:do{if(e)if(o=0==(0|A)?t:A,r){if(i)t=r,a=11;else{if(-1<(i=0|tr[e>>0])<<24>>24){ar[o>>2]=255&i,i=i<<24>>24!=0&1;break}if(t=10488,i=0|tr[e>>0],!(0|ar[ar[t>>2]>>2])){ar[o>>2]=i<<24>>24&57343,i=1;break}if(50<(i=(255&i)-194|0)>>>0){a=17;break}i=0|ar[9896+(i<<2)>>2],(t=r+-1|0)&&(e=e+1|0,a=11)}e:do{if(11==(0|a)){if(7<((c=(255&(A=0|tr[e>>0]))>>>3)+-16|c+(i>>26))>>>0){a=17;break A}for(;e=e+1|0,t=t+-1|0,!(0<=(0|(i=(255&A)-128|i<<6)));){if(!t)break e;if((-64&(A=0|tr[e>>0]))<<24>>24!=-128){a=17;break A}}ar[f>>2]=0,ar[o>>2]=i,i=r-t|0;break A}}while(0);ar[f>>2]=i,i=-2}else i=-2;else i?a=17:i=0}while(0);return 17==(0|a)&&(ar[f>>2]=0,ar[(i=10364)>>2]=84,i=-1),ur=n,0|i}function Vi(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0;t=ur=(a=ur)+31&-32,ur=ur+1040|0,n=8+t|0,b=0|ar[(e|=0)>>2],l=(o=0!=(0|A))?i:256,A=o?A:n,c=ar[t>>2]=b;A:do{if(0!=(0|l)&0!=(0|b)){for(i=0,b=r;;){if(!(131>>0|(r=l>>>0<=(u=b>>>2)>>>0))){r=b;break A}if(r=b-(c=r?l:u)|0,-1==(0|(c=0|Xi(A,t,c,f))))break;if(A=(b=(0|A)==(0|n))?A:A+(c<<2)|0,i=c+i|0,!(0!=(0|(l=l-(b?0:c)|0))&0!=(0|(c=0|ar[t>>2]))))break A;b=r}i=-1,c=(l=0)|ar[t>>2]}else i=0}while(0);A:do{if(0!=(0|c)&&0!=(0|l)&0!=(0|r)){for(u=A;!(((A=0|Gi(u,c,r,f))+2|0)>>>0<3);){if(c=(0|ar[t>>2])+A|0,ar[t>>2]=c,i=i+1|0,!(0!=(0|(l=l+-1|0))&0!=(0|(r=r-A|0))))break A;u=u+4|0}switch(0|A){case-1:i=-1;break A;case 0:ar[t>>2]=0;break A;default:ar[f>>2]=0;break A}}}while(0);return o&&(ar[e>>2]=ar[t>>2]),ur=a,0|i}function Fi(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0;t=ur=(a=ur)+31&-32,ur=ur+272|0,n=8+t|0,l=0|ar[(e|=0)>>2],c=(o=0!=(0|A))?i:256,A=o?A:n,i=ar[t>>2]=l;A:do{if(0!=(0|c)&0!=(0|l)){for(f=0,l=i;;){if(!((i=c>>>0<=r>>>0)|32>>0)){i=l;break A}if(r=r-(i=i?c:r)|0,-1==(0|(i=0|Ci(A,t,i,0))))break;if(A=(l=(0|A)==(0|n))?A:A+i|0,f=i+f|0,!(0!=(0|(c=c-(l?0:i)|0))&0!=(0|(i=0|ar[t>>2]))))break A;l=i}f=-1,i=(c=0)|ar[t>>2]}else f=0}while(0);A:do{if(0!=(0|i)&&0!=(0|c)&0!=(0|r)){for(l=A;!(((A=0|$c(l,0|ar[i>>2]))+1|0)>>>0<2);){if(i=4+(0|ar[t>>2])|0,ar[t>>2]=i,f=A+f|0,!(0!=(0|(c=c-A|0))&0!=(0|(r=r+-1|0))))break A;l=l+A|0}A?f=-1:ar[t>>2]=0}}while(0);return o&&(ar[e>>2]=ar[t>>2]),ur=a,0|f}function Ri(A,e,r){A|=0,r|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;switch(0|(e|=0)){case 0:a=-149,c=24,t=4;break;case 1:case 2:a=-1074,c=53,t=4;break;default:i=0}A:do{if(4==(0|t)){for(u=A+4|0,l=A+100|0;0!=(0|mi(e=(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=e+1,0|cr[e>>0]):0|vi(A))););e:do{switch(0|e){case 43:case 45:if(n=1-((45==(0|e)&1)<<1)|0,(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0){ar[u>>2]=e+1,f=0|cr[e>>0];break e}f=0|vi(A);break e;default:f=e,n=1}}while(0);e=0;do{if((32|f)!=(0|tr[52890+e>>0]))break;do{if(e>>>0<7){if((f=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0){ar[u>>2]=f+1,f=0|cr[f>>0];break}f=0|vi(A);break}}while(0);e=e+1|0}while(e>>>0<8);e:do{switch(0|e){case 8:break;case 3:t=23;break;default:if((o=0!=(0|r))&3>>0){if(8==(0|e))break e;t=23;break e}r:do{if(!e){e=0;do{if((32|f)!=(0|tr[52899+e>>0]))break r;do{if(e>>>0<2){if((f=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0){ar[u>>2]=f+1,f=0|cr[f>>0];break}f=0|vi(A);break}}while(0);e=e+1|0}while(e>>>0<3)}}while(0);switch(0|e){case 3:if(40!=(0|(e=(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=e+1,0|cr[e>>0]):0|vi(A)))){if(!(0|ar[l>>2])){i=h;break A}ar[u>>2]=(0|ar[u>>2])-1,i=h;break A}for(e=1;((f=(f=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=f+1,0|cr[f>>0]):0|vi(A))+-48|0)>>>0<10|(f+-65|0)>>>0<26||95==(0|f)|(f+-97|0)>>>0<26;)e=e+1|0;if(41==(0|f)){i=h;break A}if((f=0==(0|ar[l>>2]))||(ar[u>>2]=(0|ar[u>>2])-1),!o){ar[(u=10364)>>2]=22,nl(A,0),i=0;break A}if(!e){i=h;break A}for(;;)if(e=e+-1|0,f||(ar[u>>2]=(0|ar[u>>2])-1),!e){i=h;break A}case 0:if(48==(0|f)){if(120==(32|(e=(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=e+1,0|cr[e>>0]):0|vi(A)))){i=+Ni(A,c,a,n,r);break A}e=(0|ar[l>>2]&&(ar[u>>2]=(0|ar[u>>2])-1),48)}else e=f;i=+_i(A,e,c,a,n,r);break A;default:0|ar[l>>2]&&(ar[u>>2]=(0|ar[u>>2])-1),ar[(u=10364)>>2]=22,nl(A,0),i=0;break A}}}while(0);if(23==(0|t)&&((f=0==(0|ar[l>>2]))||(ar[u>>2]=(0|ar[u>>2])-1),0!=(0|r)&3>>0))for(;f||(ar[u>>2]=(0|ar[u>>2])-1),3<(e=e+-1|0)>>>0;);i=(0|n)*w}}while(0);return+i}function Ni(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;a=(o=(o=0|ar[(g=(A|=0)+4|0)>>2])>>>0<(0|ar[(n=A+100|0)>>2])>>>0?(ar[g>>2]=o+1,0|cr[o>>0]):0|vi(A),0);A:for(;;){switch(0|o){case 46:b=8;break A;case 48:break;default:d=1,h=a,l=u=k=a=m=t=v=w=0;break A}(o=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=o+1,o=0|cr[o>>0],a=1):(o=0|vi(A),a=1)}if(8==(0|b))if(48==(0|(o=(o=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=o+1,0|cr[o>>0]):0|vi(A)))){for(a=l=0;o=(o=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=o+1,0|cr[o>>0]):0|vi(A),l=0|tb(0|l,0|a,-1,-1),a=D,48==(0|o););h=d=w=1,u=k=m=t=v=0}else d=w=1,h=a,l=u=k=a=m=t=v=0;for(;s=46==(0|o),!(10<=(b=o+-48|0)>>>0)||s|((32|o)-97|0)>>>0<6;){if(s){if(w){o=46;break}w=1,b=v,c=d,o=m,l=u,a=k}else{o=57<(0|o)?(32|o)-87|0:b;do{if(!((0|k)<0|0==(0|k)&u>>>0<8)){if((0|k)<0|0==(0|k)&u>>>0<14){b=v,t+=(c=d*=.0625)*(0|o),o=m;break}b=(o=0!=(0|v)|0==(0|o))?v:1,c=d,t=o?t:t+.5*d,o=m;break}b=v,c=d,o=o+(m<<4)|0}while(0);u=0|tb(0|u,0|k,1,0),h=1,k=D}o=(s=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=s+1,v=b,d=c,m=o,0|cr[s>>0]):(v=b,d=c,m=o,0|vi(A))}do{if(h){if(s=(b=0==(0|w))?u:l,b=b?k:a,(0|k)<0|0==(0|k)&u>>>0<8){for(a=m,l=k;a<<=4,u=0|tb(0|u,0|l,1,0),(0|(l=D))<0|0==(0|l)&u>>>0<8;);u=a}else u=m;if(112==(32|o)){if(0==(0|(a=0|Yi(A,f)))&-2147483648==(0|(o=D))){if(!f){nl(A,0),t=0;break}o=a=(0|ar[n>>2]&&(ar[g>>2]=(0|ar[g>>2])-1),0)}}else o=a=(0|ar[n>>2]&&(ar[g>>2]=(0|ar[g>>2])-1),0);if(l=0|tb(0|(l=0|db(0|s,0|b,2)),0|D,-32,-1),l=0|tb(0|l,0|D,0|a,0|o),o=D,!u){t=0*(0|i);break}if((0|(f=((0|(g=0-r|0))<0)<<31>>31))<(0|o)|(0|o)==(0|f)&g>>>0>>0){ar[(e=10364)>>2]=34,t=17976931348623157e292*(0|i)*17976931348623157e292;break}if((0|o)<(0|(f=((0|(g=r+-106|0))<0)<<31>>31))|(0|o)==(0|f)&l>>>0>>0){ar[(e=10364)>>2]=34,t=22250738585072014e-324*(0|i)*22250738585072014e-324;break}if(-1<(0|u)){for(a=u;a=a<<1|1&(1^(g=!(.5<=t))),t+=g?t:t+-1,l=0|tb(0|l,0|o,-1,-1),o=D,-1<(0|a););d=t,u=a}else d=t;o=0|tb(0|(r=0|ob(32,0,0|r,((0|r)<0)<<31>>31|0)),0|D,0|l,0|o),59==(0|(b=(0|(r=D))<(0|(g=((0|e)<0)<<31>>31))|(0|g)==(0|r)&o>>>0>>0?0<(0|o)?59:(a=0,o=84,61):(o=e,59)))&&((0|o)<53?(o=84-(a=o)|0,b=61):t=+((c=0)|i)),61==(0|b)&&(t=+(0|i),c=+Di(+Qi(1,o),t),o=a),0==(t=t*((i=0==(1&u|0)&0!=d&(0|o)<32)?0:d)+(c+t*(((1&i)+u|0)>>>0))-c)&&(ar[(i=10364)>>2]=34),t=+Mi(t,l)}else(a=0!=(0|(o=0|ar[n>>2])))&&(ar[g>>2]=(0|ar[g>>2])-1),f?(a&&(ar[g>>2]=(0|ar[g>>2])-1),0==(0|w)|0==(0|o)||(ar[g>>2]=(0|ar[g>>2])-1)):nl(A,0),t=0*(0|i)}while(0);return+t}function _i(A,e,r,i,f,n){e|=0,f|=0,n|=0;var t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;t=ur=(o=ur)+31&-32,ur=ur+512|0,G=0-(C=(i|=0)+(r|=0)|0)|0,X=(A|=0)+4|0,W=A+100|0,l=0;A:for(;;){switch(0|e){case 46:B=6;break A;case 48:break;default:d=l,s=k=g=0;break A}(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,e=0|cr[e>>0],l=1):(e=0|vi(A),l=1)}if(6==(0|B))if(48==(0|(e=(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,0|cr[e>>0]):0|vi(A))))for(e=l=0;;){if(l=0|tb(0|l,0|e,-1,-1),s=D,48!=(0|(e=(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,0|cr[e>>0]):0|vi(A)))){d=g=1,k=l;break}e=s}else g=1,d=l,s=k=0;b=e+-48|(ar[t>>2]=0),u=46==(0|e);A:do{if(u|b>>>0<10){E=496+t|0,p=g,y=d,B=b,b=d=m=l=Z=0;e:for(;;){do{if(u){if(p)break e;p=1,k=d,s=b}else{if(d=0|tb(0|d,0|b,1,0),b=D,g=48!=(0|e),125<=(0|l)){if(!g)break;ar[E>>2]=1|ar[E>>2];break}u=t+(l<<2)|0,e=Z?e+-48+(10*(0|ar[u>>2])|0)|0:B,ar[u>>2]=e,Z=(y=9==(0|(Z=Z+1|0)))?0:Z,l=(1&y)+l|0,m=g?d:m,y=1}}while(0);if(!((u=46==(0|(e=(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,0|cr[e>>0]):0|vi(A))))|(B=e+-48|0)>>>0<10)){g=p,u=y,B=29;break A}}e=Z,u=0!=(0|y),B=37}else u=d,b=d=m=l=Z=0,B=29}while(0);do{if(29==(0|B)){if(k=(E=0==(0|g))?d:k,s=E?b:s,!((u=0!=(0|u))&101==(32|e))){if(-1<(0|e)){e=Z,B=37;break}e=Z,B=39;break}if(0==(0|(u=0|Yi(A,n)))&-2147483648==(0|(e=D))){if(!n){nl(A,0),a=0;break}e=u=(0|ar[W>>2]&&(ar[X>>2]=(0|ar[X>>2])-1),0)}y=0|tb(0|u,0|e,0|k,0|s),e=Z,s=D,B=41}}while(0);37==(0|B)&&(B=0|ar[W>>2]?(ar[X>>2]=(0|ar[X>>2])-1,u?(y=k,41):40):39),39==(0|B)&&(B=u?(y=k,41):40);do{if(40==(0|B))ar[(G=10364)>>2]=22,nl(A,0),a=0;else if(41==(0|B)){if(!(u=0|ar[t>>2])){a=0*(0|f);break}if((0|y)==(0|d)&(0|s)==(0|b)&((0|b)<0|0==(0|b)&d>>>0<10)&&30<(0|r)|0==(u>>>r|0)){a=(0|f)*(u>>>0);break}if((0|(W=((0|(A=(0|i)/-2|0))<0)<<31>>31))<(0|s)|(0|s)==(0|W)&A>>>0>>0){ar[(G=10364)>>2]=34,a=17976931348623157e292*(0|f)*17976931348623157e292;break}if((0|s)<(0|(W=((0|(A=i+-106|0))<0)<<31>>31))|(0|s)==(0|W)&y>>>0>>0){ar[(G=10364)>>2]=34,a=22250738585072014e-324*(0|f)*22250738585072014e-324;break}if(e){if((0|e)<9){for(u=0|ar[(b=t+(l<<2)|0)>>2];u=10*u|0,9!=(0|(e=e+1|0)););ar[b>>2]=u}l=l+1|0}if((0|m)<9&&(0|m)<=(0|y)&(0|y)<18){if(e=0|ar[t>>2],9==(0|y)){a=(0|f)*(e>>>0);break}if((0|y)<9){a=(0|f)*(e>>>0)/(0|ar[14012+(8-y<<2)>>2]);break}if(30<(0|(A=r+27+(0|br(y,-3))|0))|0==(e>>>A|0)){a=(0|f)*(e>>>0)*(0|ar[14012+(y+-10<<2)>>2]);break}}if(e=(0|y)%9|0){if(d=0|ar[14012+(8-(m=-1<(0|y)?e:e+9|0)<<2)>>2],l){for(k=1e9/(0|d)|0,u=y,e=s=b=0;A=(((W=0|ar[(X=t+(e<<2)|0)>>2])>>>0)/(d>>>0)|0)+b|0,ar[X>>2]=A,b=0|br(k,(W>>>0)%(d>>>0)|0),u=(A=(0|e)==(0|s)&0==(0|A))?u+-9|0:u,s=A?s+1&127:s,(0|(e=e+1|0))!=(0|l););b?(ar[t+(l<<2)>>2]=b,b=s,l=l+1|0):b=s}else l=b=0,u=y;y=9-m+u|(e=0)}else b=e=0;A:for(;;){for(m=(0|y)<18,g=18==(0|y),Z=t+(b<<2)|0;;){if(!m){if(!g){u=y;break A}if(9007199<=(0|ar[Z>>2])>>>0){u=18;break A}}for(l=(p=l)+127|(u=0);l=0|tb(0|(l=0|db(0|ar[(d=t+((s=127&l)<<2)|0)>>2],0,29)),0|D,0|u,0),0<(u=D)>>>0|0==(0|u)&1e9>>0?(k=0|lb(0|l,0|u,1e9,0),l=0|ub(0|l,0|u,1e9,0)):k=0,p=0==(0|(ar[d>>2]=l))&(1^((0|s)!=(p+127&127|0)|(A=(0|s)==(0|b))))?s:p,!A;)u=k,l=s+-1|0;if(e=e+-29|0,0|k)break;l=p}l=p+127&127,u=t+((p+126&127)<<2)|0,(0|(b=b+127&127))==(0|p)?ar[u>>2]=ar[u>>2]|ar[t+(l<<2)>>2]:l=p,ar[t+(b<<2)>>2]=k,y=y+9|0}A:for(;;){for(Z=l+1&127,p=t+((l+127&127)<<2)|0;;){for(k=18==(0|u),g=27<(0|u)?9:1,y=b;;){for(b=0;;){if((0|(s=b+y&127))==(0|l)){I=2,B=88;break}if((s=0|ar[t+(s<<2)>>2])>>>0<(d=0|ar[14044+(b<<2)>>2])>>>0){I=2,B=88;break}if(d>>>0>>0)break;if(2<=(0|(b=b+1|0))){I=b,B=88;break}}if(88==(0|B)&&k&2==((B=0)|I)){s=a=0;break A}if(e=g+e|0,(0|y)!=(0|l))break;y=l}for(k=(1<>>g,d=0,s=b=y;A=((W=0|ar[(X=t+(s<<2)|0)>>2])>>>g)+d|0,ar[X>>2]=A,d=0|br(W&k,m),u=(A=(0|s)==(0|b)&0==(0|A))?u+-9|0:u,b=A?b+1&127:b,(0|(s=s+1&127))!=(0|l););if(d){if((0|Z)!=(0|b))break;ar[p>>2]=1|ar[p>>2]}}ar[t+(l<<2)>>2]=d,l=Z}for(;u=l+1&127,(0|(b=s+y&127))==(0|l)&&(ar[t+(u+-1<<2)>>2]=0,l=u),a=1e9*a+ +((0|ar[t+(b<<2)>>2])>>>0),2!=(0|(s=s+1|0)););if(c=(v=+(0|f))*a,h=(0|(b=(k=(0|(d=(s=e+53|0)-i|0))<(0|r))?0<(0|d)?d:0:r))<53?(w=+Di(+Qi(1,105-b|0),c))+(c-(a=h=+Ji(c,+Qi(1,53-b|0)))):(a=w=0,c),(0|(u=y+2&127))!=(0|l)){u=0|ar[t+(u<<2)>>2];do{if(5e8<=u>>>0){if(5e8!=(0|u)){a=.75*v+a;break}if((y+3&127|0)==(0|l)){a=.5*v+a;break}a=.75*v+a;break}if(0==(0|u)&&(y+3&127|0)==(0|l))break;a=.25*v+a}while(0);c=1<(53-b|0)&&0==+Ji(a,1)?a+1:a}else c=a;a=h+c-w;do{if((-2-C|0)<(2147483647&s|0)){if(a=(C=!(9007199254740992<=+V(+a)))?a:.5*a,((e=(1&(1^C))+e|0)+50|0)<=(0|G)&&!(0!=c&k&((0|b)!=(0|d)|C)))break;ar[(G=10364)>>2]=34}}while(0);a=+Mi(a,e)}}while(0);return ur=o,+a}function Yi(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0;switch(0|(i=(i=0|ar[(a=(A|=0)+4|0)>>2])>>>0<(0|ar[(r=A+100|0)>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))){case 43:case 45:f=45==(0|i)&1,0!=(0|e)&9<((i=(i=0|ar[a>>2])>>>0<(0|ar[r>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))+-48|0)>>>0&&0!=(0|ar[r>>2])&&(ar[a>>2]=(0|ar[a>>2])-1);break;default:f=0}if(9<(i+-48|0)>>>0)i=(f=(0|ar[r>>2]&&(ar[a>>2]=(0|ar[a>>2])-1),-2147483648),0);else{for(n=0;n=i+-48+(10*n|0)|0,((i=(i=0|ar[a>>2])>>>0<(0|ar[r>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))+-48|0)>>>0<10&(0|n)<214748364;);if(e=((0|n)<0)<<31>>31,(i+-48|0)>>>0<10){for(;e=0|nb(0|n,0|e,10,0),n=D,i=0|tb(0|i,((0|i)<0)<<31>>31|0,-48,-1),n=0|tb(0|i,0|D,0|e,0|n),e=D,((i=(i=0|ar[a>>2])>>>0<(0|ar[r>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))+-48|0)>>>0<10&((0|e)<21474836|21474836==(0|e)&n>>>0<2061584302););t=i,o=n}else t=i,o=n;if(i=0|ar[r>>2],(t+-48|0)>>>0<10)for(;(n=0|ar[a>>2])>>>0>>0?(ar[a>>2]=n+1,n=0|cr[n>>0]):(n=0|vi(A),i=0|ar[r>>2]),(n+-48|0)>>>0<10;);0|i&&(ar[a>>2]=(0|ar[a>>2])-1),i=0|ob(0,0,0|o,0|e),f=(a=0!=(0|f))?D:e,i=a?i:o}return D=f,0|i}function Qi(A,e){A=+A;var r=0,i=0;return(0|(e|=0))<=1023?(0|e)<-1022&&(A*=22250738585072014e-324,r=e+1022|0,e=e+2044|0,A=(i=(0|r)<-1022)?22250738585072014e-324*A:A,e=i?-1022<(0|e)?e:-1022:r):(A*=898846567431158e293,i=e+-1023|0,e=e+-2046|0,A=(r=1023<(0|i))?898846567431158e293*A:A,e=r?(0|e)<1023?e:1023:i),r=0|db(e+1023|0,0,52),i=D,ar[d>>2]=r,ar[d+4>>2]=i,+(A*Q[d>>3])}function Di(A,e){return+ +function(A,e){A=+A,e=+e;var r,i=0;return Q[d>>3]=A,r=0|ar[d>>2],i=0|ar[d+4>>2],Q[d>>3]=e,i=-2147483648&ar[d+4>>2]|2147483647&i,ar[d>>2]=r,ar[d+4>>2]=i,+ +Q[d>>3]}(A=+A,e=+e)}function Ji(A,e){return+ +function(A,e){A=+A,e=+e;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;Q[d>>3]=A,o=0|ar[d>>2],c=0|ar[d+4>>2],Q[d>>3]=e,u=0|ar[d>>2],b=0|ar[d+4>>2],f=2047&(f=0|sb(0|o,0|c,52)),l=2047&(l=0|sb(0|u,0|b,52)),r=-2147483648&c,t=0|db(0|u,0|b,1),a=D;A:do{if(0==(0|t)&0==(0|a)||(n=0|Ti(e),i=2147483647&D,2047==(0|f)|2146435072>>0|2146435072==(0|i)&0>>0))s=3;else{if(i=0|db(0|o,0|c,1),!(a>>>0<(n=D)>>>0|(0|n)==(0|a)&t>>>0>>0))return+((0|i)==(0|t)&(0|n)==(0|a)?0*A:A);if(f)t=1048575&c|1048576;else{if(i=0|db(0|o,0|c,12),-1<(0|(n=D))|-1==(0|n)&4294967295>>0)for(f=0;f=f+-1|0,i=0|db(0|i,0|n,1),-1<(0|(n=D))|-1==(0|n)&4294967295>>0;);else f=0;o=0|db(0|o,0|c,1-f|0),t=D}if(l)c=1048575&b|1048576;else{if(n=0|db(0|u,0|b,12),-1<(0|(a=D))|-1==(0|a)&4294967295>>0)for(i=0;i=i+-1|0,n=0|db(0|n,0|a,1),-1<(0|(a=D))|-1==(0|a)&4294967295>>0;);else i=0;u=0|db(0|u,0|b,1-i|0),l=i,c=D}n=0|ob(0|o,0|t,0|u,0|c),a=-1<(0|(i=D))|-1==(0|i)&4294967295>>0;e:do{if((0|l)<(0|f)){for(;;){if(a){if(0==(0|n)&0==(0|i))break}else n=o,i=t;if(o=0|db(0|n,0|i,1),n=0|ob(0|o,0|(t=D),0|u,0|c),a=-1<(0|(i=D))|-1==(0|i)&4294967295>>0,(0|(f=f+-1|0))<=(0|l))break e}e=0*A;break A}}while(0);if(a){if(0==(0|n)&0==(0|i)){e=0*A;break}}else i=t,n=o;if(i>>>0<1048576|1048576==(0|i)&n>>>0<0)for(;n=0|db(0|n,0|i,1),f=f+-1|0,(i=D)>>>0<1048576|1048576==(0|i)&n>>>0<0;);0<(0|f)?(b=0|tb(0|n,0|i,0,-1048576),i=D,f=0|db(0|f,0,52),i|=D,f|=b):(f=0|sb(0|n,0|i,1-f|0),i=D),ar[d>>2]=f,ar[d+4>>2]=i|r,e=+Q[d>>3]}}while(0);3==(0|s)&&(e*=A,e/=e);return+e}(A=+A,e=+e)}function Mi(A,e){return+ +Qi(A=+A,e|=0)}function Ti(A){A=+A;var e;return Q[d>>3]=A,e=0|ar[d>>2],D=0|ar[d+4>>2],0|e}function Ui(A,e,r,i){A|=0,i|=0;var f,n=0;return f=0|br(r|=0,e|=0),r=0==(0|e)?0:r,-1<(0|ar[i+76>>2])?(n=0==(0|Jc()),A=0|el(A,f,i),n||Mc()):A=0|el(A,f,i),(0|A)!=(0|f)&&(r=(A>>>0)/(e>>>0)|0),0|r}function Si(A,e){A|=0;var r,i,f,n=0,t=0,o=0,a=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,i=255&(e|=0),tr[r>>0]=i,(o=0|ar[(t=A+16|0)>>2])?a=4:0|rl(A)?n=-1:(o=0|ar[t>>2],a=4);do{if(4==(0|a)){if((t=0|ar[(a=A+20|0)>>2])>>>0>>0&&(0|(n=255&e))!=(0|tr[A+75>>0])){ar[a>>2]=t+1,tr[t>>0]=i;break}n=1==(0|xb[63&ar[A+36>>2]](A,r,1))?0|cr[r>>0]:-1}}while(0);return ur=f,0|n}function Oi(A){A|=0;var e=0,r=0;do{if(A){if((0|ar[A+76>>2])<=-1){e=0|zi(A);break}r=0==(0|Jc()),e=0|zi(A),r||Mc()}else{if(e=0|ar[2636]?0|Oi(0|ar[2636]):0,A=0|(C(58160),58168),A=0|ar[A>>2])for(;r=-1<(0|ar[A+76>>2])?0|Jc():0,(0|ar[A+20>>2])>>>0>(0|ar[A+28>>2])>>>0&&(e=0|zi(A)|e),0|r&&Mc(),0!=(0|(A=0|ar[A+56>>2])););T(58160)}}while(0);return 0|e}function zi(A){var e,r,i=0,f=0,n=0,t=0;return r=(A|=0)+28|0,0|(A=(0|ar[(e=A+20|0)>>2])>>>0>(0|ar[r>>2])>>>0&&(xb[63&ar[A+36>>2]](A,0,0),0==(0|ar[e>>2]))?-1:((f=0|ar[(i=A+4|0)>>2])>>>0<(t=0|ar[(n=A+8|0)>>2])>>>0&&xb[63&ar[A+40>>2]](A,f-t|0,1),ar[A+16>>2]=0,ar[r>>2]=0,ar[e>>2]=0,ar[n>>2]=0,ar[i>>2]=0))}function ji(A,e,r){A|=0,e|=0,r|=0;var i,f;return f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=r,r=0|Hi(A,e,f),ur=i,0|r}function Hi(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0;for(i=ur=(f=ur)+31&-32,ur=ur+128|0,t=(n=i)+124|0;(0|(n=n+4|(ar[n>>2]=0)))<(0|t););return ar[32+i>>2]=34,ar[44+i>>2]=A,ar[76+i>>2]=-1,ar[84+i>>2]=A,t=0|function(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0;R=ur=(t=ur)+31&-32,ur=ur+288|0,i=R+8|0,f=R+17|0,R=(n=R)+16|0,_=-1<(0|ar[76+(A|=0)>>2])?0|Jc():0;o=0|tr[e>>0];A:do{if(o<<24>>24){y=A+4|0,B=A+100|0,E=A+108|0,X=A+8|0,W=10+f|0,I=33+f|0,p=4+i|0,C=46+f|0,G=94+f|0,F=V=1+f|0,l=e,a=c=e=v=0;e:for(;;){r:do{if(0|mi(255&o)){for(;0|mi(0|cr[(o=l+1|0)>>0]);)l=o;for(nl(A,0);0!=(0|mi(o=(o=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=o+1,0|cr[o>>0]):0|vi(A))););0|ar[B>>2]?(o=(0|ar[y>>2])-1|0,ar[y>>2]=o):o=0|ar[y>>2],u=(0|ar[E>>2])+v+o-(0|ar[X>>2])|0}else{o=o<<24>>24==37;i:do{if(o){u=0|tr[(s=l+1|0)>>0];f:do{switch(u<<24>>24){case 37:break i;case 42:l=l+2|(Z=0);break;default:if((o=(255&u)-48|0)>>>0<10&&36==(0|tr[l+2>>0])){Z=0|xi(r,o),l=l+3|0;break f}l=3+(0|ar[r>>2])&-4,Z=0|ar[l>>2],ar[r>>2]=l+4,l=s}}while(0);if(o=0|tr[l>>0],((u=255&o)+-48|0)>>>0<10)for(s=0;s=(10*s|0)-48+u|0,o=0|tr[(l=l+1|0)>>0],((u=255&o)+-48|0)>>>0<10;);else s=0;switch(c=(o=o<<24>>24==109)?0:c,a=o?0:a,l=o?l+1|0:l,o&=g=0!=(0|Z),u=l+1|0,0|tr[l>>0]){case 104:m=104==(0|tr[u>>0]),d=m?-2:-1,l=m?l+2|0:u;break;case 108:m=108==(0|tr[u>>0]),d=m?3:1,l=m?l+2|0:u;break;case 106:d=3,l=u;break;case 116:case 122:d=1,l=u;break;case 76:d=2,l=u;break;case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:d=0;break;default:N=137;break e}switch(h=0|cr[l>>0],h=(w=3==(47&h|0))?32|h:h,w=w?1:d,(k=255&h)<<24>>24){case 99:s=1<(0|s)?s:1;break;case 91:break;case 110:Pi(Z,w,v,((0|v)<0)<<31>>31),u=v;break r;default:for(nl(A,0);0!=(0|mi(u=(u=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=u+1,0|cr[u>>0]):0|vi(A))););0|ar[B>>2]?(u=(0|ar[y>>2])-1|0,ar[y>>2]=u):u=0|ar[y>>2],v=(0|ar[E>>2])+v+u-(0|ar[X>>2])|0}if(nl(A,s),u=0|ar[y>>2],d=0|ar[B>>2],u>>>0>>0)ar[y>>2]=u+1;else{if((0|vi(A))<0){N=137;break e}d=0|ar[B>>2]}0|d&&(ar[y>>2]=(0|ar[y>>2])-1);f:do{switch(k<<24>>24){case 91:case 99:case 115:m=99==(0|h);n:do{if(115==(16|h))vb(0|V,-1,256),115==((tr[f>>0]=0)|h)&&(tr[I>>0]=0,tr[W>>0]=0,tr[W+1>>0]=0,tr[W+2>>0]=0,tr[W+3>>0]=0,tr[W+4>>0]=0);else{switch(h=94==(0|tr[(u=l+1|0)>>0]),l=h?l+2|0:u,vb(0|F,(k=1&h)|0,256),(tr[f>>0]=0)|tr[l>>0]){case 45:u=C,N=64;break;case 93:u=G,N=64;break;default:h=255&(1^k)}for(64==(0|N)&&(h=255&(1^k),tr[u>>(N=0)]=h,l=l+1|0);;){u=0|tr[l>>0];t:do{switch(u<<24>>24){case 0:N=137;break e;case 93:break n;case 45:switch((u=0|tr[(k=l+1|0)>>0])<<24>>24){case 93:case 0:u=45;break t}if((255&(l=0|tr[l+-1>>0]))<(255&u)){for(l&=255;tr[f+(l=l+1|0)>>0]=h,u=0|tr[k>>0],(0|l)<(255&u|0););l=k}else l=k}}while(0);tr[1+(255&u)+f>>0]=h,l=l+1|0}}}while(0);u=m?s+1|0:31,h=1==(0|w);n:do{if(h){if(o){if(!(a=0|yc(u<<2))){a=c=0,o=1,N=137;break e}}else a=Z;ar[i>>2]=0,ar[p>>2]=0,k=u,c=0;t:for(;;){d=0==(0|a);do{o:for(;;){if(u=(u=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=u+1,0|cr[u>>0]):0|vi(A),!(0|tr[f+(u+1)>>0]))break t;switch(tr[R>>0]=u,0|Gi(n,R,1,i)){case-1:c=0,N=137;break e;case-2:break;default:break o}}d||(ar[a+(c<<2)>>2]=ar[n>>2],c=c+1|0)}while(!(o&(0|c)==(0|k)));if(!(u=0|Ec(a,(c=k<<1|1)<<2))){c=0,o=1,N=137;break e}w=k,k=c,a=u,c=w}if(!(0|(Y=i,1&(Y=(Y|=0)?0==(0|ar[Y>>2]):1)|0))){c=0,N=137;break e}u=c,c=0,k=a}else{if(o){if(!(c=0|yc(u))){a=c=0,o=1,N=137;break e}for(d=u,a=0;;){do{if(u=(u=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=u+1,0|cr[u>>0]):0|vi(A),!(0|tr[f+(u+1)>>0])){u=a,a=k=0;break n}tr[c+a>>0]=u,a=a+1|0}while((0|a)!=(0|d));if(!(u=0|Ec(c,a=d<<1|1))){a=0,o=1,N=137;break e}w=d,d=a,c=u,a=w}}if(Z)for(u=0,c=d;;){if(a=(a=0|ar[y>>2])>>>0>>0?(ar[y>>2]=a+1,0|cr[a>>0]):0|vi(A),!(0|tr[f+(a+1)>>0])){c=Z,a=k=0;break n}tr[Z+u>>0]=a,u=u+1|0,c=0|ar[B>>2]}else for(c=d;;){if(a=(a=0|ar[y>>2])>>>0>>0?(ar[y>>2]=a+1,0|cr[a>>0]):0|vi(A),!(0|tr[f+(a+1)>>0])){a=k=c=u=0;break n}c=0|ar[B>>2]}}}while(0);if(0|ar[B>>2]?(d=(0|ar[y>>2])-1|0,ar[y>>2]=d):d=0|ar[y>>2],!(d=d-(0|ar[X>>2])+(0|ar[E>>2])|0)){N=139;break e}if(!((0|d)==(0|s)|1^m)){N=139;break e}do{if(o){if(h){ar[Z>>2]=k;break}ar[Z>>2]=c;break}}while(0);if(!m){if(0|k&&(ar[k+(u<<2)>>2]=0),!c){c=0;break f}tr[c+u>>0]=0}break;case 120:case 88:case 112:u=16,N=125;break;case 111:u=8,N=125;break;case 117:case 100:u=10,N=125;break;case 105:u=0,N=125;break;case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:if(b=+Ri(A,w,0),(0|ar[E>>2])==((0|ar[X>>2])-(0|ar[y>>2])|0)){N=139;break e}if(Z)switch(0|w){case 0:gA[Z>>2]=b;break f;case 1:case 2:Q[Z>>3]=b;break f;default:break f}}}while(0);do{if(125==(0|N)){if(u=(N=0)|wi(A,u,0,-1,-1),(0|ar[E>>2])==((0|ar[X>>2])-(0|ar[y>>2])|0)){N=139;break e}if(g&112==(0|h)){ar[Z>>2]=u;break}Pi(Z,w,u,D);break}}while(0);e=(1&g)+e|0,u=(0|ar[E>>2])+v+(0|ar[y>>2])-(0|ar[X>>2])|0;break r}}while(0);if(l=l+(1&o)|0,nl(A,0),(0|(o=(o=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=o+1,0|cr[o>>0]):0|vi(A)))!=(0|cr[l>>0])){N=22;break e}u=v+1|0}}while(0);if(!((o=0|tr[(l=l+1|0)>>0])<<24>>24))break A;v=u}if(22==(0|N)){if(0|ar[B>>2]&&(ar[y>>2]=(0|ar[y>>2])-1),0!=(0|e)|-1<(0|o))break;o=0,N=138}else 137==(0|N)?(o&=1,e||(N=138)):139==(0|N)&&(o&=1);138==(0|N)&&(e=-1),o&&(Bc(c),Bc(a))}else e=0}while(0);var Y;0|_&&Mc();return ur=t,0|e}(i,e,r),ur=f,0|t}function xi(A,e){A|=0,e|=0;var r,i,f=0;for(r=ur=(i=ur)+31&-32,ur=ur+16|0,ar[r>>2]=ar[A>>2];f=3+(0|ar[r>>2])&-4,A=0|ar[f>>2],ar[r>>2]=f+4,1>>0;)e=e+-1|0;return ur=i,0|A}function Pi(A,e,r,i){A|=0,e|=0,r|=0,i|=0;A:do{if(0|A)switch(0|e){case-2:tr[A>>0]=r;break A;case-1:or[A>>1]=r;break A;case 0:case 1:ar[A>>2]=r;break A;case 3:ar[(e=A)>>2]=r,ar[e+4>>2]=i;break A;default:break A}}while(0)}function Li(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t=0,o=0;for(f=ur=(n=ur)+31&-32,ur=ur+128|0,o=(t=f)+124|0;(0|(t=t+4|(ar[t>>2]=0)))<(0|o););return ar[(t=4+f|0)>>2]=A,ar[(o=8+f|0)>>2]=-1,ar[44+f>>2]=A,ar[76+f>>2]=-1,nl(f,0),i=+Ri(f,r,1),r=(0|ar[t>>2])-(0|ar[o>>2])+(0|ar[108+f>>2])|0,0|e&&(ar[e>>2]=0|r?A+r|0:A),ur=n,+i}function Ki(A,e){return r=A|=0,i=e|=0,+ + + +Li(r|=0,i|=0,0);var r,i}function qi(A,e){return r=A|=0,i=e|=0,+ + + +Li(r|=0,i|=0,1);var r,i}function $i(A,e){return r=A|=0,i=e|=0,+ + + +Li(r|=0,i|=0,2);var r,i}function Af(A,e){return+ +Qi(A=+A,e|=0)}function ef(A){return 0|~~+pb(+(A=+A))}function rf(A){A|=0;var e;return e=0|ar[2622],0|A&&(ar[2622]=-1==(0|A)?58104:A),0|(58104==(0|e)?-1:e)}function ff(A,e){A|=0,e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;b=ur=(i=ur)+31&-32,ur=ur+272|0,r=b+8|0;do{if(!(0|tr[e>>0])){if(0|(e=0|bA(52903))&&0|tr[e>>0])break;if(0|(e=0|bA(52910+(12*A|0)|0))&&0|tr[e>>0])break;if(0|(e=0|bA(52982))&&0|tr[e>>0])break;e=52987}}while(0);f=0;A:do{switch(0|tr[e+f>>0]){case 47:case 0:break A}f=f+1|0}while(f>>>0<15);15==(0|(u=(n=0|tr[e>>0])<<24>>24!=46&&0==(0|tr[e+f>>0])?n<<24>>24==67?15:(l=e,16):(e=52987,15)))&&(u=0|tr[e+1>>0]?(l=e,16):18);A:do{if(16==(0|u))if(0!=(0|Fc(l,52987))&&0!=(0|Fc(l,52995))){if(0|(e=0|ar[14543]))do{if(!(0|Fc(l,e+8|0)))break A;e=0|ar[e+24>>2]}while(0!=(0|e));C(58176),e=0|ar[14543];e:do{if(0|e){for(;0|Fc(l,e+8|0);)if(!(e=0|ar[e+24>>2]))break e;T(58176);break A}}while(0);e:do{if(0==(0|ar[14518])&&0!=(0|(t=0|bA(53001)))&&0!=(0|tr[t>>0])){for(a=254-f|0,c=f+1|0,n=t;;){if((t=(o=0|Nc(n,58))-n+(((e=0|tr[o>>0])<<24>>24!=0)<<31>>31)|0)>>>0>>0){if(hb(0|r,0|n,0|t),tr[(n=r+t|0)>>0]=47,hb(n+1|0,0|l,0|f),(tr[r+(c+t)>>0]=0)|(t=0|G(0|r,0|b)))break;e=0|tr[o>>0]}if(!(0|tr[(n=o+(e<<24>>24!=0&1)|0)>>0])){u=41;break e}}if(e=0|yc(28),n=0|ar[b>>2],e){ar[e>>2]=t,ar[e+4>>2]=n,hb(0|(b=e+8|0),0|l,0|f),tr[b+f>>0]=0,ar[e+24>>2]=ar[14543],ar[14543]=e;break}Ei(t,n),u=41;break}u=41}while(0);41==(0|u)&&(e=0|yc(28))&&(ar[e>>2]=ar[2525],ar[e+4>>2]=ar[2526],hb(0|(b=e+8|0),0|l,0|f),tr[b+f>>0]=0,ar[e+24>>2]=ar[14543],ar[14543]=e),T(58176),e=0==(0|A)&0==(0|e)?10100:e}else e=l,u=18}while(0);do{if(18==(0|u)){if(0==(0|A)&&46==(0|tr[e+1>>0])){e=10100;break}e=0}}while(0);return ur=i,0|e}function nf(A){return 10148!=(0|(A|=0))&0!=(0|A)&58128!=(0|A)&1|0}function tf(A,e,r,i){return 0|(i|=0)}function of(A){0|nf(A|=0)&&Bc(A)}function af(A){return((A|=0)+-48|0)>>>0<10|0}function cf(){return-1}function lf(A){return 0|(e=A|=0,1&(((e|=0)-48|0)>>>0<10|((32|e)-97|0)>>>0<6)|0);var e}function uf(A,e){A|=0,e|=0;var r=0,i=0,f=0,n=0,t=0;do{if(-1!=(0|A)){if(f=-1<(0|ar[e+76>>2])?0|Jc():0,(r=0|ar[(n=e+4|0)>>2])?(i=r,r=0!=(0|f),t=7):(Zi(e),r=0!=(0|f),(i=0|ar[n>>2])?t=7:A=r),7==(0|t)){if(i>>>0>((0|ar[e+44>>2])-8|0)>>>0){if(t=i+-1|0,ar[n>>2]=t,tr[t>>0]=A,ar[e>>2]=-17&ar[e>>2],!r)break;Mc();break}A=r}A=(A&&Mc(),-1)}else A=-1}while(0);return 0|A}function bf(A){sf(A|=0)}function sf(A){ar[(A|=0)>>2]=14060,function(A,e){e|=0;var r,i,f=0,n=0;r=32+(A|=0)|0,i=A+36|0,f=0|ar[A+40>>2];for(;f;)n=f+-1|0,ns[127&ar[(0|ar[r>>2])+(n<<2)>>2]](e,A,0|ar[(0|ar[i>>2])+(n<<2)>>2]),f=n}(A,0),bn(A+28|0),Bc(0|ar[A+32>>2]),Bc(0|ar[A+36>>2]),Bc(0|ar[A+48>>2]),Bc(0|ar[A+60>>2])}function df(A){sf(A|=0)}function kf(A){ar[(A|=0)>>2]=14076,bn(A+4|0)}function hf(A){return 255&(A|=0)|0}function wf(A,e,r){return A|=0,e|=0,0|(r|=0)&&hb(0|A,0|e,0|r),0|A}function vf(A){return 255&(A|=0)|0}function mf(A){ar[(A|=0)>>2]=14140,bn(A+4|0)}function gf(A){return 0|(A|=0)}function Zf(A,e,r){return A|=0,e|=0,(r|=0)&&function(A,e,r){A|=0,e|=0;var i=0;if(0|(r|=0))for(i=A;r=r+-1|0,ar[i>>2]=ar[e>>2],r;)e=e+4|0,i=i+4|0}(A,e,r),0|A}function pf(A){return 0|(A|=0)}function yf(A){Ef(A|=0),bf(A+8|0)}function Bf(A){yf(A|=0),vu(A)}function Ef(){}function Xf(A){df((A|=0)+8|0)}function Wf(A){Xf(A|=0),vu(A)}function If(A){Gf(A|=0),bf(A+4|0)}function Cf(A){If(A|=0),vu(A)}function Gf(){}function Vf(A){df((A|=0)+4|0)}function Ff(A){Vf(A|=0),vu(A)}function Rf(A){_f(A|=0),bf(A+12|0)}function Nf(A){Rf(A|=0),vu(A)}function _f(){}function Yf(A){return 0|Vc(A|=0)}function Qf(A,e){e|=0,tr[(A|=0)>>0]=0|tr[e>>0]}function Df(A,e){e|=0,ar[(A|=0)+16>>2]=0==(0|ar[A+24>>2])|e}function Jf(A,e){e|=0;var r;for(ar[(A|=0)+24>>2]=e,ar[A+16>>2]=0==(0|e)&1,ar[A+20>>2]=0,ar[A+4>>2]=4098,ar[A+12>>2]=0,ar[A+8>>2]=6,r=A+28|0,A=(e=A+32|0)+40|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|A););fu(r)}function Mf(A,e){return(0|(A|=0))==(0|(e|=0))|0}function Tf(A,e){ru(A|=0,(e|=0)+28|0)}function Uf(A,e){return(0|(A|=0))==(0|(e|=0))|0}function Sf(A){ar[(A|=0)>>2]=14076,fu(A+4|0),ar[(A=A+8|0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ar[A+12>>2]=0,ar[A+16>>2]=0,ar[A+20>>2]=0}function Of(A){ar[(A|=0)>>2]=14140,fu(A+4|0),ar[(A=A+8|0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ar[A+12>>2]=0,ar[A+16>>2]=0,ar[A+20>>2]=0}function zf(A,e){var r,i,f,n;e|=0,tr[(A|=0)>>0]=0,e=(ar[A+4>>2]=e)+(0|ar[(0|ar[e>>2])-12>>2])|0,0|ar[e+16>>2]||(0|(e=0|ar[e+72>>2])&&(r=e,i=ur=(f=ur)+31&-32,ur=ur+16|(n=0),0|ar[(r|=0)+(0|ar[(0|ar[r>>2])-12>>2])+24>>2]&&(zf(i,r),0|tr[i>>0]&&(n=0|ar[r+(0|ar[(0|ar[r>>2])-12>>2])+24>>2],-1==(0|jb[127&ar[24+(0|ar[n>>2])>>2]](n)))&&Df(n=r+(0|ar[(0|ar[r>>2])-12>>2])|0,1|ar[n+16>>2]),jf(i)),ur=f),tr[A>>0]=1)}function jf(A){var e=0;e=(e=0|ar[(A=(A|=0)+4|0)>>2])+(0|ar[(0|ar[e>>2])-12>>2])|0,0|ar[e+24>>2]&&0==(0|ar[e+16>>2])&&8192&ar[e+4>>2]|0&&!(0|E())&&(e=0|ar[A>>2],e=0|ar[e+(0|ar[(0|ar[e>>2])-12>>2])+24>>2],-1==(0|jb[127&ar[24+(0|ar[e>>2])>>2]](e)))&&Df(e=(e=0|ar[A>>2])+(0|ar[(0|ar[e>>2])-12>>2])|0,1|ar[e+16>>2])}function Hf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[12+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function xf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[24+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,65535&e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function Pf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[16+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function Lf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[24+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function Kf(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0;return n=ur=(t=ur)+31&-32,ur=ur+16|0,i=12+n|0,f=8+n|0,zf(n,A|=0),0|tr[n>>0]&&(Tf(i,A+(0|ar[(0|ar[A>>2])-12>>2])|0),a=0|un(i,59288),bn(i),c=A+(0|ar[(0|ar[A>>2])-12>>2])|0,l=0|ar[c+24>>2],o=0|Mf(u=-1,0|ar[(o=c+76|0)>>2])?(Tf(i,c),u=0|un(i,59232),u=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,32),bn(i),u=u<<24>>24,ar[o>>2]=u):0|ar[o>>2],u=0|ar[28+(0|ar[a>>2])>>2],ar[f>>2]=l,ar[i>>2]=ar[f>>2],0|$b[63&u](a,i,c,255&o,e,r)||Df(u=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[u+16>>2])),jf(n),ur=t,0|A}function qf(A,e,r){e|=0,r|=0;var i,f;f=ur=(i=ur)+31&-32,ur=ur+16|0,Sf(A|=0),ar[A>>2]=14508,ar[A+32>>2]=e,ru(f,A+4|0),e=0|un(f,61024),bn(f),ar[A+36>>2]=e,ar[A+40>>2]=r,r=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=r,ur=i}function $f(A,e,r){e|=0,r|=0;var i,f;f=ur=(i=ur)+31&-32,ur=ur+16|0,Of(A|=0),ar[A>>2]=14444,ar[A+32>>2]=e,ru(f,A+4|0),e=0|un(f,61032),bn(f),ar[A+36>>2]=e,ar[A+40>>2]=r,r=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=r,ur=i}function An(A){mf(A|=0)}function en(A){kf(A|=0)}function rn(A){mf(A|=0)}function fn(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(i=ur=(t=ur)+31&-32,ur=ur+32|0,f=16+i|0,k=8+i|0,r=4+i|0,n=(A|=0)+48|0,0|tr[(a=A+52|0)>>0])o=0|ar[n>>2],e&&(k=-1,ar[n>>2]=k,tr[a>>0]=0);else{for(o=1<(0|(o=0|ar[A+44>>2]))?o:1,d=A+32|0,a=0;;){if((0|o)<=(0|a)){s=9;break}if(-1==(0|(c=0|Wi(0|ar[d>>2])))){s=8;break}tr[f+a>>0]=c,a=a+1|0}if(8==(0|s))o=-1;else if(9==(0|s)){do{if(0|tr[A+53>>0])ar[k>>2]=tr[f>>0],s=19;else{b=A+40|0,l=A+36|0,u=k+4|0;A:for(;;){switch(h=0|ar[b>>2],a=0|ar[(c=h)>>2],c=0|ar[c+4>>2],w=0|ar[l>>2],A=f+o|0,0|es[15&ar[16+(0|ar[w>>2])>>2]](w,h,f,A,r,k,u,i)){case 3:s=16;break A;case 2:s=18;break A;case 1:break;default:break A}if(w=0|ar[b>>2],ar[w>>2]=a,ar[w+4>>2]=c,8==(0|o)){s=18;break}if(-1==(0|(a=0|Wi(0|ar[d>>2])))){s=18;break}tr[A>>0]=a,o=o+1|0}if(16==(0|s))ar[k>>2]=tr[f>>0];else if(18==(0|s)){o=-1;break}s=19}}while(0);A:do{if(19==(0|s)){e:do{if(!e){do{if((0|o)<=0)break e;w=0|gf(0|tr[f+(o=o+-1|0)>>0])}while(-1!=(0|uf(w,0|ar[d>>2])));o=-1;break A}w=0|gf(0|ar[k>>2]),ar[n>>2]=w}while(0);o=0|gf(0|ar[k>>2])}}while(0)}}return ur=t,0|o}function nn(A){kf(A|=0)}function tn(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(i=ur=(t=ur)+31&-32,ur=ur+32|0,f=16+i|0,k=8+i|0,r=4+i|0,n=(A|=0)+48|0,0|tr[(a=A+52|0)>>0])o=0|ar[n>>2],e&&(k=-1,ar[n>>2]=k,tr[a>>0]=0);else{for(o=1<(0|(o=0|ar[A+44>>2]))?o:1,d=A+32|0,a=0;;){if((0|o)<=(0|a)){s=9;break}if(-1==(0|(c=0|Wi(0|ar[d>>2])))){s=8;break}tr[f+a>>0]=c,a=a+1|0}if(8==(0|s))o=-1;else if(9==(0|s)){do{if(0|tr[A+53>>0])tr[k>>0]=0|tr[f>>0],s=19;else{b=A+40|0,l=A+36|0,u=k+1|0;A:for(;;){switch(h=0|ar[b>>2],a=0|ar[(c=h)>>2],c=0|ar[c+4>>2],w=0|ar[l>>2],A=f+o|0,0|es[15&ar[16+(0|ar[w>>2])>>2]](w,h,f,A,r,k,u,i)){case 3:s=16;break A;case 2:s=18;break A;case 1:break;default:break A}if(w=0|ar[b>>2],ar[w>>2]=a,ar[w+4>>2]=c,8==(0|o)){s=18;break}if(-1==(0|(a=0|Wi(0|ar[d>>2])))){s=18;break}tr[A>>0]=a,o=o+1|0}if(16==(0|s))tr[k>>0]=0|tr[f>>0];else if(18==(0|s)){o=-1;break}s=19}}while(0);A:do{if(19==(0|s)){e:do{if(!e){do{if((0|o)<=0)break e;w=0|hf(0|tr[f+(o=o+-1|0)>>0])}while(-1!=(0|uf(w,0|ar[d>>2])));o=-1;break A}w=0|hf(0|tr[k>>0]),ar[n>>2]=w}while(0);o=0|hf(0|tr[k>>0])}}while(0)}}return ur=t,0|o}function on(A){an(A|=0)}function an(A){0}function cn(A){an()}function ln(A,e){e|=0,ar[(A|=0)>>2]=ar[e>>2]}function un(A,e){return e|=0,A=0|ar[(A|=0)>>2],0|(r=A,i=0|hn(e),i|=0,0|ar[(0|ar[8+(r|=0)>>2])+(i<<2)>>2]);var r,i}function bn(A){lu(0|ar[(A|=0)>>2])}function sn(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b=0,s=0;u=(0|(l=0|ar[(i|=0)>>2]))==(0|r);do{if(u){if(!(b=(0|tr[c+24>>0])==A<<24>>24)&&(0|tr[c+25>>0])!=A<<24>>24){s=5;break}ar[i>>2]=r+1,tr[r>>0]=b?43:45,b=ar[f>>2]=0}else s=5}while(0);A:do{if(5==(0|s)){if(s=0|tr[t+11>>0],A<<24>>24==n<<24>>24&&0!=(0|(s<<24>>24<0?0|ar[t+4>>2]:255&s))){if(160<=((b=0|ar[a>>2])-o|0)){b=0;break}i=0|ar[f>>2],ar[a>>2]=b+4,ar[b>>2]=i,b=ar[f>>2]=0;break}for(t=c+26|0,n=0;;){if(b=c+n|0,26==(0|n)){b=t;break}if((0|tr[b>>0])==A<<24>>24)break;n=n+1|0}if(23<(0|(b=b-c|0)))b=-1;else{switch(n=53648+b|0,0|e){case 10:case 8:if((0|e)<=(0|b)){b=-1;break A}break;case 16:if(22<=(0|b)){if(u){b=-1;break A}if(3<=(l-r|0)){b=-1;break A}if(48!=(0|tr[l-1>>0])){b=-1;break A}b=(ar[f>>2]=0)|tr[n>>0],ar[i>>2]=1+l,tr[l>>0]=b,b=0;break A}}b=0|tr[n>>0],ar[i>>2]=1+l,tr[l>>0]=b,ar[f>>2]=1+(0|ar[f>>2]),b=0}}}while(0);return 0|b}function dn(){var A=0;return 0==(0|tr[56624])&&0|ib(56624)&&(A=0|function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;i=ur=(f=ur)+31&-32,ur=ur+32|0;A:do{if(0|nf(r))for(n=0;1<>2]=a),6!=(0|(n=n+1|0)););else{for(a=0==(0|r),o=t=0;t=(0!=(0|(n=a|(n=0!=(1<>2]))&1)+t|0,ar[i+(o<<2)>>2]=n,6!=(0|(o=o+1|0)););switch(0|t){case 0:r=58128;break A;case 1:if(10100!=(0|ar[i>>2]))break;r=10148;break A}}}while(0);return ur=f,0|r}(2147483647,53684,0),ar[14810]=A),0|ar[14810]}function kn(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n;return n=ur=(f=ur)+31&-32,ur=ur+16|0,ar[n>>2]=i,i=0|rf(e),e=0|Hi(A,r,n),0|i&&rf(i),ur=f,0|e}function hn(A){A|=0;var e,r,i,f,n=0;return n=ur=(f=ur)+31&-32,ur=ur+48|0,e=n+32|0,r=n+24|0,ar[(n=(i=n)+16|0)>>2]=442,ar[n+4>>2]=0,ar[e>>2]=ar[n>>2],ar[4+e>>2]=ar[n+4>>2],function(A,e,r){A|=0,r|=0;var i;i=0|ar[(e=e|0)>>2],e=0|ar[e+4>>2],ar[A>>2]=r,ar[A+4>>2]=i,ar[A+8>>2]=e}(i,e,A),-1!=(0|ar[A>>2])&&(ar[e>>2]=i,ar[r>>2]=e,function(A,e,r){A|=0,e|=0,r|=0,gb();for(;1==(0|ar[A>>2]);)hA(61100,61072);0|ar[A>>2]?Zb():(ar[A>>2]=1,Zb(),is[511&r](e),gb(),ar[A>>2]=-1,Zb(),mb())}(A,r,443)),ur=f,(0|ar[A+4>>2])-1|0}function wn(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t;t=ur=(n=ur)+31&-32,ur=ur+16|0,Tf(t,e|=0),e=0|un(t,59232),Pb[7&ar[32+(0|ar[e>>2])>>2]](e,53648,53680,r),r=0|un(t,59248),e=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),tr[i>>0]=e,i=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),tr[f>>0]=i,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(t),ur=n}function vn(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,c|=0,l|=0,u|=0;var b,s=0,d=0;b=a|=0;A:do{if(A<<24>>24==n<<24>>24)a=0|tr[e>>0]?(r=(tr[e>>0]=0)|ar[f>>2],ar[f>>2]=r+1,tr[r>>0]=46,0!=(0|((f=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&f))&&((s=0|ar[c>>2])-b|0)<160&&(a=0|ar[l>>2],ar[c>>2]=s+4,ar[s>>2]=a),0):-1;else{if(A<<24>>24==t<<24>>24&&0|((t=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&t)){if(!(0|tr[e>>0])){a=-1;break}if(160<=((a=0|ar[c>>2])-b|0)){a=0;break}f=0|ar[l>>2],ar[c>>2]=a+4,ar[a>>2]=f,a=ar[l>>2]=0;break}for(n=u+32|0,s=0;;){if(a=u+s|0,32==(0|s)){a=n;break}if((0|tr[a>>0])==A<<24>>24)break;s=s+1|0}if(31<(0|(s=a-u|0)))a=-1;else switch(n=0|tr[53648+s>>0],0|s){case 24:case 25:if((0|(a=0|ar[f>>2]))!=(0|i)&&(95&tr[a+-1>>0])!=(127&tr[r>>0])){a=-1;break A}ar[f>>2]=a+1,tr[a>>0]=n,a=0;break A;case 23:case 22:tr[r>>0]=80,a=0|ar[f>>2],ar[f>>2]=a+1,tr[a>>0]=n,a=0;break A;default:if((0|(a=95&n))==(0|tr[r>>0])&&(tr[r>>0]=128|a,0|tr[e>>0])&&(tr[e>>0]=0)|((r=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&r)&&((d=0|ar[c>>2])-b|0)<160&&(r=0|ar[l>>2],ar[c>>2]=d+4,ar[d>>2]=r),c=0|ar[f>>2],ar[f>>2]=c+1,tr[c>>0]=n,21<(0|s)){a=0;break A}ar[l>>2]=1+(0|ar[l>>2]),a=0;break A}}}while(0);return 0|a}function mn(A,e,r){r|=0;var i,f,n=0,t=0,o=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,n=0):(t=0|ar[(t=10364)>>2],ar[10364>>2]=0,n=+$i(A,i,dn()),(A=0|ar[(A=10364)>>2])||(ar[10364>>2]=t),(0|ar[i>>2])==(0|e)?34==(0|A)&&(o=6):(n=0,o=6),6==(0|o)&&(ar[r>>2]=4)),ur=f,+n}function gn(A,e,r,i){e|=0,r|=0,i|=0;var f,n=0,t=0,o=0,a=0,c=0,l=0;f=(a=0|tr[(A|=0)+11>>0])<<24>>24<0,n=0|ar[(o=A+4|0)>>2],a&=255;do{if(0|(f?n:a)){if((0|e)!=(0|r)){for(n=r,t=e;!((n=n+-4|0)>>>0<=t>>>0);)l=0|ar[t>>2],ar[t>>2]=ar[n>>2],ar[n>>2]=l,t=t+4|0;n=0|ar[o>>2]}for(r=r+-4|0,A=(l=f?0|ar[A>>2]:A)+(f?n:a)|0,n=l;o=0<(t=0|tr[n>>0])<<24>>24&t<<24>>24!=127,!(r>>>0<=e>>>0);){if(o&&(t<<24>>24|0)!=(0|ar[e>>2])){c=10;break}e=e+4|0,n=1<(A-n|0)?n+1|0:n}if(10==(0|c)){ar[i>>2]=4;break}o&&((0|ar[r>>2])-1|0)>>>0>=t<<24>>24>>>0&&(ar[i>>2]=4)}}while(0)}function Zn(A,e,r){r|=0;var i,f,n=0,t=0,o=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,n=0):(t=0|ar[(t=10364)>>2],ar[10364>>2]=0,n=+qi(A,i,dn()),(A=0|ar[(A=10364)>>2])||(ar[10364>>2]=t),(0|ar[i>>2])==(0|e)?34==(0|A)&&(o=6):(n=0,o=6),6==(0|o)&&(ar[r>>2]=4)),ur=f,+n}function pn(A,e,r){r|=0;var i,f,n=0,t=0,o=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,n=0):(t=0|ar[(t=10364)>>2],ar[10364>>2]=0,n=+Ki(A,i,dn()),(A=0|ar[(A=10364)>>2])||(ar[10364>>2]=t),(0|ar[i>>2])==(0|e)?34==(0|A)&&(o=6):(n=0,o=6),6==(0|o)&&(ar[r>>2]=4)),ur=f,+n}function yn(A){switch(74&ar[(A|=0)+4>>2]){case 64:A=8;break;case 8:A=16;break;case 0:A=0;break;default:A=10}return 0|A}function Bn(A,e,r,i){A|=0,r|=0,i|=0;var f,n;n=ur=(f=ur)+31&-32,ur=ur+16|0,Tf(n,e|=0),e=0|un(n,59232),Pb[7&ar[32+(0|ar[e>>2])>>2]](e,53648,53674,r),r=0|un(n,59248),e=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),tr[i>>0]=e,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(n),ur=f}function En(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=i=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=i=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o),(0|ar[f>>2])==(0|e)?34==(0|t)&&(i=A=-1,a=8):(i=A=0,a=8),8==(0|a)&&(ar[r>>2]=4)}}while(0);return D=i,ur=n,0|A}function Xn(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);do{if((0|ar[f>>2])==(0|e)){if(0>>0|0==(0|i)&4294967295>>0|34==(0|t)){ar[r>>2]=4,A=-1;break}break}ar[r>>2]=4,A=0}while(0)}}while(0);return ur=n,0|A}function Wn(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);do{if((0|ar[f>>2])==(0|e)){if(0>>0|0==(0|i)&4294967295>>0|34==(0|t)){ar[r>>2]=4,A=-1;break}break}ar[r>>2]=4,A=0}while(0)}}while(0);return ur=n,0|A}function In(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);do{if((0|ar[f>>2])==(0|e)){if(0>>0|0==(0|i)&65535>>0|34==(0|t)){ar[r>>2]=4,A=-1;break}A&=65535;break}ar[r>>2]=4,A=0}while(0)}}while(0);return ur=n,0|A}function Cn(A,e,r,i){r|=0,i|=0;var f,n,t=0,o=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,A=i=0):(o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|pi(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o),(0|ar[f>>2])==(0|e)?34==(0|t)&&(ar[r>>2]=4,A=(i=0<(0|i)|0==(0|i)&0>>0)?-1:0,i=i?2147483647:-2147483648):(ar[r>>2]=4,i=A=0)),D=i,ur=n,0|A}function Gn(A,e,r,i){r|=0,i|=0;var f,n,t=0,o=0;if(f=ur=(n=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0)))ar[r>>2]=4,A=0;else{o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|pi(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);A:do{if((0|ar[f>>2])==(0|e)){do{if(34!=(0|t)){if((0|i)<-1|-1==(0|i)&A>>>0<2147483648){ar[r>>2]=4;break}if(0<(0|i)|0==(0|i)&2147483647>>0){ar[r>>2]=4,A=2147483647;break A}break A}if(ar[r>>2]=4,0<(0|i)|0==(0|i)&0>>0){A=2147483647;break A}}while(0);A=-2147483648}else ar[r>>2]=4,A=0}while(0)}return ur=n,0|A}function Vn(A,e,r,i,f,n,t){A|=0,e|=0,f|=0,n|=0,t|=0;var o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;for(c=ur=(o=ur)+31&-32,ur=ur+112|0,100<(l=((i|=0)-(r|=0)|0)/12|0)>>>0?(c=0|yc(l))?g=a=c:gu():(a=c,g=0),b=r,s=a,c=0;(0|b)!=(0|i);)(u=0|tr[b+11>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,u?tr[s>>0]=1:(tr[s>>0]=2,l=l+-1|0,c=c+1|0),b=b+12|0,s=s+1|0;m=0,w=c;A:for(;;){c=0|ar[A>>2];do{if(c){if(0|Mf(c=(0|(u=0|ar[c+12>>2]))==(0|ar[c+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](c):0|hf(0|tr[u>>0]),-1)){ar[A>>2]=0,s=1;break}s=0==(0|ar[A>>2]);break}s=1}while(0);if(c=(u=0|ar[e>>2])?0|Mf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|hf(0|tr[c>>0]),-1)?(u=ar[e>>2]=0,1):0:(u=0,1),b=0|ar[A>>2],!(0!=(0|l)&(s^c)))break;for(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|hf(0|tr[c>>0]),c&=255,t||(c=0|Hb[31&ar[12+(0|ar[f>>2])>>2]](f,c)),v=m+1|0,k=r,d=0,h=a;(0|k)!=(0|i);){do{if(1==(0|tr[h>>0])){if(u=(0|tr[(b=k+11|0)>>0])<0?0|ar[k>>2]:k,u=0|tr[u+m>>0],t||(u=0|Hb[31&ar[12+(0|ar[f>>2])>>2]](f,u)),s=l+-1|0,c<<24>>24!=u<<24>>24){tr[h>>0]=0,u=d,b=w,l=s;break}(u=0|tr[b>>0])<<24>>24<0?u=0|ar[k+4>>2]:u&=255,(0|u)==(0|v)?(tr[h>>0]=2,b=w+(u=1)|0,l=s):(u=1,b=w)}else u=d,b=w}while(0);k=k+12|0,d=u,h=h+1|0,w=b}if(d)if(c=0|ar[A>>2],(0|(b=0|ar[(u=c+12|0)>>2]))==(0|ar[c+16>>2])?jb[127&ar[40+(0|ar[c>>2])>>2]](c):(ar[u>>2]=b+1,hf(0|tr[b>>0])),1<(w+l|0)>>>0)for(b=r,s=a,c=w;;){if((0|b)==(0|i)){m=v,w=c;continue A}2==(0|tr[s>>0])&&((u=0|tr[b+11>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,(0|u)!=(0|v)&&(c=c+-1|(tr[s>>0]=0))),b=b+12|0,s=s+1|0}else m=v;else m=v}do{if(b){if(0|Mf(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|hf(0|tr[c>>0]),-1)){ar[A>>2]=0,l=1;break}l=0==(0|ar[A>>2]);break}l=1}while(0);do{if(u){if(0|Mf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|hf(0|tr[c>>0]),-1)){ar[e>>2]=0,Z=41;break}if(l)break;Z=77;break}Z=41}while(0);for(41==(0|Z)&&l&&(Z=77),77==(0|Z)&&(ar[n>>2]=2|ar[n>>2]);;){if((0|r)==(0|i)){Z=81;break}if(2==(0|tr[a>>0]))break;r=r+12|0,a=a+1|0}return 81==(0|Z)&&(ar[n>>2]=4|ar[n>>2],r=i),Bc(g),ur=o,0|r}function Fn(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b=0,s=0;u=(0|(l=0|ar[(i|=0)>>2]))==(0|r);do{if(u){if(!(b=(0|ar[c+96>>2])==(0|A))&&(0|ar[c+100>>2])!=(0|A)){s=5;break}ar[i>>2]=r+1,tr[r>>0]=b?43:45,b=ar[f>>2]=0}else s=5}while(0);A:do{if(5==(0|s)){if(s=0|tr[t+11>>0],(0|A)==(0|n)&&0!=(0|(s<<24>>24<0?0|ar[t+4>>2]:255&s))){if(160<=((b=0|ar[a>>2])-o|0)){b=0;break}i=0|ar[f>>2],ar[a>>2]=b+4,ar[b>>2]=i,b=ar[f>>2]=0;break}for(t=c+104|0,n=0;;){if(b=c+(n<<2)|0,26==(0|n)){b=t;break}if((0|ar[b>>2])==(0|A))break;n=n+1|0}if(n=(b=b-c|0)>>2,92<(0|b))b=-1;else{switch(t=53648+n|0,0|e){case 10:case 8:if((0|e)<=(0|n)){b=-1;break A}break;case 16:if(88<=(0|b)){if(u){b=-1;break A}if(3<=(l-r|0)){b=-1;break A}if(48!=(0|tr[l-1>>0])){b=-1;break A}b=(ar[f>>2]=0)|tr[t>>0],ar[i>>2]=1+l,tr[l>>0]=b,b=0;break A}}b=0|tr[t>>0],ar[i>>2]=1+l,tr[l>>0]=b,ar[f>>2]=1+(0|ar[f>>2]),b=0}}}while(0);return 0|b}function Rn(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t;t=ur=(n=ur)+31&-32,ur=ur+16|0,Tf(t,e|=0),e=0|un(t,59264),Pb[7&ar[48+(0|ar[e>>2])>>2]](e,53648,53680,r),r=0|un(t,59272),e=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),ar[i>>2]=e,i=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[f>>2]=i,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(t),ur=n}function Nn(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,c|=0,l|=0,u|=0;var b,s=0,d=0;b=a|=0;A:do{if((0|A)==(0|n))a=0|tr[e>>0]?(r=(tr[e>>0]=0)|ar[f>>2],ar[f>>2]=r+1,tr[r>>0]=46,0!=(0|((f=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&f))&&((s=0|ar[c>>2])-b|0)<160&&(a=0|ar[l>>2],ar[c>>2]=s+4,ar[s>>2]=a),0):-1;else{if((0|A)==(0|t)&&0|((t=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&t)){if(!(0|tr[e>>0])){a=-1;break}if(160<=((a=0|ar[c>>2])-b|0)){a=0;break}f=0|ar[l>>2],ar[c>>2]=a+4,ar[a>>2]=f,a=ar[l>>2]=0;break}for(n=u+128|0,s=0;;){if(a=u+(s<<2)|0,32==(0|s)){a=n;break}if((0|ar[a>>2])==(0|A))break;s=s+1|0}if(a=(s=a-u|0)>>2,(0|s)<=124){switch(n=0|tr[53648+a>>0],0|a){case 24:case 25:if((0|(a=0|ar[f>>2]))!=(0|i)&&(95&tr[a+-1>>0])!=(127&tr[r>>0])){a=-1;break A}ar[f>>2]=a+1,tr[a>>0]=n,a=0;break A;case 23:case 22:tr[r>>0]=80;break;default:(0|(a=95&n))==(0|tr[r>>0])&&(tr[r>>0]=128|a,0|tr[e>>0])&&(tr[e>>0]=0)|((r=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&r)&&((d=0|ar[c>>2])-b|0)<160&&(r=0|ar[l>>2],ar[c>>2]=d+4,ar[d>>2]=r)}c=0|ar[f>>2],ar[f>>2]=c+1,tr[c>>0]=n,a=(84<(0|s)||(ar[l>>2]=1+(0|ar[l>>2])),0)}else a=-1}}while(0);return 0|a}function _n(A,e,r,i){A|=0,r|=0,i|=0;var f,n;n=ur=(f=ur)+31&-32,ur=ur+16|0,Tf(n,e|=0),e=0|un(n,59264),Pb[7&ar[48+(0|ar[e>>2])>>2]](e,53648,53674,r),r=0|un(n,59272),e=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[i>>2]=e,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(n),ur=f}function Yn(A){gb(A|=0)}function Qn(A){Zb(A|=0)}function Dn(A){ar[(A|=0)>>2]=0,pA(A+4|0,0),dA(A+32|0,0)}function Jn(A){ZA((A|=0)+4|0),sA(A+32|0)}function Mn(A,e){e|=0;var r,i=0;if(!((0|ar[(A|=0)>>2])>=(0|e))){if(gb(r=A+4|0),(0|ar[A>>2])<(0|e))for(i=A+32|0;hA(0|i,0|r),(0|ar[A>>2])<(0|e););Zb()}}function Tn(A,e){e|=0;var r;gb(r=(A|=0)+4|0),(0|ar[A>>2])>=(0|e)||(ar[A>>2]=e,mb()),Zb()}function Un(A,e){e|=0;var r;gb(r=(A|=0)+4|0),ar[A>>2]=(0|ar[A>>2])+e,mb(),Zb()}function Sn(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0;gb(n=(A|=0)+420|0),0|tr[A>>0]||(t=0|ar[(i=A+8|0)>>2],c=(0|ar[A+12>>2])-t|0,a=0|ar[(o=A+20|0)>>2],(0|(0==(0|c)?0:(c<<8)-1|0))==((r=0|ar[(f=A+24|0)>>2])+a|0)?(function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(s=ur)+32|0,c=s+4|0,a=s,1023<(r=0|ar[(e=16+(A|=0)|0)>>2])>>>0){ar[e>>2]=r+-1024,c=0|ar[(l=A+4|0)>>2],b=0|ar[c>>2],c=c+4|0,ar[l>>2]=c,o=0|ar[(u=A+8|0)>>2],t=0|ar[(a=A+12|0)>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=c)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|c,0|e),0|ar[l>>2]):c,A=f+(r<<2)|0,ar[u>>2]=A,ar[l>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|c)==(0|o))e=t;else{for(e=t,r=c;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[l>>2]=t,ar[u>>2]=e,ar[a>>2]=f,r&&(vu(r),e=0|ar[u>>2])}else e=o}while(0);return ar[e>>2]=b,ar[u>>2]=4+(0|ar[u>>2]),ur=s}if(e=0|ar[(b=A+8|0)>>2],f=e-(0|ar[(u=A+4|0)>>2])|0,r=0|ar[(l=A+12|0)>>2],i=r-(0|ar[A>>2])|0,i>>>0<=f>>>0){for(e=0==(0|(e=i>>1))?1:e,ar[c+12>>2]=0,ar[c+16>>2]=A+12,1073741823>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),i=0|hu(e<<2),ar[c>>2]=i,t=i+(f>>2<<2)|0,ar[(o=c+8|0)>>2]=t,ar[(n=c+4|0)>>2]=t,ar[(t=c+12|0)>>2]=i+(e<<2),f=0|hu(4096),ar[a>>2]=f,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(c,a),f=0|ar[b>>2];e=0|ar[u>>2],(0|f)!=(0|e);)On(c,a=f+-4|0),f=a;return r=e,i=0|ar[A>>2],ar[A>>2]=ar[c>>2],ar[c>>2]=i,ar[u>>2]=ar[n>>2],ar[n>>2]=r,e=0|ar[b>>2],ar[b>>2]=ar[o>>2],ar[o>>2]=e,A=0|ar[l>>2],ar[l>>2]=ar[t>>2],ar[t>>2]=A,(0|e)!=(0|f)&&(ar[o>>2]=e+(~((e+-4-r|0)>>>2)<<2)),0|i&&vu(i),ur=s}if((0|r)!=(0|e))return b=0|hu(4096),ar[c>>2]=b,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(A,c),ur=s;a=0|hu(4096),ar[c>>2]=a,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=4+(A|=0)|0)>>2],b=0|ar[A>>2],n=b;do{if((0|r)==(0|b)){if(f=0|ar[(b=A+8|0)>>2],l=0|ar[(u=A+12|0)>>2],f>>>0<(i=l)>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),a=0|hu(n<<2),l=i=(c=a)+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}(A,c),a=0|ar[u>>2],c=0|ar[a>>2],a=a+4|0,ar[u>>2]=a,o=0|ar[b>>2],t=0|ar[l>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=a)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|a,0|e),0|ar[u>>2]):a,A=f+(r<<2)|0,ar[b>>2]=A,ar[u>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|a)==(0|o))e=t;else{for(e=t,r=a;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[u>>2]=t,ar[b>>2]=e,ar[l>>2]=f,r&&(vu(r),e=0|ar[b>>2])}else e=o}while(0);ar[e>>2]=c,ar[b>>2]=4+(0|ar[b>>2]),ur=s}(A+4|0),a=0|ar[o>>2],o=0|ar[f>>2],t=0|ar[i>>2]):o=r,ar[(0|ar[t+((c=o+a|0)>>>10<<2)>>2])+((1023&c)<<2)>>2]=e,ar[f>>2]=o+1,kA(A+448|0)),Zb()}function On(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=(A|=0)+4|0)>>2],n=b=0|ar[A>>2];do{if((0|r)==(0|b)){if((f=0|ar[(b=A+8|0)>>2])>>>0<(i=l=0|ar[(u=A+12|0)>>2])>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),l=i=(c=a=0|hu(n<<2))+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}function zn(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;u=5932+(o=0|ar[(a=(A|=0)+18596|0)>>2])|0,t=0|ar[(b=A+18600|0)>>2],n=(h=-1<>2])&i,h&=f,r=A+18536|0,(0|n)==(0|ar[(e=A+18532|0)>>2])&&(0|h)==(0|ar[r>>2])||(ar[A+18540>>2]=ar[A+18528>>2],ar[e>>2]=n,ar[r>>2]=h),k=5804+o|0,l=n?0:0==((1<>2])-1&h|0),e=0|ar[800+t>>2],r=0|ar[5820+o>>2],c=0|ar[5812+o>>2],r=(0|br(c,(0|e)%(0|r)|0))==(0|n)?(0|br((0|e)/(0|r)|0,c))==(0|h):0,e=0!=(0|tr[5966+o>>0])&&0==((1<<(s=0|ar[k>>2]))-1&(n|h)|0)?0|Fa(u,n>>s,h>>s):0;do{if(r|e)d=14;else{if(l&&0|tr[5965+o>>0]){d=14;break}e=A+18540|0}}while(0);14==(0|d)&&(e=792+(0|ar[b>>2])|0),u=0|ar[e>>2],e=n-1|0;do{if(0|da(0|ar[a>>2],n,h,e,h)&&(d=0|ar[5864+o>>2],s=(0|br(h>>d,0|ar[5852+o>>2]))+(e>>d)|0,(ar[(0|ar[10320+o>>2])+(s<<2)>>2]>>((0|ar[k>>2])-d<<1)|0)==(0|ar[A+4>>2]))){if(l=0|ar[a>>2],e>>=r=0|ar[l+10368>>2],r=h>>r,(0|e)<=-1&&sr(48482,48519,118,48539),(0|(c=0|ar[l+10372>>2]))<=(0|e)&&sr(48482,48519,118,48539),(0|r)<=-1&&sr(48543,48519,119,48539),(0|r)<(0|ar[l+10376>>2])){w=(0|ar[l+10360>>2])+(3*((0|br(c,r))+e|0)|0)+2|0,w=0|tr[w>>0];break}sr(48543,48519,119,48539)}else w=u}while(0);e=h+-1|0;do{if(0|da(0|ar[a>>2],n,h,n,e)&&(h=0|ar[5864+o>>2],d=(0|br(e>>h,0|ar[5852+o>>2]))+(n>>h)|0,(ar[(0|ar[10320+o>>2])+(d<<2)>>2]>>((0|ar[k>>2])-h<<1)|0)==(0|ar[A+4>>2]))){if(l=0|ar[a>>2],e>>=h=0|ar[l+10368>>2],(0|(c=n>>h))<=-1&&sr(48482,48519,118,48539),(0|(r=0|ar[l+10372>>2]))<=(0|c)&&sr(48482,48519,118,48539),(0|e)<=-1&&sr(48543,48519,119,48539),(0|e)<(0|ar[l+10376>>2])){v=(0|ar[l+10360>>2])+(3*((0|br(r,e))+c|0)|0)+2|0,v=0|tr[v>>0];break}sr(48543,48519,119,48539)}else v=u}while(0);h=0|ar[5764+o>>2],h=(e=(52+(0|ar[A+18512>>2])+(w+1+v>>1)+(h<<1)|0)%(h+52|0)|0)-h|0,ar[A+18544>>2]=e,e=(0|(e=(0|ar[5952+o>>2])+h+(0|ar[744+t>>2])+(0|ar[A+18520>>2])|0))<(0|(v=0-(c=0|ar[5772+o>>2])|0))?v:(0|e)<57?e:57,r=(0|(r=(0|ar[5956+o>>2])+h+(0|ar[748+t>>2])+(0|ar[A+18524>>2])|0))<(0|v)?v:(0|r)<57?r:57;do{if(1==(0|ar[5776+o>>2])){do{if(30<=(0|e)){if(42<(0|e)){e=e+-6|0;break}e=0|ar[8020+(e+-30<<2)>>2];break}}while(0);if(30<=(0|r)){if(42<(0|r)){r=r+-6|0;break}r=0|ar[8020+(r+-30<<2)>>2];break}}}while(0);if(ar[A+18548>>2]=c+e,ar[A+18552>>2]=c+r,e=0|ar[a>>2],c=f>>(r=0|ar[e+10368>>2]),(0|(k=i>>r))<=-1&&sr(48482,48519,118,48539),(0|(d=0|ar[e+10372>>2]))<=(0|k)&&sr(48482,48519,118,48539),(0|c)<=-1&&sr(48543,48519,119,48539),(0|c)>=(0|ar[e+10376>>2])&&sr(48543,48519,119,48539),f=(s=0|ar[e+10360>>2])+(3*((0|br(d,c))+k|0)|0)|0,b=(e=1<<(f=(3<(f=7&(cr[f>>0]|cr[f+1>>0]<<8))>>>0?f:3)-r|0))+c|0,31!=(0|f)){l=e+k|0,u=255&h,e=c;do{for(c=0|br(e,d),r=k;tr[s+(3*(r+c|0)|0)+2>>0]=u,(0|(r=r+1|0))<(0|l););e=e+1|0}while((0|e)<(0|b));ar[(A=A+18528|0)>>2]=h}else ar[(A=A+18528|0)>>2]=h}function jn(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l;return l=0|ar[(A|=0)+18596>>2],8<(0|ar[(0==(0|t)?5760+l|0:5768+l|0)>>2])?void function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0;switch(ur=(g=ur)+4096|0,s=g,b=0|ar[(k=18596+(A|=0)|0)>>2],0|t){case 0:Z=A+18544|0;break;case 1:Z=A+18548|0;break;case 2:Z=A+18552|0;break;default:sr(44456,44443,367,44458)}X=0|ar[Z>>2],i=0|ar[(m=A+2112|0)>>2],h=0|ar[((d=0==(0|t))?40+b|0:44+b|0)>>2],v=(0|ar[4+b+(t<<2)>>2])+((0|br(h,r))+e<<1)|0,w=0|ar[(d?5760+b|0:5768+b|0)>>2],f=0|ar[10368+b>>2],e>>=f,f=r>>f,(0|e)<=-1&&sr(48482,48519,118,48539);Z=0|ar[10372+b>>2],(0|Z)<=(0|e)&&sr(48482,48519,118,48539);(0|f)<=-1&&sr(48543,48519,119,48539);(0|f)>=(0|ar[10376+b>>2])&&sr(48543,48519,119,48539);I=(0|ar[10360+b>>2])+(3*((0|br(Z,f))+e|0)|0)|0,I=(65535&(cr[I>>0]|cr[I+1>>0]<<8))>>>8&3,l=65535&I,I=(u=4==(0|n))&0!=(0|tr[5748+b>>0])&I<<16>>16==0;A:do{if(0|tr[A+32>>0]){if(r=d?A+14412|0:s,0<(0|or[(Z=A+14404+(t<<1)|0)>>1]))for(f=0;or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=0|or[A+2116+(t<<11)+(f<<1)>>1],(0|(f=f+1|0))<(0|or[Z>>1]););I&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4);do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){ns[127&ar[f+368>>2]](r,i,n);break}ns[127&ar[f+372>>2]](r,i,n);break}ns[127&ar[364+(0|ar[A+18592>>2])>>2]](r,i,n)}while(0);if(!d&&0|ar[(p=A+28|0)>>2]&&(B=0|ar[k>>2],y=0|ar[B+5768>>2],B=0|ar[B+5760>>2],0<(0|n))){f=0;do{for(e=0|br(f,n),Z=0;R=(0|br(ar[A+14412+((N=Z+e|0)<<2)>>2]<>B,0|ar[p>>2]))>>3,ar[(N=r+(N<<2)|0)>>2]=R+(0|ar[N>>2]),(0|(Z=Z+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[460+(0|ar[A+18592>>2])>>2]](v,h,r,n,w),I)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}else{if(E=1<(0|n))for(Z=n,f=0;f=f+1|0,3>>0;)Z>>>=1;else f=0;if(B=(f=f+w|0)+-5|0,0|tr[1400+b>>0]){y=1<>>2|a<<30|0){case 0:W=5993+b+(f<<4)|0;break;case 1:W=6089+b+(f<<6)|0;break;case 3:W=6473+b+(f<<8)|0;break;case 7:W=8009+b+(f<<10)|0;break;default:sr(44456,44443,492,44458)}if(0<(0|or[(r=A+14404+(t<<1)|0)>>1]))for(p=0|ar[8072+(((0|X)%6|0)<<2)>>2],Z=(0|X)/6|0,e=((0|y)<0)<<31>>31,f=0;X=0|or[A+8260+(t<<11)+(f<<1)>>1],R=(0|br(0|cr[W+X>>0],p))<>1],a=0|bb(0|(a=0|tb(0|(a=0|nb(0|R,((0|R)<0)<<31>>31|0,0|a,((0|a)<0)<<31>>31|0)),0|D,0|y,0|e)),0|D,0|B),F=(0|(R=D))<-1|-1==(0|R)&a>>>0<4294934528,a=(N=(0|R)<0|0==(0|R)&a>>>0<32767)?a:32767,or[i+(X<<1)>>1]=F?-32768:65535&a,(0|(f=f+1|0))<(0|or[r>>1]););}else if(p=f+-9|0,r=1<>2]<<((0|X)/6|0),0<(0|or[(e=A+14404+(t<<1)|0)>>1]))for(f=0;W=(0|br(0|or[A+2116+(t<<11)+(f<<1)>>1],Z))+r>>p,or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=(0|W)<-32768?-32768:65535&((0|W)<32767?W:32767),(0|(f=f+1|0))<(0|or[e>>1]););if(p=0<(0|n),!o){if(Z=u&0==(l|t|0),0|c&&sr(44486,44443,591,44458),0|tr[10071+b>>0]){xn(A,i,n,n,1&Z,v,h,w,t);break}if(f=0|ar[A+18592>>2],Z){ts[31&ar[f+412>>2]](v,i,h,w);break}switch(0|n){case 4:ts[31&ar[f+416>>2]](v,i,h,w);break A;case 8:ts[31&ar[f+420>>2]](v,i,h,w);break A;case 16:ts[31&ar[f+424>>2]](v,i,h,w);break A;default:ts[31&ar[f+428>>2]](v,i,h,w);break A}}if(E){for(f=n,Z=0;3>>0;)f>>>=1,Z=Z+1|0;Z=Z+6|0}else Z=5;e=0<(0|(e=20-w|0))?e:0,I&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4),r=d?A+14412|0:s;do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){os[63&ar[f+464>>2]](r,i,n,Z,e);break}os[63&ar[f+468>>2]](r,i,n,Z,e);break}os[63&ar[472+(0|ar[A+18592>>2])>>2]](r,i,n,Z,e)}while(0);if(!d&&0|ar[(C=A+28|0)>>2]&&(V=0|ar[k>>2],G=0|ar[V+5768>>2],V=0|ar[V+5760>>2],p)){f=0;do{for(e=0|br(f,n),Z=0;R=(0|br(ar[A+14412+((N=Z+e|0)<<2)>>2]<>V,0|ar[C>>2]))>>3,ar[(N=r+(N<<2)|0)>>2]=R+(0|ar[N>>2]),(0|(Z=Z+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[460+(0|ar[A+18592>>2])>>2]](v,h,r,n,w),I)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}}while(0);if((0|or[(Z=A+14404+(t<<1)|0)>>1])<=0)return ur=g;f=0|ar[m>>2],i=0;for(;or[f+(or[A+8260+(t<<11)+(i<<1)>>1]<<1)>>1]=0,i=i+1|0,(0|i)<(0|or[Z>>1]););ur=g}(A,e,r,i,f,n,t,o,a,c):void function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0;switch(ur=(m=ur)+4096|0,s=m,b=0|ar[(k=18596+(A|=0)|0)>>2],0|t){case 0:g=A+18544|0;break;case 1:g=A+18548|0;break;case 2:g=A+18552|0;break;default:sr(44456,44443,367,44458)}E=0|ar[g>>2],i=0|ar[(v=A+2112|0)>>2],h=0|ar[((d=0==(0|t))?40+b|0:44+b|0)>>2],w=(0|ar[4+b+(t<<2)>>2])+((0|br(h,r))+e)|0,f=0|ar[10368+b>>2],e>>=f,f=r>>f,(0|e)<=-1&&sr(48482,48519,118,48539);g=0|ar[10372+b>>2],(0|g)<=(0|e)&&sr(48482,48519,118,48539);(0|f)<=-1&&sr(48543,48519,119,48539);(0|f)>=(0|ar[10376+b>>2])&&sr(48543,48519,119,48539);W=(0|ar[10360+b>>2])+(3*((0|br(g,f))+e|0)|0)|0,W=(65535&(cr[W>>0]|cr[W+1>>0]<<8))>>>8&3,l=65535&W,W=(u=4==(0|n))&0!=(0|tr[5748+b>>0])&W<<16>>16==0;A:do{if(0|tr[A+32>>0]){if(r=d?A+14412|0:s,0<(0|or[(g=A+14404+(t<<1)|0)>>1]))for(f=0;or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=0|or[A+2116+(t<<11)+(f<<1)>>1],(0|(f=f+1|0))<(0|or[g>>1]););W&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4);do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){ns[127&ar[f+368>>2]](r,i,n);break}ns[127&ar[f+372>>2]](r,i,n);break}ns[127&ar[364+(0|ar[A+18592>>2])>>2]](r,i,n)}while(0);if(!d&&0|ar[(Z=A+28|0)>>2]&&(y=0|ar[k>>2],p=0|ar[y+5768>>2],y=0|ar[y+5760>>2],0<(0|n))){f=0;do{for(e=0|br(f,n),g=0;F=(0|br(ar[A+14412+((R=g+e|0)<<2)>>2]<

>y,0|ar[Z>>2]))>>3,ar[(R=r+(R<<2)|0)>>2]=F+(0|ar[R>>2]),(0|(g=g+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[456+(0|ar[A+18592>>2])>>2]](w,h,r,n,8),W)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}else{if(e=0|ar[(d?5760+b|0:5768+b|0)>>2],B=1<(0|n))for(g=n,f=0;f=f+1|0,3>>0;)g>>>=1;else f=0;if(y=(f=f+e|0)+-5|0,0|tr[1400+b>>0]){p=1<>>2|a<<30|0){case 0:X=5993+b+(f<<4)|0;break;case 1:X=6089+b+(f<<6)|0;break;case 3:X=6473+b+(f<<8)|0;break;case 7:X=8009+b+(f<<10)|0;break;default:sr(44456,44443,492,44458)}if(0<(0|or[(r=A+14404+(t<<1)|0)>>1]))for(Z=0|ar[8072+(((0|E)%6|0)<<2)>>2],g=(0|E)/6|0,e=((0|p)<0)<<31>>31,f=0;E=0|or[A+8260+(t<<11)+(f<<1)>>1],F=(0|br(0|cr[X+E>>0],Z))<>1],a=0|bb(0|(a=0|tb(0|(a=0|nb(0|F,((0|F)<0)<<31>>31|0,0|a,((0|a)<0)<<31>>31|0)),0|D,0|p,0|e)),0|D,0|y),V=(0|(F=D))<-1|-1==(0|F)&a>>>0<4294934528,a=(R=(0|F)<0|0==(0|F)&a>>>0<32767)?a:32767,or[i+(E<<1)>>1]=V?-32768:65535&a,(0|(f=f+1|0))<(0|or[r>>1]););}else if(Z=f+-9|0,r=1<>2]<<((0|E)/6|0),0<(0|or[(e=A+14404+(t<<1)|0)>>1]))for(f=0;X=(0|br(0|or[A+2116+(t<<11)+(f<<1)>>1],g))+r>>Z,or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=(0|X)<-32768?-32768:65535&((0|X)<32767?X:32767),(0|(f=f+1|0))<(0|or[e>>1]););if(e=0<(0|n),!o){if(g=u&0==(l|t|0),0|c&&sr(44486,44443,591,44458),0|tr[10071+b>>0]){Hn(A,i,n,n,1&g,w,h,8,t);break}if(f=0|ar[A+18592>>2],g){ns[127&ar[f+388>>2]](w,i,h);break}switch(0|n){case 4:ns[127&ar[f+392>>2]](w,i,h);break A;case 8:ns[127&ar[f+396>>2]](w,i,h);break A;case 16:ns[127&ar[f+400>>2]](w,i,h);break A;default:ns[127&ar[f+404>>2]](w,i,h);break A}}if(B){for(f=n,g=0;3>>0;)f>>>=1,g=g+1|0;g=g+6|0}else g=5;W&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4),r=d?A+14412|0:s;do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){os[63&ar[f+464>>2]](r,i,n,g,12);break}os[63&ar[f+468>>2]](r,i,n,g,12);break}os[63&ar[472+(0|ar[A+18592>>2])>>2]](r,i,n,g,12)}while(0);if(!d&&0|ar[(I=A+28|0)>>2]&&(G=0|ar[k>>2],C=0|ar[G+5768>>2],G=0|ar[G+5760>>2],e)){f=0;do{for(e=0|br(f,n),g=0;F=(0|br(ar[A+14412+((R=g+e|0)<<2)>>2]<>G,0|ar[I>>2]))>>3,ar[(R=r+(R<<2)|0)>>2]=F+(0|ar[R>>2]),(0|(g=g+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[456+(0|ar[A+18592>>2])>>2]](w,h,r,n,8),W)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}}while(0);if((0|or[(g=A+14404+(t<<1)|0)>>1])<=0)return ur=m;f=0|ar[v>>2],i=0;for(;or[f+(or[A+8260+(t<<11)+(i<<1)>>1]<<1)>>1]=0,i=i+1|0,(0|i)<(0|or[g>>1]););ur=m}(A,e,r,i,f,n,t,o,a,c)}function Hn(A,e,r,i,f,n,t,o,a){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0;var c,l,u,b=0,s=0,d=0,k=0;ur=(u=ur)+4096|0,l=0|ar[(A|=0)+18592>>2],c=(r=0==(0|a))?A+14412|0:u,a=20-o|0;A:do{if(1==(0|f))ts[31&ar[436+l>>2]](c,e,a,15);else switch(0|i){case 4:ts[31&ar[440+l>>2]](c,e,a,15);break A;case 8:ts[31&ar[444+l>>2]](c,e,a,15);break A;case 16:ts[31&ar[448+l>>2]](c,e,a,15);break A;default:ts[31&ar[452+l>>2]](c,e,a,15);break A}}while(0);if(!r&&0|ar[(b=A+28|0)>>2]&&(d=0|ar[A+18596>>2],s=0|ar[d+5768>>2],d=0|ar[d+5760>>2],0<(0|i))){r=0;do{for(e=0|br(r,i),a=0;k=(0|br(ar[A+14412+((f=a+e|0)<<2)>>2]<>d,0|ar[b>>2]))>>3,ar[(f=c+(f<<2)|0)>>2]=k+(0|ar[f>>2]),(0|(a=a+1|0))!=(0|i););r=r+1|0}while((0|r)!=(0|i))}os[63&ar[456+l>>2]](n,t,c,i,o),ur=u}function xn(A,e,r,i,f,n,t,o,a){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0;var c,l,u,b=0,s=0,d=0,k=0;ur=(u=ur)+4096|0,l=0|ar[(A|=0)+18592>>2],c=(r=0==(0|a))?A+14412|0:u,a=20-o|0;A:do{if(1==(0|f))ts[31&ar[436+l>>2]](c,e,a,15);else switch(0|i){case 4:ts[31&ar[440+l>>2]](c,e,a,15);break A;case 8:ts[31&ar[444+l>>2]](c,e,a,15);break A;case 16:ts[31&ar[448+l>>2]](c,e,a,15);break A;default:ts[31&ar[452+l>>2]](c,e,a,15);break A}}while(0);if(!r&&0|ar[(b=A+28|0)>>2]&&(d=0|ar[A+18596>>2],s=0|ar[d+5768>>2],d=0|ar[d+5760>>2],0<(0|i))){r=0;do{for(e=0|br(r,i),a=0;k=(0|br(ar[A+14412+((f=a+e|0)<<2)>>2]<>d,0|ar[b>>2]))>>3,ar[(f=c+(f<<2)|0)>>2]=k+(0|ar[f>>2]),(0|(a=a+1|0))!=(0|i););r=r+1|0}while((0|r)!=(0|i))}os[63&ar[460+l>>2]](n,t,c,i,o),ur=u}function Pn(A,e,r){A|=0,r|=0;var i,f,n,t;ur=(t=ur)+16|0,f=t,n=42==(0|tr[(e|=0)>>0]),i=0|ar[2543],n||Ui(44505,6,1,i),ar[f>>2]=r,Qc(A,e+(1&n)|0,f),Oi(i),ur=t}function Ln(A,e,r){e|=0,r|=0;var i,f,n=0,t=0;if(tr[(A|=0)>>0]=1,tr[A+44>>0]=1,qn(A,e),f=r+-1|0,i=1<(0|r))for(n=0;t=255&(0|At(e,1)),tr[A+52+(52*n|0)>>0]=t,t=255&(0|At(e,1)),tr[A+52+(52*n|0)+44>>0]=t,(0|(n=n+1|0))!=(0|f););if((r+-2|0)>>>0<7)for(n=f;et(e,2),(0|(n=n+1|0))<8;);if(i)for(n=0;qn(A+52+(52*n|0)|0,e),(0|(n=n+1|0))!=(0|f););}function Kn(A,e,r){r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;return ur=(o=ur)+32|0,f=o+8|0,i=o,(e|=0)>>>0<=(c=0|ar[(n=(A|=0)+4|0)>>2])>>>0?(ar[n>>2]=e,void(ur=o)):((l=(u=0|ar[(t=A+8|0)>>2])<<5)>>>0<(a=e-c|0)>>>0|(l-a|0)>>>0>>0?(ar[f>>2]=0,ar[(s=4+f|0)>>2]=0,((ar[(d=8+f|0)>>2]=0)|e)<0&&zl(),c=u<<6,u=e+31&-32,function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+32|0,o=t+16|0,r=t+8|0,i=t,ar[(n=8+(A|=0)|0)>>2]<<5>>>0>=e>>>0)return ur=t;ar[o>>2]=0,ar[(a=o+4|0)>>2]=0,ar[(f=o+8|0)>>2]=0,(0|e)<0&&zl();c=0|hu((l=1+((e+-1|0)>>>5)|0)<<2),ar[o>>2]=c,ar[a>>2]=0,ar[f>>2]=l,l=0|ar[A>>2],ar[r>>2]=l,ar[4+r>>2]=0,e=0|ar[(c=A+4|0)>>2],ar[i>>2]=l+(e>>>5<<2),ar[i+4>>2]=31&e,function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0;if(ur=(c=ur)+32|0,f=c+24|0,n=c+16|0,t=c+8|0,a=c,d=0|ar[(u=4+(A|=0)|0)>>2],o=0|ar[e>>2],l=0|ar[e+4>>2],i=0|ar[r>>2],b=0|ar[r+4>>2],s=i-o<<3,ar[u>>2]=d-l+b+s,u=(0|ar[A>>2])+(d>>>5<<2)|0,e=u,(0|l)!=(0|(r=31&d)))return ar[f>>2]=o,ar[4+f>>2]=l,ar[n>>2]=i,ar[4+n>>2]=b,ar[t>>2]=e,ar[4+t>>2]=r,function(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if(l=0|ar[(e|=0)>>2],f=0|ar[(u=e+4|0)>>2],o=((0|ar[r>>2])-l<<3)+(0|ar[r+4>>2])-f|0,r=l,(0|o)<=0)return e=i+4|0,i=0|ar[i>>2],ar[A>>2]=i,i=A+4|0,A=0|ar[e>>2],ar[i>>2]=A;f?(n=-1>>>((n=32-f|0)-(l=(0|o)<(0|n)?o:n)|0)&-1<>2],f=0|ar[(c=i+4|0)>>2],r=(a=32-f|0)>>>0>>0?a:l,t=0|ar[i>>2],f=ar[t>>2]&~(-1>>>(a-r|0)&-1<>2]=f,a=0|ar[c>>2],b=0|ar[u>>2],ar[t>>2]=(b>>>0>>0?n<>>(b-a|0))|f,f=(0|ar[c>>2])+r|0,t=t+(f>>>5<<2)|0,ar[i>>2]=t,f&=31,ar[c>>2]=f,0<(0|(a=l-r|0))&&(f=ar[t>>2]&~(-1>>>(32-a|0)),ar[t>>2]=f,ar[t>>2]=n>>>((0|ar[u>>2])+r|0)|f,ar[c>>2]=a,f=a),r=4+(0|ar[e>>2])|0,ar[e>>2]=r,o=o-l|0):f=0|ar[(c=f=i+4|0)>>2];if(a=32-f|0,n=-1<>2],b=0|ar[i>>2],l=ar[b>>2]&t,ar[b>>2]=l,ar[b>>2]=u<>2]|l,b=b+4|0,ar[i>>2]=b,ar[b>>2]=ar[b>>2]&n|u>>>a,f=f+-32|0,r=4+(0|ar[e>>2])|0,ar[e>>2]=r,31<(0|f););o&=31}if((0|o)<=0)return e=c,b=0|ar[i>>2],ar[A>>2]=b,b=A+4|0,i=0|ar[e>>2],ar[b>>2]=i;if(t=ar[r>>2]&-1>>>(32-o|0),n=(0|a)<(0|o)?a:o,f=0|ar[i>>2],r=ar[f>>2]&~(-1<>2]&-1>>>(a-n|0)),ar[f>>2]=r,ar[f>>2]=r|t<>2],r=(0|ar[c>>2])+n|0,f=f+(r>>>5<<2)|0,ar[i>>2]=f,ar[c>>2]=31&r,(0|(r=o-n|0))<=0)return e=c,b=0|ar[i>>2],ar[A>>2]=b,b=A+4|0,i=0|ar[e>>2],ar[b>>2]=i;ar[f>>2]=ar[f>>2]&~(-1>>>(32-r|0))|t>>>n,ar[c>>2]=r,e=c,b=0|ar[i>>2],ar[A>>2]=b,b=A+4|0,i=0|ar[e>>2],ar[b>>2]=i}(a,f,n,t),ur=c;r=b-l+s|0,s=o,0<(0|r)&&(e=l?(d=-1>>>((d=32-l|0)-(e=(0|r)<(0|d)?r:d)|0)&-1<>2]=ar[u>>2]&~d|ar[s>>2]&d,r=r-e|0,u=u+((l=e+l|0)>>>5<<2)|0,l&=31,s=s+4|0):(l=0,o),wb(0|u,0|e,(b=(0|r)/32|0)<<2|0),A=r-(b<<5)|0,e=r=u+(b<<2)|0,0<(0|A)&&(l=-1>>>(32-A|0),ar[r>>2]=ar[r>>2]&~l|ar[s+(b<<2)>>2]&l,l=A));ar[a>>2]=e,ar[a+4>>2]=l,ur=c}(o,r,i),e=0|ar[A>>2],ar[A>>2]=ar[o>>2],ar[o>>2]=e,o=0|ar[c>>2],ar[c>>2]=ar[a>>2],ar[a>>2]=o,a=0|ar[n>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=a,0|e&&vu(e);ur=t}(f,l>>>0<1073741823?c>>>0>>0?u:c:2147483647),l=0|ar[n>>2],ar[s>>2]=l+a,u=c=0|ar[A>>2],e=0|ar[f>>2],0<(0|(l=(u+(l>>>5<<2)-c<<3)+(31&l)|0))?(wb(0|e,0|c,(b=l>>>5)<<2|0),c=l-(b<<5)|0,e=l=e+(b<<2)|0,0<(0|c)?(k=-1>>>(32-c|0),ar[l>>2]=ar[l>>2]&~k|ar[u+(b<<2)>>2]&k):c=0):c=0,ar[i>>2]=e,ar[i+4>>2]=c,e=0|ar[(l=i)>>2],l=0|ar[l+4>>2],c=0|ar[A>>2],ar[A>>2]=ar[f>>2],ar[f>>2]=c,k=0|ar[n>>2],ar[n>>2]=ar[s>>2],ar[s>>2]=k,k=0|ar[t>>2],ar[t>>2]=ar[d>>2],ar[d>>2]=k,0|c&&vu(c)):(l=(0|ar[A>>2])+(c>>>5<<2)|0,ar[n>>2]=e,e=l,l=31&c),a?(u=0==(0|l),c=e,r?(u||(e=a>>>0<(k=32-l|0)>>>0?a:k,ar[c>>2]=ar[c>>2]|-1>>>(k-e|0)&-1<>>5)<<2|0),(a=a-(k<<5)|0)&&(ar[(e=c+(k<<2)|0)>>2]=ar[e>>2]|-1>>>(32-a|0)),void(ur=o)):(u||(e=a>>>0<(k=32-l|0)>>>0?a:k,ar[c>>2]=ar[c>>2]&~(-1>>>(k-e|0)&-1<>>5)<<2|0),(a=a-(k<<5)|0)&&(ar[(e=c+(k<<2)|0)>>2]=ar[e>>2]&~(-1>>>(32-a|0))),void(ur=o))):void(ur=o))}function qn(A,e){e|=0;var r=0,i=0;if(0|tr[(A|=0)>>0]){for(r=255&(0|At(e,2)),tr[A+1>>0]=r,r=255&(0|At(e,1)),tr[A+2>>0]=r,r=0|At(e,5),ar[A+4>>2]=r,i=255&((r=0)|At(e,1));tr[A+8+r>>0]=i,r=r+1|0,i=255&(0|At(e,1)),32!=(0|r););tr[A+40>>0]=i,i=255&(0|At(e,1)),tr[A+41>>0]=i,i=255&(0|At(e,1)),tr[A+42>>0]=i,i=255&(0|At(e,1)),tr[A+43>>0]=i,et(e,44)}0|tr[A+44>>0]&&(i=0|At(e,8),ar[A+48>>2]=i)}function $n(A,e,r){r|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k=0,h=0;if(ur=(d=ur)+112|0,s=d+88|0,h=d+80|0,b=d+72|0,u=d+64|0,l=d+56|0,c=d+48|0,a=d+40|0,o=d+32|0,n=d+24|0,t=d+16|0,i=d+8|0,k=d,f=(e|=0)?45527:45535,0|tr[(A|=0)>>0]){switch(e=0|tr[A+1>>0],ar[k>>2]=f,ar[k+4>>2]=e,Pn(r,45545,k),k=0|tr[A+2>>0],ar[i>>2]=f,ar[4+i>>2]=k,Pn(r,45574,i),0|ar[A+4>>2]){case 1:e=45659;break;case 2:e=45652;break;case 3:e=45635;break;case 4:e=45613;break;default:e=45603}for(ar[t>>2]=f,ar[4+t>>2]=e,Pn(r,45664,t),ar[n>>2]=f,Pn(r,45693,n),e=0;0|e&&Pn(r,45884,b),ar[h>>2]=tr[A+8+e>>0],Pn(r,45887,h),32!=(0|(e=e+1|0)););Pn(r,45728,o),h=0|tr[A+40>>0],ar[a>>2]=f,ar[4+a>>2]=h,Pn(r,45731,a),h=0|tr[A+41>>0],ar[c>>2]=f,ar[4+c>>2]=h,Pn(r,45768,c),h=0|tr[A+42>>0],ar[l>>2]=f,ar[4+l>>2]=h,Pn(r,45804,l),h=0|tr[A+43>>0],ar[u>>2]=f,ar[4+u>>2]=h,Pn(r,45844,u)}ur=(0|tr[A+44>>0]&&(h=0|ar[A+48>>2],ar[s>>2]=f,ar[4+s>>2]=h,Q[8+s>>3]=(0|h)/30,Pn(r,45891,s)),d)}function At(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+16|0)>>2]))<(0|e)){i=64-i|0,n=A+4|0;A:do{if(7<(0|i)){t=A+8|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}return l=0|sb(0|(o=0|ar[(a=c=A+8|0)>>2]),0|(a=0|ar[a+4>>2]),64-e|0),a=0|db(0|o,0|a,0|e),ar[c>>2]=a,ar[c+4>>2]=D,ar[r>>2]=i-e,0|l}function et(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+16|0)>>2]))<(0|e)){i=64-i|0,n=A+4|0;A:do{if(7<(0|i)){t=A+8|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}c=0|db(0|ar[(c=l=A+8|0)>>2],0|ar[c+4>>2],0|e),ar[l>>2]=c,ar[l+4>>2]=D,ar[r>>2]=i-e}function rt(A){var e,r,i;i=(-8&ar[(e=(A|=0)+16|0)>>2]|0)/8|0,ar[A>>2]=(0|ar[A>>2])+(0-i),ar[(r=A+4|0)>>2]=(0|ar[r>>2])+i,ar[(A=A+8|0)>>2]=0,ar[A+4>>2]=0,ar[e>>2]=0}function it(A){var e,r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;for(a=(A|=0)+4|0,r=A+8|0,i=(c=0)|ar[(e=A+16|0)>>2];;){if((0|i)<1){i=64-i|0;A:do{if(7<(0|i)){f=0|ar[a>>2];do{if(!f)break A;l=0|ar[A>>2],ar[A>>2]=l+1,l=0|cr[l>>0],f=f+-1|0,ar[a>>2]=f,l=0|db(0|l,0,0|(i=i+-8|0)),n=ar[(u=r)+4>>2]|D,ar[(t=r)>>2]=ar[u>>2]|l,ar[t+4>>2]=n}while(7<(0|i))}}while(0);t=64-i|0,ar[e>>2]=t}else t=i;if(n=0|db(0|(u=0|ar[(l=r)>>2]),0|(l=0|ar[l+4>>2]),1),f=D,ar[(i=r)>>2]=n,ar[i+4>>2]=f,i=t+-1|0,ar[e>>2]=i,!(-1<(0|l)|-1==(0|l)&4294967295>>0))break;if(19<(0|c)){i=-99999,o=20;break}c=c+1|0}if(20==(0|o))return 0|i;if(!c)return(u=0)|u;if((0|t)<=(0|c)){i=65-t|0;A:do{if(7<(0|i)){t=0|ar[a>>2];do{if(!t)break A;u=0|ar[A>>2],ar[A>>2]=u+1,u=0|cr[u>>0],t=t+-1|0,ar[a>>2]=t,n|=u=0|db(0|u,0,0|(i=i+-8|0)),f|=D,ar[(u=r)>>2]=n,ar[u+4>>2]=f}while(7<(0|i))}}while(0);i=64-i|0,ar[e>>2]=i}return u=0|sb(0|n,0|f,64-c|0),a=0|db(0|n,0|f,0|c),ar[(l=r)>>2]=a,ar[l+4>>2]=D,ar[e>>2]=i-c,(0|(i=u+(1<>2]=e,ar[A+4>>2]=e,void(ar[A+8>>2]=e+r);sr(47837,47828,138,47849)}function tt(A){var e,r,i,f,n,t;f=0|ar[(i=(A|=0)+4|0)>>2],n=(0|ar[A+8>>2])-f|0,ar[A+12>>2]=510,or[(t=A+20|0)>>1]=8,((ar[(r=A+16|0)>>2]=0)|n)<=0||(A=1+f|0,ar[i>>2]=A,e=(0|cr[f>>0])<<8,ar[r>>2]=e,1!=((or[t>>1]=0)|n)&&(ar[i>>2]=2+f,ar[r>>2]=0|e|cr[A>>0],or[t>>1]=-8))}function ot(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0,o=0,a=0;return i=(i=0|ar[(t=(A|=0)+12|0)>>2])-(r=0|cr[(i>>>6)-4+(47412+(((0|cr[e>>0])>>>1&255)<<2))>>0])|0,n=(ar[t>>2]=i)<<7,(f=0|ar[(a=A+16|0)>>2])>>>0>>0?(o=255&(f=1&(r=0|tr[e>>0])),tr[e>>0]=tr[47764+((255&r)>>>1&255)>>0]<<1&255|f,32768<=n>>>0?0|(a=o):(ar[t>>2]=i<<1&67108862,f=ar[a>>2]<<1,ar[a>>2]=f,e=1+(0|or[(r=A+20|0)>>1])<<16>>16,(or[r>>1]=e)<<16>>16?0|(a=o):(or[r>>1]=-8,(i=0|ar[(r=A+4|0)>>2])>>>0>=(0|ar[A+8>>2])>>>0||(ar[r>>2]=i+1,ar[a>>2]=0|f|cr[i>>0]),0|(a=o)))):(o=0|cr[47668+(r>>>3)>>0],ar[a>>2]=f-n<>2]=r<>0])^1),(255&r)<2&&(r=i|-2&r,tr[e>>0]=r),tr[e>>0]=tr[47700+((255&r)>>>1&255)>>0]<<1&255|1&r,r=(0|lr[(n=A+20|0)>>1])+o|0,32768&(or[n>>1]=r)|0||(r=r<<16>>16,(f=0|ar[(i=A+4|0)>>2])>>>0<(0|ar[A+8>>2])>>>0&&(ar[i>>2]=f+1,ar[a>>2]=(0|cr[f>>0])<>2]),or[n>>1]=r+65528),0|(a=t))}function at(A){var e=0,r=0,i=0,f=0,n=0;return r=(0|ar[(e=(A|=0)+12|0)>>2])-2|0,(i=(ar[e>>2]=r)<<7)>>>0<=(f=0|ar[(n=A+16|0)>>2])>>>0?0|(n=1):32768<=i>>>0?(n=0)|n:(ar[e>>2]=r<<1&67108862,i=f<<1,ar[n>>2]=i,f=1+(0|or[(e=A+20|0)>>1])<<16>>16,(or[e>>1]=f)<<16>>16?(n=0)|n:(or[e>>1]=-8,(r=0|ar[(e=A+4|0)>>2])>>>0>=(0|ar[A+8>>2])>>>0||(ar[e>>2]=r+1,ar[n>>2]=i+(0|cr[r>>0])),(n=0)|n))}function ct(A){var e,r,i=0,f=0,n=0,t=0;return f=ar[(r=(A|=0)+16|0)>>2]<<1,ar[r>>2]=f,t=1+(0|or[(e=A+20|0)>>1])<<16>>16,-1<(or[e>>1]=t)<<16>>16&&(n=0|ar[(i=A+4|0)>>2],(0|ar[A+8>>2])>>>0>n>>>0)&&(or[e>>1]=-8,ar[i>>2]=n+1,f=0|f|cr[n>>0],ar[r>>2]=f),f>>>0<(i=ar[A+12>>2]<<7)>>>0?(t=0)|t:(ar[r>>2]=f-i,0|(t=1))}function lt(A,e){var r,i,f,n,t=0,o=0,a=0,c=0,l=0;if((0|(e|=0))<=0)return 0|(l=e);for(i=(A|=0)+16|0,f=A+20|0,n=A+8|0,l=A+4|0,r=A+12|0,t=(A=0)|or[f>>1],o=0|ar[i>>2];;){if(o<<=1,ar[i>>2]=o,t=t+1<<16>>16,-1<(or[f>>1]=t)<<16>>16&&(c=0|ar[l>>2],(0|ar[n>>2])>>>0>c>>>0)?(or[f>>1]=-8,ar[l>>2]=c+1,a=0|cr[c>>0]|o,ar[i>>2]=a,t=-8):a=o,a>>>0<(o=ar[r>>2]<<7)>>>0){t=8;break}if(o=a-o|0,ar[i>>2]=o,(0|e)<=(0|(A=A+1|0))){A=e,t=8;break}}return 8==(0|t)?0|A:0}function ut(A,e){A|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if((0|(e|=0))<9)return e?(i=ar[(t=A+16|0)>>2]<>2]=i,f=(0|lr[(n=A+20|0)>>1])+e|0,0==(32768&(or[n>>1]=f)|0)&&(a=0|ar[(o=A+4|0)>>2],(0|ar[A+8>>2])>>>0>a>>>0)&&(ar[o>>2]=a+1,u=f<<16>>16,b=(0|cr[a>>0])<>1]=u+65528,i|=b,ar[t>>2]=i),u=ar[A+12>>2]<<7,u=i-(0|br(b=(0|(l=(i>>>0)/(u>>>0)|0))<(0|(b=1<>2]=u,0|b):(b=0)|b;if(i=ar[(l=A+16|0)>>2]<<8,ar[l>>2]=i,n=65535&(f=8+(0|lr[(u=A+20|0)>>1])|0),or[u>>1]=n,0==(32768&f|0)&&(c=0|ar[(t=A+4|0)>>2],(0|ar[A+8>>2])>>>0>c>>>0)?(ar[t>>2]=c+1,n=f<<16>>16,f=(0|cr[c>>0])<>1]=n,f|=i,ar[l>>2]=f):f=i,r=ar[A+12>>2]<<7,t=f-(0|br(i=(0|(i=(f>>>0)/(r>>>0)|0))<255?i:255,r))|0,ar[l>>2]=t,!(f=e+-8|0))return 0|(b=i);for(e=A+8|0,c=A+4|0;f=f+-1|0,a=i<<1,i=t<<1,ar[l>>2]=i,n=n+1<<16>>16,-1<(or[u>>1]=n)<<16>>16&&(b=0|ar[c>>2],(0|ar[e>>2])>>>0>b>>>0)&&(or[u>>1]=-8,ar[c>>2]=b+1,i=0|cr[b>>0]|i,ar[l>>2]=i,n=-8),i>>>0>>0?(t=0,o=i):(o=i-r|0,ar[l>>2]=o,t=1),i=t|a,f;)t=o;return 0|i}function bt(A,e){var r,i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0;for(r=(A|=0)+16|0,f=A+8|0,n=A+4|0,t=A+12|0,o=(e|=0)+31|0,a=(u=0)|or[(i=A+20|0)>>1],c=0|ar[r>>2];c<<=1,ar[r>>2]=c,a=a+1<<16>>16,-1<(or[i>>1]=a)<<16>>16&&(b=0|ar[n>>2],(0|ar[f>>2])>>>0>b>>>0)?(or[i>>1]=-8,ar[n>>2]=b+1,l=0|cr[b>>0]|c,ar[r>>2]=l,a=-8):l=c,!(l>>>0<(c=ar[t>>2]<<7)>>>0);){if(c=l-c|0,ar[r>>2]=c,(0|e)==(0|o)){e=0,s=8;break}u=u+(1<>2]=0,ar[A+4>>2]=0}function dt(A,e){A|=0;var r,i=0;ur=(r=ur)+16|0,i=r,0|(i=0|ar[(e|=0)+4>>2])&&(ar[i>>2]=1+(0|ar[i>>2])),ar[A+4>>2]=i,ar[A>>2]=ar[e>>2],ur=r}function kt(A){var e,r,i,f=0;ur=(r=ur)+16|0,f=r,ur=((f=0|ar[(e=(A|=0)+4|0)>>2])&&(i=(0|ar[f>>2])-1|0,ar[f>>2]=i,0|i||(0|(f=0|ar[A>>2])&&mu(f),(f=0|ar[e>>2])&&vu(f))),r)}function ht(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;ur=(f=ur)+16|0,o=f+8|0,n=f,i=0|ar[(n=(A|=0)+4|0)>>2];do{if(0|i){if(1==(0|(t=0|ar[i>>2])))return wt(o=0|ar[A>>2],e,r),void(ur=f);if(1<(0|t)){ar[i>>2]=t+-1;break}sr(47917,47927,177,47943)}}while(0);o=0|wu(172),ar[A>>2]=o,A=0|hu(4),ar[n>>2]=A,ar[A>>2]=1,wt(o,e,r),ur=f}function wt(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;do{if(0<(0|e)){if(o=(0|r)<0?0:(0|r)<51?r:51,i=A+5|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8096+(12*(n=e+-1|0)|0)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+6|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8096+(12*n|0)+4>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+7|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8096+(12*n|0)+8>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+149|0,i=(255&(a=(i=63<(0|(a=(0|(a=((a=0|ar[9536+(n<<2)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&i,63<=(127&a)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),i=A+147|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8120+(n<<2)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(tr[i>>0]=f,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+148|0,i=(255&(a=(i=63<(0|(a=(0|(a=((a=0|ar[8128+(n<<2)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&i,63<=(127&a)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),i=A+156|0,f=(255&(a=(f=63<(0|(a=(0|(a=104+((0|br(o,-20))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+157|0,t=(255&(a=(t=63<(0|(a=(0|(a=104+((0|br(o,-25))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&t,63<=(127&a)>>>0&&(n=t,tr[(a=i)>>0]=n,sr(47989,47927,210,48010)),vb(0|i,0|t,1),i=A+158|0,f=(255&(a=(f=63<(0|(a=(0|(a=104+((0|br(o,-30))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(n=f,tr[(a=i)>>0]=n,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+159|0,f=(255&(a=(f=63<(0|(a=(0|(a=104+((0|br(o,-40))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(n=f,tr[(a=i)>>0]=n,sr(47989,47927,210,48010)),vb(0|i,0|f,1),vb(A+160|0,0|f,1),tr[A+154>>0]=14,tr[A+155>>0]=14,i=A+150|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[(n=9520+((1==(0|e)?0:2)<<2)|0)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(l=f,tr[(a=i)>>0]=l,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+151|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,o))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(a=f,tr[(l=i)>>0]=a,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=(255&(l=(i=63<(0|(l=(0|(l=48+(5*o>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,f=A+152|0,63<=(127&l)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),vb(A+153|0,0|t,1),f=A+143|0,i=(255&(l=(i=63<(0|(l=(0|(l=72+((0|br(o,-5))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,(127&l)>>>0<63){vb(0|f,0|i,4);break}tr[f>>0]=i,sr(47989,47927,210,48010)}}while(0);a=(0|r)<0?0:(0|r)<51?r:51,i=A+2|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8136+(12*e|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+3|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8136+(12*e|0)+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+4|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8136+(12*e|0)+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+8|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=9484+((2!=(0|e)?e:5)<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+9|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+10|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+11|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+12>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+12|0,i=(255&(l=(i=63<(0|(l=(0|(l=((l=0|ar[9472+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,63<=(127&l)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),i=A+13|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8172+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(tr[i>>0]=f,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+14|0,n=(255&(l=(n=63<(0|(l=(0|(l=((l=0|ar[(i=8184+((0==(0|e)?0:2)<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&n,63<=(127&l)>>>0&&(r=n,tr[(l=f)>>0]=r,sr(47989,47927,210,48010)),vb(0|f,0|n,1),l=0|ar[i+4>>2],i=A+15|0,f=(255&(l=(f=63<(0|(l=(0|(l=(l<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+16|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=9424+((r=e<<2)<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+17|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+18|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+19|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+12>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+20|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=9388+(3*e<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+21|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+22|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),n=A+25|0,o=9172+(18*e<<2)|0,i=0;do{if(f=n+i|0,t=(255&(l=(t=63<(0|(l=(0|(l=((l=0|ar[o+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&t,63<=(127&l)>>>0){c=35;break}vb(0|f,0|t,1),i=i+1|0}while((0|i)<18);35==(0|c)&&(tr[f>>0]=t,sr(47989,47927,210,48010)),f=A+43|0,i=0;do{if(n=f+i|0,t=(255&(l=(t=63<(0|(l=(0|(l=((l=0|ar[o+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&t,63<=(127&l)>>>0){c=39;break}vb(0|n,0|t,1),i=i+1|0}while((0|i)<18);39==(0|c)&&(tr[n>>0]=t,sr(47989,47927,210,48010)),i=A+61|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=8200+(r<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+62|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+63|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+64|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+12>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),n=A+65|0,i=0;do{if(f=n+i|0,t=(255&(l=(t=63<(0|(l=(0|(l=((l=0|ar[8248+(168*e|0)+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&t,63<=(127&l)>>>0){c=45;break}vb(0|f,0|t,1),i=i+1|0}while((0|i)<42);45==(0|c)&&(tr[f>>0]=t,sr(47989,47927,210,48010)),i=A+107|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8752+(e<<3)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+108|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8752+(e<<3)+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),t=A+109|0,f=8884+(24*e<<2)|0,i=0;do{if(n=t+i|0,o=(255&(l=(o=63<(0|(l=(0|(l=((l=0|ar[f+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&o,63<=(127&l)>>>0){c=51;break}vb(0|n,0|o,1),i=i+1|0}while((0|i)<24);51==(0|c)&&(tr[n>>0]=o,sr(47989,47927,210,48010)),f=A+133|0,n=8776+(6*e<<2)|0,i=0;do{if(t=f+i|0,o=(255&(l=(o=63<(0|(l=(0|(l=((l=0|ar[n+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&o,63<=(127&l)>>>0){c=55;break}vb(0|t,0|o,1),i=i+1|0}while((0|i)<6);if(55==(0|c)&&(tr[t>>0]=o,sr(47989,47927,210,48010)),i=(255&(l=(i=63<(0|(l=(0|(l=((l=0|ar[8848+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,63<=(127&l)>>>0&&(tr[A>>0]=i,sr(47989,47927,210,48010)),vb(0|A,0|i,1),i=A+1|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8860+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(tr[i>>0]=f,sr(47989,47927,210,48010)),vb(0|i,0|f,1),tr[A+139>>0]=1,tr[A+140>>0]=1,f=A+141|0,i=(255&(l=(i=63<(0|(l=(0|(l=72+((0|br(a,-5))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,63<=(127&l)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),vb(A+142|0,0|i,1),f=A+161|0,i=(255&(l=(i=63<(0|(l=(0|(l=((l=0|ar[8872+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,(127&l)>>>0<63)return vb(0|f,0|i,1),tr[(e=l=A+162|0)>>0]=1,tr[e+1>>0]=1,tr[e+2>>0]=1,tr[e+3>>0]=1,tr[(l=l+4|0)>>0]=1,tr[l+1>>0]=1,tr[l+2>>0]=1,tr[l+3>>0]=1,tr[(l=A+170|0)>>0]=1,tr[l+1>>0]=1,tr[A+23>>0]=1,void(tr[A+24>>0]=1);tr[f>>0]=i,sr(47989,47927,210,48010)}function vt(A){var e,r,i=0;ur=(r=ur)+16|0,i=r,ur=((i=0|ar[(e=(A|=0)+4|0)>>2])&&(ar[i>>2]=(0|ar[i>>2])-1,ar[A>>2]=0,ar[e>>2]=0),r)}function mt(A){var e,r,i=0,f=0;ur=(r=ur)+16|0,i=r,(i=0|ar[(e=(A|=0)+4|0)>>2])||sr(48057,47927,95,48064),ur=((0|(f=0|ar[i>>2]))<=1||(ar[i>>2]=f+-1,f=0|ar[A>>2],i=0|wu(172),ar[A>>2]=i,A=0|hu(4),ar[e>>2]=A,ar[A>>2]=1,hb(0|i,0|f,172)),r)}function gt(A,e){A|=0;var r,i,f=0,n=0;return ur=(i=ur)+32|0,f=i,f=0|ar[(r=(e|=0)+4|0)>>2],ur=(f?(ar[f>>2]=1+(0|ar[f>>2]),0|(f=0|ar[(n=A+4|0)>>2])&&(ar[f>>2]=(0|ar[f>>2])-1,ar[A>>2]=0,ar[n>>2]=0),ar[A>>2]=ar[e>>2],ar[n>>2]=ar[r>>2]):(f=0|ar[(n=A+4|0)>>2])&&(ar[f>>2]=(0|ar[f>>2])-1,ar[A>>2]=0,ar[n>>2]=0),i),0|A}function Zt(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0;if(b=0|ar[(A|=0)+5808>>2],J=(1<<(s=0|ar[A+5804>>2]))-1|0,M=0|ar[A+5820>>2],d=e<>(Q=0|ar[A+5800>>2]),Q=e+1<>Q,(0|(Q=(0|(D=0|ar[A+5824>>2]))<(0|Q)?D:Q))<=(0|d))return(M=0)|(M&=J=1);i=A+10372|0,f=A+10360|0,n=A+10348|0,t=A+10352|0,o=A+10356|0,a=A+10340|0,c=A+48|0,l=A+52|0,u=A+5977|0,D=A+10308|0,k=(e=0)|ar[(r=A+5816|0)>>2];A:for(;;){if(0<(0|k)){G=0==(0|(F=0|br(d,b)))?0:32,R=0|br(F>>s,M),Y=0!=(0|F)&0==(F&J|0),_=0|br((N=F+-1|0)>>s,M),V=0;do{if(C=(0|br(0|ar[i>>2],d))+V|0,C=(0|ar[f>>2])+(3*C|0)|0,I=65535&(C=7&(cr[C>>0]|cr[C+1>>0]<<8)),C<<16>>16){if(y=(C=0|br(V,b))>>s,h=F>>(Z=0|ar[n>>2]),(0|(B=C>>Z))<=-1){d=8;break A}if((0|(E=0|ar[t>>2]))<=(0|B)){d=8;break A}if((0|h)<=-1){d=11;break A}if((0|(X=0|ar[o>>2]))<=(0|h)){d=11;break A}if(W=0|ar[a>>2],v=0|br(E,h),w=0|lr[W+(24*(v+B|0)|0)+2>>1],h=0|ar[c>>2],(p=(0|ar[l>>2])-h>>2)>>>0<=w>>>0){k=0,d=33;break A}g=0|ar[(m=h)+(w<<2)>>2],h=0==(0|C)?0:16;do{if(0!=(0|C)&0==(C&J|0)){if(!(0|tr[g+764>>0])){if(!(-1<(0|(w=C+-1>>Z))&(0|w)<(0|E))){d=16;break A}if((v=0|lr[W+(24*(v+w|0)|0)+2>>1])>>>0

>>0&&(0|ar[g+800>>2])!=(0|ar[800+(0|ar[m+(v<<2)>>2])>>2])){w=0;break}}w=0|tr[u>>0]?h:(w=0|ar[D>>2],(0|ar[w+(y+R<<2)>>2])==(0|ar[w+((C+-1>>s)+R<<2)>>2])?h:0)}else w=h}while(0);do{if(Y){if(!(0|tr[g+764>>0])){if(!(-1<(0|(h=N>>Z))&(0|h)<(0|X))){d=24;break A}if(W=W+(24*((0|br(E,h))+B|0)|0)+2|0,(W=0|lr[W>>1])>>>0

>>0&&(0|ar[g+800>>2])!=(0|ar[800+(0|ar[m+(W<<2)>>2])>>2])){h=0;break}}h=0|tr[u>>0]?G:(h=0|ar[D>>2],(0|ar[h+(y+R<<2)>>2])==(0|ar[h+(y+_<<2)>>2])?G:0)}else h=G}while(0);0|tr[g+754>>0]||(Wt(A,C,F,I,0,255&w,255&h),It(A,C,F,I,0,0),e=1,k=0|ar[r>>2])}V=V+1|0}while((0|V)<(0|k))}if((0|Q)<=(0|(d=d+1|0))){k=1,d=33;break}}if(8==(0|d))sr(48482,48519,118,48539);else if(11==(0|d))sr(48543,48519,119,48539);else if(16==(0|d))sr(48482,48519,118,48539);else if(24==(0|d))sr(48543,48519,119,48539);else if(33==(0|d))return 0|(M=k&e);return 0}function pt(A,e,r,i,f,n){r|=0,i|=0,f|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0;if(V=(e|=0)?2:1,F=e?1:2,R=1&e,N=1&(1^e),G=e?80:160,I=e?16:32,nA=(0|(n|=0))<(0|(nA=0|ar[(C=(A|=0)+10472|0)>>2]))?n:nA,!((0|(fA=(0|i)<(0|(fA=0|ar[A+10476>>2]))?i:fA))<=(0|r))){o=(0|f)<(0|nA),a=A+10460|0,c=A+10368|0,l=A+10372|0,u=A+10376|0,b=A+10360|0,s=A+10388|0,d=A+10392|0,k=A+10396|0,h=A+10380|0,w=A+10348|0,v=A+10352|0,m=A+10356|0,g=A+10340|0,Z=A+48|0,p=A+52|0,y=A+10332|0,B=A+10516|0,E=A+10448|0,X=A+10452|0,W=A+10456|0,t=A+10440|0;A:for(;;){if(o){eA=(0|(AA=r<<2))/4|0,rA=AA-N|0,$=f;do{if(iA=(0|(M=$<<2))/4|0,e=(0|br(0|ar[C>>2],eA))+iA|0,e=(0|ar[a>>2])+e|0,(D=255&(n=0|tr[e>>0]))&G){if(J=M-R|0,n=rA>>(A=0|ar[c>>2]),(0|(e=J>>A))<=-1){e=10;break A}if((0|(_=0|ar[l>>2]))<=(0|e)){e=10;break A}if((0|n)<=-1){e=13;break A}if((0|(Y=0|ar[u>>2]))<=(0|n)){e=13;break A}if(n=(Q=0|ar[b>>2])+(3*((0|br(_,n))+e|0)|0)|0,e=AA>>A,!(-1<(0|(i=M>>A))&(0|i)<(0|_))){e=15;break A}if(!(-1<(0|e)&(0|e)<(0|Y))){e=17;break A}q=Q+(3*((0|br(_,e))+i|0)|0)|0;e:do{if(0!=(768&(cr[n>>0]|cr[n+1>>0]<<8))&&0!=(768&(cr[q>>0]|cr[q+1>>0]<<8))){if(D&I|0){if(n=AA>>(i=0|ar[E>>2]),(0|(e=M>>i))<=-1){e=22;break A}if((0|(A=0|ar[X>>2]))<=(0|e)){e=22;break A}if((0|n)<=-1){e=25;break A}if((0|(_=0|ar[W>>2]))<=(0|n)){e=25;break A}if(q=(Y=0|ar[t>>2])+((0|br(A,n))+e)|0,(0|tr[q>>0])<=-1){e=1;break}if(e=rA>>i,!(-1<(0|(n=J>>i))&(0|n)<(0|A))){e=28;break A}if(!(-1<(0|e)&(0|e)<(0|_))){e=30;break A}if(q=Y+((0|br(A,e))+n)|0,(0|tr[q>>0])<=-1){e=1;break}}if(n=rA>>(i=0|ar[s>>2]),(0|(e=J>>i))<=-1){e=34;break A}if((0|(A=0|ar[d>>2]))<=(0|e)){e=34;break A}if((0|n)<=-1){e=37;break A}if((0|(_=0|ar[k>>2]))<=(0|n)){e=37;break A}if(q=0|ar[h>>2],K=(0|br(A,n))+e|0,e=AA>>i,!(-1<(0|(n=M>>i))&(0|n)<(0|A))){e=39;break A}if(!(-1<(0|e)&(0|e)<(0|_))){e=41;break A}if(L=(0|br(A,e))+n|0,n=rA>>(_=0|ar[w>>2]),(0|(e=J>>_))<=-1){e=44;break A}if((0|(Y=0|ar[v>>2]))<=(0|e)){e=44;break A}if((0|n)<=-1){e=47;break A}if((0|(Q=0|ar[m>>2]))<=(0|n)){e=47;break A}if(e=(D=0|ar[g>>2])+(24*((0|br(Y,n))+e|0)|0)+2|0,e=0|lr[e>>1],i=0|ar[Z>>2],J=e>>>0<(A=(0|ar[p>>2])-i>>2)>>>0?0|ar[i+(e<<2)>>2]:0,e=AA>>_,!(-1<(0|(n=M>>_))&(0|n)<(0|Y))){e=51;break A}if(!(-1<(0|e)&(0|e)<(0|Q))){e=53;break A}if(e=D+(24*((0|br(Y,e))+n|0)|0)+2|0,e=(e=0|lr[e>>1])>>>0>>0?0|ar[i+(e<<2)>>2]:0,x=(n=(j=0|tr[q+(12*K|0)>>0])<<24>>24==0)?-1:0|ar[J+916+(tr[q+(12*K|0)+2>>0]<<2)>>2],O=(i=(H=0|tr[q+(12*K|0)+1>>0])<<24>>24==0)?-1:0|ar[J+980+(tr[q+(12*K|0)+3>>0]<<2)>>2],!((U=(0|x)==(0|(S=(A=(M=0|tr[q+(12*L|0)>>0])<<24>>24==0)?-1:0|ar[e+916+(tr[q+(12*L|0)+2>>0]<<2)>>2])))&(0|O)==(0|(J=(D=(T=0|tr[q+(12*L|0)+1>>0])<<24>>24==0)?-1:0|ar[e+980+(tr[q+(12*L|0)+3>>0]<<2)>>2])))&&!((0|O)==(0|S)&(0|x)==(0|J))){e=1;break}if(P=n?0:0|or[q+(12*K|0)+6>>1],e=n?0:0|or[q+(12*K|0)+4>>1],z=i?0:0|or[q+(12*K|0)+10>>1],Q=i?0:0|or[q+(12*K|0)+8>>1],Y=A?0:0|or[q+(12*L|0)+6>>1],A=A?0:0|or[q+(12*L|0)+4>>1],_=D?0:0|or[q+(12*L|0)+10>>1],i=D?0:0|or[q+(12*L|0)+8>>1],((255&H)+(255&j)|0)!=((255&T)+(255&M)|0)&&(er(4+(0|ar[y>>2])|0,1013,0),tr[B>>0]=3),(0|x)==(0|O)){if((0|S)!=(0|J)){e=81;break A}q=(n=e<<16>>16)-(e=A<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-(i<<16>>16)|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);q=n-(i<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-e|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);e=1;break}if(e=e<<16>>16,U){q=e-(A<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-(i<<16>>16)|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);e=1;break}q=e-(i<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-(A<<16>>16)|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);e=1;break}e=2}while(0);iA=(0|br(0|ar[C>>2],eA))+iA|0,iA=(0|ar[a>>2])+iA|0,tr[iA>>0]=-4&tr[iA>>0]|e}else tr[e>>0]=-4&n;$=$+V|0}while((0|$)<(0|nA))}if((0|fA)<=(0|(r=r+F|0))){e=5;break}}switch(0|e){case 5:return;case 10:sr(48482,48519,118,48539);break;case 13:sr(48543,48519,119,48539);break;case 15:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 22:sr(48482,48519,118,48539);break;case 25:sr(48543,48519,119,48539);break;case 28:sr(48482,48519,118,48539);break;case 30:sr(48543,48519,119,48539);break;case 34:sr(48482,48519,118,48539);break;case 37:sr(48543,48519,119,48539);break;case 39:sr(48482,48519,118,48539);break;case 41:sr(48543,48519,119,48539);break;case 44:sr(48482,48519,118,48539);break;case 47:sr(48543,48519,119,48539);break;case 51:sr(48482,48519,118,48539);break;case 53:sr(48543,48519,119,48539);break;case 81:sr(48206,48225,343,48236)}}}function yt(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA,UA,SA,OA,zA,jA,HA,xA,PA,LA,KA,qA,$A,Ae,ee,re,ie,fe,ne,te,oe,ae,ce,le,ue,be,se,de,ke,he,we,ve,me,ge,Ze,pe,ye=0,Be=0,Ee=0,Xe=0,We=0,Ie=0,Ce=0,Ge=0,Ve=0,Fe=0,Re=0,Ne=0,_e=0,Ye=0,Qe=0,De=0,Je=0,Me=0,Te=0,Ue=0,Se=0,Oe=0,ze=0,je=0,He=0,xe=0,Pe=0,Le=0,Ke=0,qe=0,$e=0,Ar=0,er=0,rr=0,ir=0,fr=0,nr=0;if(ur=(pe=ur)+80|0,me=(ve=pe)+40|0,ge=pe+32|0,Ze=(e|=0)?2:1,ke=e?1:2,de=0|ar[(he=(A|=0)+40|0)>>2],ye=0|ar[A+5760>>2],nr=(0|n)<(0|(nr=0|ar[(we=A+10472|0)>>2]))?n:nr,(0|(fr=(0|i)<(0|(fr=0|ar[A+10476>>2]))?i:fr))<=(0|r))ur=pe;else{TA=(0|f)<(0|nr),UA=A+10460|0,SA=A+4|0,OA=A+10368|0,zA=A+10372|0,jA=A+10376|0,HA=A+10360|0,xA=A+10348|0,PA=A+10352|0,LA=A+10356|0,KA=A+10340|0,qA=A+48|0,$A=ye+-8|0,Ae=4+me|0,ee=2+me|0,re=28+me|0,ie=26+me|0,fe=24+me|0,ne=ve+4|0,te=ve+2|0,oe=ve+28|0,ae=ve+26|0,ce=ve+24|0,le=6+me|0,ue=ve+6|0,be=30+me|0,se=ve+30|0,DA=A+5480|0,JA=2+ge|0,MA=4+ge|0,x=65535+(H=1<>2],Le))+((0|Xe)/4|0)|0,(We=3&tr[(0|ar[UA>>2])+We>>0])<<24>>24){if(Ar=(qe=0|ar[SA>>2])+($e=(0|br(0|ar[he>>2],Pe))+Xe<<1)|0,Ee=e?(i=lr[(i=(A=i=Ar)+4|0)>>1]|lr[i+2>>1]<<16,ar[(n=ve)>>2]=lr[A>>1]|lr[A+2>>1]<<16,ar[n+4>>2]=i,or[me>>1]=0|or[Ar+-2>>1],or[ee>>1]=0|or[Ar+-4>>1],or[Ae>>1]=0|or[Ar+-6>>1],or[le>>1]=0|or[Ar+-8>>1],n=lr[(n=(i=n=qe+($e+P)|0)+4|0)>>1]|lr[n+2>>1]<<16,ar[(A=YA)>>2]=lr[i>>1]|lr[i+2>>1]<<16,ar[A+4>>2]=n,or[y>>1]=0|or[Ar+(L<<1)>>1],or[Z>>1]=0|or[Ar+(K<<1)>>1],or[B>>1]=0|or[Ar+(q<<1)>>1],or[W>>1]=0|or[Ar+($<<1)>>1],A=lr[(A=(n=A=qe+($e+AA)|0)+4|0)>>1]|lr[A+2>>1]<<16,ar[(i=QA)>>2]=lr[n>>1]|lr[n+2>>1]<<16,ar[i+4>>2]=A,or[X>>1]=0|or[Ar+(eA<<1)>>1],or[p>>1]=0|or[Ar+(rA<<1)>>1],or[E>>1]=0|or[Ar+(iA<<1)>>1],or[I>>1]=0|or[Ar+(rr<<1)>>1],i=lr[(i=(A=i=qe+($e+fA)|0)+4|0)>>1]|lr[i+2>>1]<<16,ar[(n=ce)>>2]=lr[A>>1]|lr[A+2>>1]<<16,ar[n+4>>2]=i,or[fe>>1]=0|or[Ar+(nA<<1)>>1],n=ie,i=be,A=tA,ye=ir,Be=re,oA):(or[ve>>1]=0|or[Ar>>1],or[me>>1]=0|or[Ar+(kA<<1)>>1],or[hA>>1]=0|or[Ar+(de<<1)>>1],or[t>>1]=0|or[Ar+(wA<<1)>>1],or[vA>>1]=0|or[Ar+(sA<<1)>>1],or[u>>1]=0|or[Ar+(mA<<1)>>1],or[gA>>1]=0|or[Ar+(dA<<1)>>1],or[h>>1]=0|or[Ar+(ZA<<1)>>1],or[pA>>1]=0|or[Ar+2>>1],or[l>>1]=0|or[Ar+(yA<<1)>>1],or[EA>>1]=0|or[Ar+(BA<<1)>>1],or[o>>1]=0|or[Ar+(XA<<1)>>1],or[IA>>1]=0|or[Ar+(WA<<1)>>1],or[b>>1]=0|or[Ar+(CA<<1)>>1],or[VA>>1]=0|or[Ar+(GA<<1)>>1],or[w>>1]=0|or[Ar+(FA<<1)>>1],or[RA>>1]=0|or[Ar+4>>1],or[k>>1]=0|or[Ar+(NA<<1)>>1],or[C>>1]=0|or[Ar+(_A<<1)>>1],or[a>>1]=0|or[Ar+(G<<1)>>1],or[F>>1]=0|or[Ar+(V<<1)>>1],or[s>>1]=0|or[Ar+(R<<1)>>1],or[_>>1]=0|or[Ar+(N<<1)>>1],or[v>>1]=0|or[Ar+(Y<<1)>>1],or[Q>>1]=0|or[Ar+6>>1],or[g>>1]=0|or[Ar+(D<<1)>>1],or[M>>1]=0|or[Ar+(J<<1)>>1],or[c>>1]=0|or[Ar+(T<<1)>>1],or[S>>1]=0|or[Ar+(U<<1)>>1],n=d,i=m,A=O,ye=er,Be=j,z),or[n>>1]=0|or[Ar+(A<<1)>>1],or[Be>>1]=0|or[Ar+(Ee<<1)>>1],or[i>>1]=0|or[Ar+(ye<<1)>>1],n=Pe>>(Ve=0|ar[OA>>2]),(0|(Re=Xe>>Ve))<=-1){n=13;break A}if((0|(_e=0|ar[zA>>2]))<=(0|Re)){n=13;break A}if((0|n)<=-1){n=16;break A}if((0|(Ne=0|ar[jA>>2]))<=(0|n)){n=16;break A}if(Qe=0|ar[HA>>2],Ye=(Fe=0|br(_e,n))+Re|0,Ge=Xe+-1|0,i=xe>>Ve,!(-1<(0|(n=(e?Ge:Xe)>>Ve))&(0|n)<(0|_e))){n=18;break A}if(!(-1<(0|i)&(0|i)<(0|Ne))){n=20;break A}if(ye=Qe+(3*((0|br(_e,i))+n|0)|0)+2|0,ye=1+(0|tr[Qe+(3*Ye|0)+2>>0])+(0|tr[ye>>0])>>1,n=Xe>>(i=0|ar[xA>>2]),i=Pe>>i,(0|n)<=-1){n=23;break A}if((0|(A=0|ar[PA>>2]))<=(0|n)){n=23;break A}if((0|i)<=-1){n=26;break A}if((0|i)>=(0|ar[LA>>2])){n=26;break A}je=(0|ar[KA>>2])+(24*((0|br(A,i))+n|0)|0)+2|0,je=0|ar[(0|ar[qA>>2])+(lr[je>>1]<<2)>>2],Ce=(0|ar[je+756>>2])+ye|0,Ce=cr[48154+((0|Ce)<0?0:(0|Ce)<51?Ce:51)>>0]<<$A,je=(We<<1&255)-2+ye+(0|ar[je+760>>2])|0,je=cr[48100+((0|je)<0?0:(0|je)<53?je:53)>>0]<<$A,Je=(0|(Je=(65535&(Te=0|or[Ae>>1]))-((65535&(Ue=0|or[ee>>1]))<<1)+(n=65535&(ye=0|or[me>>1]))|0))<0?0-Je|0:Je,Be=0|lr[fe>>1],De=(0|(De=(0|lr[re>>1])-(lr[ie>>1]<<1)+Be|0))<0?0-De|0:De,Me=(0|(Me=(65535&(Ie=0|or[ne>>1]))-((65535&(Oe=0|or[te>>1]))<<1)+(i=65535&(Se=0|or[ve>>1]))|0))<0?0-Me|0:Me,Ee=0|lr[ce>>1],A=Me+Je|0,Xe=(ze=(0|(ze=(0|lr[oe>>1])-(lr[ae>>1]<<1)+Ee|0))<0?0-ze|0:ze)+De|0,Je=De+Je|0,Me=ze+Me|0;e:do{if((Xe+A|0)<(0|Ce)){We=Ce>>2;do{if((A<<1|0)<(0|We)){if(ze=(0|lr[le>>1])-n|0,(Ce>>3|0)<=(((0|(De=i-(0|lr[ue>>1])|0))<0?0-De|0:De)+((0|ze)<0?0-ze|0:ze)|0)){i=0;break}i=(0|((0|(i=n-i|0))<0?0-i|0:i))<(1+(5*je|0)>>1|0)}else i=0}while(0);do{if((Xe<<1|0)<(0|We)){if(ze=(0|lr[be>>1])-Be|0,(Ce>>3|0)<=(((0|(De=Ee-(0|lr[se>>1])|0))<0?0-De|0:De)+((0|ze)<0?0-ze|0:ze)|0)){n=0;break}n=(0|((0|(n=Be-Ee|0))<0?0-n|0:n))<(1+(5*je|0)>>1|0)}else n=0}while(0);if(ze=i&n,Ee=(Ce>>1)+Ce>>3,A=(Be=0|tr[DA>>0])<<24>>24!=0,e){if(n=-1<(0|(i=Ge>>Ve)),A){if(!(n&(0|i)<(0|_e))){n=37;break A}A=(65535&(cr[(A=Qe+(3*(Fe+i|0)|0)|0)>>0]|cr[A+1>>0]<<8))>>>10&1^1}else{if(!n){n=41;break A}A=1}if((0|_e)<=(0|i)){n=41;break A}i=Qe+(3*(Fe+i|0)|0)|0,De=(n=Be<<24>>24?0==(1024&(cr[(n=Qe+(3*Ye|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(De=Qe+(3*Ye|0)|0)>>0]|cr[De+1>>0]<<8)),Ne=A<<24>>24?0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)):0}else{if(n=-1<(0|(i=Ke>>Ve)),A){if(!(n&(0|i)<(0|Ne))){n=47;break A}A=Qe+(3*((0|br(_e,i))+Re|0)|0)|0,A=0==(1024&(cr[A>>0]|cr[A+1>>0]<<8))}else{if(!n){n=51;break A}A=1}if((0|Ne)<=(0|i)){n=51;break A}i=Qe+(3*((0|br(_e,i))+Re|0)|0)|0,De=(n=Be<<24>>24?0==(1024&(cr[(n=Qe+(3*Ye|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(De=Qe+(3*Ye|0)|0)>>0]|cr[De+1>>0]<<8)),Ne=A&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8))}for(_e=je<<1,Ye=10*je|0,Qe=0-je|0,Re=(0|Ee)<=(0|Je)|1^Ne,Fe=(0|Ee)<=(0|Me)|1^De,Ve=0-(Ge=je>>1)|0,Ce=0,Xe=Te,Ee=Ue,i=Se,A=Oe;;){We=qe+($e+(0|br(P,Ce)))|0;do{if(ze){Se=0|or[ve+(Ce<<3)+6>>1],Me=65535&Ee,Ue=65535&A,Ee=(Te=65535&ye)+_e|0,Be=65535&((0|(Be=(A=4+(Te<<1)|0)+(Me<<1)+(Oe=65535&Xe)+(n=(i&=65535)<<1)+Ue>>3))<(0|(Je=Te-_e|0))?Je:(0|Ee)<(0|Be)?Ee:Be),Xe=Me+_e|0,Ee=65535&((0|(Ee=(Te+2+Me+Oe+i|0)>>>2))<(0|(Je=Me-_e|0))?Je:(0|Xe)<(0|Ee)?Xe:Ee),Xe=(Te+4+Me+(3*Oe|0)+i+(lr[me+(Ce<<3)+6>>1]<<1)|0)>>>3,Je=Oe-_e|0,Oe=Oe+_e|0,Xe=65535&((0|Xe)<(0|Je)?Je:(0|Oe)<(0|Xe)?Oe:Xe),n=A+Me+n+(Ue<<1)+(Oe=65535&Ie)>>3,A=i+_e|0,n=65535&((0|n)<(0|(Me=i-_e|0))?Me:(0|A)<(0|n)?A:n),or[ge>>1]=n,A=i+Te+Ue|0,Te=Ue-_e|0,Ue=Ue+_e|0,i=65535&((0|(i=(Oe+2+A|0)>>>2))<(0|Te)?Te:(0|Ue)<(0|i)?Ue:i),or[JA>>1]=i,A=(A+4+(3*Oe|0)+((65535&Se)<<1)|0)>>>3,Se=Oe-_e|0,Oe=Oe+_e|0,A=65535&((0|A)<(0|Se)?Se:(0|Oe)<(0|A)?Oe:A),or[MA>>1]=A;do{if(e){if(ye=0|br(Ce,de),!Ne){if(!De)break;or[We>>1]=0|or[ge>>1],or[We+2>>1]=0|or[2+ge>>1],or[We+4>>1]=0|or[4+ge>>1];break}if(or[Ar+(ye+-1<<1)>>1]=Be,De){or[Ar+(ye<<1)>>1]=n,or[Ar+(ye+-2<<1)>>1]=Ee,or[Ar+(ye+1<<1)>>1]=i,or[Ar+(ye+-3<<1)>>1]=Xe,or[Ar+(ye+2<<1)>>1]=A;break}or[Ar+(ye+-2<<1)>>1]=Ee,or[Ar+(ye+-3<<1)>>1]=Xe;break}if(!Ne){if(!De)break;or[Ar+(Ce<<1)>>1]=n,or[Ar+(de+Ce<<1)>>1]=i,or[Ar+(bA+Ce<<1)>>1]=A;break}if(or[Ar+(Ce-de<<1)>>1]=Be,De){or[Ar+(Ce<<1)>>1]=n,or[Ar+(Ce-aA<<1)>>1]=Ee,or[Ar+(de+Ce<<1)>>1]=i,or[Ar+(Ce+cA<<1)>>1]=Xe,or[Ar+(aA+Ce<<1)>>1]=A;break}or[Ar+(Ce-lA<<1)>>1]=Ee,or[Ar+(Ce+uA<<1)>>1]=Xe;break}while(0)}else{if((0|Ye)<=(0|((0|(n=8+(9*((Be=65535&i)-(ye&=65535)|0)|0)+(0|br((A&=65535)-(i=65535&Ee)|0,-3))>>4))<0?0-n|0:n)))break;n=(0|n)<(0|Qe)?Qe:(0|je)<(0|n)?je:n;do{if(e){if(Ne&&(Se=n+ye|0,Oe=Ar+((0|br(Ce,de))-1<<1)|0,or[Oe>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)),!De)break;Se=Be-n|0,Oe=Ar+((0|br(Ce,de))<<1)|0,or[Oe>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)}else{if(Ne&&(Oe=n+ye|0,or[Ar+(Ce-de<<1)>>1]=(0|Oe)<0?0:65535&((0|Oe)<(0|H)?Oe:x)),!De)break;Oe=Be-n|0,or[Ar+(Ce<<1)>>1]=(0|Oe)<0?0:65535&((0|Oe)<(0|H)?Oe:x)}}while(0);if(Re||(Se=((0|(Oe=(Se=n+(((ye+1+(65535&Xe)|0)>>>1)-i)|0)>>1))<(0|Ve)?Ve:((0|Ge)<(0|Oe)?je:Se)>>1)+i|0,Oe=(0|br(Ce,de))-2|0,or[Ar+((e?Oe:Ce-P|0)<<1)>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)),Fe)break;Se=((0|(Oe=(Se=((Be+1+(65535&Ie)|0)>>>1)-A-n|0)>>1))<(0|Ve)?Ve:((0|Ge)<(0|Oe)?je:Se)>>1)+A|0,Oe=0|br(e?Ce:1,de),or[Ar+(Oe+(e?1:Ce)<<1)>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)}}while(0);if(4==(0|(n=Ce+1|0)))break e;Xe=0|or[me+((Ce=n)<<3)+4>>1],Ee=0|or[me+(n<<3)+2>>1],ye=0|or[me+(n<<3)>>1],i=0|or[ve+(n<<3)>>1],A=0|or[ve+(n<<3)+2>>1],Ie=0|or[ve+(n<<3)+4>>1]}}}while(0)}He=He+Ze|0}while((0|He)<(0|nr))}if((0|fr)<=(0|(r=r+ke|0))){n=5;break}}switch(0|n){case 5:return void(ur=pe);case 13:sr(48482,48519,118,48539);break;case 16:sr(48543,48519,119,48539);break;case 18:sr(48482,48519,118,48539);break;case 20:sr(48543,48519,119,48539);break;case 23:sr(48482,48519,118,48539);break;case 26:sr(48543,48519,119,48539);break;case 37:case 41:sr(48482,48519,118,48539);break;case 47:case 51:sr(48543,48519,119,48539)}}}function Bt(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA,UA=0,SA=0,OA=0,zA=0,jA=0,HA=0,xA=0,PA=0,LA=0,KA=0,qA=0,$A=0,Ae=0,ee=0,re=0,ie=0,fe=0,ne=0,te=0,oe=0,ae=0,ce=0,le=0,ue=0,be=0,se=0,de=0,ke=0,he=0,we=0,ve=0,me=0,ge=0,Ze=0,pe=0,ye=0,Be=0,Ee=0,Xe=0,We=0,Ie=0;if(ur=(TA=ur)+48|0,QA=TA+24|0,DA=TA+8|0,JA=TA,MA=(e|=0)?2:1,NA=e?1:2,RA=0|ar[(_A=(A|=0)+40|0)>>2],UA=0|ar[A+5760>>2],Ie=(0|n)<(0|(Ie=0|ar[(YA=A+10472|0)>>2]))?n:Ie,(0|(We=(0|i)<(0|(We=0|ar[A+10476>>2]))?i:We))<=(0|r))ur=TA;else{tA=(0|f)<(0|Ie),oA=A+10460|0,aA=A+4|0,cA=A+10368|0,lA=A+10372|0,uA=A+10376|0,bA=A+10360|0,sA=A+10348|0,dA=A+10352|0,kA=A+10356|0,hA=A+10340|0,wA=A+48|0,vA=UA+-8|0,mA=2+DA|0,gA=1+DA|0,ZA=14+DA|0,pA=13+DA|0,yA=12+DA|0,BA=2+QA|0,EA=1+QA|0,XA=14+QA|0,WA=13+QA|0,IA=12+QA|0,CA=3+DA|0,GA=3+QA|0,VA=15+DA|0,FA=15+QA|0,iA=A+5480|0,fA=JA+1|0,nA=JA+2|0,L=255+(P=1<>2],ve))+((0|A)/4|0)|0,(SA=3&tr[(0|ar[oA>>2])+SA>>0])<<24>>24){if(pe=(ge=0|ar[aA>>2])+(Ze=(0|br(0|ar[_A>>2],we))+A|0)|0,tr[QA>>0]=0|tr[pe>>0],tr[DA>>0]=0|tr[pe+a>>0],tr[EA>>0]=0|tr[pe+t>>0],tr[gA>>0]=0|tr[pe+c>>0],tr[BA>>0]=0|tr[pe+l>>0],tr[mA>>0]=0|tr[pe+u>>0],tr[GA>>0]=0|tr[pe+b>>0],tr[CA>>0]=0|tr[pe+s>>0],tr[d>>0]=0|tr[pe+o>>0],tr[S>>0]=0|tr[pe+k>>0],tr[w>>0]=0|tr[pe+h>>0],tr[T>>0]=0|tr[pe+v>>0],tr[g>>0]=0|tr[pe+m>>0],tr[O>>0]=0|tr[pe+Z>>0],tr[y>>0]=0|tr[pe+p>>0],tr[H>>0]=0|tr[pe+B>>0],tr[X>>0]=0|tr[pe+E>>0],tr[j>>0]=0|tr[pe+W>>0],tr[C>>0]=0|tr[pe+I>>0],tr[U>>0]=0|tr[pe+G>>0],tr[F>>0]=0|tr[pe+V>>0],tr[z>>0]=0|tr[pe+R>>0],tr[_>>0]=0|tr[pe+N>>0],tr[x>>0]=0|tr[pe+ye>>0],KA=0|tr[pe+Y>>0],tr[IA>>0]=KA,zA=0|tr[pe+Q>>0],tr[yA>>0]=zA,qA=0|tr[pe+D>>0],tr[WA>>0]=qA,jA=0|tr[pe+J>>0],tr[pA>>0]=jA,$A=0|tr[pe+Be>>0],tr[XA>>0]=$A,HA=0|tr[pe+M>>0],tr[ZA>>0]=HA,re=0|tr[pe+Ee>>0],tr[FA>>0]=re,ee=0|tr[pe+Xe>>0],tr[VA>>0]=ee,n=we>>(fe=0|ar[cA>>2]),(0|(te=A>>fe))<=-1){n=10;break A}if((0|(ae=0|ar[lA>>2]))<=(0|te)){n=10;break A}if((0|n)<=-1){n=13;break A}if((0|(oe=0|ar[uA>>2]))<=(0|n)){n=13;break A}if(le=0|ar[bA>>2],ce=(ne=0|br(ae,n))+te|0,ie=A+-1|0,i=he>>fe,!(-1<(0|(n=(e?ie:A)>>fe))&(0|n)<(0|ae))){n=15;break A}if(!(-1<(0|i)&(0|i)<(0|oe))){n=17;break A}if(UA=le+(3*((0|br(ae,i))+n|0)|0)+2|0,UA=1+(0|tr[le+(3*ce|0)+2>>0])+(0|tr[UA>>0])>>1,n=A>>(i=0|ar[sA>>2]),i=we>>i,(0|n)<=-1){n=20;break A}if((0|(A=0|ar[dA>>2]))<=(0|n)){n=20;break A}if((0|i)<=-1){n=23;break A}if((0|i)>=(0|ar[kA>>2])){n=23;break A}de=(0|ar[hA>>2])+(24*((0|br(A,i))+n|0)|0)+2|0,de=0|ar[(0|ar[wA>>2])+(lr[de>>1]<<2)>>2],Ae=(0|ar[de+756>>2])+UA|0,Ae=cr[48154+((0|Ae)<0?0:(0|Ae)<51?Ae:51)>>0]<>2])|0,de=cr[48100+((0|de)<0?0:(0|de)<53?de:53)>>0]<>0]))-((255&(OA=0|tr[gA>>0]))<<1)+(PA=255&(UA=0|tr[DA>>0]))|0))<0?0-SA|0:SA,HA=(0|(HA=(255&HA)-((255&jA)<<1)+(LA=255&zA)|0))<0?0-HA|0:HA,n=(se=(0|(se=(255&(jA=0|tr[BA>>0]))-((255&(be=0|tr[EA>>0]))<<1)+(i=255&(ue=0|tr[QA>>0]))|0))<0?0-se|0:se)+SA|0,A=(KA=(0|(KA=(255&$A)-((255&qA)<<1)+(zA=255&KA)|0))<0?0-KA|0:KA)+HA|0,HA=HA+SA|0,KA=KA+se|0;e:do{if((A+n|0)<(0|Ae)){SA=Ae>>2;do{if((n<<1|0)<(0|SA)){if(se=(0|cr[CA>>0])-PA|0,(Ae>>3|0)<=(((0|($A=i-(0|cr[GA>>0])|0))<0?0-$A|0:$A)+((0|se)<0?0-se|0:se)|0)){i=0;break}i=(0|((0|(i=PA-i|0))<0?0-i|0:i))<(1+(5*de|0)>>1|0)}else i=0}while(0);do{if((A<<1|0)<(0|SA)){if((Ae>>3|0)<=(((0|(re=zA-(255&re)|0))<0?0-re|0:re)+((0|(se=(255&ee)-LA|0))<0?0-se|0:se)|0)){n=0;break}n=(0|((0|(n=LA-zA|0))<0?0-n|0:n))<(1+(5*de|0)>>1|0)}else n=0}while(0);if(se=i&n,zA=(Ae>>1)+Ae>>3,A=(SA=0|tr[iA>>0])<<24>>24!=0,e){if(n=-1<(0|(i=ie>>fe)),A){if(!(n&(0|i)<(0|ae))){n=34;break A}A=(65535&(cr[(A=le+(3*(ne+i|0)|0)|0)>>0]|cr[A+1>>0]<<8))>>>10&1^1}else{if(!n){n=38;break A}A=1}if((0|ae)<=(0|i)){n=38;break A}i=le+(3*(ne+i|0)|0)|0,fe=(n=SA<<24>>24?0==(1024&(cr[(n=le+(3*ce|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(fe=le+(3*ce|0)|0)>>0]|cr[fe+1>>0]<<8)),Ae=A<<24>>24?0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)):0}else{if(n=-1<(0|(i=me>>fe)),A){if(!(n&(0|i)<(0|oe))){n=44;break A}A=le+(3*((0|br(ae,i))+te|0)|0)|0,A=0==(1024&(cr[A>>0]|cr[A+1>>0]<<8))}else{if(!n){n=48;break A}A=1}if((0|oe)<=(0|i)){n=48;break A}i=le+(3*((0|br(ae,i))+te|0)|0)|0,fe=(n=SA<<24>>24?0==(1024&(cr[(n=le+(3*ce|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(fe=le+(3*ce|0)|0)>>0]|cr[fe+1>>0]<<8)),Ae=A&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8))}for(ee=de<<1,re=10*de|0,ie=0-de|0,$A=(0|zA)<=(0|HA)|1^Ae,qA=(0|zA)<=(0|KA)|1^fe,KA=0-(LA=de>>1)|0,PA=0,i=ue,A=be;;){zA=ge+(Ze+(HA=0|br(RA,PA)))|0;do{if(se){ue=0|tr[QA+(PA<<2)+3>>0],le=255&A,SA=(ce=255&UA)+ee|0,UA=255&((0|(UA=(A=4+(ce<<1)|0)+((ae=255&OA)<<1)+(be=255&xA)+(n=(i&=255)<<1)+le>>3))<(0|(oe=ce-ee|0))?oe:(0|SA)<(0|UA)?SA:UA),OA=ae+ee|0,SA=255&((0|(SA=(ce+2+ae+be+i|0)>>>2))<(0|(oe=ae-ee|0))?oe:(0|OA)<(0|SA)?OA:SA),OA=(ce+4+ae+(3*be|0)+i+(cr[DA+(PA<<2)+3>>0]<<1)|0)>>>3,oe=be-ee|0,be=be+ee|0,OA=255&((0|OA)<(0|oe)?oe:(0|be)<(0|OA)?be:OA),n=A+ae+n+(le<<1)+(be=255&jA)>>3,A=i+ee|0,n=255&((0|n)<(0|(ae=i-ee|0))?ae:(0|A)<(0|n)?A:n),tr[JA>>0]=n,A=i+ce+le|0,ce=le-ee|0,le=le+ee|0,i=255&((0|(i=(be+2+A|0)>>>2))<(0|ce)?ce:(0|le)<(0|i)?le:i),tr[fA>>0]=i,A=(A+4+(3*be|0)+((255&ue)<<1)|0)>>>3,ue=be-ee|0,be=be+ee|0,A=255&((0|A)<(0|ue)?ue:(0|be)<(0|A)?be:A),tr[nA>>0]=A;do{if(e){if(!Ae){if(!fe)break;tr[zA>>0]=0|tr[JA>>0],tr[zA+1>>0]=0|tr[JA+1>>0],tr[zA+2>>0]=0|tr[JA+2>>0];break}if(tr[pe+(HA+-1)>>0]=UA,fe){tr[pe+HA>>0]=n,tr[pe+(HA+-2)>>0]=SA,tr[pe+(HA+1)>>0]=i,tr[pe+(HA+-3)>>0]=OA,tr[pe+(HA+2)>>0]=A;break}tr[pe+(HA+-2)>>0]=SA,tr[pe+(HA+-3)>>0]=OA;break}if(!Ae){if(!fe)break;tr[pe+PA>>0]=n,tr[pe+(RA+PA)>>0]=i,tr[pe+(rA+PA)>>0]=A;break}if(tr[pe+(PA-RA)>>0]=UA,fe){tr[pe+PA>>0]=n,tr[pe+(PA-q)>>0]=SA,tr[pe+(RA+PA)>>0]=i,tr[pe+(PA+$)>>0]=OA,tr[pe+(q+PA)>>0]=A;break}tr[pe+(PA-AA)>>0]=SA,tr[pe+(PA+eA)>>0]=OA;break}while(0)}else{if((0|re)<=(0|((0|(n=8+(9*((SA=255&i)-(UA&=255)|0)|0)+(0|br((A&=255)-(i=255&OA)|0,-3))>>4))<0?0-n|0:n)))break;n=(0|n)<(0|ie)?ie:(0|de)<(0|n)?de:n;do{if(e){if(Ae&&(be=n+UA|0,tr[pe+(HA+-1)>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)),!fe)break;be=SA-n|0,tr[pe+HA>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)}else{if(Ae&&(be=n+UA|0,tr[pe+(PA-RA)>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)),!fe)break;be=SA-n|0,tr[pe+PA>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)}}while(0);if($A||(be=((0|(ue=(be=n+(((UA+1+(255&xA)|0)>>>1)-i)|0)>>1))<(0|KA)?KA:((0|LA)<(0|ue)?de:be)>>1)+i|0,tr[pe+(e?HA+-2|0:PA-K|0)>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)),qA)break;ue=((0|(be=(ue=((SA+1+(255&jA)|0)>>>1)-A-n|0)>>1))<(0|KA)?KA:((0|LA)<(0|be)?de:ue)>>1)+A|0,be=0|br(e?PA:1,RA),tr[pe+(be+(e?1:PA))>>0]=(0|ue)<0?0:255&((0|ue)<(0|P)?ue:L)}}while(0);if(4==(0|(n=PA+1|0)))break e;xA=0|tr[DA+((PA=n)<<2)+2>>0],OA=0|tr[DA+(n<<2)+1>>0],UA=0|tr[DA+(n<<2)>>0],i=0|tr[QA+(n<<2)>>0],A=0|tr[QA+(n<<2)+1>>0],jA=0|tr[QA+(n<<2)+2>>0]}}}while(0)}ke=ke+MA|0}while((0|ke)<(0|Ie))}if((0|We)<=(0|(r=r+NA|0))){n=5;break}}switch(0|n){case 5:return void(ur=TA);case 10:sr(48482,48519,118,48539);break;case 13:sr(48543,48519,119,48539);break;case 15:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 20:sr(48482,48519,118,48539);break;case 23:sr(48543,48519,119,48539);break;case 34:case 38:sr(48482,48519,118,48539);break;case 44:case 48:sr(48543,48519,119,48539)}}}function Et(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA=0,UA=0,SA=0,OA=0,zA=0,jA=0,HA=0,xA=0,PA=0,LA=0,KA=0,qA=0,$A=0,Ae=0,ee=0,re=0,ie=0,fe=0,ne=0,te=0,oe=0,ae=0,ce=0,le=0,ue=0;if(ur=(MA=ur)+32|0,QA=MA+16|0,DA=MA,JA=0|ar[(A|=0)+5780>>2],FA=0|ar[A+5784>>2],RA=0|br(JA,e?2:1),NA=0|br(FA,e?1:2),VA=0|ar[(_A=A+44|0)>>2],ue=(0|n)<(0|(ue=0|ar[(YA=A+10472|0)>>2]))?n:ue,s=A+5768|0,(0|(le=(0|i)<(0|(le=0|ar[A+10476>>2]))?i:le))<=(0|r))ur=MA;else{d=(0|f)<(0|ue),k=3-JA|0,h=3-FA|0,w=A+10460|0,v=A+5956|0,m=A+5952|0,g=A+10368|0,Z=A+10372|0,p=A+10376|0,y=A+10360|0,B=A+5776|0,E=A+10348|0,X=A+10352|0,W=A+10356|0,I=A+10340|0,C=A+48|0,G=A+5480|0,F=65535+(V=1<>2])|0,R=VA<<1,N=0|br(VA,-2),Y=VA-1|0,J=(Q=VA<<1)-1|0,U=(M=3*VA|0)-1|0,O=1+VA|0,j=VA-2|0,H=1|Q,P=Q-2|0,L=1+M|0,q=M-2|0,cA=VA<<1,dA=3*VA|0,wA=eA=_=DA+2|0,vA=rA=t=2+QA|0,mA=iA=o=10+QA|0,gA=fA=z=DA+10|0,ZA=nA=D=DA+4|0,pA=tA=c=4+QA|0,yA=oA=l=12+QA|0,BA=aA=x=DA+12|0,EA=lA=T=DA+6|0,XA=uA=u=6+QA|0,WA=bA=b=14+QA|0,IA=sA=K=DA+14|0,GA=kA=$=a=8+QA|0,CA=hA=AA=S=DA+8|0;A:for(;;){if(d){ae=(0|(oe=0|br(te=r<>2],ae))+((0|fe)/4|0)|0,1<(255&(n=3&tr[(0|ar[w>>2])+n>>0]))){ne=fe+-1|0,ee=e?ne:fe,qA=(n<<1&255)-2|0,KA=0;do{if(TA=0|ar[(0==(0|KA)?m:v)>>2],$A=(n=0|ar[A+4+((KA=KA+1|0)<<2)>>2])+(i=(0|br(0|ar[_A>>2],te))+ie<<1)|0,e?(or[DA>>1]=0|or[$A>>1],or[QA>>1]=0|or[$A+-2>>1],or[_>>1]=0|or[$A+(VA<<1)>>1],or[t>>1]=0|or[$A+(Y<<1)>>1],or[D>>1]=0|or[$A+(Q<<1)>>1],or[c>>1]=0|or[$A+(J<<1)>>1],or[T>>1]=0|or[$A+(M<<1)>>1],or[u>>1]=0|or[$A+(U<<1)>>1],or[S>>1]=0|or[$A+2>>1],or[a>>1]=0|or[$A+-4>>1],or[z>>1]=0|or[$A+(O<<1)>>1],or[o>>1]=0|or[$A+(j<<1)>>1],or[x>>1]=0|or[$A+(H<<1)>>1],or[l>>1]=0|or[$A+(P<<1)>>1],or[K>>1]=0|or[$A+(L<<1)>>1],or[b>>1]=0|or[$A+(q<<1)>>1]):(PA=N+i|0,xA=lr[(xA=(LA=xA=$A)+4|0)>>1]|lr[xA+2>>1]<<16,ar[(HA=DA)>>2]=lr[LA>>1]|lr[LA+2>>1]<<16,ar[HA+4>>2]=xA,HA=lr[(HA=(xA=HA=n+PA|0)+4|0)>>1]|lr[HA+2>>1]<<16,ar[(LA=QA)>>2]=lr[xA>>1]|lr[xA+2>>1]<<16,ar[LA+4>>2]=HA,LA=lr[(LA=(HA=LA=n+(i+R)|0)+4|0)>>1]|lr[LA+2>>1]<<16,ar[(xA=CA)>>2]=lr[HA>>1]|lr[HA+2>>1]<<16,ar[xA+4>>2]=LA,PA=lr[(PA=(xA=PA=n+(PA+N)|0)+4|0)>>1]|lr[PA+2>>1]<<16,ar[(LA=GA)>>2]=lr[xA>>1]|lr[xA+2>>1]<<16,ar[LA+4>>2]=PA),n=oe>>(SA=0|ar[g>>2]),(0|(zA=fe>>SA))<=-1){n=14;break A}if((0|(HA=0|ar[Z>>2]))<=(0|zA)){n=14;break A}if((0|n)<=-1){n=17;break A}if((0|(jA=0|ar[p>>2]))<=(0|n)){n=17;break A}if(PA=0|ar[y>>2],xA=(OA=0|br(HA,n))+zA|0,i=re>>SA,!(-1<(0|(n=ee>>SA))&(0|n)<(0|HA))){n=19;break A}if(!(-1<(0|i)&(0|i)<(0|jA))){n=21;break A}n=PA+(3*((0|br(HA,i))+n|0)|0)+2|0,n=(1+(0|tr[PA+(3*xA|0)+2>>0])+(0|tr[n>>0])>>1)+TA|0;do{if(1==(0|ar[B>>2])){if(30<=(0|n)){if(42<(0|n)){n=n+-6|0;break}n=0|ar[8020+(n+-30<<2)>>2];break}}else n=(0|n)<51?n:51}while(0);if(i=fe>>(TA=0|ar[E>>2]),TA=oe>>TA,(0|i)<=-1){n=30;break A}if((0|(UA=0|ar[X>>2]))<=(0|i)){n=30;break A}if((0|TA)<=-1){n=33;break A}if((0|TA)>=(0|ar[W>>2])){n=33;break A}LA=(0|ar[I>>2])+(24*((0|br(UA,TA))+i|0)|0)+2|0,LA=qA+n+(0|ar[760+(0|ar[(0|ar[C>>2])+(lr[LA>>1]<<2)>>2])>>2])|0,LA=cr[48100+((0|LA)<0?0:(0|LA)<53?LA:53)>>0]<<(0|ar[s>>2])-8,UA=0==(0|tr[G>>0]);e:do{if(e){if(n=-1<(0|(i=ne>>SA)),UA){if(!n){n=41;break A}TA=1}else{if(!(n&(0|i)<(0|HA))){n=37;break A}TA=0==(1024&(cr[(TA=PA+(3*(OA+i|0)|0)|0)>>0]|cr[TA+1>>0]<<8))}if((0|HA)<=(0|i)){n=41;break A}if(i=PA+(3*(OA+i|0)|0)|0,SA=(n=UA?1:0==(1024&(cr[(n=PA+(3*xA|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(SA=PA+(3*xA|0)|0)>>0]|cr[SA+1>>0]<<8)),OA=0-LA|0,TA&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)))for(n=0;;)if(i=DA+(n<<1)|0,PA=0|lr[QA+(n<<1)>>1],PA=(TA=(0|(TA=4+(0|lr[8+QA+(n<<1)>>1])+((0|lr[i>>1])-PA<<2)-(0|lr[DA+8+(n<<1)>>1])>>3))<(0|OA)?OA:(0|LA)<(0|TA)?LA:TA)+PA|0,UA=0|br(n,VA),or[$A+(UA+-1<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F),SA&&(PA=(0|lr[i>>1])-TA|0,or[$A+(UA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),4==(0|(n=n+1|0)))break e;if(n=0|lr[DA>>1],i=4+(0|lr[$>>1])+(n-(0|lr[QA>>1])<<2)-(0|lr[AA>>1])>>3,SA&&(PA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),n=0|lr[eA>>1],i=4+(0|lr[iA>>1])+(n-(0|lr[rA>>1])<<2)-(0|lr[fA>>1])>>3,SA&&(PA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A+(VA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),n=0|lr[nA>>1],i=4+(0|lr[oA>>1])+(n-(0|lr[tA>>1])<<2)-(0|lr[aA>>1])>>3,SA&&(PA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A+(cA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),n=0|lr[lA>>1],i=4+(0|lr[bA>>1])+(n-(0|lr[uA>>1])<<2)-(0|lr[sA>>1])>>3,!SA)break;LA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A+(dA<<1)>>1]=(0|LA)<0?0:65535&((0|LA)<(0|V)?LA:F)}else{if(n=-1<(0|(i=ce>>SA)),UA){if(!n){n=57;break A}TA=1}else{if(!(n&(0|i)<(0|jA))){n=53;break A}TA=PA+(3*((0|br(HA,i))+zA|0)|0)|0,TA=0==(1024&(cr[TA>>0]|cr[TA+1>>0]<<8))}if((0|jA)<=(0|i)){n=57;break A}if(i=PA+(3*((0|br(HA,i))+zA|0)|0)|0,UA=(n=UA?1:0==(1024&(cr[(n=PA+(3*xA|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(UA=PA+(3*xA|0)|0)>>0]|cr[UA+1>>0]<<8)),SA=0-LA|0,!(TA&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)))){if(!UA)break;xA=(PA=0|lr[DA>>1])-((0|(xA=4+(0|lr[kA>>1])+(PA-(0|lr[QA>>1])<<2)-(0|lr[hA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|xA)?LA:xA)|0,or[$A>>1]=(0|xA)<0?0:65535&((0|xA)<(0|V)?xA:F),PA=(xA=0|lr[wA>>1])-((0|(PA=4+(0|lr[mA>>1])+(xA-(0|lr[vA>>1])<<2)-(0|lr[gA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|PA)?LA:PA)|0,or[$A+2>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F),xA=(PA=0|lr[ZA>>1])-((0|(xA=4+(0|lr[yA>>1])+(PA-(0|lr[pA>>1])<<2)-(0|lr[BA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|xA)?LA:xA)|0,or[$A+4>>1]=(0|xA)<0?0:65535&((0|xA)<(0|V)?xA:F),LA=(xA=0|lr[EA>>1])-((0|(PA=4+(0|lr[WA>>1])+(xA-(0|lr[XA>>1])<<2)-(0|lr[IA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|PA)?LA:PA)|0,or[$A+6>>1]=(0|LA)<0?0:65535&((0|LA)<(0|V)?LA:F);break}for(n=0;i=DA+(n<<1)|0,PA=0|lr[QA+(n<<1)>>1],PA=(TA=(0|(TA=4+(0|lr[8+QA+(n<<1)>>1])+((0|lr[i>>1])-PA<<2)-(0|lr[DA+8+(n<<1)>>1])>>3))<(0|SA)?SA:(0|LA)<(0|TA)?LA:TA)+PA|0,or[$A+(n-VA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F),UA&&(PA=(0|lr[i>>1])-TA|0,or[$A+(n<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),4!=(0|(n=n+1|0)););}}while(0)}while((0|KA)<2)}Ae=Ae+RA|0}while((0|Ae)<(0|ue))}if((0|le)<=(0|(r=r+NA|0))){n=5;break}}switch(0|n){case 5:return void(ur=MA);case 14:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 19:sr(48482,48519,118,48539);break;case 21:sr(48543,48519,119,48539);break;case 30:sr(48482,48519,118,48539);break;case 33:sr(48543,48519,119,48539);break;case 37:case 41:sr(48482,48519,118,48539);break;case 53:case 57:sr(48543,48519,119,48539)}}}function Xt(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA,UA,SA,OA,zA,jA,HA,xA,PA,LA,KA,qA,$A,Ae,ee,re,ie,fe,ne,te,oe,ae,ce,le,ue,be,se,de,ke,he,we,ve,me,ge,Ze,pe=0,ye=0,Be=0,Ee=0,Xe=0,We=0,Ie=0,Ce=0,Ge=0,Ve=0,Fe=0,Re=0,Ne=0,_e=0,Ye=0,Qe=0,De=0,Je=0,Me=0,Te=0,Ue=0,Se=0,Oe=0,ze=0,je=0,He=0;if(ur=(Ze=ur)+16|0,ve=Ze+8|0,me=Ze,ge=0|ar[(A|=0)+5780>>2],se=0|ar[A+5784>>2],de=0|br(ge,e?2:1),ke=0|br(se,e?1:2),be=0|ar[(he=A+44|0)>>2],He=(0|n)<(0|(He=0|ar[(we=A+10472|0)>>2]))?n:He,O=A+5768|0,(0|(je=(0|i)<(0|(je=0|ar[A+10476>>2]))?i:je))<=(0|r))ur=Ze;else{z=(0|f)<(0|He),j=3-ge|0,H=3-se|0,x=A+10460|0,P=A+5956|0,L=A+5952|0,K=A+10368|0,q=A+10372|0,$=A+10376|0,AA=A+10360|0,eA=A+5776|0,rA=A+10348|0,iA=A+10352|0,fA=A+10356|0,nA=A+10340|0,tA=A+48|0,oA=A+5480|0,cA=255+(aA=1<>2])|0,lA=0-be|0,kA=(sA=be<<1)-1|0,vA=(hA=3*be|0)-1|0,gA=1+be|0,pA=be-2|0,yA=1|sA,EA=sA-2|0,XA=1+hA|0,IA=hA-2|0,_A=bA=be-1|0,TA=(MA=be<<1)-1|0,HA=(jA=3*be|0)-1|0,fe=be<<1,ce=3*be|0,m=1-be|0,B=2-be|0,C=3-be|0,F=k=LA=VA=uA=me+1|0,R=h=KA=FA=t=1+ve|0,N=w=qA=RA=o=5+ve|0,_=v=$A=NA=ZA=me+5|0,Y=g=Ae=YA=dA=me+2|0,Q=Z=ee=QA=c=2+ve|0,D=p=re=DA=l=6+ve|0,J=y=ie=JA=BA=me+6|0,M=E=ne=UA=wA=me+3|0,T=X=te=SA=u=3+ve|0,U=W=oe=OA=b=7+ve|0,S=I=ae=zA=WA=me+7|0,ue=G=s=xA=CA=a=4+ve|0,le=V=d=PA=GA=mA=me+4|0;A:for(;;){if(z){Te=(0|(Me=0|br(Je=r<>2],Te))+((0|Oe)/4|0)|0,1<(255&(n=3&tr[(0|ar[x>>2])+n>>0]))){ze=Oe+-1|0,Qe=e?ze:Oe,Re=(n<<1&255)-2|0,Ne=Se-be|0,Fe=0;do{if(ye=0|ar[(0==(0|Fe)?L:P)>>2],_e=(n=0|ar[A+4+((Fe=Fe+1|0)<<2)>>2])+(pe=(i=0|br(0|ar[he>>2],Je))+Se|0)|0,e?(tr[me>>0]=0|tr[_e>>0],tr[ve>>0]=0|tr[_e+-1>>0],tr[uA>>0]=0|tr[_e+be>>0],tr[t>>0]=0|tr[_e+bA>>0],tr[dA>>0]=0|tr[_e+sA>>0],tr[c>>0]=0|tr[_e+kA>>0],tr[wA>>0]=0|tr[_e+hA>>0],tr[u>>0]=0|tr[_e+vA>>0],tr[mA>>0]=0|tr[_e+1>>0],tr[a>>0]=0|tr[_e+-2>>0],tr[ZA>>0]=0|tr[_e+gA>>0],tr[o>>0]=0|tr[_e+pA>>0],tr[BA>>0]=0|tr[_e+yA>>0],tr[l>>0]=0|tr[_e+EA>>0],tr[WA>>0]=0|tr[_e+XA>>0],tr[b>>0]=0|tr[_e+IA>>0]):(Ge=n+(Ve=Ne+i|0)|0,ar[me>>2]=cr[_e>>0]|cr[_e+1>>0]<<8|cr[_e+2>>0]<<16|cr[_e+3>>0]<<24,ar[ve>>2]=cr[Ge>>0]|cr[Ge+1>>0]<<8|cr[Ge+2>>0]<<16|cr[Ge+3>>0]<<24,Ve=n+(Ve-be)|0,Ge=n+(pe+be)|0,ar[le>>2]=cr[Ge>>0]|cr[Ge+1>>0]<<8|cr[Ge+2>>0]<<16|cr[Ge+3>>0]<<24,ar[ue>>2]=cr[Ve>>0]|cr[Ve+1>>0]<<8|cr[Ve+2>>0]<<16|cr[Ve+3>>0]<<24),n=Me>>(Be=0|ar[K>>2]),(0|(Xe=Oe>>Be))<=-1){n=14;break A}if((0|(Ie=0|ar[q>>2]))<=(0|Xe)){n=14;break A}if((0|n)<=-1){n=17;break A}if((0|(We=0|ar[$>>2]))<=(0|n)){n=17;break A}if(Ge=0|ar[AA>>2],Ce=(Ee=0|br(Ie,n))+Xe|0,i=De>>Be,!(-1<(0|(n=Qe>>Be))&(0|n)<(0|Ie))){n=19;break A}if(!(-1<(0|i)&(0|i)<(0|We))){n=21;break A}n=Ge+(3*((0|br(Ie,i))+n|0)|0)+2|0,n=(1+(0|tr[Ge+(3*Ce|0)+2>>0])+(0|tr[n>>0])>>1)+ye|0;do{if(1==(0|ar[eA>>2])){if(30<=(0|n)){if(42<(0|n)){n=n+-6|0;break}n=0|ar[8020+(n+-30<<2)>>2];break}}else n=(0|n)<51?n:51}while(0);if(i=Oe>>(pe=0|ar[rA>>2]),pe=Me>>pe,(0|i)<=-1){n=30;break A}if((0|(ye=0|ar[iA>>2]))<=(0|i)){n=30;break A}if((0|pe)<=-1){n=33;break A}if((0|pe)>=(0|ar[fA>>2])){n=33;break A}Ve=(0|ar[nA>>2])+(24*((0|br(ye,pe))+i|0)|0)+2|0,Ve=Re+n+(0|ar[760+(0|ar[(0|ar[tA>>2])+(lr[Ve>>1]<<2)>>2])>>2])|0,Ve=cr[48100+((0|Ve)<0?0:(0|Ve)<53?Ve:53)>>0]<<(0|ar[O>>2])-8,pe=0==(0|tr[oA>>0]);do{if(e){if(n=-1<(0|(i=ze>>Be)),pe){if(!n){n=41;break A}Be=1}else{if(!(n&(0|i)<(0|Ie))){n=37;break A}Be=0==(1024&(cr[(Be=Ge+(3*(Ee+i|0)|0)|0)>>0]|cr[Be+1>>0]<<8))}if((0|Ie)<=(0|i)){n=41;break A}if(ye=Ge+(3*(Ee+i|0)|0)|0,pe=(n=pe?1:0==(1024&(cr[(n=Ge+(3*Ce|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(pe=Ge+(3*Ce|0)|0)>>0]|cr[pe+1>>0]<<8)),i=0-Ve|0,!(Be&0==(2048&(cr[ye>>0]|cr[ye+1>>0]<<8)))){if(!pe)break;Ce=(Ge=0|cr[me>>0])-((0|(Ce=4+(0|cr[xA>>0])+(Ge-(0|cr[ve>>0])<<2)-(0|cr[PA>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ge=(Ce=0|cr[LA>>0])-((0|(Ge=4+(0|cr[qA>>0])+(Ce-(0|cr[KA>>0])<<2)-(0|cr[$A>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+be>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),Ce=(Ge=0|cr[Ae>>0])-((0|(Ce=4+(0|cr[re>>0])+(Ge-(0|cr[ee>>0])<<2)-(0|cr[ie>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e+fe>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ve=(Ce=0|cr[ne>>0])-((0|(Ge=4+(0|cr[oe>>0])+(Ce-(0|cr[te>>0])<<2)-(0|cr[ae>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+ce>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA);break}if(Ge=0|cr[ve>>0],Ge=(n=(0|(n=4+(0|cr[CA>>0])+((0|cr[me>>0])-Ge<<2)-(0|cr[GA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+-1>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[me>>0])-n|0,tr[_e>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[FA>>0],Ge=(n=(0|(n=4+(0|cr[RA>>0])+((0|cr[VA>>0])-Ge<<2)-(0|cr[NA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+_A>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[VA>>0])-n|0,tr[_e+be>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[QA>>0],Ge=(n=(0|(n=4+(0|cr[DA>>0])+((0|cr[YA>>0])-Ge<<2)-(0|cr[JA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+TA>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[YA>>0])-n|0,tr[_e+MA>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[SA>>0],Ve=(n=(0|(n=4+(0|cr[OA>>0])+((0|cr[UA>>0])-Ge<<2)-(0|cr[zA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+HA>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA),!pe)break;Ve=(0|cr[UA>>0])-n|0,tr[_e+jA>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA)}else{if(n=-1<(0|(i=Ue>>Be)),pe){if(!n){n=56;break A}Be=1}else{if(!(n&(0|i)<(0|We))){n=52;break A}Be=Ge+(3*((0|br(Ie,i))+Xe|0)|0)|0,Be=0==(1024&(cr[Be>>0]|cr[Be+1>>0]<<8))}if((0|We)<=(0|i)){n=56;break A}if(ye=Ge+(3*((0|br(Ie,i))+Xe|0)|0)|0,pe=(n=pe?1:0==(1024&(cr[(n=Ge+(3*Ce|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(pe=Ge+(3*Ce|0)|0)>>0]|cr[pe+1>>0]<<8)),i=0-Ve|0,!(Be&0==(2048&(cr[ye>>0]|cr[ye+1>>0]<<8)))){if(!pe)break;Ce=(Ge=0|cr[me>>0])-((0|(Ce=4+(0|cr[G>>0])+(Ge-(0|cr[ve>>0])<<2)-(0|cr[V>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ge=(Ce=0|cr[F>>0])-((0|(Ge=4+(0|cr[N>>0])+(Ce-(0|cr[R>>0])<<2)-(0|cr[_>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+1>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),Ce=(Ge=0|cr[Y>>0])-((0|(Ce=4+(0|cr[D>>0])+(Ge-(0|cr[Q>>0])<<2)-(0|cr[J>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e+2>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ve=(Ce=0|cr[M>>0])-((0|(Ge=4+(0|cr[U>>0])+(Ce-(0|cr[T>>0])<<2)-(0|cr[S>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+3>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA);break}if(Ge=0|cr[ve>>0],Ge=(n=(0|(n=4+(0|cr[s>>0])+((0|cr[me>>0])-Ge<<2)-(0|cr[d>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+lA>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[me>>0])-n|0,tr[_e>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[h>>0],Ge=(n=(0|(n=4+(0|cr[w>>0])+((0|cr[k>>0])-Ge<<2)-(0|cr[v>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+m>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[k>>0])-n|0,tr[_e+1>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[Z>>0],Ge=(n=(0|(n=4+(0|cr[p>>0])+((0|cr[g>>0])-Ge<<2)-(0|cr[y>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+B>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[g>>0])-n|0,tr[_e+2>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[X>>0],Ve=(n=(0|(n=4+(0|cr[W>>0])+((0|cr[E>>0])-Ge<<2)-(0|cr[I>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+C>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA),!pe)break;Ve=(0|cr[E>>0])-n|0,tr[_e+3>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA)}}while(0)}while((0|Fe)<2)}Ye=Ye+de|0}while((0|Ye)<(0|He))}if((0|je)<=(0|(r=r+ke|0))){n=5;break}}switch(0|n){case 5:return void(ur=Ze);case 14:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 19:sr(48482,48519,118,48539);break;case 21:sr(48543,48519,119,48539);break;case 30:sr(48482,48519,118,48539);break;case 33:sr(48543,48519,119,48539);break;case 37:case 41:sr(48482,48519,118,48539);break;case 52:case 56:sr(48543,48519,119,48539)}}}function Wt(A,e,r,i,f,n,t){r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;for((0|(l=(e|=0)>>(u=0|ar[(d=(A|=0)+10448|0)>>2])))<=-1&&sr(48482,48519,118,48539),o=A+10452|0,a=A+10456|0,c=A+10440|0,v=e,b=i,s=n,h=t,i=(w=r)>>u;;){if((0|(e=0|ar[o>>2]))<=(0|l)){e=4;break}if((0|i)<=-1){e=7;break}if((0|i)>=(0|ar[a>>2])){e=7;break}if(u=(0|ar[c>>2])+((0|br(e,i))+l)|0,k=1<>0])&1<>1)+v|0,n=n+w|0,Wt(A,v,w,e=b+-1|0,f=f+1|0,s,h),Wt(A,i,w,e,f,16,h),Wt(A,v,n,e,f,s,32),(0|(l=i>>(t=0|ar[d>>2])))<=-1){e=4;break}v=i,b=e,s=16,h=32,i=(w=n)>>t}if(4==(0|e))sr(48482,48519,118,48539);else if(7==(0|e))sr(48543,48519,119,48539);else if(9==(0|e)){if(b=31==(0|b))return;for(i=255&s,f=(0|v)/4|0,n=A+10472|0,t=A+10476|0,l=A+10460|0,e=0;r=(e+w|0)/4|0,(0|f)<(0|(u=0|ar[n>>2]))&&(0|r)<(0|ar[t>>2])&&(d=(0|br(u,r))+f|0,d=(0|ar[l>>2])+d|0,tr[d>>0]=tr[d>>0]|i),(0|(e=e+4|0))<(0|k););if(b)return;for(u=255&h,t=(0|w)/4|0,l=A+10472|0,r=A+10476|0,i=A+10460|0,e=0;(0|(f=(e+v|0)/4|0))<(0|(n=0|ar[l>>2]))&&(0|t)<(0|ar[r>>2])&&(A=(0|br(n,t))+f|0,A=(0|ar[i>>2])+A|0,tr[A>>0]=tr[A>>0]|u),(0|(e=e+4|0))<(0|k););return}}function It(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0;switch(n=(e|=0)>>(o=0|ar[(A|=0)+10368>>2]),o=r>>o,(0|n)<=-1&&sr(48482,48519,118,48539),(0|(f=0|ar[A+10372>>2]))<=(0|n)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[A+10376>>2])&&sr(48543,48519,119,48539),u=(0|ar[A+10360>>2])+(3*((0|br(f,o))+n|0)|0)|0,t=1<>0]|cr[u+1>>0]<<8))>>>3&7){case 3:if(31==(0|i))return;for(c=(n+e|0)/4|0,l=A+10472|0,u=A+10476|0,a=A+10460|0,i=(n+r|0)/4|0,o=0;f=(o+r|0)/4|0,(0|c)<(0|(n=0|ar[l>>2]))&&(0|f)<(0|ar[u>>2])&&(n=(0|br(n,f))+c|0,n=(0|ar[a>>2])+n|0,tr[n>>0]=64|tr[n>>0],n=0|ar[l>>2]),(0|(f=(o+e|0)/4|0))<(0|n)&&(0|i)<(0|ar[u>>2])&&(A=(0|br(n,i))+f|0,A=(0|ar[a>>2])+A|0,tr[A>>0]=-128|tr[A>>0]),(0|(o=o+1|0))<(0|t););return;case 2:if(31==(0|i))return;for(a=(n+e|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;n=(f+r|0)/4|0,(0|a)<(0|(o=0|ar[c>>2]))&&(0|n)<(0|ar[l>>2])&&(e=(0|br(o,n))+a|0,e=(0|ar[i>>2])+e|0,tr[e>>0]=64|tr[e>>0]),(0|(f=f+1|0))<(0|t););return;case 1:if(31==(0|i))return;for(a=(n+r|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;(0|(n=(f+e|0)/4|0))<(0|(o=0|ar[c>>2]))&&(0|a)<(0|ar[l>>2])&&(r=(0|br(o,a))+n|0,r=(0|ar[i>>2])+r|0,tr[r>>0]=-128|tr[r>>0]),(0|(f=f+1|0))<(0|t););return;case 6:if(31==(0|i))return;for(a=(f+e|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;n=(f+r|0)/4|0,(0|a)<(0|(o=0|ar[c>>2]))&&(0|n)<(0|ar[l>>2])&&(e=(0|br(o,n))+a|0,e=(0|ar[i>>2])+e|0,tr[e>>0]=64|tr[e>>0]),(0|(f=f+1|0))<(0|t););return;case 7:if(31==(0|i))return;for(a=(n+e+f|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;n=(f+r|0)/4|0,(0|a)<(0|(o=0|ar[c>>2]))&&(0|n)<(0|ar[l>>2])&&(e=(0|br(o,n))+a|0,e=(0|ar[i>>2])+e|0,tr[e>>0]=64|tr[e>>0]),(0|(f=f+1|0))<(0|t););return;case 4:if(31==(0|i))return;for(a=(f+r|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;(0|(n=(f+e|0)/4|0))<(0|(o=0|ar[c>>2]))&&(0|a)<(0|ar[l>>2])&&(r=(0|br(o,a))+n|0,r=(0|ar[i>>2])+r|0,tr[r>>0]=-128|tr[r>>0]),(0|(f=f+1|0))<(0|t););return;case 5:if(31==(0|i))return;for(a=(n+r+f|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;(0|(n=(f+e|0)/4|0))<(0|(o=0|ar[c>>2]))&&(0|a)<(0|ar[l>>2])&&(r=(0|br(o,a))+n|0,r=(0|ar[i>>2])+r|0,tr[r>>0]=-128|tr[r>>0]),(0|(f=f+1|0))<(0|t););return;default:return}}function Ct(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0;var o=0,a=0,c=0;return t=(0|(c=(f|=0)?(f=e+-1>>(o=0|ar[t+10368>>2]),o=r>>o,(0|f)<=-1&&sr(48482,48519,118,48539),(0|(a=0|ar[t+10372>>2]))<=(0|f)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[t+10376>>2])&&sr(48543,48519,119,48539),c=(0|ar[t+10360>>2])+(3*((0|br(a,o))+f|0)|0)|0,1792&(cr[c>>0]|cr[c+1>>0]<<8)?1:0|cr[(0|ar[t+10400>>2])+(i+-1)>>0]):1))!=(0|(f=n?(f=e>>(o=0|ar[t+10368>>2]),o=r+-1>>o,(0|f)<=-1&&sr(48482,48519,118,48539),(0|(a=0|ar[t+10372>>2]))<=(0|f)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[t+10376>>2])&&sr(48543,48519,119,48539),n=(0|ar[t+10360>>2])+(3*((0|br(a,o))+f|0)|0)|0,0==(1792&(cr[n>>0]|cr[n+1>>0]<<8))&&(r>>(n=0|ar[t+5804>>2])<>2])+(i-(0|ar[t+5876>>2]))>>0]:1):1))?0!=(0|(ar[A>>2]=c))&0!=(0|(ar[A+4>>2]=f))?0:1!=(0|c)&1!=(0|f)?1:26:c>>>0<2?(ar[A>>2]=0,ar[A+4>>2]=1,26):(ar[A>>2]=c,ar[A+4>>2]=2+(c+29&31),2+((c+-1|0)%32|0)|0),void(ar[(A=A+8|0)>>2]=t)}function Gt(A,e,r,i,f,n){return A|=0,e|=0,r|=0,i|=0,f|=0,8<(0|ar[(0==(0|(n|=0))?A+5760|0:A+5768|0)>>2])?void function(A,e,r,i,f,n){i|=0;var t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;ur=(o=ur)+272|0,function(A,e,r,i,f,n){e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0;ur=(m=ur)+144|0,v=(h=m)+64|0,w=0|ar[4+(A|=0)+((f|=0)<<2)>>2],c=0|ar[((f=0==(0|f))?A+40|0:A+44|0)>>2],L=f?q=1:(q=0|ar[A+5780>>2],0|ar[A+5784>>2]);k=0|ar[(f?A+5760|0:A+5768|0)>>2],Q=0|br(q,e),Y=0|br(L,r),C=0|ar[A+5804>>2],W=0|ar[A+5820>>2],F=(M=0!=(0|Q))&(V=1^(y=0==(0|Y))),I=Q+(0|br(q,i))|0,D=0|ar[A+1248>>2],N=(0|I)<(0|D)&V,B=Q>>C,p=Y>>C,E=Q+-1>>C,I>>=C,C=Y+-1>>C,g=0|ar[A+10352>>2],f=0|br(g,p),Z=0|ar[A+10340>>2],o=0|lr[Z+(24*(f+B|0)|0)>>1],J=M?0|lr[Z+(24*(f+E|0)|0)>>1]:-1;G=y?-1:(G=Z+(24*((0|br(g,C))+B|0)|0)|0,0|lr[G>>1]);R=N?(R=Z+(24*((0|br(g,C))+I|0)|0)|0,0|lr[R>>1]):-1;X=F?(X=Z+(24*((0|br(g,C))+E|0)|0)|0,0|lr[X>>1]):-1;f=0|br(p,W),p=0|ar[A+10308>>2],t=0|ar[p+(f+B<<2)>>2],_=M?0|ar[p+(f+E<<2)>>2]:-1;g=y?-1:(g=p+((0|br(C,W))+B<<2)|0,0|ar[g>>2]);Z=F?(Z=p+((0|br(C,W))+E<<2)|0,0|ar[Z>>2]):-1;f=N?(f=p+((0|br(C,W))+I<<2)|0,0|ar[f>>2]):-1;d=(0|G)==(0|o)&(0|g)==(0|t)&V,F=F&(0|X)==(0|o)&(0|Z)==(0|t),l=N&(0|R)==(0|o)&(0|f)==(0|t),u=0|ar[A+5864>>2],a=0|ar[A+5852>>2],K=(0|br(Y>>u,a))+(Q>>u)|0,b=0|ar[A+10320>>2],K=0|ar[b+(K<<2)>>2],f=(L+-1-Y+(0|ar[A+1252>>2])|0)/(0|L)|0,Y=(0|f)>(0|(s=i<<1))?s:f,Q=(0|(Q=(q+-1-Q+D|0)/(0|q)|0))>(0|s)?s:Q,vb(0-s+v|0,0,0|(D=i<<2|1)),g=Y+-1|0;A:do{if(0<(0|Y)&&(T=e+-1|0,U=0|br(q,T),S=A+10368|0,O=A+10372|0,z=A+10376|0,j=A+10360|0,M&(0|J)==(0|o)&(0|_)==(0|t))){for(C=64-((0|f)<(0|s)?f:s)|0,G=U>>u,V=0==(0|tr[A+5944>>0]),W=g,I=g=f=0;;){if(X=h+(C+(I<<2))|0,Z=0|br(E=W+r|0,L),y=b+((0|br(Z>>u,a))+G<<2)|0,y=(0|ar[y>>2])<=(0|K),V)y&&(H=29);else{if(M=0|ar[S>>2],Z>>=M,(0|(B=U>>M))<=-1){H=34;break}if((0|(p=0|ar[O>>2]))<=(0|B)){H=34;break}if((0|Z)<=-1){H=35;break}if((0|Z)>=(0|ar[z>>2])){H=35;break}M=(0|ar[j>>2])+(3*((0|br(p,Z))+B|0)|0)|0,y&0==(768&(cr[M>>0]|cr[M+1>>0]<<8))&&(H=29)}if(29==(0|H)&&(Z=w+(((H=0)|br(E,c))+T<<1)|0,g||(f=0|or[Z>>1]),tr[X>>0]=1,tr[X+1>>0]=1,tr[X+2>>0]=1,tr[X+3>>0]=1,or[n+(~W<<1)>>1]=0|or[Z>>1],M=w+((0|br(E+-1|0,c))+T<<1)|0,or[n+(1-W-1<<1)>>1]=0|or[M>>1],M=w+((0|br(E+-2|0,c))+T<<1)|0,or[n+(2-W-1<<1)>>1]=0|or[M>>1],M=w+((0|br(E+-3|0,c))+T<<1)|0,or[n+(3-W-1<<1)>>1]=0|or[M>>1],g=g+4|0),(0|(W=W+-4|0))<=-1){x=f,P=g;break A}I=I+1|0}34==(0|H)?sr(48482,48519,118,48539):35==(0|H)&&sr(48543,48519,119,48539)}else P=x=0}while(0);A:do{if(F){f=0|br(q,p=e+-1|0),g=0|br(L,y=r+-1|0),B=b+((0|br(g>>u,a))+(f>>u)<<2)|0,B=(0|ar[B>>2])<=(0|K);do{if(0|tr[A+5944>>0]){if(H=0|ar[A+10368>>2],Z=f>>H,f=g>>H,(0|Z)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10372>>2]))<=(0|Z)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)<(0|ar[A+10376>>2])){if(H=(0|ar[A+10360>>2])+(3*((0|br(g,f))+Z|0)|0)|0,B&0==(768&(cr[H>>0]|cr[H+1>>0]<<8)))break;g=P,f=x;break A}sr(48543,48519,119,48539)}else if(!B){g=P,f=x;break A}}while(0);g=w+((0|br(c,y))+p<<1)|0,f=P?x:0|or[g>>1],or[n>>1]=0|or[g>>1],tr[v>>0]=1,g=P+1|0}else g=P,f=x}while(0);A:do{if(0<(0|Q)){_=0|br(L,V=r+-1|0),Y=A+5944|0,V=0|br(c,V),F=A+10368|0,R=A+10372|0,N=A+10376|0,G=A+10360|0,C=0|br(_>>u,a),W=I=0;e:for(;;){X=h+(65+(W<<2))|0;do{if((0|I)<(0|i)?d:l){if(Z=0|br(B=I+e|0,q),E=(0|ar[b+(C+(Z>>u)<<2)>>2])<=(0|K),0|tr[Y>>0]){if(p=0|ar[F>>2],Z>>=p,p=_>>p,(0|Z)<=-1){H=55;break e}if((0|(y=0|ar[R>>2]))<=(0|Z)){H=55;break e}if((0|p)<=-1){H=58;break e}if((0|p)>=(0|ar[N>>2])){H=58;break e}if(A=(0|ar[G>>2])+(3*((0|br(y,p))+Z|0)|0)|0,!(E&0==(768&(cr[A>>0]|cr[A+1>>0]<<8))))break}else if(!E)break;p=w+((Z=B+V|0)<<1)|0,g||(f=0|or[p>>1]),A=1|I,tr[X>>0]=1,tr[X+1>>0]=1,tr[X+2>>0]=1,tr[X+3>>0]=1,or[n+(A<<1)>>1]=0|or[p>>1],or[n+(A+1<<1)>>1]=0|or[w+(Z+1<<1)>>1],or[n+((3|I)<<1)>>1]=0|or[w+(Z+2<<1)>>1],or[n+(A+3<<1)>>1]=0|or[w+(Z+3<<1)>>1],g=g+4|0}}while(0);if((0|Q)<=(0|(I=I+4|0))){$=g,AA=f;break A}W=W+1|0}55==(0|H)?sr(48482,48519,118,48539):58==(0|H)&&sr(48543,48519,119,48539)}else $=g,AA=f}while(0);if((0|$)==(0|D))return ur=m;if(f=0|br(i,-2),!$){if((0|s)<(0|f))return ur=m;for(g=1<>1]=g,(0|f)<(0|s);)f=f+1|0;return ur=m}0|tr[v+f>>0]||(or[n+(f<<1)>>1]=AA);if((0|(f|=1))>(0|s))return ur=m;for(;0|tr[v+f>>0]||(or[n+(f<<1)>>1]=0|or[n+(f+-1<<1)>>1]),(0|f)<(0|s);)f=f+1|0;ur=m}(A|=0,e|=0,r|=0,f|=0,n|=0,t=o+128|0);do{if(!(0|tr[A+5753>>0])){if(0|n&&3!=(0|ar[A+5776>>2]))break;tc(A,t,f,n,i)}}while(0);switch(0|i){case 0:if(s=0|ar[(0==(0|n)?A+40|0:A+44|0)>>2],b=(0|ar[A+4+(n<<2)>>2])+((0|br(s,r))+e<<1)|0,1<(0|f)){for(i=f,A=0;3>>0;)i>>>=1,A=A+1|0;i=A+2|0}else i=1;if((0|f)<=0)return ur=o;r=f+-1|0,n=t+(f+1<<1)|0,a=t+(~f<<1)|0,e=0;do{for(c=t+(~e<<1)|0,l=r-e|0,u=0|br(e,s),e=e+1|0,A=0;w=0|br(0|lr[c>>1],r-A|0),A=(d=A)+1|0,h=0|br(0|lr[n>>1],A),k=0|br(0|lr[t+(A<<1)>>1],l),k=w+f+h+k+(0|br(0|lr[a>>1],e))>>i&65535,or[b+(d+u<<1)>>1]=k,(0|A)!=(0|f););}while((0|e)!=(0|f));return ur=o;case 1:return function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l=0;if(c=0|ar[((o=0==(0|(f|=0)))?A+40|0:A+44|0)>>2],a=(0|ar[A+4+(f<<2)>>2])+((0|br(c,r))+e<<1)|0,t=1<(0|i)){for(A=i,e=0;3>>0;)A>>>=1,e=e+1|0;r=e+2|0}else r=1;if(f=0<(0|i))for(A=e=0;A=(0|lr[n+((e=(l=e)+1|0)<<1)>>1])+A+(0|lr[n+(~l<<1)>>1])|0,(0|e)!=(0|i););else A=0;if(r=A+i>>r,!((0|i)<32&o)){if(!f)return;r&=65535,e=0;do{for(f=0|br(e,c),A=0;or[a+(A+f<<1)>>1]=r,(0|(A=A+1|0))!=(0|i););e=e+1|0}while((0|e)!=(0|i));return}if(or[a>>1]=(2+(r<<1)+(0|lr[n+-2>>1])+(0|lr[n+2>>1])|0)>>>2,!t)return;e=2+(3*r|0)|0,A=1;for(;A=(l=A)+1|0,or[a+(l<<1)>>1]=(e+(0|lr[n+(A<<1)>>1])|0)>>>2,(0|A)!=(0|i););if(!t)return;e=2+(3*r|0)|0,A=1;for(;l=a+((0|br(A,c))<<1)|0,or[l>>1]=(e+(0|lr[n+(~A<<1)>>1])|0)>>>2,A=A+1|0,(0|A)!=(0|i););if(!t)return;r&=65535,A=1;do{for(f=0|br(A,c),e=1;or[a+(e+f<<1)>>1]=r,(0|(e=e+1|0))!=(0|i););A=A+1|0}while((0|A)!=(0|i))}(A,e,r,f,n,t),ur=o;default:(function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var o,a,c,l,u,b,s,d,k,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;ur=(k=ur)+272|0,l=(w=k)+128|0,s=0|ar[((u=0==(0|(n|=0)))?A+40|0:A+44|0)>>2],o=0|ar[A+4+(n<<2)>>2],a=(0|br(s,r))+e<<1,d=o+a|0,b=0|ar[(u?A+5760|0:A+5768|0)>>2],35<=(0|i)&&sr(48302,48289,596,48319);(0|i)<=1&&sr(48344,48289,597,48319);c=0|ar[9568+(i<<2)>>2];do{if(0|tr[A+5750>>0]){if(n=0|ar[A+10368>>2],h=e>>n,n=r>>n,(0|h)<=-1&&sr(48482,48519,118,48539),(0|(e=0|ar[A+10372>>2]))<=(0|h)&&sr(48482,48519,118,48539),(0|n)<=-1&&sr(48543,48519,119,48539),(0|n)<(0|ar[A+10376>>2])){p=(0|ar[A+10360>>2])+(3*((0|br(e,n))+h|0)|0)|0,p=0==(2048&(cr[p>>0]|cr[p+1>>0]<<8));break}sr(48543,48519,119,48539)}else p=1}while(0);{if(n=(0|f)<0,17<(0|i)){if(n||hb(0|l,0|t,2+(f<<1)|0),(n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;Z=t+(0-(128+(0|br(n,e))>>8)<<1)|0,or[l+(n<<1)>>1]=0|or[Z>>1],(0|n)<-1;)n=n+1|0}else(0|f)<(0|(n=f<<1))&&hb(w+(f+65<<1)|0,t+(f+1<<1)|0,0|n);if(!(g=0<(0|f)))return ur=k;Z=s<<1,m=w+130|0,r=f<<1,e=0;do{if(A=0|br(e=(n=e)+1|0,c),h=A>>5,A&=31,w=0|br(n,s),v=32-A|0,A)for(n=0;y=((B=0|br(0|lr[l+((y=n+h|0)+1<<1)>>1],v))+16+(0|br(0|lr[l+(y+2<<1)>>1],A))|0)>>>5&65535,or[d+(n+w<<1)>>1]=y,(0|(n=n+1|0))!=(0|f););else hb(o+(a+(0|br(Z,n)))|0,m+(h<<1)|0,0|r)}while((0|e)!=(0|f));if(!((0|f)<32&26==(0|i)&u&p&g))return ur=k;for(h=t+2|0,r=(e=1<>1])-(0|lr[t>>1])>>1)+(0|lr[h>>1])|0,B=d+((0|br(n,s))<<1)|0,or[B>>1]=(0|y)<0?0:65535&((0|y)<(0|e)?y:r),(0|(n=n+1|0))!=(0|f););return ur=k}if(!n)for(n=0;or[l+(n<<1)>>1]=0|or[t+(0-n<<1)>>1],(0|n)!=(0|f);)n=n+1|0;if((n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;B=t+(128+(0|br(n,e))>>8<<1)|0,or[l+(n<<1)>>1]=0|or[B>>1],(0|n)<-1;)n=n+1|0}else if((0|f)<(0|(e=f<<1)))for(n=f;or[l+((n=(B=n)+1|0)<<1)>>1]=0|or[t+(~B<<1)>>1],(0|n)!=(0|e););if(!(v=0<(0|f)))return ur=k;w=0;do{for(m=0|br(w,s),h=0;r=0|br(h=(A=h)+1|0,c),e=31&r,n=0|or[l+((r=(r>>5)+w|0)+1<<1)>>1],e&&(n=((n=0|br(65535&n,32-e|0))+16+(0|br(0|lr[l+(r+2<<1)>>1],e))|0)>>>5&65535),or[d+(A+m<<1)>>1]=n,(0|h)!=(0|f););w=w+1|0}while((0|w)!=(0|f));if(!((0|f)<32&10==(0|i)&u&p&v))return ur=k;for(h=t+-2|0,r=(e=1<>1])-(0|lr[t>>1])>>1)+(0|lr[h>>1])|0,or[d+(B<<1)>>1]=(0|y)<0?0:65535&((0|y)<(0|e)?y:r),(0|n)!=(0|f););ur=k}})(A,e,r,i,f,n,t),ur=o}}(A,e,r,i,f,n):void function(A,e,r,i,f,n){i|=0;var t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;ur=(o=ur)+144|0,function(A,e,r,i,f,n){e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0;ur=(g=ur)+144|0,m=(w=g)+64|0,v=0|ar[4+(A|=0)+((f|=0)<<2)>>2],s=0|ar[((f=0==(0|f))?A+40|0:A+44|0)>>2],q=f?AA=1:(AA=0|ar[A+5780>>2],0|ar[A+5784>>2]);h=0|ar[(f?A+5760|0:A+5768|0)>>2],D=0|br(AA,e),Y=0|br(q,r),G=0|ar[A+5804>>2],I=0|ar[A+5820>>2],R=(T=0!=(0|D))&(F=1^(B=0==(0|Y))),C=D+(0|br(AA,i))|0,J=0|ar[A+1248>>2],_=(0|C)<(0|J)&F,E=D>>G,y=Y>>G,X=D+-1>>G,C>>=G,G=Y+-1>>G,Z=0|ar[A+10352>>2],f=0|br(Z,y),p=0|ar[A+10340>>2],o=0|lr[p+(24*(f+E|0)|0)>>1],M=T?0|lr[p+(24*(f+X|0)|0)>>1]:-1;V=B?-1:(V=p+(24*((0|br(Z,G))+E|0)|0)|0,0|lr[V>>1]);N=_?(N=p+(24*((0|br(Z,G))+C|0)|0)|0,0|lr[N>>1]):-1;W=R?(W=p+(24*((0|br(Z,G))+X|0)|0)|0,0|lr[W>>1]):-1;f=0|br(y,I),y=0|ar[A+10308>>2],t=0|ar[y+(f+E<<2)>>2],Q=T?0|ar[y+(f+X<<2)>>2]:-1;Z=B?-1:(Z=y+((0|br(G,I))+E<<2)|0,0|ar[Z>>2]);p=R?(p=y+((0|br(G,I))+X<<2)|0,0|ar[p>>2]):-1;f=_?(f=y+((0|br(G,I))+C<<2)|0,0|ar[f>>2]):-1;k=(0|V)==(0|o)&(0|Z)==(0|t)&F,F=R&(0|W)==(0|o)&(0|p)==(0|t),c=_&(0|N)==(0|o)&(0|f)==(0|t),E=0|ar[(l=A+5864|0)>>2],B=0|ar[(u=A+5852|0)>>2],$=(0|br(Y>>E,B))+(D>>E)|0,y=0|ar[(b=A+10320|0)>>2],$=0|ar[y+($<<2)>>2],Z=(q+-1-Y+(0|ar[A+1252>>2])|0)/(0|q)|0,Y=(0|Z)>(0|(d=i<<1))?d:Z,D=(0|(D=(AA+-1-D+J|0)/(0|AA)|0))>(0|d)?d:D,vb(m+(J=0-d|0)|0,0,0|(a=i<<2|1)),f=Y+-1|0;A:do{if(0<(0|Y)&&(U=e+-1|0,S=0|br(AA,U),O=A+5944|0,z=A+10368|0,j=A+10372|0,H=A+10376|0,x=A+10360|0,T&(0|M)==(0|o)&(0|Q)==(0|t))){for(V=64-((0|Z)<(0|d)?Z:d)|0,G=p=Z=0;;){if(C=w+(V+(G<<2))|0,W=0|br(I=f+r|0,q),E=y+((0|br(W>>E,B))+(S>>E)<<2)|0,E=(0|ar[E>>2])<=(0|$),0|tr[O>>0]){if(y=0|ar[z>>2],X=S>>y,y=W>>y,(0|X)<=-1){P=35;break}if((0|(B=0|ar[j>>2]))<=(0|X)){P=35;break}if((0|y)<=-1){P=36;break}if((0|y)>=(0|ar[H>>2])){P=36;break}T=(0|ar[x>>2])+(3*((0|br(B,y))+X|0)|0)|0,E&0==(768&(cr[T>>0]|cr[T+1>>0]<<8))&&(P=29)}else E&&(P=29);if(29==(0|P)&&(y=v+(((P=0)|br(I,s))+U)|0,p||(Z=0|tr[y>>0]),tr[C>>0]=1,tr[C+1>>0]=1,tr[C+2>>0]=1,tr[C+3>>0]=1,tr[n+~f>>0]=0|tr[y>>0],T=v+((0|br(I+-1|0,s))+U)|0,tr[n+(1-f-1)>>0]=0|tr[T>>0],T=v+((0|br(I+-2|0,s))+U)|0,tr[n+(2-f-1)>>0]=0|tr[T>>0],T=v+((0|br(I+-3|0,s))+U)|0,tr[n+(3-f-1)>>0]=0|tr[T>>0],p=p+4|0),(0|(f=f+-4|0))<=-1){L=Z,K=p;break A}E=0|ar[l>>2],B=0|ar[u>>2],y=0|ar[b>>2],G=G+1|0}35==(0|P)?sr(48482,48519,118,48539):36==(0|P)&&sr(48543,48519,119,48539)}else K=L=0}while(0);A:do{if(F){f=0|br(AA,y=e+-1|0),E=0|ar[l>>2],Z=0|br(q,B=r+-1|0),E=(0|br(Z>>E,0|ar[u>>2]))+(f>>E)|0,E=(0|ar[(0|ar[b>>2])+(E<<2)>>2])<=(0|$);do{if(0|tr[A+5944>>0]){if(P=0|ar[A+10368>>2],p=f>>P,f=Z>>P,(0|p)<=-1&&sr(48482,48519,118,48539),(0|(Z=0|ar[A+10372>>2]))<=(0|p)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)<(0|ar[A+10376>>2])){if(P=(0|ar[A+10360>>2])+(3*((0|br(Z,f))+p|0)|0)|0,E&0==(768&(cr[P>>0]|cr[P+1>>0]<<8)))break;Z=K,f=L;break A}sr(48543,48519,119,48539)}else if(!E){Z=K,f=L;break A}}while(0);Z=v+((0|br(s,B))+y)|0,f=K?L:0|tr[Z>>0],tr[n>>0]=0|tr[Z>>0],tr[m>>0]=1,Z=K+1|0}else Z=K,f=L}while(0);A:do{if(0<(0|D)){_=0|br(q,V=r+-1|0),Y=A+5944|0,V=0|br(s,V),F=A+10368|0,R=A+10372|0,N=A+10376|0,G=A+10360|0,I=C=0;e:for(;;){W=w+(65+(I<<2))|0;do{if((0|C)<(0|i)?k:c){if(p=0|br(E=C+e|0,AA),X=0|ar[l>>2],X=(0|br(_>>X,0|ar[u>>2]))+(p>>X)|0,X=(0|ar[(0|ar[b>>2])+(X<<2)>>2])<=(0|$),0|tr[Y>>0]){if(y=0|ar[F>>2],p>>=y,y=_>>y,(0|p)<=-1){P=56;break e}if((0|(B=0|ar[R>>2]))<=(0|p)){P=56;break e}if((0|y)<=-1){P=59;break e}if((0|y)>=(0|ar[N>>2])){P=59;break e}if(A=(0|ar[G>>2])+(3*((0|br(B,y))+p|0)|0)|0,!(X&0==(768&(cr[A>>0]|cr[A+1>>0]<<8))))break}else if(!X)break;y=v+(p=E+V|0)|0,Z||(f=0|tr[y>>0]),A=1|C,tr[W>>0]=1,tr[W+1>>0]=1,tr[W+2>>0]=1,tr[W+3>>0]=1,tr[n+A>>0]=0|tr[y>>0],tr[n+(A+1)>>0]=0|tr[v+(p+1)>>0],tr[n+(3|C)>>0]=0|tr[v+(p+2)>>0],tr[n+(A+3)>>0]=0|tr[v+(p+3)>>0],Z=Z+4|0}}while(0);if((0|D)<=(0|(C=C+4|0))){eA=Z,rA=f;break A}I=I+1|0}56==(0|P)?sr(48482,48519,118,48539):59==(0|P)&&sr(48543,48519,119,48539)}else eA=Z,rA=f}while(0);if((0|eA)==(0|a))return ur=g;if(!eA)return vb(n+J|0,1<>0]||(tr[n+f>>0]=rA);if((0|(f|=1))>(0|d))return ur=g;for(;0|tr[m+f>>0]||(tr[n+f>>0]=0|tr[n+(f+-1)>>0]),(0|f)<(0|d);)f=f+1|0;ur=g}(A|=0,e|=0,r|=0,f|=0,n|=0,t=o+64|0);do{if(!(0|tr[A+5753>>0])){if(0|n&&3!=(0|ar[A+5776>>2]))break;nc(A,t,f,n,i)}}while(0);switch(0|i){case 0:if(s=0|ar[(0==(0|n)?A+40|0:A+44|0)>>2],b=(0|ar[A+4+(n<<2)>>2])+((0|br(s,r))+e)|0,1<(0|f)){for(i=f,A=0;3>>0;)i>>>=1,A=A+1|0;i=A+2|0}else i=1;if((0|f)<=0)return ur=o;r=f+-1|0,n=t+(f+1)|0,a=t+~f|0,e=0;do{for(c=t+~e|0,l=r-e|0,u=0|br(e,s),e=e+1|0,A=0;w=0|br(0|cr[c>>0],r-A|0),A=(d=A)+1|0,h=0|br(0|cr[n>>0],A),k=0|br(0|cr[t+A>>0],l),k=w+f+h+k+(0|br(0|cr[a>>0],e))>>i&255,tr[b+(d+u)>>0]=k,(0|A)!=(0|f););}while((0|e)!=(0|f));return ur=o;case 1:return function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l,u,b=0,s=0,d=0;if(u=0|ar[((o=0==(0|(f|=0)))?A+40|0:A+44|0)>>2],l=0|ar[A+4+(f<<2)>>2],t=(0|br(u,r))+e|0,a=l+t|0,c=1<(0|i)){for(A=i,f=0;3>>0;)A>>>=1,f=f+1|0;b=f+2|0}else b=1;if(s=0<(0|i))for(A=f=0;A=(0|cr[n+(f=(d=f)+1|0)>>0])+A+(0|cr[n+~d>>0])|0,(0|f)!=(0|i););else A=0;if(b=A+i>>b,!((0|i)<32&o)){if(!s)return;for(f=255&b,A=0;vb(l+(t+(0|br(u,A)))|0,0|f,0|i),(0|(A=A+1|0))!=(0|i););return}if(tr[a>>0]=(2+(b<<1)+(0|cr[n+-1>>0])+(0|cr[n+1>>0])|0)>>>2,!c)return;f=2+(3*b|0)|0,A=1;for(;A=(d=A)+1|0,tr[a+d>>0]=(f+(0|cr[n+A>>0])|0)>>>2,(0|A)!=(0|i););if(!c)return;f=2+(3*b|0)|0,A=1;for(;d=a+(0|br(A,u))|0,tr[d>>0]=(f+(0|cr[n+~A>>0])|0)>>>2,A=A+1|0,(0|A)!=(0|i););if(!c)return;s=255&b,b=(0|br(u,r+1|0))+e+1|0,A=i+-1|0,f=0;for(;vb(l+(b+(0|br(u,f)))|0,0|s,0|A),f=f+1|0,(0|f)!=(0|A););}(A,e,r,f,n,t),ur=o;default:(function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var o,a,c,l,u,b,s,d,k,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;ur=(k=ur)+144|0,l=(w=k)+64|0,s=0|ar[((u=0==(0|(n|=0)))?A+40|0:A+44|0)>>2],o=0|ar[A+4+(n<<2)>>2],a=(0|br(s,r))+e|0,d=o+a|0,b=0|ar[(u?A+5760|0:A+5768|0)>>2],35<=(0|i)&&sr(48302,48289,596,48319);(0|i)<=1&&sr(48344,48289,597,48319);c=0|ar[9568+(i<<2)>>2];do{if(0|tr[A+5750>>0]){if(n=0|ar[A+10368>>2],h=e>>n,n=r>>n,(0|h)<=-1&&sr(48482,48519,118,48539),(0|(e=0|ar[A+10372>>2]))<=(0|h)&&sr(48482,48519,118,48539),(0|n)<=-1&&sr(48543,48519,119,48539),(0|n)<(0|ar[A+10376>>2])){g=(0|ar[A+10360>>2])+(3*((0|br(e,n))+h|0)|0)|0,g=0==(2048&(cr[g>>0]|cr[g+1>>0]<<8));break}sr(48543,48519,119,48539)}else g=1}while(0);{if(n=(0|f)<0,17<(0|i)){if(n||hb(0|l,0|t,f+1|0),(n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;m=t+(0-(128+(0|br(n,e))>>8))|0,tr[l+n>>0]=0|tr[m>>0],(0|n)<-1;)n=n+1|0}else(0|f)<(f<<1|0)&&hb(w+(f+65)|0,t+(f+1)|0,0|f);if(!(m=0<(0|f)))return ur=k;v=w+65|0,n=0;do{if(r=0|br(s,n),A=0|br(n=n+1|0,c),h=A>>5,w=32-(A&=31)|0,A)for(e=0;Z=((p=0|br(0|cr[l+((Z=e+h|0)+1)>>0],w))+16+(0|br(0|cr[l+(Z+2)>>0],A))|0)>>>5&255,tr[d+(e+r)>>0]=Z,(0|(e=e+1|0))!=(0|f););else hb(o+(a+r)|0,v+h|0,0|f)}while((0|n)!=(0|f));if(!((0|f)<32&26==(0|i)&u&g&m))return ur=k;for(h=t+1|0,e=(r=1<>0])-(0|cr[t>>0])>>1)+(0|cr[h>>0])|0,p=d+(0|br(n,s))|0,tr[p>>0]=(0|Z)<0?0:255&((0|Z)<(0|r)?Z:e),(0|(n=n+1|0))!=(0|f););return ur=k}if(!n)for(n=0;tr[l+n>>0]=0|tr[t+(0-n)>>0],(0|n)!=(0|f);)n=n+1|0;if((n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;p=t+(128+(0|br(n,e))>>8)|0,tr[l+n>>0]=0|tr[p>>0],(0|n)<-1;)n=n+1|0}else if((0|f)<(0|(e=f<<1)))for(n=f;tr[l+(n=(p=n)+1|0)>>0]=0|tr[t+~p>>0],(0|n)!=(0|e););if(!(v=0<(0|f)))return ur=k;w=0;do{for(m=0|br(w,s),h=0;r=0|br(h=(A=h)+1|0,c),e=31&r,n=0|tr[l+((r=(r>>5)+w|0)+1)>>0],e&&(n=((n=0|br(255&n,32-e|0))+16+(0|br(0|cr[l+(r+2)>>0],e))|0)>>>5&255),tr[d+(A+m)>>0]=n,(0|h)!=(0|f););w=w+1|0}while((0|w)!=(0|f));if(!((0|f)<32&10==(0|i)&u&g&v))return ur=k;for(h=t+-1|0,r=(e=1<>0])-(0|cr[t>>0])>>1)+(0|cr[h>>0])|0,tr[d+p>>0]=(0|Z)<0?0:255&((0|Z)<(0|e)?Z:r),(0|n)!=(0|f););ur=k}})(A,e,r,i,f,n,t),ur=o}}(A,e,r,i,f,n)}function Vt(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5196,ar[(r=A+16|0)>>2]=5224,0|(i=0|ar[A+84>>2])&&((0|ar[(f=A+88|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),(0|tr[(i=A+72|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()}function Ft(A){var e=0,r=0,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5104,0|(e=0|ar[(n=A+56|0)>>2])){if((0|(r=0|ar[(t=A+60|0)>>2]))!=(0|e)){for(i=r;r=i+-16|0,ar[t>>2]=r,(f=0|ar[i+-12>>2])&&((0|(i=0|ar[(r=i+-8|0)>>2]))!=(0|f)&&(ar[r>>2]=i+(~((i+-4-f|0)>>>2)<<2)),vu(f),r=0|ar[t>>2]),(0|r)!=(0|e);)i=r;e=0|ar[n>>2]}vu(e)}if(ar[A>>2]=4404,0|(e=0|ar[(f=A+44|0)>>2])){if((0|(r=0|ar[(n=A+48|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[n>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[n>>2]):i))!=(0|e););e=0|ar[f>>2]}vu(e)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(e=A+28|0)>>2])!=(0|r)&&(ar[e>>2]=r),vu(r))}function Rt(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=(A|=0)+4|0,i=0|ar[A>>2],268435455<(f=(o=(0|ar[r>>2])-i>>4)+1|0)>>>0&&zl(),i=(a=(0|ar[(c=A+8|0)>>2])-i|0)>>3,i=a>>4>>>0<134217727?i>>>0>>0?f:i:268435455;do{if(i){if(!(268435455>>0)){t=0|hu(i<<4);break}Zu(c=0|X(8),44519),ar[c>>2]=17660,I(0|c,4016,428)}else t=0}while(0);if(a=t+(i<<4)|0,ar[(n=f=t+(o<<4)|0)>>2]=ar[e>>2],function(A,e){e|=0;var r,i,f,n,t=0;if(ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,ar[A+8>>2]=0,t=(0|ar[(f=e+4|0)>>2])-(0|ar[e>>2])|0,!(r=t>>2))return;1073741823>>0&&zl();if(i=0|hu(t),ar[n>>2]=i,ar[A>>2]=i,ar[A+8>>2]=i+(r<<2),A=0|ar[e>>2],(0|(t=(0|ar[f>>2])-A|0))<=0)return;hb(0|i,0|A,0|t),ar[n>>2]=i+(t>>>2<<2)}(t+(o<<4)+4|0,e+4|0),e=f+16|0,t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))f=n,i=o=t;else{for(;i=(u=i)+-16|0,ar[f+-16>>2]=ar[i>>2],o=u+-12|0,ar[(l=f+-12|0)>>2]=0,ar[(b=f+-8|0)>>2]=0,ar[f+-4>>2]=0,ar[l>>2]=ar[o>>2],l=u+-8|0,ar[b>>2]=ar[l>>2],u=u+-4|0,ar[f+-4>>2]=ar[u>>2],ar[u>>2]=0,ar[l>>2]=0,n=f=n+-16|(ar[o>>2]=0),(0|i)!=(0|t););f=n,o=0|ar[A>>2],i=0|ar[r>>2]}if(ar[A>>2]=f,ar[r>>2]=e,ar[c>>2]=a,(0|i)!=(0|(e=o)))for(;0|(f=0|ar[i+-12>>2])&&((0|(t=0|ar[(n=i+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),(0|(i=i+-16|0))!=(0|e););o&&vu(o)}function Nt(A,e){e|=0;var r,i,f,n,t,o,a=0,c=0,l=0,u=0;n=(A|=0)+4|0,u=t=0|ar[A>>2],1073741823<(a=1+(i=(o=(0|ar[n>>2])-t|0)>>2)|0)>>>0&&zl(),c=(l=(0|ar[(f=A+8|0)>>2])-t|0)>>1,c=l>>2>>>0<536870911?c>>>0>>0?a:c:1073741823;do{if(c){if(!(1073741823>>0)){l=0|hu(c<<2);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else l=0}while(0);r=l+(i<<2)|0,a=lr[e>>1]|lr[e+2>>1]<<16,or[r>>1]=a,or[2+r>>1]=a>>>16,a=r+(0-i<<2)|0,0<(0|o)&&hb(0|a,0|u,0|o),ar[A>>2]=a,ar[n>>2]=4+r,ar[f>>2]=l+(c<<2),t&&vu(u)}function _t(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4924,(0|tr[(r=A+112|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+100|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+88|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+76|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+64|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function Yt(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0;if(ar[(A|=0)>>2]=4804,0|(r=0|ar[(e=A+56|0)>>2])){if((0|(i=0|ar[(c=A+60|0)>>2]))!=(0|r)){for(f=i;;){if(i=f+-32|0,ar[c>>2]=i,o=0|ar[(a=f+-16|0)>>2]){if((0|(i=0|ar[(t=f+-12|0)>>2]))==(0|o))i=o;else{for(;f=i+-40|0,ar[t>>2]=f,(0|(i=(n=0|ar[i+-16>>2])?((0|ar[(i=i+-12|0)>>2])!=(0|n)&&(ar[i>>2]=n),vu(n),0|ar[t>>2]):f))!=(0|o););i=0|ar[a>>2]}vu(i),i=0|ar[c>>2]}if((0|i)==(0|r))break;f=i}r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function Qt(A,e){e|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;b=0|ar[(d=(A|=0)+4|0)>>2],n=t=0|ar[A>>2],107374182<(o=(u=((a=b)-t|0)/40|0)+1|0)>>>0&&zl(),c=(s=((0|ar[(f=A+8|0)>>2])-t|0)/40|0)<<1,c=s>>>0<53687091?c>>>0>>0?o:c:107374182;do{if(c){if(!(107374182>>0)){l=0|hu(40*c|0);break}Zu(d=0|X(8),44519),ar[d>>2]=17660,I(0|d,4016,428)}else l=0}while(0);s=l+(40*c|0)|0,ar[(o=t=l+(40*u|0)|0)>>2]=ar[e>>2],ar[t+4>>2]=ar[e+4>>2],ar[t+8>>2]=ar[e+8>>2],ar[t+12>>2]=ar[e+12>>2],ar[t+16>>2]=ar[e+16>>2],ar[t+20>>2]=ar[e+20>>2],ar[(r=l+(40*u|0)+24|0)>>2]=0,ar[(i=l+(40*u|0)+28|0)>>2]=0,k=(ar[l+(40*u|0)+32>>2]=0)|ar[e+24>>2],c=(0|ar[e+28>>2])-k|0,e=k;do{if(0|c){if(!((0|c)<0)){h=0|hu(c),ar[i>>2]=h,k=(ar[r>>2]=h)+c|0,ar[l+(40*u|0)+32>>2]=k,hb(0|h,0|e,0|c),ar[i>>2]=k;break}zl()}}while(0);if(e=t+40|0,(0|a)==(0|n))c=b;else{for(;a=(b=a)+-40|0,ar[(k=t+-40|0)>>2]=ar[a>>2],ar[k+4>>2]=ar[a+4>>2],ar[k+8>>2]=ar[a+8>>2],ar[k+12>>2]=ar[a+12>>2],ar[k+16>>2]=ar[a+16>>2],ar[k+20>>2]=ar[a+20>>2],h=b+-16|0,ar[(k=t+-16|0)>>2]=0,ar[(u=t+-12|0)>>2]=0,ar[t+-8>>2]=0,ar[k>>2]=ar[h>>2],k=b+-12|0,ar[u>>2]=ar[k>>2],b=b+-8|0,ar[t+-8>>2]=ar[b>>2],ar[b>>2]=0,ar[k>>2]=0,o=t=o+-40|(ar[h>>2]=0),(0|a)!=(0|n););c=0|ar[A>>2],n=0|ar[d>>2]}if(ar[A>>2]=o,ar[d>>2]=e,ar[f>>2]=s,(0|n)!=(0|(a=c)))for(;0|(t=0|ar[n+-16>>2])&&((0|ar[(o=n+-12|0)>>2])!=(0|t)&&(ar[o>>2]=t),vu(t)),(0|(n=n+-40|0))!=(0|a););c&&vu(c)}function Dt(A,e){e|=0;var r,i,f,n=0;ar[(A|=0)>>2]=0,ar[(r=A+4|0)>>2]=0,f=((ar[A+8>>2]=0)|(n=(0|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0))/40|0,n&&(107374182>>0&&zl(),n=0|hu(n),ar[r>>2]=n,ar[A>>2]=n,ar[A+8>>2]=n+(40*f|0),function(A,e,r,i){i|=0;var f,n=0,t=0,o=0,a=0,c=0;if(f=4+(A|=0)|0,(0|(e|=0))==(0|(r|=0)))return;i=0|ar[f>>2];for(;;){if(ar[i>>2]=ar[e>>2],ar[i+4>>2]=ar[e+4>>2],ar[i+8>>2]=ar[e+8>>2],ar[i+12>>2]=ar[e+12>>2],ar[i+16>>2]=ar[e+16>>2],ar[i+20>>2]=ar[e+20>>2],n=e+24|0,ar[(o=i+24|0)>>2]=0,ar[(c=i+28|0)>>2]=0,(ar[i+32>>2]=0)|(A=(0|ar[(t=e+28|0)>>2])-(0|ar[n>>2])|0)){if((0|A)<0){A=5;break}a=0|hu(A),ar[c>>2]=a,ar[o>>2]=a,ar[i+32>>2]=a+A,i=0|ar[n>>2],0<(0|(A=(0|ar[t>>2])-i|0))&&(hb(0|a,0|i,0|A),ar[c>>2]=a+A)}if(e=e+40|0,i=40+(0|ar[f>>2])|0,ar[f>>2]=i,(0|e)==(0|r)){A=9;break}}if(5==(0|A))zl();else if(9==(0|A));}(A,0|ar[e>>2],0|ar[i>>2],f))}function Jt(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=(A|=0)+4|0,i=0|ar[A>>2],134217727<(f=(o=(0|ar[r>>2])-i>>5)+1|0)>>>0&&zl(),i=(c=(0|ar[(l=A+8|0)>>2])-i|0)>>4,i=c>>5>>>0<67108863?i>>>0>>0?f:i:134217727;do{if(i){if(!(134217727>>0)){t=0|hu(i<<5);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else t=0}while(0);if(a=t+(i<<5)|0,ar[(n=f=t+(o<<5)|0)>>2]=ar[e>>2],ar[f+4>>2]=ar[e+4>>2],ar[f+8>>2]=ar[e+8>>2],ar[f+12>>2]=ar[e+12>>2],Dt(t+(o<<5)+16|0,e+16|0),e=f+32|0,t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))i=n,f=c=t;else{for(;i=(u=i)+-32|0,ar[(o=f+-32|0)>>2]=ar[i>>2],ar[o+4>>2]=ar[i+4>>2],ar[o+8>>2]=ar[i+8>>2],ar[o+12>>2]=ar[i+12>>2],c=u+-16|0,ar[(o=f+-16|0)>>2]=0,ar[(b=f+-12|0)>>2]=0,ar[f+-8>>2]=0,ar[o>>2]=ar[c>>2],o=u+-12|0,ar[b>>2]=ar[o>>2],u=u+-8|0,ar[f+-8>>2]=ar[u>>2],ar[u>>2]=0,ar[o>>2]=0,n=f=n+-32|(ar[c>>2]=0),(0|i)!=(0|t););i=n,c=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=e,ar[l>>2]=a,(0|f)!=(0|(A=c))){a=f;do{if(0|(i=0|ar[(e=a+-16|0)>>2])){if((0|(f=0|ar[(o=a+-12|0)>>2]))!=(0|i)){for(;n=f+-40|0,ar[o>>2]=n,(0|(f=(t=0|ar[f+-16>>2])?((0|ar[(f=f+-12|0)>>2])!=(0|t)&&(ar[f>>2]=t),vu(t),0|ar[o>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}a=a+-32|0}while((0|a)!=(0|A))}c&&vu(c)}function Mt(A){var e;ar[(A|=0)>>2]=4264,e=A+8|0,ar[A+40>>2]=0,ar[e>>2]=0,ar[4+e>>2]=0,ar[8+e>>2]=0,ar[12+e>>2]=0,ar[16+e>>2]=0,ar[20+e>>2]=0,ar[24+e>>2]=0,or[28+e>>1]=0}function Tt(A,e,r){A|=0,r|=0;var i,f=0;f=0|ar[(e|=0)+44>>2],i=0|ar[e+48>>2];A:do{if((0|f)!=(0|i)){for(e=f;f=0|ar[e>>2],(0|ar[f+20>>2])!=(0|r);)if((0|(e=e+8|0))==(0|i))break A;return(ar[A>>2]=f,e=0|ar[e+4>>2],ar[A+4>>2]=e)?void bu(e):void 0}}while(0);ar[A>>2]=0,ar[A+4>>2]=0}function Ut(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;f=0|ar[(u=(A|=0)+4|0)>>2],c=n=0|ar[A>>2],536870911<(t=1+(r=f-n>>3)|0)>>>0&&zl(),o=(l=(0|ar[(i=A+8|0)>>2])-n|0)>>2,o=l>>3>>>0<268435455?o>>>0>>0?t:o:536870911;do{if(o){if(!(536870911>>0)){a=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else a=0}while(0);if(l=a+(o<<3)|0,ar[(t=n=a+(r<<3)|0)>>2]=ar[e>>2],o=0|ar[e+4>>2],o=(ar[a+(r<<3)+4>>2]=o)?(bu(o),f=0|ar[u>>2],0|ar[A>>2]):c,a=n+8|0,(0|f)!=(0|o)){for(;f=(c=f)+-8|0,ar[n+-8>>2]=ar[f>>2],c=c+-4|0,ar[n+-4>>2]=ar[c>>2],ar[f>>2]=0,t=n=t+-8|(ar[c>>2]=0),(0|f)!=(0|o););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=l,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function St(A,e){e|=0;var r=0;if((0|(r=0|ar[(A|=0)+64>>2]))==(0|(A=0|ar[A+68>>2])))return(e=0)|e;for(;;){if((0|ar[r>>2])==(0|e)){r=1,A=4;break}if((0|(r=r+4|0))==(0|A)){r=0,A=4;break}}return 4==(0|A)?0|r:0}function Ot(A,e,r,i,f,n){A|=0,e|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0;ur=(w=ur)+272|0,k=w+252|0,h=w+72|0,b=w+240|0,s=w+228|0,d=w+216|0,c=w+56|0,l=w+44|0,t=w+24|0,o=w+16|0,u=w,e=0|ar[(r|=0)+16>>2],a=0|ar[r+20>>2];A:do{if((0|e)!=(0|a)){F=r+4|0,V=n+4|0,R=r+8|0,E=4+o|0,X=i+4|0,I=(W=8+t|0)+11|0;e:for(;;){switch(0|tr[F>>0]){case 0:if(C=(0|ar[V>>2])-(0|ar[n>>2])|0,m=0|ar[(g=B=e+16|0)>>2],0<(g=0|ar[g+4>>2])>>>0|0==(0|g)&(536870912-C|0)>>>0>>0){e=5;break e}if(Z=0|ar[(p=y=e+8|0)>>2],8388607<(p=0|ar[p+4>>2])>>>0|8388607==(0|p)&4294967295>>0){e=14;break e}if(r=0|ar[(v=R)>>2],8388607<(N=(v=0|ar[v+4>>2])|g)>>>0|8388607==(0|N)&4294967295<(r|m)>>>0){e=14;break e}switch(_=0|ar[i>>2],Y=0|ar[12+(0|ar[_>>2])>>2],N=0|tb(0|tb(0|Z,0|p,0|m,0|g),0|D,0|r,0|v),0|xb[63&Y](_,N,D)){case 2:e=17;break e;case 1:e=26;break e}if(_=0|ar[i>>2],N=0|ar[20+(0|ar[_>>2])>>2],Y=y,Y=0|tb(0|ar[(y=R)>>2],0|ar[y+4>>2],0|ar[Y>>2],0|ar[Y+4>>2]),!(0|xb[63&N](_,Y,D))){e=29;break e}if((m=0|tb(0|(v=0|ar[(m=B)>>2]),0|ar[m+4>>2],0|C,0))>>>0<=(g=(Z=0|ar[V>>2])-(r=0|ar[n>>2])|0)>>>0?m>>>0>>0&&(0|Z)!=(0|(G=r+m|0))&&(ar[V>>2]=G):(TA(n,m-g|0),v=0|ar[B>>2],r=0|ar[n>>2]),Y=0|ar[i>>2],0|xb[63&ar[16+(0|ar[Y>>2])>>2]](Y,r+C|0,v))break;e=36;break e;case 1:if(!(r=0|ar[f>>2])){e=38;break e}ar[o>>2]=ar[i>>2],v=0|ar[X>>2],(m=0==(0|(ar[E>>2]=v)))||bu(v),_=e+8|0,Y=e+16|0,zt(t,r,o,0|tb(0|ar[(N=R)>>2],0|ar[N+4>>2],0|ar[_>>2],0|ar[_+4>>2]),D,0|ar[Y>>2],0|ar[Y+4>>2],n),(0|tr[I>>0])<0&&vu(0|ar[W>>2]),m||du(v);break;default:e=46;break e}if((0|(e=e+40|0))==(0|a))break A}if(5==(0|e))return r=64+h|0,ar[(m=8+h|0)>>2]=4524,v=12+h|0,ar[h>>2]=188,ar[r>>2]=208,Jf(64+h|(ar[4+h>>2]=0),v),ar[136+h>>2]=0,ar[140+h>>2]=-1,ar[h>>2]=4504,ar[r>>2]=4544,ar[m>>2]=4524,Sf(v),ar[v>>2]=4340,ar[(m=44+h|0)>>2]=0,ar[m+4>>2]=0,ar[m+8>>2]=0,ar[m+12>>2]=0,ar[60+h>>2]=24,ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,Xe(v,k),(0|tr[11+k>>0])<0&&vu(0|ar[k>>2]),Y=0|We(e=8+h|0,23479,19),_=0|We(0|Kf(Y,0|ar[(_=B)>>2],0|ar[_+4>>2]),23499,35),We(0|Pf(0|We(0|Kf(_,Y=0|tb(0|ar[(Y=B)>>2],0|ar[Y+4>>2],0|C,0),D),23535,40),536870912),23576,6),Ie(b,v),oo(A,6,1e3,b),(0|tr[11+b>>0])<0&&vu(0|ar[b>>2]),ar[h>>2]=4504,ar[r>>2]=4544,ar[e>>2]=4524,ar[v>>2]=4340,(0|tr[m+11>>0])<0&&vu(0|ar[m>>2]),kf(v),bf(r),void(ur=w);if(14==(0|e)){for(e=0|hu(48),ar[s>>2]=e,ar[8+s>>2]=-2147483600,v=23583,m=(r=e)+(ar[4+s>>2]=39)|0;tr[r>>0]=0|tr[v>>0],v=v+1|0,(0|(r=r+1|0))<(0|m););return(tr[e+39>>0]=0,oo(A,2,1e3,s),0<=(0|tr[11+s>>0]))?void(ur=w):(vu(0|ar[s>>2]),void(ur=w))}if(17==(0|e))return e=0|ar[n>>2],(0|ar[V>>2])!=(0|e)&&(ar[V>>2]=e),r=64+h|0,ar[(m=8+h|0)>>2]=4524,v=12+h|0,ar[h>>2]=188,ar[r>>2]=208,Jf(64+h|(ar[4+h>>2]=0),v),ar[136+h>>2]=0,ar[140+h>>2]=-1,ar[h>>2]=4504,ar[r>>2]=4544,ar[m>>2]=4524,Sf(v),ar[v>>2]=4340,ar[(m=44+h|0)>>2]=0,ar[m+4>>2]=0,ar[m+8>>2]=0,ar[m+12>>2]=0,ar[60+h>>2]=24,ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,Xe(v,k),(0|tr[11+k>>0])<0&&vu(0|ar[k>>2]),_=0|We(0|We(e=8+h|0,23623,58),23682,25),Y=y,We(0|Kf(_,Y=0|tb(0|ar[(N=R)>>2],0|ar[N+4>>2],0|ar[Y>>2],0|ar[Y+4>>2]),D),18904,2),Ie(d,v),oo(A,2,100,d),(0|tr[11+d>>0])<0&&vu(0|ar[d>>2]),ar[h>>2]=4504,ar[r>>2]=4544,ar[e>>2]=4524,ar[v>>2]=4340,(0|tr[m+11>>0])<0&&vu(0|ar[m>>2]),kf(v),bf(r),void(ur=w);if(26==(0|e))return ar[c>>2]=0,ar[4+c>>2]=0,ar[8+c>>2]=0,oo(A,2,100,c),0<=(0|tr[11+c>>0])||vu(0|ar[c>>2]),void(ur=w);if(29==(0|e))sr(23708,19104,1114,23716);else if(36==(0|e))sr(23708,19104,1122,23716);else{if(38==(0|e)){for(e=0|hu(64),ar[l>>2]=e,ar[8+l>>2]=-2147483584,v=23726,m=(r=e)+(ar[4+l>>2]=54)|0;tr[r>>0]=0|tr[v>>0],v=v+1|0,(0|(r=r+1|0))<(0|m););return(tr[e+54>>0]=0,oo(A,2,103,l),0<=(0|tr[11+l>>0]))?void(ur=w):(vu(0|ar[l>>2]),void(ur=w))}if(46==(0|e))return e=64+h|0,ar[(v=8+h|0)>>2]=4524,r=12+h|0,ar[h>>2]=188,ar[e>>2]=208,Jf(64+h|(ar[4+h>>2]=0),r),ar[136+h>>2]=0,ar[140+h>>2]=-1,ar[h>>2]=4504,ar[e>>2]=4544,ar[v>>2]=4524,Sf(r),ar[r>>2]=4340,ar[(v=44+h|0)>>2]=0,ar[v+4>>2]=0,ar[v+8>>2]=0,ar[v+12>>2]=0,ar[60+h>>2]=24,ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,Xe(r,k),(0|tr[11+k>>0])<0&&vu(0|ar[k>>2]),Y=0|We(m=8+h|0,23781,25),tr[k>>0]=0|tr[F>>0],We(0|We(Y,k,1),23807,16),Ie(u,r),oo(A,4,103,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2]),ar[h>>2]=4504,ar[e>>2]=4544,ar[m>>2]=4524,ar[r>>2]=4340,(0|tr[v+11>>0])<0&&vu(0|ar[v>>2]),kf(r),bf(e),void(ur=w)}}}while(0);_=0|ar[(N=56592)+4>>2],ar[(Y=A)>>2]=ar[N>>2],ar[Y+4>>2]=_,yu(A+8|0,56600),ur=w}function zt(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;return ur=(c=ur)+208|0,s=c+192|0,k=c+48|0,d=c+36|0,l=c+24|0,h=c+12|0,w=c,0<(t|=0)>>>0|0==(0|t)&(536870912-(m=(0|ar[(a=(o|=0)+4|0)>>2])-(0|ar[o>>2])|0)|0)>>>0>>0?(l=k+64|0,ar[(b=k+8|0)>>2]=4524,u=k+12|0,ar[k>>2]=188,ar[l>>2]=208,Jf(k+64|(ar[k+4>>2]=0),u),ar[k+136>>2]=0,ar[k+140>>2]=-1,ar[k>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=k+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[k+60>>2]=24,ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,Xe(u,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2]),r=0|We(0|Kf(0|We(e=k+8|0,23824,19),n,t),23499,35),We(0|Pf(0|We(0|Kf(r,n=0|tb(0|m,0,0|n,0|t),D),23535,40),536870912),23576,6),Ie(d,u),oo(A,6,1e3,d),(0|tr[d+11>>0])<0&&vu(0|ar[d>>2]),ar[k>>2]=4504,ar[l>>2]=4544,ar[e>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l),void(ur=c)):(d=0|ar[(k=s=e+64|0)>>2],k=0|ar[k+4>>2],e=0|tb(0|(u=0|ar[(b=e+8|0)>>2]),0|(b=0|ar[b+4>>2]),0|d,0|k),(g=D)>>>0>>0|(0|g)==(0|f)&e>>>0>>0?(ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,oo(A,2,100,l),0<=(0|tr[l+11>>0])||vu(0|ar[l>>2]),void(ur=c)):(e=0|tb(0|n,0|t,0|i,0|f),b>>>0>>0|(0|b)==(0|t)&u>>>0>>0|b>>>0<(l=D)>>>0|(0|l)==(0|b)&u>>>0>>0?(ar[h>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=0,oo(A,2,100,h),0<=(0|tr[h+11>>0])||vu(0|ar[h>>2]),void(ur=c)):(h=0|ar[r>>2],b=0|ar[12+(0|ar[h>>2])>>2],g=0|tb(0|e,0|l,0|d,0|k),((0|xb[63&b](h,g,D))-1|0)>>>0<2?(ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,oo(A,2,100,w),0<=(0|tr[w+11>>0])||vu(0|ar[w>>2]),void(ur=c)):(w=0|ar[r>>2],h=0|ar[20+(0|ar[w>>2])>>2],g=0|tb(0|ar[(g=s)>>2],0|ar[g+4>>2],0|i,0|f),0|xb[63&h](w,g,D)||sr(23708,19104,3031,23716),0==(0|n)&0==(0|t)||((l=0|tb(0|m,0,0|n,0|t))>>>0<=(u=(b=0|ar[a>>2])-(e=0|ar[o>>2])|0)>>>0?l>>>0>>0&&(0|b)!=(0|(v=e+l|0))&&(ar[a>>2]=v):(TA(o,l-u|0),e=0|ar[o>>2]),g=0|ar[r>>2],0|xb[63&ar[16+(0|ar[g>>2])>>2]](g,e+m|0,n)||sr(23708,19104,3040,23716)),n=0|ar[(m=56592)+4>>2],ar[(g=A)>>2]=ar[m>>2],ar[g+4>>2]=n,yu(A+8|0,56600),void(ur=c)))))}function jt(A){or[(A|=0)+4>>1]=2,or[A+6>>1]=2,or[A+8>>1]=6,tr[A+10>>0]=1}function Ht(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;ur=(c=ur)+336|0,o=c+316|0,a=c+160|0,b=c+304|0,t=(n=c)+144|0,u=0|ar[(i|=0)>>2],i=0|ar[u+56>>2],u=0|ar[u+60>>2];A:do{if((0|i)!=(0|u)){for(;l=i+16|0,(0|ar[i>>2])!=(0|r);){if((0|l)==(0|u))break A;i=l}xt(a,e+44|0),l=0|ar[i+4>>2],s=0|ar[i+8>>2];e:do{if((0|l)==(0|s))g=34;else{for(d=4+a|0,h=8+o|0,w=k=4+o|0,v=f+4|0,m=f+8|0;u=65535&(i=0|or[(b=l+2|0)>>1]),e=Z=0|ar[a>>2],!(u>>>0>(0|ar[d>>2])-Z>>3>>>0);){ar[k>>2]=0,ar[h>>2]=0,tr[o>>0]=0|tr[l>>0];do{if(i<<16>>16){if(b=0|ar[e+((i=u+-1|0)<<3)>>2],(u=i=0|ar[e+(i<<3)+4>>2])?(bu(i),i=0|ar[h>>2],ar[w>>2]=b,ar[h>>2]=u,0|i&&du(i)):(ar[w>>2]=b,ar[h>>2]=u),(0|(i=0|ar[v>>2]))==(0|ar[m>>2])){Pt(f,o);break}tr[i>>0]=0|tr[o>>0],ar[i+4>>2]=ar[w>>2],u=0|ar[h>>2],(ar[i+8>>2]=u)&&(bu(u),i=0|ar[v>>2]),ar[v>>2]=i+12}}while(0);if(0|(i=0|ar[h>>2])&&du(i),(0|(l=l+4|0))==(0|s)){g=34;break e}}l=n+64|0,ar[(e=n+8|0)>>2]=4524,u=n+12|0,ar[n>>2]=188,ar[l>>2]=208,Jf(n+64|(ar[n+4>>2]=0),u),ar[n+136>>2]=0,ar[n+140>>2]=-1,ar[n>>2]=4504,ar[l>>2]=4544,ar[e>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(e=n+44|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[n+60>>2]=24,ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,Xe(u,o),(0|tr[11+o>>0])<0&&vu(0|ar[o>>2]),Z=0|We(i=n+8|0,23901,28),We(0|Lf(0|We(0|We(0|xf(Z,0|or[b>>1]),23930,11),23942,4),r),23947,23),Ie(t,u),oo(A,2,115,t),(0|tr[11+t>>0])<0&&vu(0|ar[t>>2]),ar[n>>2]=4504,ar[l>>2]=4544,ar[i>>2]=4524,ar[u>>2]=4340,(0|tr[e+11>>0])<0&&vu(0|ar[e>>2]),kf(u),bf(l),i=a}}while(0);if(34==(0|g)&&(Z=0|ar[(r=56592)+4>>2],ar[(i=A)>>2]=ar[r>>2],ar[i+4>>2]=Z,yu(A+8|0,56600),i=a),0|(i=0|ar[i>>2])){if((0|(l=0|ar[(e=4+a|0)>>2]))!=(0|i)){for(;u=l+-8|0,ar[e>>2]=u,(0|(l=(l=0|ar[l+-4>>2])?(du(l),0|ar[e>>2]):u))!=(0|i););i=0|ar[a>>2]}vu(i)}return void(ur=c)}}while(0);l=64+a|0,ar[(e=8+a|0)>>2]=4524,u=12+a|0,ar[a>>2]=188,ar[l>>2]=208,Jf(64+a|(ar[4+a>>2]=0),u),ar[136+a>>2]=0,ar[140+a>>2]=-1,ar[a>>2]=4504,ar[l>>2]=4544,ar[e>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(e=44+a|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[60+a>>2]=24,ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,Xe(u,o),(0|tr[11+o>>0])<0&&vu(0|ar[o>>2]),We(0|Lf(0|We(i=8+a|0,23844,9),r),23854,46),Ie(b,u),oo(A,2,116,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),ar[a>>2]=4504,ar[l>>2]=4544,ar[i>>2]=4524,ar[u>>2]=4340,(0|tr[e+11>>0])<0&&vu(0|ar[e>>2]),kf(u),bf(l),ur=c}function xt(A,e){e|=0;var r,i,f,n=0,t=0;if(ar[(A|=0)>>2]=0,ar[(f=A+4|0)>>2]=0,(r=(n=((ar[A+8>>2]=0)|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0)>>3)&&(536870911>>0&&zl(),t=0|hu(n),ar[f>>2]=t,ar[A>>2]=t,ar[A+8>>2]=t+(r<<3),(0|(n=0|ar[e>>2]))!=(0|(e=0|ar[i>>2]))))for(;ar[t>>2]=ar[n>>2],A=0|ar[n+4>>2],0|(ar[t+4>>2]=A)&&bu(A),n=n+8|0,t=8+(0|ar[f>>2])|0,ar[f>>2]=t,(0|n)!=(0|e););}function Pt(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;n=0|ar[(u=(A|=0)+4|0)>>2],c=i=0|ar[A>>2],357913941<(f=(a=(n-i|0)/12|0)+1|0)>>>0&&zl(),t=(l=((0|ar[(r=A+8|0)>>2])-i|0)/12|0)<<1,t=l>>>0<178956970?t>>>0>>0?f:t:357913941;do{if(t){if(!(357913941>>0)){o=0|hu(12*t|0);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else o=0}while(0);if(l=o+(12*t|0)|0,tr[(f=i=o+(12*a|0)|0)>>0]=0|tr[e>>0],ar[o+(12*a|0)+4>>2]=ar[e+4>>2],t=0|ar[e+8>>2],t=(ar[o+(12*a|0)+8>>2]=t)?(bu(t),n=0|ar[u>>2],0|ar[A>>2]):c,o=i+12|0,(0|n)==(0|t))i=t=n;else{for(;n=(c=n)+-12|0,tr[i+-12>>0]=0|tr[n>>0],a=c+-8|0,ar[i+-8>>2]=ar[a>>2],c=c+-4|0,ar[i+-4>>2]=ar[c>>2],ar[a>>2]=0,f=i=f+-12|(ar[c>>2]=0),(0|n)!=(0|t););t=0|ar[A>>2],i=0|ar[u>>2]}if(ar[A>>2]=f,ar[u>>2]=o,ar[r>>2]=l,(0|i)!=(0|(n=t)))for(;f=0|ar[i+-4>>2],i=i+-12|0,0|f&&du(f),(0|i)!=(0|n););t&&vu(n)}function Lt(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;ur=(t=ur)+16|0,n=t,a=0|ar[(i|=0)>>2],i=0|ar[a+56>>2],a=0|ar[a+60>>2];A:do{if((0|i)!=(0|a)){for(;o=i+16|0,(0|ar[i>>2])!=(0|r);){if((0|o)==(0|a))break A;i=o}xt(n,e+44|0),a=0|ar[i+4>>2],c=0|ar[i+8>>2];e:do{if((0|a)==(0|c))o=A+4|0,i=n,u=15;else{for(l=n+4|0,o=A+4|0;;){if(i=65535&(b=0|or[a+2>>1]),e=r=0|ar[n>>2],b<<16>>16==0||i>>>0>(0|ar[l>>2])-r>>3>>>0){i=n,u=15;break e}if(r=0|ar[e+((i=i+-1|0)<<3)>>2],0|(i=0|ar[e+(i<<3)+4>>2])&&bu(i),(0|ar[r+20>>2])==(0|f))break;if(0|i&&du(i),(0|(a=a+4|0))==(0|c)){i=n,u=15;break e}}ar[A>>2]=r,ar[o>>2]=i,i=n}}while(0);if(15==(0|u)&&(ar[A>>2]=0,ar[o>>2]=0),0|(i=0|ar[i>>2])){if((0|(o=0|ar[(e=n+4|0)>>2]))!=(0|i)){for(;a=o+-8|0,ar[e>>2]=a,(0|(o=(o=0|ar[o+-4>>2])?(du(o),0|ar[e>>2]):a))!=(0|i););i=0|ar[n>>2]}vu(i)}return void(ur=t)}}while(0);ar[A>>2]=0,ar[A+4>>2]=0,ur=t}function Kt(A,e){A|=0;var r=0,i=0,f=0;if(r=(e|=0)+-1|0,131072<(e+65535|0)>>>0)for(e=2;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);else e=2;if(f=0|ar[A+76>>2],i=0|ar[A+72>>2],(0|f)==(0|e)){if(r=i+r|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}else{if(r=(0|br(i,e))+(0|br(f,r))|0,131072<((e=0|br(f,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}if(i=0|ar[A+60>>2],f=(0|ar[A+56>>2])-i|0,131072<(i+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if(131072<((i<<=1)+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if((0|e)==(0|i)){if(r=r-f|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=r))/(0|(A=e))|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|r)/(0|e)|0)}if(r=(0|br(i,r))-(0|br(f,e))|0,131072<((e=0|br(i,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=r))/(0|(A=e))|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|r)/(0|e)|0)}function qt(A,e){e|=0;var r=0,i=0;if(r=0|ar[(A|=0)+60>>2],i=(0|ar[A+56>>2])-r|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(i=(0|br(0|Kt(A,e),r))+i|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if((i+65536|0)>>>0<=131072)return A=i,0|(e=(0|(A=(i=(0|(e=r))/2|0)+A|0))/(0|e)|0);for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);return 0|(e=(0|(e=(e=(0|r)/2|0)+i|0))/(0|r)|0)}function $t(A,e){A|=0;var r=0,i=0,f=0;if(r=(e|=0)+-1|0,131072<(e+65535|0)>>>0)for(e=2;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);else e=2;if(f=0|ar[A+84>>2],i=0|ar[A+80>>2],(0|f)==(0|e)){if(r=i+r|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}else{if(r=(0|br(i,e))+(0|br(f,r))|0,131072<((e=0|br(f,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}if(i=0|ar[A+68>>2],f=(0|ar[A+64>>2])-i|0,131072<(i+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if(131072<((i<<=1)+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if((0|e)==(0|i)){if(r=r-f|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=(i=(0|(A=e))/2|0)+(f=r)|0))/(0|A)|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|(A=(A=(0|e)/2|0)+r|0))/(0|e)|0)}if(r=(0|br(i,r))-(0|br(f,e))|0,131072<((e=0|br(i,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=(i=(0|(A=e))/2|0)+(f=r)|0))/(0|A)|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|(A=(A=(0|e)/2|0)+r|0))/(0|e)|0)}function Ao(A,e){e|=0;var r=0,i=0;if(r=0|ar[(A|=0)+68>>2],i=(0|ar[A+64>>2])-r|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(i=(0|br(0|$t(A,e),r))+i|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if((i+65536|0)>>>0<=131072)return A=i,0|(e=(0|(A=(i=(0|(e=r))/2|0)+A|0))/(0|e)|0);for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);return 0|(e=(0|(e=(e=(0|r)/2|0)+i|0))/(0|r)|0)}function eo(A){var e=0,r=0,i=0,f=0,n=0;if(n=0|ar[(A|=0)+60>>2],e=(0|ar[A+56>>2])-n|0,f=131072<(n+65536|0)>>>0)for(r=e,A=n;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else r=e,A=n;if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(i=0-r|0,1==(0|A))if(131072<(65536-r|0)>>>0)for(A=1;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);else A=1;else{if(131072<(A+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);}if(r=(((0|A)/2|0)+i|0)/(0|A)|0,f)for(A=n;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else A=n;if(131072<(e+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if((e+65536|0)>>>0<=131072)return n=(0|(f=(i=(0|(n=A))/2|0)+(f=e)|0))/(0|n)|0,0|(n=(f=1-r|0)+n|0);for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);return 0|(n=(f=1-r|0)+(n=(0|(n=(n=(0|A)/2|0)+e|0))/(0|A)|0)|0)}function ro(A){var e=0,r=0,i=0,f=0,n=0;if(n=0|ar[(A|=0)+68>>2],e=(0|ar[A+64>>2])-n|0,f=131072<(n+65536|0)>>>0)for(r=e,A=n;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else r=e,A=n;if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(i=0-r|0,1==(0|A))if(131072<(65536-r|0)>>>0)for(A=1;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);else A=1;else{if(131072<(A+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);}if(r=(((0|A)/2|0)+i|0)/(0|A)|0,f)for(A=n;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else A=n;if(131072<(e+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if((e+65536|0)>>>0<=131072)return n=(0|(f=(i=(0|(n=A))/2|0)+(f=e)|0))/(0|n)|0,0|(n=(f=1-r|0)+n|0);for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);return 0|(n=(f=1-r|0)+(n=(0|(n=(n=(0|A)/2|0)+e|0))/(0|A)|0)|0)}function io(A,e,r){e|=0,r|=0;var i,f,n,t=0;if(ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,((ar[A+8>>2]=0)|(t=0|ar[e+56>>2]))!=(0|(f=0|ar[e+60>>2]))){i=A+8|0,e=t;do{do{if((0|ar[e+48>>2])==(0|r)){if((0|(t=0|ar[n>>2]))==(0|ar[i>>2])){de(A,e);break}se(t,e),ar[n>>2]=64+(0|ar[n>>2]);break}}while(0);e=e+64|0}while((0|e)!=(0|f))}}function fo(A,e,r,i){A|=0,r|=0,i|=0;var f=0;f=0|ar[(e|=0)+56>>2],e=0|ar[e+60>>2];A:do{if((0|f)!=(0|e)){for(;(0|ar[f+48>>2])!=(0|r)||(0|ar[f+20>>2])!=(0|i);)if((0|(f=f+64|0))==(0|e))break A;return void Ge(A,f+52|0)}}while(0);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0}function no(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(ur=(u=ur)+32|0,o=u+20|0,t=u+16|0,n=u+12|0,a=u+8|0,c=u+4|0,l=u,(0|(b=0|ar[(A|=0)+92>>2]))==(0|(f=0|ar[A+96>>2])))return ur=u,1;r=e+4|0,i=e+8|0;A:for(;;){if((0|(A=0|ar[b+4>>2]))!=(0|(p=0|ar[b+8>>2])))do{if(w=((0|ar[(Z=A+4|0)>>2])-(0|ar[A>>2])|0)>>>24&255,s=0|ar[r>>2],(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=9;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;if(w=((0|ar[Z>>2])-(0|ar[A>>2])|0)>>>16&255,(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=19;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;if(w=((0|ar[Z>>2])-(0|ar[A>>2])|0)>>>8&255,(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=29;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;if(w=(0|ar[Z>>2])-(0|ar[A>>2])&255,(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=39;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;ar[a>>2]=s,ar[c>>2]=ar[A>>2],ar[l>>2]=ar[Z>>2],ar[n>>2]=ar[a>>2],ar[t>>2]=ar[c>>2],ar[o>>2]=ar[l>>2],to(e,n,t,o),A=A+12|0}while((0|A)!=(0|p));if((0|(b=b+16|0))==(0|f)){A=3;break}}return 3==(0|A)?(ur=u,1):(9!=(0|A)&&19!=(0|A)&&29!=(0|A)&&39!=(0|A)||zl(),0)}function to(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(e=(u=f=0|ar[(A|=0)>>2])+(b=(0|ar[e>>2])-u|0)|0,a=0|ar[r>>2],t=c=0|ar[i>>2],(0|(s=c-a|0))<=0)return 0|(d=e);if((0|s)<=((l=0|ar[(o=A+8|0)>>2])-(i=n=0|ar[(d=A+4|0)>>2])|0)){if((0|(l=i-e|0))<(0|s)){if((0|(c=i=a+l|0))==(0|t))i=n;else{for(a=n;tr[a>>0]=0|tr[i>>0],i=i+1|0,a=1+(0|ar[d>>2])|0,ar[d>>2]=a,(0|i)!=(0|t););i=a}if(!(0<(0|l)))return 0|(d=e);u=i}else u=n;if((i=e+(l=u-(e+s)|0)|0)>>>0>>0)for(a=u;tr[a>>0]=0|tr[i>>0],i=i+1|0,a=1+(0|ar[d>>2])|0,ar[d>>2]=a,(0|i)!=(0|n););if(0|l&&wb(u+(0-l)|0,0|e,0|l),(0|(i=0|ar[r>>2]))==(0|c))return 0|(d=e);for(a=e;tr[a>>0]=0|tr[i>>0],(0|(i=i+1|0))!=(0|c);)a=a+1|0;return 0|e}if((0|(i=i-u+s|0))<0&&zl(),c=(u=l-u|0)<<1,c=u>>>0<1073741823?c>>>0>>0?i:c:2147483647,u=e,i=s=(l=c?0|hu(c):0)+b|0,b=l+c|0,(0|a)==(0|t))c=f;else{for(c=s;tr[c>>0]=0|tr[a>>0],i=c=i+1|0,(0|(a=a+1|0))!=(0|t););c=0|ar[A>>2]}return l=s+(0-(a=u-c|0))|0,0<(0|a)&&hb(0|l,0|c,0|a),e=0<(0|(a=(0|ar[d>>2])-u|0))?(hb(0|i,0|e,0|a),i=i+a|0,0|ar[A>>2]):c,ar[A>>2]=l,ar[d>>2]=i,ar[o>>2]=b,e&&vu(e),0|(d=s)}function oo(A,e,r,i){e|=0,r|=0,i|=0,ar[(A|=0)>>2]=e,ar[A+4>>2]=r,yu(A+8|0,i)}function ao(A,e,r){A|=0,r|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(n=ur)+176|0,o=n+160|0,i=n+16|0,f=n,t=0|ar[(e|=0)>>2],!r)return ar[A>>2]=t,ar[A+4>>2]=ar[e+4>>2],e=0|ar[(e=6168)>>2],ar[(A=A+8|0)>>2]=e,void(ur=n);if(t){switch(u=64+i|0,ar[(s=8+i|0)>>2]=4524,b=12+i|0,ar[i>>2]=188,ar[u>>2]=208,Jf(64+i|(ar[4+i>>2]=0),b),ar[136+i>>2]=0,ar[140+i>>2]=-1,ar[i>>2]=4504,ar[u>>2]=4544,ar[s>>2]=4524,Sf(b),ar[b>>2]=4340,ar[(s=44+i|0)>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[60+i>>2]=24,ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,Xe(b,o),(0|tr[o+11>>0])<0&&vu(0|ar[o>>2]),l=8+i|0,0|ar[e>>2]){case 0:a=32215;break;case 1:a=24245;break;case 2:a=24231;break;case 3:a=24209;break;case 4:a=24189;break;case 5:a=24177;break;case 6:a=24153;break;case 7:a=24119;break;case 8:a=24085;break;case 9:a=24040;break;case 10:a=24011;break;default:sr(55739,23985,74,23994)}c=0|We(0|We(l,a,0|Vc(a)),25392,2),We(c,a=0|function(A){var e=0;switch(0|(A|=0)){case 0:e=25380;break;case 100:e=25357;break;case 101:e=25340;break;case 118:e=25322;break;case 119:e=25302;break;case 102:e=25288;break;case 103:e=25274;break;case 104:e=25260;break;case 105:e=25246;break;case 106:e=25232;break;case 131:e=25218;break;case 107:e=25204;break;case 108:e=25190;break;case 109:e=25176;break;case 110:e=25162;break;case 111:e=25148;break;case 112:e=25134;break;case 113:e=25120;break;case 125:e=25106;break;case 114:e=25085;break;case 115:e=25039;break;case 116:e=25008;break;case 117:e=24991;break;case 120:e=24954;break;case 121:e=24933;break;case 122:e=24896;break;case 123:e=24860;break;case 124:e=24833;break;case 126:e=24806;break;case 127:e=24775;break;case 128:e=24749;break;case 129:e=24730;break;case 130:e=24713;break;case 1e3:e=24689;break;case 2e3:e=24657;break;case 2001:e=24634;break;case 2002:e=24596;break;case 2003:e=24546;break;case 2004:e=24496;break;case 2005:e=24474;break;case 2006:e=24450;break;case 3e3:e=24432;break;case 3001:e=24409;break;case 3002:e=24384;break;case 3003:e=24355;break;case 3004:e=24318;break;case 4e3:e=24296;break;case 5e3:e=24271;break;default:sr(55739,23985,198,23994)}return 0|e}(0|ar[(o=e+4|0)>>2]),0|Vc(a)),(t=0|tr[(c=(a=e+8|0)+11|0)>>0])<<24>>24<0?t=0|ar[e+12>>2]:t&=255,0|t&&(d=0|We(l,25392,2),We(d,(t=(c=0|tr[c>>0])<<24>>24<0)?0|ar[a>>2]:a,t?0|ar[e+12>>2]:255&c)),Ie(f,b),Eu(r,f),t=(0|tr[r+11>>0])<0?0|ar[r>>2]:r,ar[(a=r+12|0)>>2]=t,(0|tr[f+11>>0])<0&&vu(0|ar[f>>2]),ar[i>>2]=4504,ar[u>>2]=4544,ar[l>>2]=4524,ar[b>>2]=4340,(0|tr[s+11>>0])<0&&vu(0|ar[s>>2]),kf(b),bf(u),t=0|ar[e>>2]}else ar[(a=r+12|0)>>2]=32215,o=e+4|0,t=0;ar[A>>2]=t,ar[A+4>>2]=ar[o>>2],e=0|ar[(e=a)>>2],ar[(d=A+8|0)>>2]=e,ur=n}function co(A){var e,r,i;for(ar[(A|=0)+112>>2]=0,r=A+112|(ar[A+116>>2]=0),e=i=A+108|0;(0|(A=A+4|(ar[A>>2]=0)))<(0|e););ar[i>>2]=r}function lo(A){var e,r=0,i=0,f=0,n=0;if(uo((A|=0)+108|0,0|ar[A+112>>2]),0|(r=0|ar[A+104>>2])&&du(r),0|(r=0|ar[A+96>>2])&&du(r),0|(r=0|ar[A+88>>2])&&du(r),0|(r=0|ar[A+80>>2])&&du(r),0|(r=0|ar[A+72>>2])&&du(r),0|(r=0|ar[A+64>>2])&&du(r),0|(r=0|ar[A+56>>2])&&du(r),0|(r=0|ar[A+48>>2])&&du(r),0|(r=0|ar[A+40>>2])&&du(r),0|(r=0|ar[A+32>>2])&&du(r),0|(r=0|ar[A+24>>2])&&du(r),0|(r=0|ar[(e=A+8|0)>>2])){if((0|(i=0|ar[(n=A+12|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}(r=0|ar[A+4>>2])&&du(r)}function uo(A,e){A|=0,(e|=0)&&(uo(A,0|ar[e>>2]),uo(A,0|ar[e+4>>2]),0|(A=0|ar[e+24>>2])&&du(A),vu(e))}function bo(A,e,r){A|=0,e|=0;var i,f,n,t,o,a=0;ur=(o=ur)+48|0,n=(t=o)+32|0,f=0|ar[(r|=0)>>2],0|(a=0|ar[r+4>>2])&&bu(a),ar[e>>2]=f,r=0|ar[(i=e+4|0)>>2],ar[i>>2]=a,r?(du(r),r=0|ar[e>>2],a=0|ar[i>>2]):r=f,ar[n>>2]=r,0|(ar[(r=4+n|0)>>2]=a)&&bu(a),WA(t,n,-1,2147483647,0),0|(r=0|ar[r>>2])&&du(r),function(A,e,r){A|=0;var i,f,n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0;ur=(s=ur)+288|0,t=s+264|0,C=s+108|0,o=s+96|0,c=s+84|0,l=s+72|0,u=s+60|0,R=s+48|0,N=s+36|0,_=s+24|0,Q=s+12|0,i=4+(b=(D=s)+276|0)|0,w=24+(r|=0)|0,v=r+16|0,m=12+(e|=0)|0,g=e+16|0,Z=e+8|0,p=e+36|0,y=e+40|0,B=e+20|0,E=e+24|0,n=11+(f=8+(a=s+120|0)|0)|0;for(;;){if(ar[b>>2]=0,ar[i>>2]=0,Ae(a,r,b),(0|ar[a>>2])!=(0|ar[14148])){Y=40;break}if(0|tr[w>>0]){Y=35;break}if(0==(0|ar[(Y=v)>>2])&0==(0|ar[Y+4>>2])){Y=30;break}(0|(d=0|ar[m>>2]))==(0|ar[g>>2])?Ut(Z,b):(ar[d>>2]=ar[b>>2],k=0|ar[i>>2],(ar[d+4>>2]=k)&&(bu(k),d=0|ar[m>>2]),ar[m>>2]=d+8),k=0|ar[b>>2],1835365473==(0|(d=0|ar[k+20>>2]))&&(0!=(0|k)&&0!=(0|(X=0|qu(k,128,160,0)))?(d=X,h=0|ar[i>>2],(k=h)&&bu(h)):k=d=0,ar[p>>2]=d,d=0|ar[y>>2],ar[y>>2]=k,0|d&&du(d),k=0|ar[b>>2],d=0|ar[k+20>>2]),1718909296==(0|d)&&(0!=(0|k)&&0!=(0|(W=0|qu(k,128,144,0)))?(d=W,h=0|ar[i>>2],(k=h)&&bu(h)):k=d=0,ar[B>>2]=d,d=0|ar[E>>2],ar[E>>2]=k,0|d&&du(d)),(0|tr[n>>0])<0&&vu(0|ar[f>>2]),0|(d=0|ar[i>>2])&&du(d)}30!=(0|Y)&&35!=(0|Y)&&40!=(0|Y)||((0|tr[n>>0])<0&&vu(0|ar[f>>2]),0|(d=0|ar[i>>2])&&du(d));if(!(k=0|ar[(d=e+20|0)>>2]))return ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,oo(A,2,102,t),0<=(0|tr[11+t>>0])||vu(0|ar[t>>2]),ur=s;if(!(0|St(k,1751476579)||0|St(0|ar[d>>2],1751476600)||0|St(0|ar[d>>2],1835623985))&&!(0|St(0|ar[d>>2],1635150182)))return k=64+a|0,ar[(w=8+a|0)>>2]=4524,h=12+a|0,ar[a>>2]=188,ar[k>>2]=208,ar[4+a>>2]=0,Jf(64+a|0,h),ar[136+a>>2]=0,ar[140+a>>2]=-1,ar[a>>2]=4504,ar[k>>2]=4544,ar[w>>2]=4524,Sf(h),ar[h>>2]=4340,ar[(w=44+a|0)>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,ar[w+12>>2]=0,ar[60+a>>2]=24,ar[b>>2]=0,ar[4+b>>2]=0,ar[8+b>>2]=0,Xe(h,b),(0|tr[11+b>>0])<0&&vu(0|ar[b>>2]),We(d=8+a|0,25395,44),Ie(C,h),oo(A,3,0,C),(0|tr[C+11>>0])<0&&vu(0|ar[C>>2]),ar[a>>2]=4504,ar[k>>2]=4544,ar[d>>2]=4524,ar[h>>2]=4340,(0|tr[w+11>>0])<0&&vu(0|ar[w>>2]),kf(h),bf(k),ur=s;if(!(d=0|ar[(v=e+36|0)>>2]))return ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,oo(A,2,104,o),0<=(0|tr[11+o>>0])||vu(0|ar[o>>2]),ur=s;Tt(b,d,1751411826),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(I=0|qu(d,128,1128,0)))?(d=I,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(h=e+28|0)>>2]=d,d=0|ar[(C=e+32|0)>>2],ar[C>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(0|(C=0|ar[h>>2])&&1885954932!=(0|ar[C+60>>2]))return ar[c>>2]=0,ar[4+c>>2]=0,ar[8+c>>2]=0,oo(A,2,114,c),0<=(0|tr[11+c>>0])||vu(0|ar[c>>2]),ur=s;Tt(b,0|ar[v>>2],1885959277),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(G=0|qu(d,128,1096,0)))?(d=G,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(h=e+84|0)>>2]=d,d=0|ar[(G=e+88|0)>>2],ar[G>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[l>>2]=0,ar[4+l>>2]=0,ar[8+l>>2]=0,oo(A,2,107,l),0<=(0|tr[11+l>>0])||vu(0|ar[l>>2]),ur=s;Tt(b,0|ar[v>>2],1768977008),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(V=0|qu(d,128,968,0)))?(d=V,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(w=e+100|0)>>2]=d,d=0|ar[(V=e+104|0)>>2],ar[V>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(d=0|ar[w>>2]))return ar[u>>2]=0,ar[4+u>>2]=0,ar[8+u>>2]=0,oo(A,2,112,u),0<=(0|tr[11+u>>0])||vu(0|ar[u>>2]),ur=s;Tt(b,d,1768973167),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(F=0|qu(d,128,936,0)))?(d=F,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(h=e+44|0)>>2]=d,d=0|ar[(F=e+48|0)>>2],ar[F>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[R>>2]=0,ar[R+4>>2]=0,ar[R+8>>2]=0,oo(A,2,108,R),0<=(0|tr[R+11>>0])||vu(0|ar[R>>2]),ur=s;Tt(b,0|ar[w>>2],1768975713),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,904,0))){k=d=0;break}if(k=0|ar[4+b>>2],!(h=k)){k=h;break}bu(k),k=h}else k=d=0}while(0);ar[(h=e+52|0)>>2]=d,d=0|ar[(R=e+56|0)>>2],ar[R>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,oo(A,2,109,N),0<=(0|tr[N+11>>0])||vu(0|ar[N>>2]),ur=s;Tt(b,0|ar[v>>2],1768714083),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,1064,0))){k=d=0;break}if(k=0|ar[4+b>>2],!(h=k)){k=h;break}bu(k),k=h}else k=d=0}while(0);ar[(h=e+60|0)>>2]=d,d=0|ar[(N=e+64|0)>>2],ar[N>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[_>>2]=0,ar[_+4>>2]=0,ar[_+8>>2]=0,oo(A,2,110,_),0<=(0|tr[_+11>>0])||vu(0|ar[_>>2]),ur=s;Tt(b,0|ar[v>>2],1768186228),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,616,0))){k=d=0;break}if(h=0|ar[4+b>>2],!(k=h))break;bu(h)}else k=d=0}while(0);ar[e+68>>2]=d,d=0|ar[(_=e+72|0)>>2],ar[_>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);Tt(b,0|ar[v>>2],1769104742),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,712,0))){k=d=0;break}if(h=0|ar[4+b>>2],!(k=h))break;bu(h)}else k=d=0}while(0);ar[e+76>>2]=d,d=0|ar[(_=e+80|0)>>2],ar[_>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);Tt(b,0|ar[v>>2],1768517222),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,1032,0))){k=d=0;break}if(k=0|ar[4+b>>2],!(h=k)){k=h;break}bu(k),k=h}else k=d=0}while(0);ar[(h=e+92|0)>>2]=d,d=0|ar[(_=e+96|0)>>2],ar[_>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(d=0|ar[h>>2]))return ar[Q>>2]=0,ar[Q+4>>2]=0,ar[Q+8>>2]=0,oo(A,2,111,Q),0<=(0|tr[Q+11>>0])||vu(0|ar[Q>>2]),ur=s;(function(A,e,r){e|=0,r|=0;var i,f,n,t=0,o=0;if(ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,((ar[A+8>>2]=0)|(t=0|ar[e+44>>2]))!=(0|(f=0|ar[e+48>>2]))){i=A+8|0;do{o=e=0|ar[t>>2];do{if((0|ar[e+20>>2])==(0|r)){if((0|(e=0|ar[n>>2]))==(0|ar[i>>2])){Ut(A,t);break}ar[e>>2]=o,o=0|ar[t+4>>2],(ar[e+4>>2]=o)&&(bu(o),e=0|ar[n>>2]),ar[n>>2]=e+8}}while(0);t=t+8|0}while((0|t)!=(0|f))}})(b,d,1768842853),d=0|ar[b>>2],p=0|ar[(W=4+b|0)>>2];A:do{if((0|d)==(0|p))Y=186;else for(y=D+11|0,B=e+108|0,X=E=e+112|0,Z=e+116|0;;){k=0|ar[d>>2];do{if(k){if(!(h=0|qu(k,128,1e3,0))){k=0,Y=164;break}if(g=h,(k=0|ar[d+4>>2])?bu(k):k=0,!h){Y=164;break}m=0|ar[h+56>>2],0|(r=k)&&bu(k),h=0|ar[E>>2];do{if(h){for(v=X;;)if(w=0|ar[h+16>>2],m>>>0>>0){if(!(w=0|ar[h>>2])){Y=172;break}v=h,h=w}else{if(m>>>0<=w>>>0){Y=176;break}if(!(w=0|ar[(v=h+4|0)>>2])){Y=175;break}h=w}if(172==(0|Y)){Y=0,v=w=h;break}if(175==(0|Y)){Y=0,w=h;break}if(176==(0|Y)){Y=0,w=h;break}}else v=w=E}while(0);if(0|ar[v>>2]){if(!k){h=0;break}du(k),h=0;break}h=0|hu(28),ar[h+16>>2]=m,ar[h+20>>2]=g,ar[h+24>>2]=r,ar[h>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=w,ar[v>>2]=h,(w=0|ar[ar[B>>2]>>2])&&(ar[B>>2]=w,h=0|ar[v>>2]),so(0|ar[X>>2],h),ar[Z>>2]=1+(0|ar[Z>>2]),h=0}else k=0,Y=164}while(0);do{if(164==(0|Y)){if(Y=0,ar[D>>2]=0,ar[D+4>>2]=0,ar[D+8>>2]=0,oo(A,2,125,D),0<=(0|tr[y>>0])){h=1;break}vu(0|ar[D>>2]),h=1}}while(0);if(0|k&&du(k),d=d+8|0,0|h)break A;if((0|d)==(0|p)){Y=186;break}}}while(0);186==(0|Y)&&(e=0|ar[(Q=56592)+4>>2],ar[(D=A)>>2]=ar[Q>>2],ar[D+4>>2]=e,yu(A+8|0,56600));if(0|(d=0|ar[b>>2])){if((0|(k=0|ar[W>>2]))!=(0|d)){for(;h=k+-8|0,ar[W>>2]=h,(0|(k=(k=0|ar[k+-4>>2])?(du(k),0|ar[W>>2]):h))!=(0|d););d=0|ar[b>>2]}vu(d)}ur=s}(A,e,t),ur=((r=0|ar[t+4>>2])&&du(r),o)}function so(A,e){var r=0,i=0,f=0,n=0,t=0;if(t=(0|(e|=0))==(0|(A|=0)),tr[e+12>>0]=1&t,!t){for(;;){if(t=0|ar[e+8>>2],0|tr[(f=t+12|0)>>0]){r=23;break}if(i=0|ar[(n=t+8|0)>>2],(0|(r=0|ar[i>>2]))==(0|t)){if(!(r=0|ar[i+4>>2])){r=7;break}if(0|tr[(r=r+12|0)>>0]){r=7;break}e=r}else{if(!r){r=16;break}if(0|tr[(r=r+12|0)>>0]){r=16;break}e=r}if(tr[f>>0]=1,t=(0|i)==(0|A),tr[i+12>>0]=1&t,tr[e>>0]=1,t){r=23;break}e=i}if(7==(0|r))return f=(0|ar[t>>2])==(0|e)?(e=t,i):(r=0|ar[(A=t+4|0)>>2],e=0|ar[r>>2],e=(ar[A>>2]=e)?(ar[e+8>>2]=t,0|ar[n>>2]):i,ar[r+8>>2]=e,e=0|ar[n>>2],ar[((0|ar[e>>2])==(0|t)?e:e+4|0)>>2]=r,ar[r>>2]=t,ar[n>>2]=r,0|ar[(e=r)+8>>2]),tr[e+12>>0]=1,e=(tr[f+12>>0]=0)|ar[f>>2],i=0|ar[(r=e+4|0)>>2],0|(ar[f>>2]=i)&&(ar[i+8>>2]=f),t=f+8|0,ar[e+8>>2]=ar[t>>2],n=0|ar[t>>2],ar[((0|ar[n>>2])==(0|f)?n:n+4|0)>>2]=e,ar[r>>2]=f,void(ar[t>>2]=e);if(16==(0|r))return(0|ar[t>>2])==(0|e)?(f=0|ar[t>>2],e=0|ar[(r=f+4|0)>>2],(ar[t>>2]=e)&&(ar[e+8>>2]=t,i=0|ar[n>>2]),ar[f+8>>2]=i,e=0|ar[n>>2],ar[((0|ar[e>>2])==(0|t)?e:e+4|0)>>2]=f,ar[r>>2]=t,ar[n>>2]=f,i=0|ar[(e=f)+8>>2]):e=t,tr[e+12>>0]=1,e=(tr[i+12>>0]=0)|ar[(t=i+4|0)>>2],r=0|ar[e>>2],0|(ar[t>>2]=r)&&(ar[r+8>>2]=i),t=i+8|0,ar[e+8>>2]=ar[t>>2],n=0|ar[t>>2],ar[((0|ar[n>>2])==(0|i)?n:n+4|0)>>2]=e,ar[e>>2]=i,void(ar[t>>2]=e)}}function ko(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a;ur=(n=ur)+16|0,o=n,t=0|hu(48),ar[4+t>>2]=0,ar[8+t>>2]=0,ar[t>>2]=6180,function(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n=0;if(ar[(A|=0)>>2]=4232,ar[(n=A+8|0)>>2]=r,ar[n+4>>2]=i,ar[(n=A+16|0)>>2]=0,ar[n+4>>2]=0,ar[(n=A+24|0)>>2]=0,!f)return i=e,ar[(f=A+4|0)>>2]=i;i=0|wu(f=i>>>0<0|0==(0|i)&r>>>0<4294967295?r:-1),hb(0|(ar[n>>2]=i),0|e,0|r),ar[(f=A+4|0)>>2]=i}(a=16+t|0,r,i,0,f),ar[o>>2]=a,bu(ar[o+4>>2]=t),bo(A,e,o),du(t),du(t),ur=n}function ho(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0;if(f=0|ar[(i=(e|=0)+112|0)>>2]){e=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>>>0>=r>>>0);)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){e=f;break}e=f}(0|e)!=(0|i)&&(0|ar[e+16>>2])>>>0<=r>>>0?(f=0|ar[e+20>>2],(e=0|ar[e+24>>2])?bu(e):e=0,f?yu(A,f+64|0):t=11):(e=0,t=11)}else e=0,t=11;11==(0|t)&&(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),e&&du(e)}function wo(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0;if(f=0|ar[(i=(e|=0)+112|0)>>2]){e=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>>>0>=r>>>0);)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){e=f;break}e=f}(0|e)!=(0|i)&&(0|ar[e+16>>2])>>>0<=r>>>0?(f=0|ar[e+20>>2],(e=0|ar[e+24>>2])?bu(e):e=0,f?yu(A,f+88|0):t=11):(e=0,t=11)}else e=0,t=11;11==(0|t)&&(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),e&&du(e)}function vo(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o;return ur=(o=ur)+32|0,f=o+12|0,n=o,(t=0|ar[(e|=0)+44>>2])?0|ar[(e=e+52|0)>>2]?(Ht(A,t,r,e,i),void(ur=o)):(ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,109,n),void(ur=(0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),o))):(ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,oo(A,2,108,f),0<=(0|tr[11+f>>0])||vu(0|ar[f>>2]),void(ur=o))}function mo(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0;if(ur=(d=ur)+352|0,l=d+192|0,C=d+328|0,V=d+304|0,b=d+340|0,s=d+316|0,u=d+292|0,T=d+48|0,R=d+280|0,F=d+268|0,M=d+24|0,n=d+256|0,t=(c=d)+248|0,o=d+232|0,a=d+224|0,f=d+216|0,0|(W=0|ar[(G=(e|=0)+112|0)>>2])){E=G,I=W;A:for(;;){for(X=I;!((0|ar[X+16>>2])>>>0>=r>>>0);)if(!(X=0|ar[X+4>>2]))break A;if(!(I=0|ar[X>>2])){E=X;break}E=X}if((0|E)!=(0|G)&&(0|ar[E+16>>2])>>>0<=r>>>0){E=G;A:for(;;){for(X=W;!((0|ar[X+16>>2])>>>0>=r>>>0);)if(!(X=0|ar[X+4>>2]))break A;if(!(W=0|ar[X>>2])){E=X;break}E=X}if((0|E)!=(0|G)&&(0|ar[E+16>>2])>>>0<=r>>>0)if(W=0|ar[E+20>>2],(E=0|ar[E+24>>2])?bu(E):E=0,X=W){if(yu(b,X+64|0),yu(s,X+88|0),function(A,e){e|=0;var r,i,f,n=0;if(ar[(A|=0)>>2]=0,ar[(f=A+4|0)>>2]=0,ar[A+8>>2]=0,n=(0|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0,!(r=n>>5))return;134217727>>0&&zl();if(n=0|hu(n),ar[f>>2]=n,ar[A>>2]=n,ar[A+8>>2]=n+(r<<5),A=0|ar[e>>2],e=0|ar[i>>2],(0|A)==(0|e))return;for(;ar[n>>2]=ar[A>>2],ar[n+4>>2]=ar[A+4>>2],ar[n+8>>2]=ar[A+8>>2],ar[n+12>>2]=ar[A+12>>2],Dt(n+16|0,A+16|0),A=A+32|0,n=32+(0|ar[f>>2])|0,ar[f>>2]=n,(0|A)!=(0|e););}(u,56+(0|ar[(Q=e+60|0)>>2])|0),(0|(X=0|ar[u>>2]))!=(0|(W=0|ar[(U=4+u|0)>>2]))){for(J=0;J=(V=(0|ar[X>>2])==(0|r))?X:J,!(V|(0|(X=X+32|0))==(0|W)););if(J){ar[F>>2]=0,ar[F+4>>2]=0,ar[F+8>>2]=0,oo(l,4,3e3,F),(0|tr[F+11>>0])<0&&vu(0|ar[F>>2]),W=0|tr[(I=11+b|0)>>0],X=0|ar[(C=4+b|0)>>2];do{if(4==(0|(W<<24>>24<0?X:255&W))){if(0|Yu(b,0,-1,30298,4)){W=0|tr[I>>0],X=0|ar[C>>2],S=72;break}ar[T>>2]=0,ar[(G=T+4|0)>>2]=0,Ht(M,(ar[T+8>>2]=0)|ar[e+44>>2],r,e+52|0,T);do{if(0|ar[M>>2])C=0|ar[(e=M)+4>>2],ar[(i=A)>>2]=ar[e>>2],ar[i+4>>2]=C,C=M+8|0,ar[(i=A+8|0)>>2]=ar[C>>2],ar[i+4>>2]=ar[C+4>>2],ar[i+8>>2]=ar[C+8>>2],ar[C>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,C=1;else{for((0|(X=0|ar[T>>2]))==(0|(C=0|ar[G>>2]))?sr(55739,25520,565,25571):(Y=X,_=0);;){if(X=0|ar[Y+4>>2],1752589123==(0|ar[X+20>>2])){do{if(X){if(!(X=0|qu(X,128,680,0))){D=N=0;break}if(!(I=W=0|ar[Y+8>>2])){N=X,D=I;break}bu(W),N=X,D=I}else D=N=0}while(0);if(0|_&&du(_),N)break;X=D}else X=_;if((0|(Y=Y+12|0))==(0|C)){S=48;break}_=X}48==(0|S)&&sr(55739,25520,565,25571);do{if(0|no(N,i))X=0|ar[Q>>2],ar[t>>2]=ar[e>>2],C=4+t|0,W=0|ar[e+4>>2],0|(ar[C>>2]=W)&&bu(W),Ot(c,X,J,t,e+68|0,i),X=0|ar[(W=c)+4>>2],ar[(I=l)>>2]=ar[W>>2],ar[I+4>>2]=X,X=c+8|0,(0|tr[(W=(I=8+l|0)+11|0)>>0])<0?(tr[ar[I>>2]>>0]=0,ar[12+l>>2]=0):(tr[I>>0]=0,tr[W>>0]=0),Cu(I,0),ar[I>>2]=ar[X>>2],ar[I+4>>2]=ar[X+4>>2],ar[I+8>>2]=ar[X+8>>2],ar[X>>2]=0,ar[X+4>>2]=0,(ar[X+8>>2]=0)|(X=0|ar[C>>2])&&du(X),X=0;else{if(ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,oo(A,2,117,n),0<=(0|tr[11+n>>0])){X=1;break}vu(0|ar[n>>2]),X=1}}while(0);if(!D){C=X;break}du(D),C=X}}while(0);if((0|tr[(X=M+8|0)+11>>0])<0&&vu(0|ar[X>>2]),0|(X=0|ar[T>>2])){if((0|(W=0|ar[G>>2]))!=(0|X)){for(;I=W+-12|0,ar[G>>2]=I,(0|(W=(W=0|ar[W+-4>>2])?(du(W),0|ar[G>>2]):I))!=(0|X););X=0|ar[T>>2]}vu(X)}C||(S=118)}else S=72}while(0);do{if(72==(0|S)){if(4==(0|(W<<24>>24<0?X:255&W))&&0==(0|Yu(b,0,-1,30318,4))){ar[T>>2]=0,ar[(R=T+4|0)>>2]=0,Ht(M,(ar[T+8>>2]=0)|ar[e+44>>2],r,e+52|0,T);do{if(0|ar[M>>2])C=0|ar[(e=M)+4>>2],ar[(i=A)>>2]=ar[e>>2],ar[i+4>>2]=C,C=M+8|0,ar[(i=A+8|0)>>2]=ar[C>>2],ar[i+4>>2]=ar[C+4>>2],ar[i+8>>2]=ar[C+8>>2],ar[C>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,C=1;else{X=0|ar[T>>2],V=0|ar[R>>2];A:do{if((0|X)==(0|V))X=0,S=86;else{for(G=X,X=0;;){if(W=0|ar[G+4>>2],1635135811==(0|ar[W+20>>2])){do{if(W){if(!(W=0|qu(W,128,648,0))){F=W=0;break}if(!(C=I=0|ar[G+8>>2])){F=C;break}bu(I),F=C}else F=W=0}while(0);if(0|X&&du(X),W)break;X=F}if((0|(G=G+12|0))==(0|V)){S=86;break A}}(0|(W=(X=W)+68|0))!=(0|i)&&(k=i,h=0|ar[W>>2],w=0|ar[X+72>>2],B=y=p=Z=g=m=v=void 0,m=(B=w|=B=y=p=Z=g=0)-(v=h|=0)|0,((g=0|ar[(p=8+(k|=0)|0)>>2])-(y=Z=0|ar[k>>2])|0)>>>0>>0?(Z&&((0|ar[(g=k+4|0)>>2])!=(0|y)&&(ar[g>>2]=y),vu(y),ar[p>>2]=0,ar[g>>2]=0,g=ar[k>>2]=0),(0|m)<0&&zl(),B=g<<1,(0|(g=g>>>0<1073741823?B>>>0>>0?m:B:2147483647))<0&&zl(),y=0|hu(g),ar[(B=k+4|0)>>2]=y,ar[k>>2]=y,ar[p>>2]=y+g,hb(0|y,0|h,0|m),ar[B>>2]=y+m):(0|(g=(Z=w=(k=(Z=(0|ar[(p=k+4|0)>>2])-Z|0)>>>0>>0)?h+Z|0:w)-v|0)&&wb(0|y,0|h,0|g),g=y+g|0,k?(0|(g=B-Z|0))<=0||(hb(0|ar[p>>2],0|w,0|g),ar[p>>2]=(0|ar[p>>2])+g):(0|ar[p>>2])!=(0|g)&&(ar[p>>2]=g))),X=0|ar[Q>>2],ar[a>>2]=ar[e>>2],C=4+a|0,W=0|ar[e+4>>2],0|(ar[C>>2]=W)&&bu(W),Ot(c,X,J,a,e+68|0,i),X=0|ar[(W=c)+4>>2],ar[(I=l)>>2]=ar[W>>2],ar[I+4>>2]=X,X=c+8|0,(0|tr[(W=(I=8+l|0)+11|0)>>0])<0?(tr[ar[I>>2]>>0]=0,ar[12+l>>2]=0):(tr[I>>0]=0,tr[W>>0]=0),Cu(I,0),ar[I>>2]=ar[X>>2],ar[I+4>>2]=ar[X+4>>2],ar[I+8>>2]=ar[X+8>>2],ar[X>>2]=0,ar[X+4>>2]=0,(ar[X+8>>2]=0)|(X=0|ar[C>>2])&&du(X),W=0,X=F}}while(0);do{if(86==(0|S)){if(ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,oo(A,2,131,o),0<=(0|tr[11+o>>0])){W=1;break}vu(0|ar[o>>2]),W=1}}while(0);if(!X){C=W;break}du(X),C=W}}while(0);if((0|tr[(X=M+8|0)+11>>0])<0&&vu(0|ar[X>>2]),0|(X=0|ar[T>>2])){if((0|(W=0|ar[R>>2]))!=(0|X)){for(;I=W+-12|0,ar[R>>2]=I,(0|(W=(W=0|ar[W+-4>>2])?(du(W),0|ar[R>>2]):I))!=(0|X););X=0|ar[T>>2]}vu(X)}if(C)break;S=118;break}X=0|ar[Q>>2],ar[f>>2]=ar[e>>2],C=4+f|0,W=0|ar[e+4>>2],0|(ar[C>>2]=W)&&bu(W),Ot(T,X,J,f,e+68|0,i),X=0|ar[(W=T)+4>>2],ar[(I=l)>>2]=ar[W>>2],ar[I+4>>2]=X,X=T+8|0,(0|tr[(W=(I=8+l|0)+11|0)>>0])<0?(tr[ar[I>>2]>>0]=0,ar[12+l>>2]=0):(tr[I>>0]=0,tr[W>>0]=0),Cu(I,0),ar[I>>2]=ar[X>>2],ar[I+4>>2]=ar[X+4>>2],ar[I+8>>2]=ar[X+8>>2],ar[X>>2]=0,ar[X+4>>2]=0,(ar[X+8>>2]=0)|(X=0|ar[C>>2])&&du(X),S=118}}while(0);do{if(118==(0|S)){if((0|ar[l>>2])==(0|ar[14148])){M=0|ar[(i=56592)+4>>2],ar[(T=A)>>2]=ar[i>>2],ar[T+4>>2]=M,yu(A+8|0,56600);break}M=0|ar[(i=l)+4>>2],ar[(T=A)>>2]=ar[i>>2],ar[T+4>>2]=M,T=A+8|0,A=8+l|0,ar[T>>2]=ar[A>>2],ar[T+4>>2]=ar[A+4>>2],ar[T+8>>2]=ar[A+8>>2],ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;break}}while(0);(0|tr[(X=8+l|0)+11>>0])<0&&vu(0|ar[X>>2])}else S=24}else S=24;if(24==(0|S)&&(W=T+64|0,ar[(C=T+8|0)>>2]=4524,I=T+12|0,ar[T>>2]=188,ar[W>>2]=208,Jf(T+64|(ar[T+4>>2]=0),I),ar[T+136>>2]=0,ar[T+140>>2]=-1,ar[T>>2]=4504,ar[W>>2]=4544,ar[C>>2]=4524,Sf(I),ar[I>>2]=4340,ar[(C=T+44|0)>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C+12>>2]=0,ar[T+60>>2]=24,ar[l>>2]=0,ar[4+l>>2]=0,ar[8+l>>2]=0,Xe(I,l),(0|tr[11+l>>0])<0&&vu(0|ar[l>>2]),We(0|Lf(0|We(X=T+8|0,25533,13),r),25547,23),Ie(R,I),oo(A,2,117,R),(0|tr[R+11>>0])<0&&vu(0|ar[R>>2]),ar[T>>2]=4504,ar[W>>2]=4544,ar[X>>2]=4524,ar[I>>2]=4340,(0|tr[C+11>>0])<0&&vu(0|ar[C>>2]),kf(I),bf(W)),0|(X=0|ar[u>>2])){if((0|(W=0|ar[U>>2]))!=(0|X)){do{if(I=W+-32|0,ar[U>>2]=I,F=0|ar[(V=W+-16|0)>>2]){if((0|(W=0|ar[(G=W+-12|0)>>2]))==(0|F))W=F;else{for(;I=W+-40|0,ar[G>>2]=I,(0|(W=(C=0|ar[W+-16>>2])?((0|ar[(W=W+-12|0)>>2])!=(0|C)&&(ar[W>>2]=C),vu(C),0|ar[G>>2]):I))!=(0|F););W=0|ar[V>>2]}vu(W),W=0|ar[U>>2]}else W=I}while((0|W)!=(0|X));X=0|ar[u>>2]}vu(X)}(0|tr[11+s>>0])<0&&vu(0|ar[s>>2]),(0|tr[11+b>>0])<0&&vu(0|ar[b>>2])}else S=19;else E=0,S=19;return(19==(0|S)&&(ar[V>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=0,oo(A,5,2e3,V),(0|tr[V+11>>0])<0&&vu(0|ar[V>>2])),E)?(du(E),void(ur=d)):void(ur=d)}}ar[C>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,oo(A,5,2e3,C),ur=(0<=(0|tr[C+11>>0])||vu(0|ar[C>>2]),d)}function go(A){return(A|=0)>>>0<4?16908801>>>(A<<3)&255|0:(sr(55739,25597,47,25611),0)}function Zo(A){return(A|=0)>>>0<4?16843265>>>(A<<3)&255|0:(sr(55739,25597,66,25632),0)}function po(A){var e,r,i=0,f=0,n=0;if((0|(i=0|ar[(e=(A|=0)+56|0)>>2]))!=(0|(r=A+60|0)))for(n=i;;){if(0|(i=0|ar[n+44>>2])&&mu(i),i=0|ar[n+4>>2])for(;f=0|ar[i>>2];)i=f;else if(i=0|ar[(f=n+8|0)>>2],(0|ar[i>>2])!=(0|n))for(;n=0|ar[f>>2],i=0|ar[(f=n+8|0)>>2],(0|ar[i>>2])!=(0|n););if((0|i)==(0|r))break;n=i}!function A(e,r){e|=0;r|=0;return r?(A(e,0|ar[r>>2]),A(e,0|ar[r+4>>2]),void vu(r)):void 0}(e,0|ar[r>>2]),0|(i=0|ar[A+52>>2])&&du(i),0|(i=0|ar[A+44>>2])&&du(i),(0|tr[(i=A+8|0)+11>>0])<0&&vu(0|ar[i>>2]),(i=0|ar[A+4>>2])&&ku(i)}function yo(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0,ar[(A|=0)+24>>2]=e,ar[A+28>>2]=r,ar[A+32>>2]=i,ar[A+36>>2]=f}function Bo(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o=0,a=0;if(ur=(t=ur)+64|0,tr[(o=(n=t)+32|0)>>0]=0,ar[(a=o+4|0)>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a+12>>2]=0,ar[a+16>>2]=0,ar[a+20>>2]=0,!((ar[a+24>>2]=0)|function(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0;(0|(e|=0))<=-1&&sr(25686,25597,157,25697);(0|r)<=-1&&sr(25703,25597,158,25697);(0|i)<=0&&sr(25715,25597,159,25697);33<=(0|i)&&sr(25730,25597,160,25697);ar[A+4>>2]=e,ar[A+8>>2]=r,n=64<(n=e+1&-2)>>>0?n:64,ar[A+12>>2]=n,r=64<(r=r+1&-2)>>>0?r:64,ar[A+16>>2]=r,e=11==(0|f)&32==(0|(e=24==(0|i)&10==(0|f)?8:i))?8:e,17<=(0|cr[A>>0])&&sr(25746,25597,181,25697);switch(e=(7+(255&(tr[A>>0]=e))|0)>>>3,0|f){case 3:case 2:case 1:case 0:case 99:t=1;break;case 14:case 12:case 10:t=3;break;case 15:case 13:case 11:t=4;break;default:sr(55739,25597,118,25653)}return t=15+(0|br(0|br(t,e),n))&-16,ar[A+28>>2]=t,t=0|wu(15|br(t,r)),ar[A+24>>2]=t,f=15&t,ar[A+20>>2]=0==(0|f)?t:t+(16-f)|0,1}(o,r,i,f,0|ar[A+36>>2])))return ur=t,(A=0)|A;a=A+56|0,ar[n>>2]=ar[o>>2],ar[n+4>>2]=ar[o+4>>2],ar[n+8>>2]=ar[o+8>>2],ar[n+12>>2]=ar[o+12>>2],ar[n+16>>2]=ar[o+16>>2],ar[n+20>>2]=ar[o+20>>2],ar[n+24>>2]=ar[o+24>>2],ar[n+28>>2]=ar[o+28>>2],r=0|ar[(i=A+60|0)>>2];do{if(r){for(f=A+60|0;;)if((0|e)<(0|(i=0|ar[r+16>>2]))){if(!(i=0|ar[r>>2])){i=7;break}f=r,r=i}else{if((0|e)<=(0|i)){i=11;break}if(!(i=0|ar[(f=r+4|0)>>2])){i=10;break}r=i}if(7==(0|i)){f=o=r;break}if(10==(0|i)){o=r;break}if(11==(0|i)){o=r;break}}else f=o=i}while(0);return 0|ar[f>>2]||(r=0|hu(52),ar[r+16>>2]=e,ar[(i=r+20|0)>>2]=ar[n>>2],ar[i+4>>2]=ar[n+4>>2],ar[i+8>>2]=ar[n+8>>2],ar[i+12>>2]=ar[n+12>>2],ar[i+16>>2]=ar[n+16>>2],ar[i+20>>2]=ar[n+20>>2],ar[i+24>>2]=ar[n+24>>2],ar[i+28>>2]=ar[n+28>>2],ar[r>>2]=0,ar[r+4>>2]=0,ar[r+8>>2]=o,ar[f>>2]=r,(i=0|ar[ar[a>>2]>>2])&&(ar[a>>2]=i,r=0|ar[f>>2]),so(0|ar[A+60>>2],r),ar[(A=A+64|0)>>2]=1+(0|ar[A>>2])),ur=t,0|(A=1)}function Eo(A,e){e|=0;var r,i=0,f=0;if(0|(i=0|ar[(r=(A|=0)+60|0)>>2])){A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}if((0|A)!=(0|r)&&(0|ar[A+16>>2])<=(0|e))return 0|(e=(0|(e=A))!=(0|r))}return 0|(e=(0|(e=r))!=(0|r))}function Xo(A,e){e|=0;var r,i=0,f=0;if(!(i=0|ar[(r=(A|=0)+60|0)>>2]))return 0|(e=-1);A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}return(0|A)==(0|r)||(0|ar[A+16>>2])>(0|e)?0|(e=-1):0|(e=0|ar[A+24>>2])}function Wo(A,e){e|=0;var r,i=0,f=0;if(!(i=0|ar[(r=(A|=0)+60|0)>>2]))return 0|(e=-1);A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}return(0|A)==(0|r)||(0|ar[A+16>>2])>(0|e)?0|(e=-1):0|(e=0|ar[A+28>>2])}function Io(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;if(ar[(i=(A|=0)+4|0)>>2]=0,n=A+4|(ar[(f=A+8|0)>>2]=0),ar[A>>2]=n,(0|(t=0|ar[e+56>>2]))!=(0|(r=e+60|0)))for(l=t,e=0;;){c=l+16|0;do{if(e){for(a=0|ar[c>>2],o=i;;){if((0|a)<(0|(t=0|ar[e+16>>2]))){if(!(t=0|ar[e>>2])){t=9;break}}else{if((0|a)<=(0|t)){t=13;break}if(!(t=0|ar[(o=e+4|0)>>2])){t=12;break}e=o}o=e,e=t}if(9==(0|t)){o=a=e;break}if(12==(0|t)){a=e;break}if(13==(0|t)){a=e;break}}else o=a=n}while(0);if(0|ar[o>>2]||(e=0|hu(20),ar[e+16>>2]=ar[c>>2],ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=a,ar[o>>2]=e,(t=0|ar[ar[A>>2]>>2])&&(ar[A>>2]=t,e=0|ar[o>>2]),so(0|ar[i>>2],e),ar[f>>2]=1+(0|ar[f>>2])),e=0|ar[l+4>>2])for(;t=0|ar[e>>2];)e=t;else if(e=0|ar[(t=l+8|0)>>2],(0|ar[e>>2])!=(0|l))for(;l=0|ar[t>>2],e=0|ar[(t=l+8|0)>>2],(0|ar[e>>2])!=(0|l););if((0|e)==(0|r))break;l=e,e=0|ar[n>>2]}}function Co(A,e){return A|=0,(e|=0)&&(Co(A,0|ar[e>>2]),Co(A,0|ar[e+4>>2]),void vu(e))}function Go(A,e){A|=0;var r,i=0,f=0;if(10==(0|(e|=0)))switch(0|ar[A+36>>2]){case 11:return 0|(e=32);case 14:case 12:return 0|(e=48);case 15:case 13:return 0|(e=64);case 10:return 0|(e=24);default:return 0|(e=-1)}if(i=0|ar[(r=A+60|0)>>2]){A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}A=(0|A)!=(0|r)&&(0|ar[A+16>>2])<=(0|e)?0|tr[A+20>>0]:-1}else A=-1;return 256<=(A=7+(255&A)&504)>>>0&&sr(25764,25597,362,25775),0|(e=255&A)}function Vo(A,e){e|=0;var r,i=0,f=0;if(!(i=0|ar[(r=(A|=0)+60|0)>>2]))return 0|(e=-1);A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}return(0|A)==(0|r)||(0|ar[A+16>>2])>(0|e)?0|(e=-1):0|(e=0|tr[A+20>>0])}function Fo(A,e,r){e|=0,r|=0;var i,f=0,n=0;if(!(f=0|ar[(i=(A|=0)+60|0)>>2]))return(r=0)|r;A=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>=(0|e));)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){A=f;break}A=f}return(0|A)==(0|i)||(0|ar[A+16>>2])>(0|e)?(r=0)|r:(0|r&&(ar[r>>2]=ar[A+48>>2]),0|(r=0|ar[A+40>>2]))}function Ro(A,e,r){e|=0,r|=0;var i,f=0,n=0;if(!(f=0|ar[(i=(A|=0)+60|0)>>2]))return(r=0)|r;A=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>=(0|e));)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){A=f;break}A=f}return(0|A)==(0|i)||(0|ar[A+16>>2])>(0|e)?(r=0)|r:(0|r&&(ar[r>>2]=ar[A+48>>2]),0|(r=0|ar[A+40>>2]))}function No(A,e,r,i){A|=0,r|=0,i|=0;var f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(b=60+(0|ar[(e|=0)>>2])|0,l=0==(0|(u=0|ar[b>>2])))d=n=s=-1;else{n=b,o=u;A:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(o=0|ar[t>>2])){n=t;break}n=t}if(c=(0|n)!=(0|b)&&(0|ar[n+16>>2])<=(0|r)?0|ar[n+24>>2]:-1,l)s=c,d=n=-1;else{n=b,o=u;A:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(o=0|ar[t>>2])){n=t;break}n=t}if(a=(0|n)!=(0|b)&&(0|ar[n+16>>2])<=(0|r)?0|ar[n+28>>2]:-1,l)s=c,n=-1,d=a;else{n=b,o=u;A:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(o=0|ar[t>>2])){n=t;break}n=t}d=(n=(0|n)!=(0|b)&&(0|ar[n+16>>2])<=(0|r)?(s=c,0|tr[n+20>>0]):(s=c,-1),a)}}}if(Bo(A,i,s,d,255&n),l=0|ar[e>>2],u=0==(0|(o=0|ar[(f=l+60|0)>>2])))b=e=0;else{n=f,a=o;A:for(;;){for(t=a;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(a=0|ar[t>>2])){n=t;break}n=t}b=(0|n)!=(0|f)&&(0|ar[n+16>>2])<=(0|r)?(e=0|ar[n+40>>2],0|ar[n+48>>2]):e=0}if(t=0|ar[(c=A+60|0)>>2]){n=c;A:for(;;){for(a=t;!((0|ar[a+16>>2])>=(0|i));){if(!(t=0|ar[a+4>>2]))break A;a=t}if(!(t=0|ar[a>>2])){n=a;break}n=a}a=(0|n)!=(0|c)&&(0|ar[n+16>>2])<=(0|i)?(c=0|ar[n+40>>2],0|ar[n+48>>2]):c=0}else a=c=0;A:do{if(10!=(0|r)){if(u)n=-1;else{n=f;e:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break e;if(!(o=0|ar[t>>2])){n=t;break}n=t}n=(0|n)!=(0|f)&&(0|ar[n+16>>2])<=(0|r)?0|tr[n+20>>0]:-1}if((n=7+(255&n)|0)>>>0<256){k=(255&n)>>>3;break}sr(25764,25597,362,25775)}else switch(0|ar[l+36>>2]){case 10:k=3;break A;case 11:k=4;break A;case 14:case 12:k=6;break A;case 15:case 13:k=8;break A;default:k=31;break A}}while(0);if(t=0|br(255&k,s),0<(0|d))for(n=0;hb(c+(0|br(n,a))|0,e+(0|br(n,b))|0,0|t),(0|(n=n+1|0))!=(0|d););}function _o(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;ur=(t=ur)+64|0,f=t+32|0,n=t,u=(s=0|ar[(e|=0)>>2])+56|0,b=0|ar[(o=s+60|0)>>2];do{if(b){for(c=s+60|0,o=b;;)if((0|r)<(0|(a=0|ar[o+16>>2]))){if(!(a=0|ar[o>>2])){a=6;break}c=o,o=a}else{if((0|r)<=(0|a)){a=10;break}if(!(a=0|ar[(c=o+4|0)>>2])){a=9;break}o=a}if(6==(0|a)){c=l=o;break}if(9==(0|a)){l=o;break}if(10==(0|a)){l=o;break}}else c=l=o}while(0);if((o=0|ar[c>>2])||(a=0|hu(52),ar[a+16>>2]=r,ar[(o=a+20|0)>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,ar[o+16>>2]=0,ar[o+20>>2]=0,ar[o+24>>2]=0,ar[o+28>>2]=0,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=l,ar[c>>2]=a,o=(o=0|ar[ar[u>>2]>>2])?(ar[u>>2]=o,0|ar[c>>2]):a,so(0|ar[s+60>>2],o),ar[(b=s+64|0)>>2]=1+(0|ar[b>>2]),b=0|ar[e>>2],o=a,b=0|ar[(s=b)+60>>2]),u=o+20|0,ar[f>>2]=ar[u>>2],ar[4+f>>2]=ar[u+4>>2],ar[8+f>>2]=ar[u+8>>2],ar[12+f>>2]=ar[u+12>>2],ar[16+f>>2]=ar[u+16>>2],ar[20+f>>2]=ar[u+20>>2],ar[24+f>>2]=ar[u+24>>2],ar[28+f>>2]=ar[u+28>>2],u=s+56|0,l=s+60|0,0|b){c=l,a=b;A:for(;;){for(o=a;!((0|ar[o+16>>2])>=(0|r));)if(!(o=0|ar[o+4>>2]))break A;if(!(a=0|ar[o>>2])){c=o;break}c=o}if((0|c)!=(0|l)&&(0|ar[c+16>>2])<=(0|r)){if(o=0|ar[c+4>>2])for(;a=0|ar[o>>2];)o=a;else if(o=0|ar[(a=c+8|0)>>2],(0|ar[o>>2])!=(0|c))for(;r=0|ar[a>>2],o=0|ar[(a=r+8|0)>>2],(0|ar[o>>2])!=(0|r););(0|ar[u>>2])==(0|c)&&(ar[u>>2]=o),ar[(r=s+64|0)>>2]=(0|ar[r>>2])-1,function(A,e){A|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(t=0|ar[(e|=0)>>2])if(n=0|ar[e+4>>2])for(;;){if(!(t=0|ar[n>>2])){t=0;break}n=t}else n=e;else n=e,t=0;r=n+4|0,i=0|ar[(0|t?n:r)>>2],l=n+8|0,(f=0!=(0|i))&&(ar[8+i>>2]=ar[l>>2]);t=0|ar[l>>2],(0|ar[t>>2])==(0|n)?(ar[t>>2]=i,(0|n)==(0|A)?(A=i,c=0):(t=t+4|0,u=10)):(ar[t+4>>2]=i,u=10);10==(0|u)&&(c=0|ar[t>>2]);a=0!=(0|tr[(o=n+12|0)>>0]),(0|n)!=(0|e)&&(t=0|ar[(u=e+8|0)>>2],ar[l>>2]=t,ar[((0|ar[ar[u>>2]>>2])==(0|e)?t:t+4|0)>>2]=n,t=0|ar[e>>2],ar[n>>2]=t,ar[t+8>>2]=n,t=0|ar[e+4>>2],0|(ar[r>>2]=t)&&(ar[t+8>>2]=n),tr[o>>0]=0|tr[e+12>>0],A=(0|A)==(0|e)?n:A);if(!(a&0!=(0|A)))return;if(f)return tr[12+i>>0]=1;for(;;){if(a=0|ar[c+8>>2],t=0!=(0|tr[(n=c+12|0)>>0]),(0|ar[a>>2])==(0|c)){if(t?l=c:(tr[n>>0]=1,tr[a+12>>0]=0,n=0|ar[a>>2],o=0|ar[(t=n+4|0)>>2],0|(ar[a>>2]=o)&&(ar[o+8>>2]=a),u=a+8|0,ar[n+8>>2]=ar[u>>2],l=0|ar[u>>2],ar[((0|ar[l>>2])==(0|a)?l:l+4|0)>>2]=n,ar[t>>2]=a,ar[u>>2]=n,u=0|ar[c+4>>2],l=0|ar[u>>2],A=(0|A)==(0|u)?c:A),n=0|ar[l>>2],!(o=0==(0|n))&&0==(0|tr[n+12>>0])){A=l,u=55;break}if(0|(a=0|ar[(t=l+4|0)>>2])&&0==(0|tr[a+12>>0])){u=49;break}if(((tr[l+12>>0]=0)|(n=0|ar[l+8>>2]))==(0|A)|0==(0|tr[(t=n+12|0)>>0])){u=48;break}}else{if(t?o=c:(tr[n>>0]=1,tr[a+12>>0]=0,n=0|ar[(u=a+4|0)>>2],t=0|ar[n>>2],0|(ar[u>>2]=t)&&(ar[t+8>>2]=a),u=a+8|0,ar[n+8>>2]=ar[u>>2],o=0|ar[u>>2],ar[((0|ar[o>>2])==(0|a)?o:o+4|0)>>2]=n,ar[n>>2]=a,ar[u>>2]=n,u=0|ar[c>>2],o=0|ar[u+4>>2],A=(0|A)==(0|u)?c:A),0|(t=0|ar[o>>2])&&0==(0|tr[t+12>>0])){u=31;break}if(0|(n=0|ar[o+4>>2])&&0==(0|tr[n+12>>0])){A=n,u=32;break}if(((tr[o+12>>0]=0)|(n=0|ar[o+8>>2]))==(0|A)){u=30;break}if(!(0|tr[n+12>>0])){A=n,u=30;break}}c=0|ar[n+8>>2],c=0|ar[((0|ar[c>>2])==(0|n)?c+4|0:c)>>2]}do{if(30==(0|u))return tr[A+12>>0]=1;if(31==(0|u))A=0|ar[o+4>>2],u=A?32:33;else{if(48==(0|u))return tr[t>>0]=1;if(49==(0|u)){if(o)A=a;else{if(!(0|tr[n+12>>0])){A=l,u=55;break}A=0|ar[(t=A=l+4|0)>>2]}tr[A+12>>0]=1,tr[l+12>>0]=0,n=0|ar[A>>2],0|(ar[t>>2]=n)&&(ar[n+8>>2]=l),n=l+8|0,ar[A+8>>2]=ar[n>>2],u=0|ar[n>>2],ar[((0|ar[u>>2])==(0|l)?u:u+4|0)>>2]=A,ar[A>>2]=l,ar[n>>2]=A,n=l,u=55}}}while(0);if(32==(0|u))0|tr[A+12>>0]?u=33:n=o;else if(55==(0|u))return o=0|ar[A+8>>2],t=o+12|0,tr[A+12>>0]=0|tr[t>>0],tr[t>>0]=1,tr[n+12>>0]=1,A=0|ar[o>>2],t=0|ar[(n=A+4|0)>>2],0|(ar[o>>2]=t)&&(ar[t+8>>2]=o),u=o+8|0,ar[A+8>>2]=ar[u>>2],e=0|ar[u>>2],ar[((0|ar[e>>2])==(0|o)?e:e+4|0)>>2]=A,ar[n>>2]=o,ar[u>>2]=A;33==(0|u)&&(tr[t+12>>0]=1,tr[o+12>>0]=0,n=0|ar[(A=t+4|0)>>2],0|(ar[o>>2]=n)&&(ar[n+8>>2]=o),n=o+8|0,ar[t+8>>2]=ar[n>>2],u=0|ar[n>>2],ar[((0|ar[u>>2])==(0|o)?u:u+4|0)>>2]=t,ar[A>>2]=o,ar[n>>2]=t,n=t,A=o);t=0|ar[n+8>>2],u=t+12|0,tr[n+12>>0]=0|tr[u>>0],tr[u>>0]=1,tr[A+12>>0]=1,A=0|ar[(u=t+4|0)>>2],n=0|ar[A>>2],0|(ar[u>>2]=n)&&(ar[n+8>>2]=t);u=t+8|0,ar[A+8>>2]=ar[u>>2],e=0|ar[u>>2],ar[((0|ar[e>>2])==(0|t)?e:e+4|0)>>2]=A,ar[A>>2]=t,ar[u>>2]=A}(b,c),vu(c)}}u=A+56|0,ar[n>>2]=ar[f>>2],ar[n+4>>2]=ar[4+f>>2],ar[n+8>>2]=ar[8+f>>2],ar[n+12>>2]=ar[12+f>>2],ar[n+16>>2]=ar[16+f>>2],ar[n+20>>2]=ar[20+f>>2],ar[n+24>>2]=ar[24+f>>2],ar[n+28>>2]=ar[28+f>>2],o=0|ar[(a=A+60|0)>>2];do{if(o){for(c=A+60|0;;)if((0|i)<(0|(a=0|ar[o+16>>2]))){if(!(a=0|ar[o>>2])){a=36;break}c=o,o=a}else{if((0|i)<=(0|a)){a=40;break}if(!(a=0|ar[(c=o+4|0)>>2])){a=39;break}o=a}if(36==(0|a)){c=l=o;break}if(39==(0|a)){l=o;break}if(40==(0|a)){l=o;break}}else c=l=a}while(0);ur=(0|ar[c>>2]||(o=0|hu(52),ar[o+16>>2]=i,ar[(a=o+20|0)>>2]=ar[n>>2],ar[a+4>>2]=ar[n+4>>2],ar[a+8>>2]=ar[n+8>>2],ar[a+12>>2]=ar[n+12>>2],ar[a+16>>2]=ar[n+16>>2],ar[a+20>>2]=ar[n+20>>2],ar[a+24>>2]=ar[n+24>>2],ar[a+28>>2]=ar[n+28>>2],ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=l,ar[c>>2]=o,(a=0|ar[ar[u>>2]>>2])&&(ar[u>>2]=a,o=0|ar[c>>2]),so(0|ar[A+60>>2],o),ar[(A=A+64|0)>>2]=1+(0|ar[A>>2])),t)}function Yo(A,e){A|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(f=ur)+16|0,r=f,((tr[(e|=0)>>0]=0)|(t=n=0|ar[(i=A+377216|0)>>2]))==(0|(o=b=0|ar[(d=A+377220|0)>>2])))return ur=f,(d=0)|d;u=0|ar[n>>2],a=0|ar[u+10636>>2],b=c=0|ar[u+10632>>2];A:do{if((0|a)!=(0|c)){for(c=a-c>>2,a=0;l=0|ar[b+(a<<2)>>2],a=a+1|0,0|ar[l+40>>2];)if(c>>>0<=a>>>0)break A;if(l){if(0|tr[l+36>>0]&&ra(A+376148|0),tr[e>>0]=1,n=0|Qo(A,u,l))return ur=f,0|(d=n);t=n=0|ar[i>>2],o=0|ar[d>>2];break}}}while(0);if(1>2>>>0?(u=0|ar[n>>2],(0|(b=0|ar[u+10636>>2]))!=(0|ar[u+10632>>2])&&0==(0|ar[40+(0|ar[b+-4>>2])>>2])&&(s=14)):s=14,14==(0|s)){if((0|o)==(0|(n=s=0|ar[i>>2])))return ur=f,(d=0)|d;if(b=0|ar[n>>2],(0|(s=0|ar[b+10636>>2]))!=(0|ar[b+10632>>2])&&0==(0|ar[40+(0|ar[s+-4>>2])>>2]))return ur=f,(d=0)|d;if((0!=(0|ar[A+556>>2])|0)!=(0-(0|ar[A+580>>2])|0))return ur=f,(d=0)|d;if(0==(0|tr[A+548>>0])&&0==(0|tr[A+549>>0]))return ur=f,(d=0)|d}if(c=0|ar[n>>2],tr[e>>0]=1,n=0|ar[c>>2],0<(0|ar[(o=n+10344|0)>>2])){for(t=n+10524|0,n=0;Tn((0|ar[t>>2])+(80*n|0)|0,1),(0|(n=n+1|0))<(0|ar[o>>2]););a=0|ar[c>>2]}else a=n;n=0|ar[(o=a+10332|0)>>2],t=0==(0|tr[n+532>>0]),0|ar[375892+(0|ar[10332+(0|ar[A+376224>>2])>>2])>>2]?(t?(function(A){var e,r,i,f,n,t,o,a=0,c=0,l=0;if(ur=(o=ur)+16|0,r=o,i=0|ar[(A|=0)>>2],l=0|ar[10332+i>>2],ca(i,ar[(f=5828+i|0)>>2]<<1),n=A+10668|0,t=A+10672|0,l=l+375396|0,e=A+10664|0,0<(0|ar[f>>2])){for(c=0;A=0|hu(20),ar[A+4>>2]=0,ar[A>>2]=9552,ar[A+8>>2]=i,ar[A+12>>2]=c,tr[A+16>>0]=1,ar[r>>2]=A,(a=0|ar[n>>2])>>>0<(0|ar[t>>2])>>>0?(ar[a>>2]=A,ar[n>>2]=4+(0|ar[n>>2])):Oe(e,r),Sn(l,A),(0|(c=c+1|0))<(0|(A=0|ar[f>>2])););if(0<(0|A)){for(A=0;a=0|hu(20),ar[a+4>>2]=0,ar[a>>2]=9552,ar[a+8>>2]=i,ar[a+12>>2]=A,tr[a+16>>0]=0,ar[r>>2]=a,(c=0|ar[n>>2])>>>0<(0|ar[t>>2])>>>0?(ar[c>>2]=a,ar[n>>2]=4+(0|ar[n>>2])):Oe(e,r),Sn(l,a),(0|(A=A+1|0))<(0|ar[f>>2]););ur=o}else ur=o}else ur=o}(c),t=3,n=0|ar[o>>2]):t=1,0|tr[n+533>>0]||function(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if(ur=(n=ur)+16|0,f=n,b=0|ar[(A|=0)>>2],!(0|tr[b+5467>>0]))return ur=n,b=0;if(o=0|ar[(t=b+10332|0)>>2],u=b+10480|0,0|ta(i=A+8|0,0|ar[b+24>>2],0|ar[b+28>>2],0|ar[b+20>>2],b+764|0,0,o,0|ar[b+10336>>2],0|ar[u>>2],0|ar[u+4>>2],0|ar[b+10488>>2],1))return er(4+(0|ar[t>>2])|0,1024,0),ur=n,b=0;if(r=0|ar[b+5828>>2],ca(b,r),0<(0|r))for(l=A+10668|0,u=A+10672|0,c=o+375396|0,o=A+10664|0,t=0;A=0|hu(28),ar[A+4>>2]=0,ar[A>>2]=7752,ar[A+16>>2]=b,ar[A+20>>2]=i,ar[A+12>>2]=b,ar[A+8>>2]=t,ar[A+24>>2]=e,ar[f>>2]=A,(a=0|ar[l>>2])>>>0<(0|ar[u>>2])>>>0?(ar[a>>2]=A,ar[l>>2]=4+(0|ar[l>>2])):Oe(o,f),Sn(c,A),(0|(t=t+1|0))!=(0|r););sa(b),function(A,e){var r,i=0,f=0,n=0;n=(e=e|0)+4|0,f=0|ar[(i=(A=A|0)+4|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+60|0,i=0|ar[(n=A+60|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,i=e+10492|0,n=0|ar[(f=A+10492|0)>>2],ar[f>>2]=ar[i>>2],ar[i>>2]=n,n=e+8|0,f=0|ar[(i=A+8|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+64|0,i=0|ar[(n=A+64|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,i=e+10496|0,n=0|ar[(f=A+10496|0)>>2],ar[f>>2]=ar[i>>2],ar[i>>2]=n,n=e+12|0,f=0|ar[(i=A+12|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+68|0,i=0|ar[(n=A+68|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,i=e+10500|0,n=0|ar[(f=A+10500|0)>>2],ar[f>>2]=ar[i>>2],ar[i>>2]=n,n=e+40|0,f=0|ar[(i=A+40|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+44|0,i=0|ar[(n=A+44|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,e=e+10504|0,i=0|ar[(A=f=A+10504|0)>>2],A=0|ar[A+4>>2],r=0|ar[(n=e)+4>>2],ar[f>>2]=ar[n>>2],ar[f+4>>2]=r,ar[e>>2]=i,ar[e+4>>2]=A}(b,i),ur=n,b=1}(c,t),sa(a)):(t&&(function(A){var e,r,i,f=0,n=0,t=0;if(0<(0|ar[(t=(A|=0)+5828|0)>>2])){for(n=f=0;f=0|f|Zt(A,n),(0|(n=n+1|0))<(0|ar[t>>2]););if(f){i=A+10472|0,pt(A,1,0,0|ar[(r=A+10476|0)>>2],0,0|ar[i>>2]),f=0|ar[r>>2],n=0|ar[i>>2],(8<(0|ar[(e=A+5760|0)>>2])?yt:Bt)(A,1,0,f,0,n),t=A+5776|0;do{if(0|ar[t>>2]){if(f=0|ar[r>>2],n=0|ar[i>>2],8<(0|ar[A+5768>>2])){Et(A,1,0,f,0,n);break}Xt(A,1,0,f,0,n);break}}while(0);if(pt(A,0,0,0|ar[r>>2],0,0|ar[i>>2]),f=0|ar[r>>2],n=0|ar[i>>2],(8<(0|ar[e>>2])?yt:Bt)(A,0,0,f,0,n),0|ar[t>>2])n=0|ar[r>>2],f=0|ar[i>>2],8<(0|ar[A+5768>>2])?Et(A,0,0,n,0,f):Xt(A,0,0,n,0,f)}}}(a),n=0|ar[o>>2]),0|tr[n+533>>0]||function(A){var e,r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0;if(!(0|tr[5467+(A|=0)>>0]))return;d=A+40|0,C=0|br(0|ar[(k=A+28|0)>>2],0|ar[d>>2]),C=0|br(C,(7+(0|ar[(h=A+5760|0)>>2])|0)/8|0),e=A+44|0,V=0|br(0|ar[(r=A+36|0)>>2],0|ar[e>>2]),V=0|br(V,(7+(0|ar[(i=A+5768|0)>>2])|0)/8|0),V=0|wu(-1<(0|(V=(0|V)<(0|C)?C:V))?V:-1),C=0==(0|ar[A+5776>>2])?1:3,n=A+5820|0,t=A+10352|0,o=A+10340|0,a=A+48|0,c=A+52|0,l=A+5804|0,u=A+4|0,b=A+5780|0,s=A+5784|0,w=0|ar[(f=A+5828|(G=0))>>2];A:for(;;){if(B=0|ar[(X=(W=0==(0|G))?d:e)>>2],I=A+4+(G<<2)|0,y=0|br(0|ar[(W?k:r)>>2],B),E=W?h:i,hb(0|V,0|ar[I>>2],0|br(y,(7+(0|ar[E>>2])|0)/8|0)),0<(0|w))for(w=(y=0)|ar[n>>2];;){if(0<(0|w))for(p=0;;){if(w=(0|br(0|ar[t>>2],y))+p|0,w=0|lr[(0|ar[o>>2])+(24*w|0)+2>>1],v=0|ar[a>>2],w>>>0>=(0|ar[c>>2])-v>>2>>>0){w=21;break A}if(!(Z=0|ar[v+(w<<2)>>2])){w=21;break A}do{if(W){if(0|tr[Z+325>>0]){if(v=1<>2],m=0|ar[u>>2],w=0|ar[d>>2],8<(0|ar[h>>2])){Ra(A,p,y,Z,0,v,v,V,B,m,w);break}Na(A,p,y,Z,0,v,v,V,B,m,w);break}}else if(0|tr[Z+326>>0]){if(m=1<>2],v=(0|m)/(0|ar[b>>2])|0,m=(0|m)/(0|ar[s>>2])|0,g=0|ar[I>>2],w=0|ar[X>>2],8<(0|ar[E>>2])){Ra(A,p,y,Z,G,v,m,V,B,g,w);break}Na(A,p,y,Z,G,v,m,V,B,g,w);break}}while(0);if(p=p+1|0,(0|(w=0|ar[n>>2]))<=(0|p)){v=w;break}}else v=w;if(y=y+1|0,(0|(w=0|ar[f>>2]))<=(0|y))break;w=v}if((0|C)<=(0|(G=G+1|0))){w=20;break}}{if(20==(0|w))return mu(V);if(21==(0|w));}}(a)),a=c+10648|0,n=0|ar[(o=c+10644|0)>>2];A:do{if((0|ar[a>>2])==(0|n))a=0;else for(t=0;;){if(n=0|Qa(n+(80*t|0)|0,0|ar[c>>2]),t=t+1|0,0|n){a=n;break A}if(n=0|ar[o>>2],t>>>0>=(((0|ar[a>>2])-n|0)/80|0)>>>0){a=0;break}}}while(0);if(0|(n=0|ar[c>>2])){do{if(0|tr[n+100>>0]){if(0|tr[n+10516>>0]&&0|tr[A+514>>0])break;ar[r>>2]=n,(0|(o=0|ar[(t=A+376172|0)>>2]))==(0|ar[A+376176>>2])?Do(A+376168|0,r):(ar[o>>2]=n,ar[t>>2]=4+(0|ar[t>>2]))}}while(0);((0|ar[A+376172>>2])-(0|ar[A+376168>>2])>>2|0)>(0|ar[n+596+(12*((0|ar[n+116>>2])-1|0)|0)+4>>2])&&Aa(A+376148|0)}if(Te(c),vu(c),1<(n=0|ar[d>>2])-(t=0|ar[i>>2])>>2>>>0)for(o=1;ar[(n=t)+(o+-1<<2)>>2]=ar[n+(o<<2)>>2],(o=o+1|0)>>>0<(n=0|ar[d>>2])-(t=0|ar[i>>2])>>2>>>0;);return ar[d>>2]=n+-4,ur=f,0|(d=a)}function Qo(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(l=(u=0|ar[(f=(r|=0)+4|0)>>2])+1344|0,u=u+1348|0,t=0|ar[l>>2],(0|ar[u>>2])!=(0|t))for(a=A+376148|0,c=A+376156|0,o=0;-1<(0|(t=0|$o(a,0|ar[t+(o<<2)>>2])))&&(ar[96+(0|ar[(0|ar[c>>2])+(t<<2)>>2])>>2]=0),o=o+1|0,t=0|ar[l>>2],o>>>0<(0|ar[u>>2])-t>>2>>>0;);u=0|ar[e>>2],ar[(i=r+40|0)>>2]=1,c=0|ar[u+10332>>2];A:do{if(0<(0|ar[c+375892>>2]))if(l=(k=0|tr[u+5965>>0])<<24>>24!=0,t=(h=0|tr[u+5966>>0])<<24>>24!=0,(k|h)<<24>>24)d=t;else{if(0<(0|(a=0|ar[(o=c+168|0)>>2]))){t=0;do{if(1e3==(0|ar[c+88+(t<<2)>>2])){d=0;break A}t=t+1|0}while((0|t)<(0|a));(0|a)<20&&(v=12)}else v=12;12==(0|v)&&(ar[o>>2]=a+1,ar[c+88+(a<<2)>>2]=1e3),20==(0|(t=0|ar[(o=c+84|0)>>2]))?(o=1001,t=19):(ar[o>>2]=t+1,o=1e3),ar[c+4+(t<<2)>>2]=o,d=0}else l=d=0}while(0);if(k=e+10632|0,(0|(t=0|ar[(h=e+10636|0)>>2]))!=(0|(o=0|ar[k>>2]))){if((0|ar[o>>2])==(0|r)&&0<(0|(b=0|ar[16+(0|ar[f>>2])>>2]))){for(o=u+10524|0,t=0;Tn((0|ar[o>>2])+(80*t|0)|0,1),(0|(t=t+1|0))!=(0|b););o=0|ar[k>>2],t=0|ar[h>>2]}}else o=t;a=t-o>>2;A:do{if(1>>0){for(t=1;(0|ar[o+(t<<2)>>2])!=(0|r);)if(a>>>0<=(t=t+1|0)>>>0)break A;if(0|(c=0|ar[o+(t+-1<<2)>>2])&&2==(0|ar[c+40>>2])){a=a+-1|0,t=0;do{if(a>>>0<=t>>>0)break A;t=(b=t)+1|0}while((0|ar[o+(b<<2)>>2])!=(0|c));if(0|(t=0|ar[o+(t<<2)>>2])&&(0|(n=0|ar[16+(0|ar[c+4>>2])>>2]))<(0|ar[16+(0|ar[(s=t+4|0)>>2])>>2]))do{if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2]))break A;Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),n=n+1|0}while((0|n)<(0|ar[16+(0|ar[s>>2])>>2]))}}}while(0);if(!(l|d)){a=0|function(A,e,r){A|=0,e|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(n=ur)+18624|0,f=n,t=0|ar[(i=4+(r|=0)|0)>>2],b=t+1348|0,o=0|ar[(u=t+1344|0)>>2],(0|ar[b>>2])!=(0|o)){for(c=A+376148|0,l=A+376156|0,a=0,t=o;-1<(0|(t=0|$o(c,0|ar[t+(a<<2)>>2])))&&(ar[96+(0|ar[(0|ar[l>>2])+(t<<2)>>2])>>2]=0),a=a+1|0,t=0|ar[u>>2],a>>>0<(0|ar[b>>2])-t>>2>>>0;);t=0|ar[i>>2]}if(b=0|ar[e>>2],(0|ar[t+16>>2])>>>0>=(0|ar[b+10276>>2])-(0|ar[b+10272>>2])>>2>>>0)return ur=n,0|(s=6);if(st(b=f+18580|0),t=f+48|0,ar[(u=f+18508|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,vb(0|(ar[f+2112>>2]=t),0,2048),t=0|ar[i>>2],ar[f+18600>>2]=t,u=0|ar[e>>2],ar[f+18596>>2]=u,ar[f+18592>>2]=A,ar[f+18604>>2]=e,ar[f+18608>>2]=r,ar[f+4>>2]=ar[(0|ar[u+10272>>2])+(ar[t+16>>2]<<2)>>2],Se(ar[f+18612>>2]=0,f),(0|(t=0|ar[r+12>>2]))<1)t=17;else{nt(f+18556|0,0|ar[r+8>>2],t);do{if(0|tr[A+93817>>0]&&0|tr[4+(0|ar[i>>2])>>0]){if(u=e+10676|0,c=(0|ar[5828+(0|ar[A+376224>>2])>>2])-1|0,t=0|ar[(l=e+10680|0)>>2],o=0|ar[u>>2],(a=t-o>>3)>>>0>>0){Jo(u,c-a|0);break}if(c>>>0>>0&&(0|t)!=(0|(s=o+(c<<3)|0)))for(;e=t+-8|0,kt(ar[l>>2]=e),(0|(t=0|ar[l>>2]))!=(0|s););}}while(0);ar[r+124>>2]=1,t=0|function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0;l=0|ar[18596+(A|=0)>>2],a=0|ar[A+4>>2],o=0|ar[l+5836>>2],c=0|ar[l+5820>>2],(0|a)<(0|o)&&(o=0|ar[(0|ar[l+10284>>2])+(a<<2)>>2]);if(ar[A>>2]=o,ar[A+8>>2]=(0|o)%(0|c)|0,ar[A+12>>2]=(0|o)/(0|c)|0,a=0|ar[(i=A+18600|0)>>2],!(0|Da(A)))return 0|(A=18);tt(f=A+18556|0),n=A+18560|0,t=A+18592|0,l=l+5966|0,e=A+18580|0,r=A+18588|0,a=0==(0|tr[a+12>>(o=0)]);for(;;){do{if(0<(0|o)){if(c=o+-1|0,b=0|ar[i>>2],u=0|ar[b+776>>2],c>>>0<(0|ar[b+780>>2])-u>>2>>>0&&((0|ar[n>>2])-2-(0|ar[f>>2])|0)==(0|ar[u+(c<<2)>>2]))break;er(4+(0|ar[t>>2])|0,1003,1)}}while(0);if(o=o+1|0,2==(2|Ja(A,0,a))){o=0,a=14;break}if(0|tr[l>>0]){if(a=0|ar[i>>2],3<=(c=0|ar[a+796>>2])>>>0){a=12;break}ht(e,c,0|ar[a+792>>2]),tr[r>>0]=0,tr[1+r>>0]=0,tr[2+r>>0]=0,tr[3+r>>0]=0,a=0}else a=0}if(12==(0|a))sr(39211,39242,1508,39251);else if(14==(0|a))return 0|o;return 0}(f),Tn(r+44|0,1)}return kt(b),ur=n,0|(s=t)}(A,e,r),ar[i>>2]=2,o=0|ar[k>>2],t=((0|ar[h>>2])-o>>2)-1|0,n=0;do{if(t>>>0<=n>>>0){w=a,v=60;break}n=(s=n)+1|0}while((0|ar[o+(s<<2)>>2])!=(0|r));if(60==(0|v))return 0|w;if(!(n=0|ar[o+(n<<2)>>2]))return 0|(e=a);if(!((0|(t=0|ar[16+(0|ar[f>>2])>>2]))<(0|ar[16+(0|ar[(o=n+4|0)>>2])>>2])))return 0|(e=a);for(n=t;;){if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2])){w=a,v=60;break}if(Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),(0|(n=n+1|0))>=(0|ar[16+(0|ar[o>>2])>>2])){w=a,v=60;break}}if(60==(0|v))return 0|w}if(l&d)return 0|(e=1006);if(l){!function(A,e,r){A|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0;ur=(a=ur)+16|0,t=a,o=0|ar[(e|=0)>>2],n=0|ar[r+4>>2],f=0|ar[768+n>>2],h=1+f|0,i=0|ar[5820+o>>2],(0|ar[10536+o>>2])!=(0-(0|ar[10532+o>>2])|0)&&sr(34762,34700,989,34867);do{if(0|tr[4+n>>0]){if(l=e+10676|0,u=(0|ar[5828+o>>2])-1|0,c=0|ar[(d=e+10680|0)>>2],b=0|ar[l>>2],(s=c-b>>3)>>>0>>0){Jo(l,u-s|0);break}if(u>>>0>>0&&(0|c)!=(0|(k=b+(u<<3)|0)))for(;X=c+-8|0,kt(ar[d>>2]=X),(0|(c=0|ar[d>>2]))!=(0|k););}}while(0);Ue(r,h),c=0|ar[16+n>>2],s=(0|c)/(0|i)|0;A:do{if(0<=(0|f)){if(m=r+140|0,g=r+136|0,Z=10332+o|0,p=10272+o|0,y=r+12|0,B=r+8|0,E=r+124|0,X=A+375396|0,v=776+n|0,!f){if((0|ar[m>>2])<=0&&sr(34817,34837,170,34848),u=0|ar[g>>2],ar[u+18600>>2]=n,ar[u+18592>>2]=ar[Z>>2],ar[u+18596>>2]=o,ar[(l=u+18604|0)>>2]=e,ar[u+18608>>2]=r,ar[u+4>>2]=ar[(0|ar[p>>2])+(c<<2)>>2],Se(0,u),(0|(c=0|ar[y>>2]))<=0)break;nt(u+18556|0,0|ar[B>>2],c),ca(o,1),ar[E>>2]=1+(0|ar[E>>2]),b=0|hu(20),ar[b+4>>2]=0,ar[b>>2]=7972,tr[b+8>>0]=1,ar[b+16>>2]=u,ar[b+12>>2]=s,ar[u+18612>>2]=b,Sn(X,b),c=0|ar[l>>2],ar[t>>2]=b,(u=0|ar[(l=c+10668|0)>>2])>>>0<(0|ar[c+10672>>2])>>>0?(ar[u>>2]=b,ar[l>>2]=4+(0|ar[l>>2])):Oe(c+10664|0,t);break}for(l=s,w=0;;){if((0|w)<=0){if((0|c)%(0|i)|0)break A}else c=0|br(l=c=l+1|0,i);if((0|ar[m>>2])<=(0|w))break;if(s=0|ar[g>>2],d=s+(18624*w|0)|0,ar[s+(18624*w|0)+18600>>2]=n,ar[s+(18624*w|0)+18592>>2]=ar[Z>>2],ar[s+(18624*w|0)+18596>>2]=o,ar[(k=s+(18624*w|0)+18604|0)>>2]=e,ar[s+(18624*w|0)+18608>>2]=r,ar[s+(18624*w|0)+4>>2]=ar[(0|ar[p>>2])+(c<<2)>>2],Se(0,d),b=(h=0==(0|w))?0:0|ar[(0|ar[v>>2])+(w+-1<<2)>>2],u=(0|w)==(0|f)?y:(0|ar[v>>2])+(w<<2)|0,u=0|ar[u>>2],(0|b)<0)break A;if(!((0|b)<(0|u)&&(0|u)<=(0|ar[y>>2])))break A;if(nt(s+(18624*w|0)+18556|0,(0|ar[B>>2])+b|0,u-b|0),ca(o,1),ar[E>>2]=1+(0|ar[E>>2]),A=0|hu(20),ar[A+4>>2]=0,ar[A>>2]=7972,tr[A+8>>0]=1&h,ar[A+16>>2]=d,ar[A+12>>2]=l,ar[s+(18624*w|0)+18612>>2]=A,Sn(X,A),s=0|ar[k>>2],ar[t>>2]=A,(b=0|ar[(u=s+10668|0)>>2])>>>0<(0|ar[s+10672>>2])>>>0?(ar[b>>2]=A,ar[u>>2]=4+(0|ar[u>>2])):Oe(s+10664|0,t),!((0|w)<(0|f)))break A;w=w+1|0}sr(34817,34837,170,34848)}}while(0);if(sa(o),d=e+10664|0,l=0|ar[(k=e+10668|0)>>2],b=0|ar[d>>2],(0|(c=l))!=(0|(u=b))){for(s=0;(u=0|ar[u+(s<<2)>>2])&&(is[511&ar[4+(0|ar[u>>2])>>2]](u),c=0|ar[k>>2],b=0|ar[d>>2],l=c),(s=s+1|0)>>>0>2>>>0;);l=b}ur=((0|c)!=(0|u)&&(ar[k>>2]=c+(~((c+-4-l|0)>>>2)<<2)),a)}(A,e,r),ar[i>>2]=2,o=0|ar[k>>2],t=((0|ar[h>>2])-o>>2)-1|0,n=0;do{if(t>>>0<=n>>>0){w=0,v=60;break}n=(s=n)+1|0}while((0|ar[o+(s<<2)>>2])!=(0|r));if(60==(0|v))return 0|w;if(!(n=0|ar[o+(n<<2)>>2]))return(e=0)|e;if(!((0|(t=0|ar[16+(0|ar[f>>2])>>2]))<(0|ar[16+(0|ar[(o=n+4|0)>>2])>>2])))return(e=0)|e;for(n=t;;){if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2])){w=0,v=60;break}if(Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),(0|(n=n+1|0))>=(0|ar[16+(0|ar[o>>2])>>2])){w=0,v=60;break}}if(60==(0|v))return 0|w}d||sr(55739,34700,971,34735),a=0|function(A,e,r){A|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0;ur=(a=ur)+16|0,f=a,n=0|ar[(e|=0)>>2],t=0|ar[r+4>>2],o=0|ar[768+t>>2],i=0|ar[5820+n>>2],(0|ar[10536+n>>2])!=(0-(0|ar[10532+n>>2])|0)&&sr(34762,34700,1103,34793);Ue(r,1+o|0),c=0|ar[16+t>>2];A:do{if((0|o)<0)C=0;else{for(g=5968+n|0,Z=5972+n|0,p=r+140|0,y=r+136|0,B=10332+n|0,E=10272+n|0,X=r+12|0,W=r+8|0,I=r+124|0,v=A+375396|0,m=776+t|0,l=c,A=0|ar[(0|ar[10308+n>>2])+(c<<2)>>2],w=0;;){if(0<(0|w)){if(c=A+1|0,A=0|ar[g>>2],(0|c)>=(0|br(0|ar[Z>>2],A))){C=1007;break A}l=(0|br(0|ar[10228+n+(((0|c)/(0|A)|0)<<2)>>2],i))+(0|ar[10184+n+(((0|c)%(0|A)|0)<<2)>>2])|0,A=c}if((0|ar[p>>2])<=(0|w))break;if(b=0|ar[y>>2],s=b+(18624*w|0)|0,ar[b+(18624*w|0)+18600>>2]=t,ar[b+(18624*w|0)+18592>>2]=ar[B>>2],ar[b+(18624*w|0)+18596>>2]=n,ar[(d=b+(18624*w|0)+18604|0)>>2]=e,ar[b+(18624*w|0)+18608>>2]=r,ar[b+(18624*w|0)+4>>2]=ar[(0|ar[E>>2])+(l<<2)>>2],Se(0,s),u=(k=0==(0|w))?0:0|ar[(0|ar[m>>2])+(w+-1<<2)>>2],c=(0|w)==(0|o)?X:(0|ar[m>>2])+(w<<2)|0,c=0|ar[c>>2],(0|u)<0){C=17;break A}if(!((0|u)<(0|c)&&(0|c)<=(0|ar[X>>2]))){C=17;break A}if(nt(b+(18624*w|0)+18556|0,(0|ar[W>>2])+u|0,c-u|0),ca(n,1),ar[I>>2]=1+(0|ar[I>>2]),h=0|hu(24),ar[h+4>>2]=0,ar[h>>2]=7932,tr[h+8>>0]=1&k,ar[h+20>>2]=s,ar[h+12>>2]=(0|l)%(0|i)|0,ar[h+16>>2]=(0|l)/(0|i)|0,ar[b+(18624*w|0)+18612>>2]=h,Sn(v,h),c=0|ar[d>>2],ar[f>>2]=h,(b=0|ar[(u=c+10668|0)>>2])>>>0<(0|ar[c+10672>>2])>>>0?(ar[b>>2]=h,ar[u>>2]=4+(0|ar[u>>2])):Oe(c+10664|0,f),!((0|w)<(0|o))){C=0;break A}w=w+1|0}sr(34817,34837,170,34848)}}while(0);if(sa(n),s=e+10664|0,c=0|ar[(d=e+10668|0)>>2],u=0|ar[s>>2],(0|(A=c))!=(0|(l=u))){for(b=0;(l=0|ar[l+(b<<2)>>2])&&(is[511&ar[4+(0|ar[l>>2])>>2]](l),A=0|ar[d>>2],u=0|ar[s>>2],c=A),(b=b+1|0)>>>0>2>>>0;);c=u}return ur=((0|A)!=(0|l)&&(ar[d>>2]=A+(~((A+-4-c|0)>>>2)<<2)),a),0|C}(A,e,r),ar[i>>2]=2,o=0|ar[k>>2],t=((0|ar[h>>2])-o>>2)-1|0,n=0;do{if(t>>>0<=n>>>0){w=a,v=60;break}n=(A=n)+1|0}while((0|ar[o+(A<<2)>>2])!=(0|r));if(60==(0|v))return 0|w;if(!(t=0|ar[o+(n<<2)>>2]))return 0|(e=a);if((0|(n=0|ar[16+(0|ar[f>>2])>>2]))>=(0|ar[16+(0|ar[(o=t+4|0)>>2])>>2]))return 0|(e=a);for(;;){if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2])){w=a,v=60;break}if(Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),(0|(n=n+1|0))>=(0|ar[16+(0|ar[o>>2])>>2])){w=a,v=60;break}}return 60==(0|v)?0|w:0}function Do(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function Jo(A,e){var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((e|=0)>>>0<=(t=0|ar[(i=(A|=0)+8|0)>>2])-(f=0|ar[(l=A+4|0)>>2])>>3>>>0)for(;st(f),f=8+(0|ar[l>>2])|0,ar[l>>2]=f,0!=(0|(e=e+-1|0)););else{536870911<(f=(o=f-(n=0|ar[A>>2])>>3)+e|0)>>>0&&zl(),c=(a=t-n|0)>>2,f=a>>3>>>0<268435455?c>>>0>>0?f:c:536870911;do{if(f){if(!(536870911>>0)){n=0|hu(f<<3);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else n=0}while(0);for(c=n+(f<<3)|0,a=o=r=n+(o<<3)|0,f=r;st(f),a=f=a+8|0,0!=(0|(e=e+-1|0)););if(t=0|ar[A>>2],(0|(f=0|ar[l>>2]))==(0|t))e=o,f=n=t;else{for(n=o,e=r;dt(e+-8|0,f=f+-8|0),n=e=n+-8|0,(0|f)!=(0|t););e=n,n=0|ar[A>>2],f=0|ar[l>>2]}if(ar[A>>2]=e,ar[l>>2]=a,ar[i>>2]=c,(0|f)!=(0|(e=n)))for(;kt(f=f+-8|0),(0|f)!=(0|e););n&&vu(n)}}function Mo(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function To(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t=0,o=0,a=0,c=0;if(0|Lo(t=(e|=0)+376148|0,1)||sr(35044,34700,1433,35080),(0|(n=0|ia(t,0|ar[e+375388>>2],A,0,0,0,0)))<=-1&&sr(35119,34700,1436,35080),A=0|ar[e+376156>>2],A=(0|ar[e+376160>>2])-A>>2>>>0>n>>>0?0|ar[A+(n<<2)>>2]:0,e=1<<(0|ar[r+5004>>2])-1,function(A,e,r,i){A|=0,r|=0,i|=0,-1<(0|(e|=0))&&vb(0|ar[A+4>>2],255&e|0,0|br(0|ar[A+28>>2],0|ar[A+40>>2]));-1<(0|r)&&vb(0|ar[A+8>>2],255&r|0,0|br(0|ar[A+36>>2],0|ar[A+44>>2]));if((0|i)<=-1)return;vb(0|ar[A+12>>2],255&i|0,0|br(0|ar[A+36>>2],0|ar[A+44>>2]))}(A,1<<(0|ar[r+4996>>2])-1,e,e),0<(0|ar[(e=A+10364|0)>>2]))for(o=A+10360|0,t=0;a=(0|ar[o>>2])+(3*t|0)|0,c=-769&(cr[a>>0]|cr[a+1>>0]<<8),tr[a>>0]=c,tr[a+1>>0]=c>>8,(0|(t=t+1|0))<(0|ar[e>>2]););return ar[A+92>>2]=i,ar[A+88>>2]=(0|ar[r+5032>>2])-1&i,tr[A+100>>0]=0,ar[A+96>>2]=f?2:1,tr[A+10516>>0]=1,0|n}function Uo(A,e){A|=0;var r,i,f=0,n=0,t=0,o=0,a=0;if(ur=(i=ur)+112|0,r=i+24|0,t=(o=i)+104|0,function(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;ar[(A|=0)>>2]=e,ar[(i=A+4|0)>>2]=r,ar[(c=a=A+8|0)>>2]=0,ar[c+4>>2]=0,ar[(c=A+16|0)>>2]=0,r?(f=e+1|0,ar[A>>2]=f,n=0|cr[e>>0],o=r+-1|0,ar[i>>2]=o,n=0|db(0|n,0,56),t=D,ar[(l=a)>>2]=n,ar[l+4>>2]=t,o?(o=e+2|0,ar[A>>2]=o,f=0|cr[f>>0],l=r+-2|0,ar[i>>2]=l,f=0|db(0|f,0,48),f|=n,n=t|D,ar[(t=a)>>2]=f,ar[t+4>>2]=n,l?(t=e+3|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-3|0,ar[i>>2]=l,o=0|db(0|o,0,40),o|=f,f=n|D,ar[(n=a)>>2]=o,ar[n+4>>2]=f,l?(n=e+4|0,ar[A>>2]=n,t=0|cr[t>>0],l=r+-4|0,ar[i>>2]=l,f|=t,ar[(t=a)>>2]=o,ar[t+4>>2]=f,l?(t=e+5|0,ar[A>>2]=t,n=0|cr[n>>0],l=r+-5|0,ar[i>>2]=l,n=0|db(0|n,0,24),n|=o,f|=D,ar[(o=a)>>2]=n,ar[o+4>>2]=f,l?(o=e+6|0,ar[A>>2]=o,t=0|cr[t>>0],l=r+-6|0,ar[i>>2]=l,n|=t=0|db(0|t,0,16),f|=D,ar[(t=a)>>2]=n,ar[t+4>>2]=f,l?(t=e+7|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-7|0,ar[i>>2]=l,n|=o=0|db(0|o,0,8),f|=D,ar[(o=a)>>2]=n,ar[o+4>>2]=f,l=l?(ar[A>>2]=e+8,e=0|cr[t>>0],ar[i>>2]=r+-8,ar[(l=a)>>2]=n|e,ar[l+4>>2]=f,64-(l=0)|0):64-(l=8)|0,ar[c>>2]=l):(l=64-(l=16)|0,ar[c>>2]=l)):(l=64-(l=24)|0,ar[c>>2]=l)):(l=64-(l=32)|0,ar[c>>2]=l)):(l=64-(l=40)|0,ar[c>>2]=l)):(l=64-(l=48)|0,ar[c>>2]=l)):(l=64-(l=56)|0,ar[c>>2]=l)):(a=(a=64)-a|0,ar[c>>2]=a)}(o,0|ar[(e|=0)+20>>2],0|ar[e+24>>2]),tr[t>>0]=0,tr[(a=t+1|0)>>0]=0,tr[(f=t+2|0)>>0]=0,function(A,e){A|=0;var r=0;et(e=e|0,1),r=255&(0|At(e,6)),tr[A>>0]=r,r=255&(0|At(e,6)),tr[A+1>>0]=r,e=255+(0|At(e,3))&255,tr[A+2>>0]=e}(t,o),n=0|tr[t>>0],tr[A+377212>>0]=n,tr[A+377213>>0]=(n+-19&255)<2&1,tr[A+377214>>0]=(-8&n)<<24>>24==16&1,0|tr[a>>0])return Ba(A+548|0,e),ur=i,(e=0)|e;if((0|cr[f>>0])>(0|ar[A+375912>>2]))return Ba(A+548|0,e),ur=i,(e=0)|e;if((255&n)<32)return e=0|rr(A,o,e,t),ur=i,0|e;switch(n<<24>>24){case 32:return a=0|ze(A,o),Ba(A+548|0,e),ur=i,0|(e=a);case 33:return a=0|Le(A,o),Ba(A+548|0,e),ur=i,0|(e=a);case 34:return a=0|qe(A,o),Ba(A+548|0,e),ur=i,0|(e=a);case 40:case 39:a=0|function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0;r=0;for(;n=0|At(A,8),r=n+r|0,255==(0|n););f=0;for(;n=0|At(A,8),f=n+f|0,255==(0|n););if(ar[e>>2]=r,ar[e+4>>2]=f,132!=(0|r))return(e=0)|e;if(f=0|At(A,8),ar[(n=e+8|0)>>2]=f,!i)return 0|(e=1025);i=0==(0|ar[i+476>>2])?1:3,r=0;for(;;){switch(0|f){case 0:f=255&(0|At(A,8)),tr[e+12+(r<<4)>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+1>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+2>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+3>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+4>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+5>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+6>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+7>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+8>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+9>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+10>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+11>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+12>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+13>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+14>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+15>>0]=f;break;case 1:f=65535&(0|At(A,16)),or[e+60+(r<<1)>>1]=f;break;case 2:f=0|At(A,32),ar[e+68+(r<<2)>>2]=f}if((0|i)<=(0|(r=r+1|0))){r=0;break}f=0|ar[n>>2]}return 0|r}(o,r,n=n<<24>>24==40,0|ar[A+375388>>2]);do{if(a)20==(0|(f=0|ar[(n=A+84|0)>>2]))?(n=1001,f=19):(ar[n>>2]=f+1,n=a),ar[A+4+(f<<2)>>2]=n;else if(f=0|ar[A+377220>>2],!((0|ar[A+377216>>2])==(0|f)|1^n)){if(f=0|ar[f+-4>>2],(0|(n=0|ar[(o=f+10648|0)>>2]))==(0|ar[f+10652>>2])){Ar(f+10644|0,r);break}for(f=r,t=n+80|0;ar[n>>2]=ar[f>>2],f=f+4|0,(0|(n=n+4|0))<(0|t););ar[o>>2]=80+(0|ar[o>>2]);break}}while(0);return Ba(A+548|0,e),ur=i,0|(e=a);case 36:return tr[A+376211>>0]=1,Ba(A+548|0,e),ur=i,(e=0)|e;default:return Ba(A+548|0,e),ur=i,(e=0)|e}return 0}function So(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(ur=(u=ur)+2048|0,l=u,1<(0|(e|=0)))for(s=e,b=0;b=b+1|0,3>>0;)s>>>=1;else b=0;if(a=5-b|0,c=1<>1]){f=0,s=10;break}d=b}if(8==(0|s))for(;d=l+((0|br(b,e))+k<<1)|0,or[d>>1]=h,(0|(b=b+1|0))!=(0|e);)s=8;else if(10==(0|s))for(;;){for(s=b=0;v=r+((0|br(b,e))+k<<1)|0,s=(0|br(0|or[v>>1],0|tr[35206+(b<>0]))+s|0,(0|(b=b+1|0))!=(0|d););if(s=s+64>>7,v=l+((0|br(f,e))+k<<1)|0,or[v>>1]=(0|s)<(0|t)?t:(0|s)<(0|w)?s:n,(0|(f=f+1|0))==(0|e))break;s=10}k=k+1|0}while((0|k)!=(0|e));if(o){h=c>>i,k=0;do{for(w=0|br(k,e),d=e;;){if(b=d+-1|0,(0|d)<=0){b=0,s=18;break}if(0|or[l+(b+w<<1)>>1]){f=0,s=20;break}d=b}if(18==(0|s))for(;ar[A+(b+w<<2)>>2]=h,(0|(b=b+1|0))!=(0|e);)s=18;else if(20==(0|s))for(;;){for(s=b=0;s=(0|br(0|or[l+(b+w<<1)>>1],0|tr[35206+(b<>0]))+s|0,(0|(b=b+1|0))!=(0|d););if(ar[A+(f+w<<2)>>2]=s+c>>i,(0|(f=f+1|0))==(0|e))break;s=20}k=k+1|0}while((0|k)!=(0|e));ur=u}else ur=u}else ur=u}function Oo(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(c=ur)+2048|0,t=c,a=1<<(o=20-(f|=0)|0)-1,1<(0|(r|=0)))for(u=r,l=0;l=l+1|0,3>>0;)u>>>=1;else l=0;if(n=5-l|0,k=0<(0|r)){d=0;do{for(s=r;;){if(l=s+-1|0,(0|s)<=0){l=0,u=7;break}if(w=i+((0|br(l,r))+d<<1)|0,0|or[w>>1]){b=0,u=9;break}s=l}if(7==(0|u))for(;w=t+((0|br(l,r))+d<<1)|0,((or[w>>1]=0)|(l=l+1|0))!=(0|r);)u=7;else if(9==(0|u))for(;;){for(u=l=0;w=i+((0|br(l,r))+d<<1)|0,u=(0|br(0|or[w>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|s););if(h=u+64>>7,w=t+((0|br(b,r))+d<<1)|0,or[w>>1]=(0|h)<-32768?-32768:65535&((0|h)<32767?h:32767),(0|(b=b+1|0))==(0|r))break;u=9}d=d+1|0}while((0|d)!=(0|r));if(k){h=(f=1<>o,i=0;do{for(k=0|br(i,r),d=r;;){if(l=d+-1|0,(0|d)<=0){u=18;break}if(0|or[t+(l+k<<1)>>1]){u=19;break}d=l}if(18==(0|u))for(u=0|br(i,e),l=0;d=(0|cr[(k=A+(l+u)|0)>>0])+w|0,tr[k>>0]=(0|d)<0?0:255&((0|d)<(0|f)?d:h),(0|(l=l+1|0))!=(0|r););else if(19==(0|u)){s=0|br(i,e),b=0;do{for(u=l=0;u=(0|br(0|or[t+(l+k<<1)>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|d););u=(0|cr[(l=A+(b+s)|0)>>0])+(u+a>>o)|0,tr[l>>0]=(0|u)<0?0:255&((0|u)<(0|f)?u:h),b=b+1|0}while((0|b)!=(0|r))}i=i+1|0}while((0|i)!=(0|r));ur=c}else ur=c}else ur=c}function zo(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(c=ur)+2048|0,t=c,a=1<<(o=20-(f|=0)|0)-1,1<(0|(r|=0)))for(u=r,l=0;l=l+1|0,3>>0;)u>>>=1;else l=0;if(n=5-l|0,k=0<(0|r)){d=0;do{for(s=r;;){if(l=s+-1|0,(0|s)<=0){l=0,u=7;break}if(w=i+((0|br(l,r))+d<<1)|0,0|or[w>>1]){b=0,u=9;break}s=l}if(7==(0|u))for(;w=t+((0|br(l,r))+d<<1)|0,((or[w>>1]=0)|(l=l+1|0))!=(0|r);)u=7;else if(9==(0|u))for(;;){for(u=l=0;w=i+((0|br(l,r))+d<<1)|0,u=(0|br(0|or[w>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|s););if(h=u+64>>7,w=t+((0|br(b,r))+d<<1)|0,or[w>>1]=(0|h)<-32768?-32768:65535&((0|h)<32767?h:32767),(0|(b=b+1|0))==(0|r))break;u=9}d=d+1|0}while((0|d)!=(0|r));if(k){h=(f=1<>o,i=0;do{for(k=0|br(i,r),d=r;;){if(l=d+-1|0,(0|d)<=0){u=18;break}if(0|or[t+(l+k<<1)>>1]){u=19;break}d=l}if(18==(0|u))for(u=0|br(i,e),l=0;d=(0|lr[(k=A+(l+u<<1)|0)>>1])+w|0,or[k>>1]=(0|d)<0?0:65535&((0|d)<(0|f)?d:h),(0|(l=l+1|0))!=(0|r););else if(19==(0|u)){s=0|br(i,e),b=0;do{for(u=l=0;u=(0|br(0|or[t+(l+k<<1)>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|d););u=(0|lr[(l=A+(b+s<<1)|0)>>1])+(u+a>>o)|0,or[l>>1]=(0|u)<0?0:65535&((0|u)<(0|f)?u:h),b=b+1|0}while((0|b)!=(0|r))}i=i+1|0}while((0|i)!=(0|r));ur=c}else ur=c}else ur=c}function jo(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(t=ur)+2048|0,n=t,1<(0|(e|=0))){for(o=e,u=0;;){if(!(3>>0)){o=e,a=0;break}o>>>=1,u=u+1|0}for(;3>>0;)o>>>=1,a=a+1|0;for(b=a+7|0,c=1<>>0)){d=u,h=l,k=b;break}a>>>=1}}else c=o=0,d=-1,h=32,k=6;if(f=5-o|0,b=0<(0|e)){o=0;do{u=0;do{for(s=u<>1],0|tr[35206+(s<<5)+a>>0]))+l|0,(0|(a=a+1|0))!=(0|e););w=n+((0|br(u,e))+o<<1)|0,or[w>>1]=l+c>>d,u=u+1|0}while((0|u)!=(0|e));o=o+1|0}while((0|o)!=(0|e));if(b){l=0;do{u=0|br(l,e),c=0;do{for(b=c<>1],0|tr[35206+(b<<5)+o>>0]))+a|0,(0|(o=o+1|0))!=(0|e););or[A+(c+u<<1)>>1]=a+h>>k,c=c+1|0}while((0|c)!=(0|e));l=l+1|0}while((0|l)!=(0|e));ur=t}else ur=t}else ur=t}function Ho(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;if(ur=(t=ur)+2176|0,n=t+128|0,f=0<(0|(e|=0))){for(w=0==(0|(h=e>>>1)),v=e>>>2,m=7>>0,b=(l=t)+64|(k=0);;){if(a=0|br(k,i),!w)for(c=b,o=0;u=r+(o+a<<1)|0,s=r+((d=o+h|0)+a<<1)|0,or[c+(o<<1)>>1]=(0|lr[s>>1])+(0|lr[u>>1]),or[c+(d<<1)>>1]=(0|lr[u>>1])-(0|lr[s>>1]),(0|(o=o+1|0))!=(0|h););if(m)for(s=v,d=h,u=l,l=b;;){c=l,b=u,a=0;do{for(o=0;p=c+((y=o+a|0)<<1)|0,Z=c+((g=y+s|0)<<1)|0,or[b+(y<<1)>>1]=(0|lr[Z>>1])+(0|lr[p>>1]),or[b+(g<<1)>>1]=(0|lr[p>>1])-(0|lr[Z>>1]),(0|(o=o+1|0))!=(0|s););a=a+d|0}while((0|a)<(0|e));if((0|(s>>=1))<=1)break;y=l,d>>=1,l=u,u=y}else u=b;for(a=u,c=0|br(k,e),o=0;Z=0|or[a+(o<<1)>>1],p=0|or[a+((y=1|o)<<1)>>1],or[n+(o+c<<1)>>1]=p+Z,or[n+(y+c<<1)>>1]=Z-p,(0|(o=o+2|0))<(0|e););if((0|(k=k+1|0))==(0|e))break;b=u}if(f){for(w=0==(0|(h=e>>>1)),v=e>>>2,m=7>>0,k=0;;){if(!w)for(a=u,o=0;Z=n+((0|br(o,e))+k<<1)|0,Z=0|or[Z>>1],p=n+((0|br(y=o+h|0,e))+k<<1)|0,p=0|or[p>>1],or[a+(o<<1)>>1]=p+Z,or[a+(y<<1)>>1]=Z-p,(0|(o=o+1|0))!=(0|h););if(m)for(s=v,d=h,c=l,l=u;;){u=l,b=c,a=0;do{for(o=0;Z=u+((g=o+a|0)<<1)|0,p=u+((y=g+s|0)<<1)|0,or[b+(g<<1)>>1]=(0|lr[p>>1])+(0|lr[Z>>1]),or[b+(y<<1)>>1]=(0|lr[Z>>1])-(0|lr[p>>1]),(0|(o=o+1|0))!=(0|s););a=a+d|0}while((0|a)<(0|e));if((0|(s>>=1))<=1)break;y=l,d>>=1,l=c,c=y}else c=u;for(a=c,o=0;Z=a+(o<<1)|0,p=a+((y=1|o)<<1)|0,g=A+((0|br(o,e))+k<<1)|0,or[g>>1]=(0|lr[p>>1])+(0|lr[Z>>1]),y=A+((0|br(y,e))+k<<1)|0,or[y>>1]=(0|lr[Z>>1])-(0|lr[p>>1]),(0|(o=o+2|0))<(0|e););if((0|(k=k+1|0))==(0|e))break;u=c}ur=t}else ur=t}else ur=t}function xo(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,a|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;switch(d=0|ar[9768+((o|=0)<<2)>>2],b=(u=0|ar[9768+(a<<2)>>2])+n+(s=0|ar[9784+(a<<2)>>2])|0,l=c+-8|0,0|o){case 0:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(v=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+v|0;or[d>>1]=0|cr[k>>0],(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0,k=k+1|0;c=c+1|0}while((0|c)!=(0|h));break;case 1:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(m=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+m|0;v=(v=(cr[(k=(g=k)+1|0)>>0]<<2)-(0|cr[g>>0])+(0|br(0|cr[g+2>>0],-10))|0)+(58*(0|cr[g+3>>0])|0)+(17*(0|cr[g+4>>0])|0)+(0|br(0|cr[g+5>>0],-5))|0,or[d>>1]=v+(0|cr[g+6>>0])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 2:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(g=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+g|0;m=(cr[(k=(m=k)+1|0)>>0]<<2)-(0|cr[m>>0])+(40*((0|cr[m+4>>0])+(0|cr[m+3>>0])|0)|0)+(cr[m+6>>0]<<2)-(0|cr[m+7>>0])+(0|br((0|cr[m+5>>0])+(0|cr[m+2>>0])|0,-11))>>l&65535,or[d>>1]=m,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 3:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(w=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+w|0;m=(m=(0|br(0|cr[(k=(g=k)+1|0)>>0],-5))+(0|cr[g>>0])|0)+(17*(0|cr[g+2>>0])|0)+(58*(0|cr[g+3>>0])|0)+(0|br(0|cr[g+4>>0],-10))|0,or[d>>1]=m+(cr[g+5>>0]<<2)-(0|cr[g+6>>0])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h))}switch(h=0==(0|o)?l:6,0|a){case 0:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;or[s>>1]=0|or[d>>1],(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0,d=d+2|0;k=k+1|0}while((0|k)!=(0|f));return;case 1:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(0|br(0|or[a+4>>1],-10))|0)+(58*(0|or[a+6>>1])|0)+(17*(0|or[a+8>>1])|0)+(0|br(0|or[a+10>>1],-5))|0,or[s>>1]=o+(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 2:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;a=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(40*((0|or[a+8>>1])+(0|or[a+6>>1])|0)|0)+(or[a+12>>1]<<2)-(0|or[a+14>>1])+(0|br((0|or[a+10>>1])+(0|or[a+4>>1])|0,-11))>>h&65535,or[s>>1]=a,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 3:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(0|br(0|or[(d=(a=d)+2|0)>>1],-5))+(0|or[a>>1])|0)+(17*(0|or[a+4>>1])|0)+(58*(0|or[a+6>>1])|0)+(0|br(0|or[a+8>>1],-10))|0,or[s>>1]=o+(or[a+10>>1]<<2)-(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;default:return}}function Po(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,a|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;switch(d=0|ar[9768+((o|=0)<<2)>>2],b=(u=0|ar[9768+(a<<2)>>2])+n+(s=0|ar[9784+(a<<2)>>2])|0,l=c+-8|0,0|o){case 0:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(v=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(v<<1)|0;or[d>>1]=0|or[k>>1],(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0,k=k+2|0;c=c+1|0}while((0|c)!=(0|h));break;case 1:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(m=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(m<<1)|0;v=(v=(lr[(k=(g=k)+2|0)>>1]<<2)-(0|lr[g>>1])+(0|br(0|lr[g+4>>1],-10))|0)+(58*(0|lr[g+6>>1])|0)+(17*(0|lr[g+8>>1])|0)+(0|br(0|lr[g+10>>1],-5))|0,or[d>>1]=v+(0|lr[g+12>>1])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 2:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(g=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(g<<1)|0;m=(lr[(k=(m=k)+2|0)>>1]<<2)-(0|lr[m>>1])+(40*((0|lr[m+8>>1])+(0|lr[m+6>>1])|0)|0)+(lr[m+12>>1]<<2)-(0|lr[m+14>>1])+(0|br((0|lr[m+10>>1])+(0|lr[m+4>>1])|0,-11))>>l&65535,or[d>>1]=m,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 3:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(w=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(w<<1)|0;m=(m=(0|br(0|lr[(k=(g=k)+2|0)>>1],-5))+(0|lr[g>>1])|0)+(17*(0|lr[g+4>>1])|0)+(58*(0|lr[g+6>>1])|0)+(0|br(0|lr[g+8>>1],-10))|0,or[d>>1]=m+(lr[g+10>>1]<<2)-(0|lr[g+12>>1])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h))}switch(h=0==(0|o)?l:6,0|a){case 0:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;or[s>>1]=0|or[d>>1],(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0,d=d+2|0;k=k+1|0}while((0|k)!=(0|f));return;case 1:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(0|br(0|or[a+4>>1],-10))|0)+(58*(0|or[a+6>>1])|0)+(17*(0|or[a+8>>1])|0)+(0|br(0|or[a+10>>1],-5))|0,or[s>>1]=o+(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 2:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;a=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(40*((0|or[a+8>>1])+(0|or[a+6>>1])|0)|0)+(or[a+12>>1]<<2)-(0|or[a+14>>1])+(0|br((0|or[a+10>>1])+(0|or[a+4>>1])|0,-11))>>h&65535,or[s>>1]=a,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 3:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(0|br(0|or[(d=(a=d)+2|0)>>1],-5))+(0|or[a>>1])|0)+(17*(0|or[a+4>>1])|0)+(58*(0|or[a+6>>1])|0)+(0|br(0|or[a+8>>1],-10))|0,or[s>>1]=o+(or[a+10>>1]<<2)-(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;default:return}}function Lo(A,e){var r,i=0,f=0;if(e|=0)return 0|(f=1);if(e=0|ar[(A|=0)+12>>2],r=i=0|ar[A+8>>2],(f=e-i>>2)>>>0<(0|ar[A>>2])>>>0)return 0|(f=1);if((0|e)==(0|i))return(f=0)|f;for(e=0;;){if(A=0|ar[r+(e<<2)>>2],0==(0|tr[A+100>>0])&&0==(0|ar[A+96>>2])){e=1,i=7;break}if(f>>>0<=(e=e+1|0)>>>0){e=0,i=7;break}}return 7==(0|i)?0|e:0}function Ko(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0;A:do{if(i){if(n=A+8|0,(0|(t=0|ar[A+12>>2]))==(0|(A=o=0|ar[n>>2])))return 0|(r=-1);for(f=t-o>>2,i=0;a=0|ar[A+(i<<2)>>2],!((0|ar[a+92>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&2==(0|ar[a+96>>2]));)if(f>>>0<=(i=i+1|0)>>>0){f=t,i=o;break A}return 0|i}a=0|ar[(n=A+8|0)>>2],f=0|ar[A+12>>2],A=i=a}while(0);if((0|f)==(0|i))return 0|(a=-1);for(i=0;;){if(a=0|ar[A+(i<<2)>>2],(0|ar[a+92>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&0|ar[a+96>>2]){A=14;break}if((i=i+1|0)>>>0>=f-(0|ar[n>>2])>>2>>>0){i=-1,A=14;break}}return 14==(0|A)?0|i:0}function qo(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0;A:do{if(i){if(n=A+8|0,(0|(t=0|ar[A+12>>2]))==(0|(A=o=0|ar[n>>2])))return 0|(r=-1);for(f=t-o>>2,i=0;a=0|ar[A+(i<<2)>>2],!((0|ar[a+88>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&2==(0|ar[a+96>>2]));)if(f>>>0<=(i=i+1|0)>>>0){f=t,i=o;break A}return 0|i}a=0|ar[(n=A+8|0)>>2],f=0|ar[A+12>>2],A=i=a}while(0);if((0|f)==(0|i))return 0|(a=-1);for(i=0;;){if(a=0|ar[A+(i<<2)>>2],(0|ar[a+88>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&0|ar[a+96>>2]){A=14;break}if((i=i+1|0)>>>0>=f-(0|ar[n>>2])>>2>>>0){i=-1,A=14;break}}return 14==(0|A)?0|i:0}function $o(A,e){e|=0;var r,i=0;if((0|(i=0|ar[(A|=0)+12>>2]))==(0|(r=A=0|ar[A+8>>2])))return 0|(e=-1);for(i=i-A>>2,A=0;;){if((0|ar[ar[r+(A<<2)>>2]>>2])==(0|e)){i=5;break}if(i>>>0<=(A=A+1|0)>>>0){A=-1,i=5;break}}return 5==(0|i)?0|A:0}function Aa(A){var e,r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if((0|(i=0|ar[(r=(A|=0)+20|0)>>2]))==(0|(n=0|ar[(f=A+24|0)>>2]))&&sr(36524,36554,147,36561),1<(l=n-i>>2)>>>0)for(t=(n=0)|ar[92+(0|ar[i>>2])>>2],o=1;;){if(n=(c=(0|(a=0|ar[92+(0|ar[i+(o<<2)>>2])>>2]))<(0|t))?o:n,l>>>0<=(o=o+1|0)>>>0){l=n;break}t=c?a:t}else l=0;n=0|ar[(c=A+36|0)>>2],u=(0|ar[A+40>>2])-n|0,a=0|ar[(o=A+48|0)>>2],(0|(0==(0|u)?0:(u<<8)-1|0))==((t=0|ar[(e=A+52|0)>>2])+a|0)&&(function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(s=ur)+32|0,c=s+4|0,a=s,1023<(r=0|ar[(e=16+(A|=0)|0)>>2])>>>0){ar[e>>2]=r+-1024,c=0|ar[(l=A+4|0)>>2],b=0|ar[c>>2],c=c+4|0,ar[l>>2]=c,o=0|ar[(u=A+8|0)>>2],t=0|ar[(a=A+12|0)>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=c)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|c,0|e),0|ar[l>>2]):c,A=f+(r<<2)|0,ar[u>>2]=A,ar[l>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|c)==(0|o))e=t;else{for(e=t,r=c;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[l>>2]=t,ar[u>>2]=e,ar[a>>2]=f,r&&(vu(r),e=0|ar[u>>2])}else e=o}while(0);return ar[e>>2]=b,ar[u>>2]=4+(0|ar[u>>2]),ur=s}if(e=0|ar[(b=A+8|0)>>2],f=e-(0|ar[(u=A+4|0)>>2])|0,r=0|ar[(l=A+12|0)>>2],i=r-(0|ar[A>>2])|0,i>>>0<=f>>>0){for(e=0==(0|(e=i>>1))?1:e,ar[c+12>>2]=0,ar[c+16>>2]=A+12,1073741823>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),i=0|hu(e<<2),ar[c>>2]=i,t=i+(f>>2<<2)|0,ar[(o=c+8|0)>>2]=t,ar[(n=c+4|0)>>2]=t,ar[(t=c+12|0)>>2]=i+(e<<2),f=0|hu(4096),ar[a>>2]=f,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(c,a),f=0|ar[b>>2];e=0|ar[u>>2],(0|f)!=(0|e);)ea(c,a=f+-4|0),f=a;return r=e,i=0|ar[A>>2],ar[A>>2]=ar[c>>2],ar[c>>2]=i,ar[u>>2]=ar[n>>2],ar[n>>2]=r,e=0|ar[b>>2],ar[b>>2]=ar[o>>2],ar[o>>2]=e,A=0|ar[l>>2],ar[l>>2]=ar[t>>2],ar[t>>2]=A,(0|e)!=(0|f)&&(ar[o>>2]=e+(~((e+-4-r|0)>>>2)<<2)),0|i&&vu(i),ur=s}if((0|r)!=(0|e))return b=0|hu(4096),ar[c>>2]=b,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(A,c),ur=s;a=0|hu(4096),ar[c>>2]=a,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=4+(A|=0)|0)>>2],b=0|ar[A>>2],n=b;do{if((0|r)==(0|b)){if(f=0|ar[(b=A+8|0)>>2],l=0|ar[(u=A+12|0)>>2],f>>>0<(i=l)>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),a=0|hu(n<<2),l=i=(c=a)+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}(A,c),a=0|ar[u>>2],c=0|ar[a>>2],a=a+4|0,ar[u>>2]=a,o=0|ar[b>>2],t=0|ar[l>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=a)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|a,0|e),0|ar[u>>2]):a,A=f+(r<<2)|0,ar[b>>2]=A,ar[u>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|a)==(0|o))e=t;else{for(e=t,r=a;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[u>>2]=t,ar[b>>2]=e,ar[l>>2]=f,r&&(vu(r),e=0|ar[b>>2])}else e=o}while(0);ar[e>>2]=c,ar[b>>2]=4+(0|ar[b>>2]),ur=s}(A+32|0),a=0|ar[o>>2],t=0|ar[e>>2],n=0|ar[c>>2]),ar[(0|ar[n+((u=t+a|0)>>>10<<2)>>2])+((1023&u)<<2)>>2]=ar[i+(l<<2)>>2],ar[e>>2]=t+1,ar[(0|ar[r>>2])+(l<<2)>>2]=ar[(0|ar[f>>2])-4>>2],ar[f>>2]=(0|ar[f>>2])-4}function ea(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=(A|=0)+4|0)>>2],n=b=0|ar[A>>2];do{if((0|r)==(0|b)){if((f=0|ar[(b=A+8|0)>>2])>>>0<(i=l=0|ar[(u=A+12|0)>>2])>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),l=i=(c=a=0|hu(n<<2))+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}function ra(A){var e,r=0;if(r=(A|=0)+24|0,(0|ar[(e=A+20|0)>>2])==(0|ar[r>>2]))return(r=0)|r;for(;Aa(A),(0|ar[e>>2])!=(0|ar[r>>2]););return 0|(A=1)}function ia(A,e,r,i,f,n,t){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;ur=(u=ur)+16|0,a=u,l=(A|=0)+8|0,s=0|ar[(c=A+12|0)>>2],o=k=0|ar[l>>2],b=s;A:do{if((0|s)==(0|k))d=-1,k=s;else{for(w=s-k>>2,d=0;h=0|ar[o+(d<<2)>>2],0!=(0|tr[h+100>>0])||0!=(0|ar[h+96>>2]);)if(w>>>0<=(d=d+1|0)>>>0){d=-1;break A}oa(h),b=0|ar[c>>2],k=0|ar[l>>2],s=b}}while(0);return(0|d)==((w=s-k>>2)+-1|0)||w>>>0<=(0|ar[A+4>>2])>>>0||(v=0|ar[b+-4>>2],0!=(0|tr[v+100>>0]))||0!=(0|ar[v+96>>2])?b=s:((s=0|ar[b+-4>>2])&&(aa(s),vu(s),b=0|ar[c>>2]),b=b+-4|0,ar[c>>2]=b),-1==(0|d)&&(d=b-(0|ar[l>>2])>>2,na(b=0|hu(10624)),ar[a>>2]=b,(s=0|ar[c>>2])>>>0<(0|ar[A+16>>2])>>>0?(ar[s>>2]=b,ar[c>>2]=4+(0|ar[c>>2])):function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(l,a)),b=0|ar[(0|ar[l>>2])+(d<<2)>>2],(s=0|ar[e+476>>2])>>>0<4?(ta(b,0|ar[e+484>>2],0|ar[e+488>>2],s,e,1,r,0,i,f,n,t),tr[b+10516>>0]=0,ur=u,0|d):(sr(44456,36554,259,36599),0)}function fa(A){var e,r;e=(A|=0)+36|0,r=A+48|0,ar[(A=A+52|0)>>2]=(0|ar[A>>2])-1,A=1+(0|ar[r>>2])|0,(ar[r>>2]=A)>>>0<=2047||(vu(0|ar[ar[e>>2]>>2]),ar[e>>2]=4+(0|ar[e>>2]),ar[r>>2]=(0|ar[r>>2])-1024)}function na(A){var e,r,i=0;ar[(A|=0)+48>>2]=0,ar[A+52>>2]=0,ar[A+56>>2]=0,ar[A+700>>2]=0,ar[A+704>>2]=0,ar[A+708>>2]=0,ar[(i=A+736|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,$a(A+764|(ar[i+20>>2]=0)),Ia(A+5932|0),tr[A+10518>>0]=0,tr[A+10519>>0]=0,vb(A+10340|(tr[A+10520>>0]=0),0,140),ar[A>>2]=-1,ar[A+104>>2]=0,ar[A+10332>>2]=0,ar[A+10336>>2]=0,ar[A+10512>>2]=0,ar[A+4>>2]=0,ar[A+60>>2]=0,ar[A+8>>2]=0,ar[A+64>>2]=0,ar[A+12>>2]=0,ar[A+68>>2]=0,ar[A+28>>2]=0,i=A+10480|(ar[A+24>>2]=0),ar[A+10524>>2]=0,ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,ar[i+20>>2]=0,tr[A+10516>>0]=2,ar[A+88>>2]=-1,ar[A+92>>2]=-1,ar[A+96>>2]=0,tr[A+100>>0]=0,ar[(i=A+10528|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,e=A+10548|0,pA(0|(e|=0),0),r=A+10576|0,dA(0|(r|=0),0)}function ta(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0;var b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;switch(ur=(s=ur)+48|0,b=s,(f|=0)||sr(36749,36663,240,36753),hb(0|(h=A+764|0),0|f,4717),(0|h)!=(0|f)&&Ke(A+5484|0,0|ar[f+4720>>2],0|ar[f+4724>>2]),hb(A+5496|0,f+4732|0,436),oa(A),k=0|ar[14326],ar[14326]=k+1,ar[A>>2]=k,ar[A+104>>2]=2147483647,ar[A+10332>>2]=t,ar[A+10336>>2]=o,ar[A+20>>2]=i,ar[A+24>>2]=e,ar[A+28>>2]=r,ar[(k=A+32|0)>>2]=e,ar[(h=A+36|0)>>2]=r,ar[A+10488>>2]=l,ar[(l=A+10480|0)>>2]=a,ar[l+4>>2]=c,0|i){case 3:case 0:d=m=1;break;case 1:d=2,p=8;break;case 2:d=1,p=8;break;default:sr(44456,36663,276,36753)}switch(8==(0|p)&&(m=2),0|i){case 1:w=(e+1|0)/(ar[b>>2]=2)|0,ar[k>>2]=w,v=(r+1|0)/2|0,ar[h>>2]=v;break;case 2:ar[b>>2]=3,w=(e+1|0)/2|0,ar[k>>2]=w,v=r;break;case 3:ar[b>>2]=4,w=e,v=r;break;case 0:ar[b>>2]=1,ar[k>>2]=0,v=w=ar[h>>2]=0;break;default:sr(55739,36663,302,36753)}ar[b+4>>2]=e,ar[b+8>>2]=r,ar[b+12>>2]=16,i=0|ar[f+496>>2],a=0|ar[f+500>>2],k=0|ar[f+504>>2],h=0|ar[f+508>>2],e=e-(0|br(y=a+i|0,m))|0,ar[A+72>>2]=e,l=r-(0|br(c=h+k|0,d))|0,ar[A+76>>2]=l,ar[A+80>>2]=w-y,ar[A+84>>2]=v-c,c=0|br(i,m),ar[b+16>>2]=c,a=0|br(a,m),ar[b+20>>2]=a,a=0|br(k,d),ar[b+24>>2]=a,m=0|br(h,d),ar[b+28>>2]=m,ar[b+32>>2]=e,ar[b+36>>2]=l,tr[A+16>>0]=8<(0|ar[f+4996>>2])&1,l=8<(0|ar[f+5004>>2])&1,tr[A+17>>0]=l,tr[A+18>>0]=l,d=(l=0==(0|t))?0:0|ar[t+544>>2];do{if(o){if(d=0|ar[o+3060>>2],u){if(y=0|ar[o+3064>>2],l=A+10504|0,ar[A+10512>>2]=y){ar[l>>2]=0,ar[A+10508>>2]=0;break}Z=0|ar[(p=7736)>>2],p=0|ar[p+4>>2],ar[(g=l)>>2]=Z,ar[g+4>>2]=p,g=d,p=25;break}p=24}else p=l|1^u?24:(Z=0|ar[(p=t+536|0)>>2],p=0|ar[p+4>>2],ar[(g=A+10504|0)>>2]=Z,ar[g+4>>2]=p,g=d,25)}while(0);if(24==(0|p)&&(Z=0|ar[(y=7736)>>2],y=0|ar[y+4>>2],ar[(g=A+10504|0)>>2]=Z,ar[g+4>>2]=y,g=d,p=25),25==(0|p)&&0|Z&&(y=0==(0|Pb[7&Z](t,b,A,g)),t=(0|ar[A+4>>2])+c+(0|br(0|ar[A+40>>2],a))|0,ar[A+60>>2]=t,t=0|br(0|ar[A+44>>2],k),ar[A+64>>2]=(0|ar[A+8>>2])+i+t,ar[A+68>>2]=(0|ar[A+12>>2])+i+t,y))return ur=s,0|(y=7);do{if(n){i=0|ar[(e=f+5112|0)>>2],k=0|ar[(w=f+5116|0)>>2],h=0|ar[(v=f+5108|0)>>2],a=0|br(k,i),c=A+10404|0,d=0|ar[(l=A+10400|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=32;break}r=ar[c>>2]=0;break}p=32}while(0);32==(0|p)&&(ar[A+10412>>2]=i,ar[A+10416>>2]=k,ar[A+10408>>2]=h,r=0!=(0|d)),h=0|ar[e>>2],k=0|ar[w>>2],i=0|ar[v>>2],a=0|br(k,h),c=A+10424|0,d=0|ar[(l=A+10420|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=37;break}d=ar[c>>2]=0;break}p=37}while(0);37==(0|p)&&(ar[A+10432>>2]=h,ar[A+10436>>2]=k,ar[A+10428>>2]=i,d=0!=(0|d)),e=r&d,l=A+10360|0,i=0|ar[(r=f+5052|0)>>2],k=0|ar[(v=f+5060|0)>>2],h=0|ar[(w=f+5036|0)>>2],a=0|br(k,i),c=A+10364|0;do{if((0|a)!=(0|ar[c>>2])){if(Bc(0|ar[l>>2]),d=0|yc(3*a|0),ar[l>>2]=d){ar[c>>2]=a,p=43;break}d=ar[c>>2]=0;break}d=0|ar[l>>2],p=43}while(0);43==(0|p)&&(ar[A+10372>>2]=i,ar[A+10376>>2]=k,ar[A+10368>>2]=h,d=0!=(0|d)),h=e&d,i=(0|ar[w>>2])-2|0,k=ar[r>>2]<>2]<>2])){if(Bc(0|ar[l>>2]),d=0|yc(12*a|0),ar[l>>2]=d){ar[c>>2]=a,p=49;break}d=ar[c>>2]=0;break}d=0|ar[l>>2],p=49}while(0);49==(0|p)&&(ar[A+10392>>2]=k,ar[A+10396>>2]=i,ar[A+10388>>2]=2,d=0!=(0|d)),e=h&d,i=0|ar[f+5088>>2],k=0|ar[f+5092>>2],h=0|ar[f+5100>>2],a=0|br(k,i),c=A+10444|0,d=0|ar[(l=A+10440|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=54;break}d=ar[c>>2]=0;break}p=54}while(0);54==(0|p)&&(ar[A+10452>>2]=i,ar[A+10456>>2]=k,ar[A+10448>>2]=h,d=0!=(0|d)),h=e&d,i=(3+(0|ar[f+484>>2])|0)/4|0,k=(3+(0|ar[f+488>>2])|0)/4|0,a=0|br(k,i),c=A+10464|0,d=0|ar[(l=A+10460|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=59;break}d=ar[c>>2]=0;break}p=59}while(0);if(59==(0|p)&&(ar[A+10472>>2]=i,ar[A+10476>>2]=k,ar[A+10468>>2]=2,d=0!=(0|d)),r=h&d,h=A+10340|0,(0|(d=0|ar[(e=A+10344|0)>>2]))==(0|ar[f+5072>>2])){if(r)break;return ur=s,0|(d=7)}if(a=0|ar[(w=A+10524|0)>>2]){if(0|(d=0|ar[(l=a+-4|0)>>2]))for(d=a+(80*d|0)|0;Jn(d=d+-80|0),(0|d)!=(0|a););mu(l),d=0|ar[e>>2]}i=0|ar[f+5056>>2],k=0|ar[f+5064>>2],c=0|ar[f+5040>>2],l=0|br(k,i);do{if((0|l)!=(0|d)){if(Bc(0|ar[h>>2]),d=0|yc(24*l|0),ar[h>>2]=d){ar[e>>2]=l,a=d,p=71;break}l=d=ar[e>>2]=0;break}a=0|ar[h>>2],l=d,p=71}while(0);if(71==(0|p)&&(ar[A+10352>>2]=i,ar[A+10356>>2]=k,ar[A+10348>>2]=c,d=0!=(0|a)),a=r&d,c=0|wu(53687091>>0|4294967291<(c=80*l|0)>>>0?-1:c+4|0),ar[c>>2]=l,c=c+4|0,0|l)for(d=c+(80*l|0)|0,l=c;Dn(l),(0|(l=l+80|0))!=(0|d););if(ar[w>>2]=c,!a)return ur=s,0|(y=7)}}while(0);return ur=s,(y=0)|y}function oa(A){var e,r=0,i=0,f=0,n=0,t=0,o=0;if(0|ar[(f=(A|=0)+4|0)>>2]&&((r=0|ar[A+10512>>2])?(o=0|ar[A+10336>>2],ns[127&r](o,A,0|ar[o+3060>>2])):(i=(r=0|ar[A+10332>>2])?0|ar[r+544>>2]:0,ns[127&ar[A+10508>>2]](r,A,i)),ar[f>>2]=0,ar[A+60>>2]=0,ar[A+8>>2]=0,ar[A+64>>2]=0,ar[A+12>>2]=0,ar[A+68>>2]=0),e=A+48|0,(0|(r=i=0|ar[(o=A+52|0)>>2]))!=(0|(f=A=0|ar[e>>2]))){for(t=0;(n=0|ar[f+(t<<2)>>2])&&(0|(r=0|ar[n+1344>>2])&&((0|(f=0|ar[(i=n+1348|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),kt(n+1332|0),0|(r=0|ar[n+776>>2])&&((0|(f=0|ar[(i=n+780|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),vu(n),r=0|ar[o>>2],A=0|ar[e>>2],i=r),(t=t+1|0)>>>0>2>>>0;);i=A}(0|r)!=(0|f)&&(ar[o>>2]=r+(~((r+-4-i|0)>>>2)<<2))}function aa(A){var e,r,i,f=0,n=0,t=0,o=0;if(oa(A|=0),0|(n=0|ar[A+10524>>2])){if(0|(f=0|ar[(t=n+-4|0)>>2]))for(f=n+(80*f|0)|0;Jn(f=f+-80|0),(0|f)!=(0|n););mu(t)}if(r=A+10576|0,sA(0|(r|=0)),i=A+10548|0,ZA(0|(i|=0)),Bc(0|ar[A+10460>>2]),Bc(0|ar[A+10440>>2]),Bc(0|ar[A+10420>>2]),Bc(0|ar[A+10400>>2]),Bc(0|ar[A+10380>>2]),Bc(0|ar[A+10360>>2]),Bc(0|ar[A+10340>>2]),Ga(A+5932|0),Ac(A+764|0),0|(f=0|ar[A+748>>2])&&((0|ar[(n=A+752|0)>>2])!=(0|f)&&(ar[n>>2]=f),vu(f)),0|(f=0|ar[A+736>>2])&&((0|(t=0|ar[(n=A+740|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-2-f|0)>>>1)<<1)),vu(f)),0|(f=0|ar[(e=A+700|0)>>2])){if((0|(n=0|ar[(o=A+704|0)>>2]))!=(0|f)){for(;n=n+-12|0,ar[o>>2]=n,(t=0|ar[n>>2])&&(vu(t),n=0|ar[o>>2]),(0|n)!=(0|f););f=0|ar[e>>2]}vu(f)}(t=0|ar[A+48>>2])&&((0|(n=0|ar[(f=A+52|0)>>2]))!=(0|t)&&(ar[f>>2]=n+(~((n+-4-t|0)>>>2)<<2)),vu(t))}function ca(A,e){e|=0;var r,i;Yn(r=(A|=0)+10548|0),ar[(i=A+10528|0)>>2]=(0|ar[i>>2])+e,ar[(A=A+10544|0)>>2]=(0|ar[A>>2])+e,Qn(r)}function la(A,e){e|=0;var r;Yn(e=(A|=0)+10548|0),ar[(r=A+10528|0)>>2]=(0|ar[r>>2])-1,ar[(A=A+10532|0)>>2]=1+(0|ar[A>>2]),Qn(e)}function ua(A,e){e|=0;var r,i,f,n=0;(Yn(e=(A|=0)+10548|0),i=0|ar[(n=A+10532|0)>>2],ar[n>>2]=i-1,r=1+(0|ar[(n=A+10540|0)>>2])|0,ar[n>>2]=r,(0|i)<=0&&sr(36809,36663,642,36830),(0|r)==(0|ar[A+10544>>2]))?(f=A+10576|0,mb(f|=0),Qn(e)):Qn(e)}function ba(A,e,r,i,f){r|=0,i|=0,f|=0,function(A,e,r,i){A|=0,r|=0,i|=0;var f,n;if(!(e|=0))return;if((0|function(A){return 0|ar[(A|=0)>>2]}(r=(0|ar[A+10524>>2])+(80*r|0)|0))>=(0|i))return;Yn(f=A+10548|0),ar[(n=A+10532|0)>>2]=(0|ar[n>>2])-1,ar[(A=A+10536|0)>>2]=1+(0|ar[A>>2]),Qn(f),ar[(e=e+4|0)>>2]=2,Mn(r,i),ar[e>>2]=1,Yn(f),ar[A>>2]=(0|ar[A>>2])-1,ar[n>>2]=1+(0|ar[n>>2]),Qn(f)}(A|=0,e|=0,(0|br(0|ar[A+5820>>2],i))+r|0,f)}function sa(A){var e,r,i;if(Yn(e=(A|=0)+10548|0),i=A+10544|0,(0|ar[(r=A+10540|0)>>2])!=(0|ar[i>>2])){for(A=A+10576|0;f=A,n=e,hA(0|(f|=0),0|(n|=0)),(0|ar[r>>2])!=(0|ar[i>>2]););var f,n;Qn(e)}else Qn(e)}function da(A,e,r,i,f){A|=0,e|=0,r|=0;var n=0,t=0,o=0,a=0;return((f|=0)|(i|=0)|0)<0||(0|ar[A+1248>>2])<=(0|i)||(0|ar[A+1252>>2])<=(0|f)?(A=0)|A:(t=0|ar[A+5864>>2],a=0|ar[A+5852>>2],n=(0|br(f>>t,a))+(i>>t)|0,t=(o=0|ar[A+10320>>2])+((0|br(r>>t,a))+(e>>t)<<2)|0,(0|ar[o+(n<<2)>>2])>(0|ar[t>>2])?(a=0)|a:(t=e>>(a=0|ar[A+5804>>2]),n=r>>a,r=i>>a,e=f>>a,a=0|ar[A+10352>>2],o=(0|br(a,n))+t|0,a=(f=0|ar[A+10340>>2])+(24*((0|br(a,e))+r|0)|0)|0,(0|or[f+(24*o|0)>>1])!=(0|or[a>>1])?(a=0)|a:(a=0|ar[A+5820>>2],o=(0|br(a,n))+t|0,a=(A=0|ar[A+10308>>2])+((0|br(a,e))+r<<2)|0,0|(a=(0|ar[A+(o<<2)>>2])==(0|ar[a>>2])))))}function ka(A,e,r,i,f,n,t,o,a,c,l){if(A|=0,f|=0,n|=0,t|=0,o|=0,a|=0,(0|(l|=0))<((i|=0)+(r|=0)|0)&(1^((i+(e|=0)|0)<=(0|(c|=0))|(0|c)<(0|e)|(0|l)<(0|r)))){if((t<<1|0)==(0|i)&&!((t+e|0)<=(0|c)|1!=(0|a)|(o<<1|0)!=(0|i)|(0|l)<(o+r|0)))return 0}else{if((l|c|0)<0)return 0;if((0|ar[A+1248>>2])<=(0|c))return 0;if((0|ar[A+1252>>2])<=(0|l))return 0;if(a=0|ar[A+5864>>2],i=0|ar[A+5852>>2],o=(0|br(l>>a,i))+(c>>a)|0,a=(t=0|ar[A+10320>>2])+((0|br(n>>a,i))+(f>>a)<<2)|0,(0|ar[t+(o<<2)>>2])>(0|ar[a>>2]))return 0;if(f>>=i=0|ar[A+5804>>2],e=n>>i,r=c>>i,i=l>>i,n=0|ar[A+10352>>2],a=(0|br(n,e))+f|0,n=(o=0|ar[A+10340>>2])+(24*((0|br(n,i))+r|0)|0)|0,(0|or[o+(24*a|0)>>1])!=(0|or[n>>1]))return 0;if(n=0|ar[A+5820>>2],a=(0|br(n,e))+f|0,n=(o=0|ar[A+10308>>2])+((0|br(n,i))+r<<2)|0,(0|ar[o+(a<<2)>>2])!=(0|ar[n>>2]))return 0}return i=c>>(e=0|ar[A+10368>>2]),e=l>>e,(0|i)<=-1&&sr(48482,36846,118,48539),(0|(r=0|ar[A+10372>>2]))<=(0|i)&&sr(48482,36846,118,48539),(0|e)<=-1&&sr(48543,36846,119,48539),(0|e)<(0|ar[A+10376>>2])?(A=(0|ar[A+10360>>2])+(3*((0|br(r,e))+i|0)|0)|0,0!=(768&(cr[A>>0]|cr[A+1>>0]<<8))|0):(sr(48543,36846,119,48539),0)}function ha(A){return((A|=0)+-19&255)<2|0}function wa(A){return((A|=0)+-16&255)<3|0}function va(A){return(1|(A|=0))<<24>>24==9|0}function ma(A){return(-8&(A|=0))<<24>>24==16|0}function ga(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function Za(A,e,r){e|=0,r|=0;var i,f=0;for(i=f=0|ar[(A|=0)+32>>2],A=(0|ar[A+36>>2])-f>>2;;){if(f=A+-1|0,(0|A)<=0){A=0,f=4;break}if(!(((0|ar[i+(f<<2)>>2])-r|0)>(0|e))){f=4;break}A=f}return 4==(0|f)?0|A:0}function pa(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function ya(A){var e,r,i,f,n=0,t=0,o=0;return(n=0|ar[(e=(A|=0)+32|0)>>2])?(f=0|ar[(i=A+16|0)>>2],o=0|ar[(t=A+28|0)>>2],r=0|ar[(0|ar[f+(o>>>10<<2)>>2])+((1023&o)<<2)>>2],ar[e>>2]=n+-1,n=o+1|0,2047<(ar[t>>2]=n)>>>0&&(vu(0|ar[f>>2]),ar[i>>2]=4+(0|ar[i>>2]),ar[t>>2]=(0|ar[t>>2])-1024),ar[(o=A+36|0)>>2]=(0|ar[o>>2])-(0|ar[24+r>>2]),0|(o=r)):(t=0)|t}function Ba(A,e){A|=0,e|=0;var r,i,f,n,t=0,o=0;if(ur=(n=ur)+16|0,o=ar[(t=n)>>2]=e){if(r=A+40|0,(f=0|ar[(i=A+44|0)>>2])-(0|ar[r>>2])>>2>>>0<16)return(0|f)==(0|ar[A+48>>2])?pa(r,t):(ar[f>>2]=o,ar[i>>2]=4+(0|ar[i>>2])),void(ur=n);Bc(0|ar[e+20>>2]),0|(A=0|ar[e+32>>2])&&((0|(o=0|ar[(t=e+36|0)>>2]))!=(0|A)&&(ar[t>>2]=o+(~((o+-4-A|0)>>>2)<<2)),vu(A)),vu(e),ur=n}else ur=n}function Ea(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(s=ur)+32|0,c=s+4|0,a=s,1023<(r=0|ar[(e=(A|=0)+16|0)>>2])>>>0){ar[e>>2]=r+-1024,c=0|ar[(l=A+4|0)>>2],b=0|ar[c>>2],c=c+4|0,ar[l>>2]=c,o=0|ar[(u=A+8|0)>>2],e=t=0|ar[(a=A+12|0)>>2],n=o;do{if((0|o)==(0|t)){if((i=r=0|ar[A>>2])>>>0>>0){f=(e=c)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|c,0|e),0|ar[l>>2]):c,A=f+(r<<2)|0,ar[u>>2]=A,ar[l>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),t=i=(n=f=0|hu(e<<2))+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|c)==(0|o))e=t;else{for(e=t,r=c;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[l>>2]=t,ar[u>>2]=e,ar[a>>2]=f,r&&(vu(r),e=0|ar[u>>2])}else e=o}while(0);return ar[e>>2]=b,ar[u>>2]=4+(0|ar[u>>2]),void(ur=s)}if(f=(e=0|ar[(b=A+8|0)>>2])-(0|ar[(u=A+4|0)>>2])|0,(i=(r=0|ar[(l=A+12|0)>>2])-(0|ar[A>>2])|0)>>>0<=f>>>0){for(e=0==(0|(e=i>>1))?1:e,ar[c+12>>2]=0,ar[c+16>>2]=A+12,1073741823>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),i=0|hu(e<<2),t=(ar[c>>2]=i)+(f>>2<<2)|0,ar[(o=c+8|0)>>2]=t,ar[(n=c+4|0)>>2]=t,ar[(t=c+12|0)>>2]=i+(e<<2),f=0|hu(4096),ar[a>>2]=f,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(c,a),f=0|ar[b>>2];(0|f)!=(0|(e=0|ar[u>>2]));)Xa(c,a=f+-4|0),f=a;return r=e,i=0|ar[A>>2],ar[A>>2]=ar[c>>2],ar[c>>2]=i,ar[u>>2]=ar[n>>2],ar[n>>2]=r,e=0|ar[b>>2],ar[b>>2]=ar[o>>2],ar[o>>2]=e,A=0|ar[l>>2],ar[l>>2]=ar[t>>2],ar[t>>2]=A,(0|e)!=(0|f)&&(ar[o>>2]=e+(~((e+-4-r|0)>>>2)<<2)),0|i&&vu(i),void(ur=s)}if((0|r)!=(0|e))return b=0|hu(4096),ar[c>>2]=b,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(A,c),void(ur=s);a=0|hu(4096),ar[c>>2]=a,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=4+(A|=0)|0)>>2],b=0|ar[A>>2],n=b;do{if((0|r)==(0|b)){if(f=0|ar[(b=A+8|0)>>2],l=0|ar[(u=A+12|0)>>2],f>>>0<(i=l)>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),a=0|hu(n<<2),l=i=(c=a)+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}(A,c),a=0|ar[u>>2],c=0|ar[a>>2],a=a+4|0,ar[u>>2]=a,o=0|ar[b>>2],e=t=0|ar[l>>2],n=o;do{if((0|o)==(0|t)){if((i=r=0|ar[A>>2])>>>0>>0){f=(e=a)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|a,0|e),0|ar[u>>2]):a,A=f+(r<<2)|0,ar[b>>2]=A,ar[u>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),t=i=(n=f=0|hu(e<<2))+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|a)==(0|o))e=t;else{for(e=t,r=a;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[u>>2]=t,ar[b>>2]=e,ar[l>>2]=f,r&&(vu(r),e=0|ar[b>>2])}else e=o}while(0);ar[e>>2]=c,ar[b>>2]=4+(0|ar[b>>2]),ur=s}function Xa(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=(A|=0)+4|0)>>2],n=b=0|ar[A>>2];do{if((0|r)==(0|b)){if((f=0|ar[(b=A+8|0)>>2])>>>0<(i=l=0|ar[(u=A+12|0)>>2])>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),l=i=(c=a=0|hu(n<<2))+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}function Wa(A){var e,r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(!(r=0|ar[(e=(A|=0)+8|0)>>2]))return(l=0)|l;if(6==(0|(i=0|ar[(l=A+4|0)>>2]))){if(a=(i=0|ar[(c=24+r|0)>>2])+1|0,(0|ar[(t=28+r|0)>>2])>(0|i))f=0|ar[20+r>>2];else{if(!(f=0|yc(a)))return 0|(l=7);(n=0|ar[(o=20+r|0)>>2])&&(hb(0|f,0|n,0|i),Bc(n),i=0|ar[c>>2]),ar[o>>2]=f,ar[t>>2]=a}tr[f+i>>0]=0,ar[c>>2]=1+(0|ar[c>>2]),i=0|ar[l>>2]}if(7==(0|i)){if(t=(i=0|ar[(c=24+r|0)>>2])+2|0,(0|ar[(o=28+r|0)>>2])<(0|t)){if(!(f=0|yc(t)))return 0|(l=7);(n=0|ar[(a=20+r|0)>>2])&&(hb(0|f,0|n,0|i),Bc(n),i=0|ar[c>>2]),ar[a>>2]=f,ar[o>>2]=t}else f=0|ar[20+r>>2];tr[(i=f+i|0)>>0]=0,tr[i+1>>0]=0,ar[c>>2]=2+(0|ar[c>>2]),i=0|ar[l>>2]}return 4<(0|i)&&(i=0|ar[(o=A+16|0)>>2],c=(0|ar[A+20>>2])-i|0,n=0|ar[(f=A+28|0)>>2],(0|(0==(0|c)?0:(c<<8)-1|0))==((t=0|ar[(a=A+32|0)>>2])+n|0)?(Ea(A+12|0),n=0|ar[f>>2],f=0|ar[a>>2],i=0|ar[o>>2]):f=t,ar[(0|ar[i+((c=f+n|0)>>>10<<2)>>2])+((1023&c)<<2)>>2]=r,ar[a>>2]=f+1,ar[(A=A+36|0)>>2]=(0|ar[A>>2])+(0|ar[24+r>>2]),ar[e>>2]=0),(l=ar[l>>2]=0)|l}function Ia(A){var e,r=0;for(tr[(A|=0)+4138>>0]=2,r=A+4139|0,tr[A+4155>>0]=0,tr[A+4156>>0]=0,tr[r>>0]=0,tr[r+1>>0]=0,tr[r+2>>0]=0,e=(r=A+4340|(tr[r+3>>0]=0))+60|0;(0|(r=r+4|(ar[r>>2]=0)))<(0|e););Ca(A,0)}function Ca(A,e){e|=0;var r=0,i=0;if(ar[(A|=0)>>2]=0,or[A+4>>1]=0,tr[A+6>>0]=1,tr[A+7>>0]=1,ar[A+8>>2]=27,tr[A+12>>0]=0,tr[A+13>>0]=0,tr[A+14>>0]=0,ar[(e=A+16|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,or[e+16>>1]=0,tr[e+18>>0]=0,ar[A+36>>2]=1,ar[A+40>>2]=1,tr[A+44>>0]=1,tr[A+45>>0]=1,tr[A+46>>0]=1,vb(A+4172|0,0,168),e=0|ar[A+4340>>2],(0|(i=0|ar[(r=A+4344|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4352>>2],(0|(i=0|ar[(r=A+4356|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4364>>2],(0|(i=0|ar[(r=A+4368|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4376>>2],(0|(i=0|ar[(r=A+4380|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4388>>2],(0|(i=0|ar[(r=A+4392|0)>>2]))==(0|e))return ar[(i=A+4160|0)>>2]=0,tr[(i=A+47|0)>>0]=0,tr[(i=A+48|0)>>0]=0,tr[(i=A+49|0)>>0]=0,ar[(i=A+52|0)>>2]=0,ar[(i=A+56|0)>>2]=0,tr[(i=A+60|0)>>0]=0,tr[(i=A+4125|0)>>0]=0,ar[(i=A+4128|0)>>2]=2,ar[(A=A+4132|0)>>2]=0,void(or[A+4>>1]=0);ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2),ar[(i=A+4160|0)>>2]=0,tr[(i=A+47|0)>>0]=0,tr[(i=A+48|0)>>0]=0,tr[(i=A+49|0)>>0]=0,ar[(i=A+52|0)>>2]=0,ar[(i=A+56|0)>>2]=0,tr[(i=A+60|0)>>0]=0,tr[(i=A+4125|0)>>0]=0,ar[(i=A+4128|0)>>2]=2,ar[(A=A+4132|0)>>2]=0,or[A+4>>1]=0}function Ga(A){var e=0,r=0,i=0;0|(e=0|ar[(A|=0)+4388>>2])&&((0|(i=0|ar[(r=A+4392|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),0|(e=0|ar[A+4376>>2])&&((0|(i=0|ar[(r=A+4380|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),0|(e=0|ar[A+4364>>2])&&((0|(i=0|ar[(r=A+4368|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),0|(e=0|ar[A+4352>>2])&&((0|(i=0|ar[(r=A+4356|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),(i=0|ar[A+4340>>2])&&((0|(r=0|ar[(e=A+4344|0)>>2]))!=(0|i)&&(ar[e>>2]=r+(~((r+-4-i|0)>>>2)<<2)),vu(i))}function Va(A,e){var r,i,f,n,t,o=0,a=0,c=0,l=0;if((e|=0)>>>0<=(a=0|ar[(t=(A|=0)+8|0)>>2])-(o=0|ar[(l=A+4|0)>>2])>>2>>>0)return vb(0|o,0,e<<2|0),void(ar[l>>2]=o+(e<<2));1073741823<(o=(i=(f=o-(n=0|ar[A>>2])|0)>>2)+e|0)>>>0&&zl(),a=(c=a-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);vb(0|(r=c+(i<<2)|0),0,e<<2|0),o=r+(0-i<<2)|0,0<(0|f)&&hb(0|o,0|n,0|f),ar[A>>2]=o,ar[l>>2]=r+(e<<2),ar[t>>2]=c+(a<<2),n&&vu(n)}function Fa(A,e,r){e|=0,r|=0;var i,f=0;if(!(0|tr[(A|=0)+34>>0]))return 0==(r|e|0)|0;i=0|ar[A+36>>2];A:do{if(0<(0|i)){for(f=0;(0|ar[A+4252+(f<<2)>>2])!=(0|e);)if((0|i)<=(0|(f=f+1|0))){e=f=0;break A}if(0<(0|(e=0|ar[A+40>>2])))for(f=0;;){if((0|ar[A+4296+(f<<2)>>2])==(0|r)){e=f=1;break A}if((0|e)<=(0|(f=f+1|0))){f=1,e=0;break}}else f=1,e=0}else e=f=0}while(0);return e&f|0}function Ra(A,e,r,i,f,n,t,o,a,c,l){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0;if(ur=(U=ur)+144|0,D=U+8|0,F=(V=U)+136|0,S=0|ar[(R=(A|=0)+10352|0)>>2],iA=(0|br(S,r))+e|0,J=0|ar[A+10340>>2],z=f<<1,j=(0|cr[J+(24*iA|0)+4>>0])>>>z&3)if(T=(M=1<<(P=0|ar[((O=0==(0|f))?A+5760|0:A+5768|0)>>2]))-1|0,Q=0|br(n,e),Y=0|br(t,r),W=0|ar[(O?A+24|0:A+32|0)>>2],I=0|ar[(O?A+28|0:A+36|0)>>2],e=Y>>(C=0|ar[A+10348>>2]),-1<(0|(i=Q>>C))&(0|i)<(0|S)||sr(48482,48519,118,48539),(0|e)<=-1&&sr(48543,48519,119,48539),(0|(G=0|ar[A+10356>>2]))<=(0|e)&&sr(48543,48519,119,48539),nA=J+(24*((0|br(e,S))+i|0)|0)+2|0,p=A+52|0,y=0|ar[A+48>>2],nA=0|ar[800+(0|ar[y+(lr[nA>>1]<<2)>>2])>>2],B=0|ar[A+5820>>2],E=y,cA=O?aA=0:(aA=(0|ar[A+5780>>2])-1|0,(0|ar[A+5784>>2])-1|0),Z=(fA=0|ar[A+5804>>2])-aA|0,fA=fA-cA|0,_=(0|W)<(Q+n|0)?W-Q|0:n,N=(0|I)<(Y+t|0)?I-Y|0:t,X=0!=(0|tr[J+(24*iA|0)+22>>0]),2==(0|j)){switch((0|cr[J+(24*iA|0)+5>>0])>>>z&3){case 0:H=x=0,tA=-1,oA=1;break;case 1:H=-(x=1),oA=tA=0;break;case 2:tA=H=-(x=1),oA=1;break;case 3:H=-(x=1),oA=-(tA=1)}if(ar[D>>2]=tA,ar[4+D>>2]=oA,ar[V>>2]=H,ar[V+4>>2]=x,g=0|br(H,a),m=0-x&a,tr[F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)>>0],tr[1+F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)+1>>0],tr[2+F>>0]=0,tr[3+F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)+2>>0],tr[4+F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)+3>>0],(0|N)<=0)ur=U;else{f=0<(0|_),u=A+5480|0,b=A+10368|0,s=A+10372|0,d=A+10376|0,k=A+10360|0,h=_+-1|0,w=N+-1|0,v=A+5977|0,P=A+10308|0,L=(0|br(Y>>fA,B))+(Q>>Z)|0,H=0;A:for(;;){if(K=o+((0|br(A=H+Y|0,a))+Q<<1)|0,q=c+((0|br(A,l))+Q<<1)|0,f){AA=0==(0|H),eA=(0|H)==(0|w),iA=(0|(rA=($=A<>C))<0|(0|G)<=(0|rA),x=0;do{if(X&&0!=(0|tr[u>>0])){if(i=x+Q<>(e=0|ar[b>>2]),e=$>>e,(0|i)<=-1){lA=23;break A}if((0|(r=0|ar[s>>2]))<=(0|i)){lA=23;break A}if((0|e)<=-1){lA=26;break A}if((0|e)>=(0|ar[d>>2])){lA=26;break A}j=(0|ar[k>>2])+(3*((0|br(r,e))+i|0)|0)|0,1024&(cr[j>>0]|cr[j+1>>0]<<8)||(lA=28)}else lA=28;e:do{if(28==(0|lA)){if(e=(i=(j=x+Q|(lA=0))<>(r=0|ar[b>>2]),r=$>>r,(0|e)<=-1){lA=30;break A}if((0|(S=0|ar[s>>2]))<=(0|e)){lA=30;break A}if((0|r)<=-1){lA=33;break A}if((0|r)>=(0|ar[d>>2])){lA=33;break A}if(z=(0|ar[k>>2])+(3*((0|br(S,r))+e|0)|0)|0,!(2048&(cr[z>>0]|cr[z+1>>0]<<8))){if(eA|(0|x)==(0|h)|AA|0==(0|x)){O=-1<(0|(S=i>>C)),r=0;do{if(n=(0|ar[D+(r<<2)>>2])+j|0,!((0|(t=(0|ar[V+(r<<2)>>2])+A|0))<(0|I)&(0|n)<(0|W)&-1<(t|n|0)))break e;if(e=t<>C,(0|(i=n<>C))<=-1){lA=40;break A}if((0|(z=0|ar[R>>2]))<=(0|i)){lA=40;break A}if(!(-1<(0|e)&(0|e)<(0|G))){lA=42;break A}if(e=J+(24*((0|br(z,e))+i|0)|0)+2|0,(e=0|lr[e>>1])>>>0>=(0|ar[p>>2])-E>>2>>>0){lA=59;break A}if(!(i=0|ar[y+(e<<2)>>2])){lA=59;break A}if((0|(i=0|ar[i+800>>2]))<(0|nA)){if(!(O&(0|S)<(0|z))){lA=47;break A}if(iA){lA=49;break A}if(z=J+(24*((0|br(z,rA))+S|0)|0)+2|0,!(0|tr[764+(0|ar[y+(lr[z>>1]<<2)>>2])>>0]))break e}if((0|nA)<(0|i)&&0==(0|tr[764+(0|ar[y+(e<<2)>>2])>>0]))break e;if(0==(0|tr[v>>0])&&(t=(0|br(t>>fA,B))+(n>>Z)|0,z=0|ar[P>>2],(0|ar[z+(t<<2)>>2])!=(0|ar[z+(L<<2)>>2])))break e;r=r+1|0}while((0|r)<2)}t=(j=0|lr[K+(x<<1)>>1])-(0|lr[K+(x+g+tA<<1)>>1])|0,z=j-(0|lr[K+(x+m+oA<<1)>>1])|0,j=(0|tr[((0|t)<0?1:0|t?3:2)+((0|z)<0?-1:0!=(0|z)&1)+F>>0])+j|0,or[q+(x<<1)>>1]=(0|j)<0?0:65535&((0|j)<(0|M)?j:T)}}}while(0);x=x+1|0}while((0|x)<(0|_))}if((0|N)<=(0|(H=H+1|0))){lA=59;break}}if(23==(0|lA))sr(48482,48519,118,48539);else if(26==(0|lA))sr(48543,48519,119,48539);else if(30==(0|lA))sr(48482,48519,118,48539);else if(33==(0|lA))sr(48543,48519,119,48539);else if(40==(0|lA))sr(48482,48519,118,48539);else if(42==(0|lA))sr(48543,48519,119,48539);else if(47==(0|lA))sr(48482,48519,118,48539);else if(49==(0|lA))sr(48543,48519,119,48539);else if(59==(0|lA))return void(ur=U)}}else{for(i=0|cr[J+(24*iA|0)+6+f>>0],r=(e=D)+128|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|r););ar[D+((31&i)<<2)>>2]=1,ar[D+((i+1&31)<<2)>>2]=2,ar[D+((i+2&31)<<2)>>2]=3,ar[D+((i+3&31)<<2)>>2]=4,rA=P+-5|0,i=0<(0|N);A:do{if(X){if(i){K=0<(0|_),q=A+5480|0,$=A+10368|0,AA=A+10372|0,eA=A+10376|0,P=A+10360|0,L=7<(0|rA),x=0;e:for(;;){r:do{if(K){if(H=(z=x+Y|0)<>0]),L)for(j=-1<(0|(z=H>>(t=0|ar[$>>2]))),n=-1<(0|(O=H>>t)),S=0;;){if(i=S+Q<>t))<=-1){lA=88;break e}if((0|(r=0|ar[AA>>2]))<=(0|e)){lA=88;break e}if(!n){lA=91;break e}if((0|O)>=(0|ar[eA>>2])){lA=91;break e}oA=(0|ar[P>>2])+(3*((0|br(r,O))+e|0)|0)|0,1024&(cr[oA>>0]|cr[oA+1>>0]<<8)||(lA=79)}if(79==(0|lA)){if(((lA=0)|(i>>=t))<=-1){lA=95;break e}if((0|i)>=(0|ar[AA>>2])){lA=95;break e}if(!j){lA=98;break e}if((0|z)>=(0|ar[eA>>2])){lA=98;break e}}if((0|_)<=(0|(S=S+1|0)))break r}else n=0;do{if(i=(j=n+Q|0)<>2],A)lA=93;else{if(r=H>>O,(0|(e=i>>O))<=-1){lA=88;break e}if((0|(S=0|ar[AA>>2]))<=(0|e)){lA=88;break e}if((0|r)<=-1){lA=91;break e}if((0|r)>=(0|ar[eA>>2])){lA=91;break e}oA=(0|ar[P>>2])+(3*((0|br(S,r))+e|0)|0)|0,1024&(cr[oA>>0]|cr[oA+1>>0]<<8)||(lA=93)}do{if(93==(0|lA)){if(r=i>>O,i=H>>O,((lA=0)|r)<=-1){lA=95;break e}if((0|(e=0|ar[AA>>2]))<=(0|r)){lA=95;break e}if((0|i)<=-1){lA=98;break e}if((0|i)>=(0|ar[eA>>2])){lA=98;break e}if(oA=(0|ar[P>>2])+(3*((0|br(e,i))+r|0)|0)|0,2048&(cr[oA>>0]|cr[oA+1>>0]<<8))break;if(i=0|lr[o+(j+t<<1)>>1],(0|(e=0|ar[D+(i>>>rA<<2)>>2]))<=0)break;oA=(0|tr[e+-1+(J+(24*iA|0)+9+(f<<2))>>0])+i|0,or[c+(j+z<<1)>>1]=(0|oA)<0?0:65535&((0|oA)<(0|M)?oA:T)}}while(0);n=n+1|0}while((0|n)<(0|_))}}while(0);if((0|N)<=(0|(x=x+1|0)))break A}88==(0|lA)?sr(48482,48519,118,48539):91==(0|lA)?sr(48543,48519,119,48539):95==(0|lA)?sr(48482,48519,118,48539):98==(0|lA)&&sr(48543,48519,119,48539)}}else if(i&&(L=7<(0|rA),0<(0|_))){e=0;do{if(r=0|br(S=e+Y|0,a),S=0|br(S,l),!L)for(i=0;n=0|lr[o+((O=i+Q|0)+r<<1)>>1],0<(0|(t=0|ar[D+(n>>>rA<<2)>>2]))&&(lA=(0|tr[t+-1+(J+(24*iA|0)+9+(f<<2))>>0])+n|0,or[c+(O+S<<1)>>1]=(0|lA)<0?0:65535&((0|lA)<(0|M)?lA:T)),(0|(i=i+1|0))<(0|_););e=e+1|0}while((0|e)<(0|N))}}while(0);ur=U}else ur=U}function Na(A,e,r,i,f,n,t,o,a,c,l){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0;if(ur=(U=ur)+144|0,J=U+8|0,F=(V=U)+136|0,S=0|ar[(R=(A|=0)+10352|0)>>2],iA=(0|br(S,r))+e|0,fA=0|ar[(N=A+10340|0)>>2],z=f<<1,j=(0|cr[fA+(24*iA|0)+4>>0])>>>z&3)if(T=(M=1<<(P=0|ar[((O=0==(0|f))?A+5760|0:A+5768|0)>>2]))-1|0,D=0|br(n,e),Q=0|br(t,r),W=0|ar[(O?A+24|0:A+32|0)>>2],I=0|ar[(O?A+28|0:A+36|0)>>2],i=D>>(e=0|ar[(C=A+10348|0)>>2]),e=Q>>e,-1<(0|i)&(0|i)<(0|S)||sr(48482,48519,118,48539),(0|e)<=-1&&sr(48543,48519,119,48539),(0|e)>=(0|ar[(G=A+10356|0)>>2])&&sr(48543,48519,119,48539),oA=fA+(24*((0|br(e,S))+i|0)|0)+2|0,B=A+52|0,oA=0|ar[800+(0|ar[(0|ar[(y=A+48|0)>>2])+(lr[oA>>1]<<2)>>2])>>2],E=0|ar[A+5820>>2],uA=O?lA=0:(lA=(0|ar[A+5780>>2])-1|0,(0|ar[A+5784>>2])-1|0),p=(tA=0|ar[A+5804>>2])-lA|0,tA=tA-uA|0,Y=(0|W)<(D+n|0)?W-D|0:n,_=(0|I)<(Q+t|0)?I-Q|0:t,X=0!=(0|tr[fA+(24*iA|0)+22>>0]),2==(0|j)){switch((0|cr[fA+(24*iA|0)+5>>0])>>>z&3){case 0:H=x=0,aA=-1,cA=1;break;case 1:H=-(x=1),cA=aA=0;break;case 2:aA=H=-(x=1),cA=1;break;case 3:H=-(x=1),cA=-(aA=1)}if(ar[J>>2]=aA,ar[4+J>>2]=cA,ar[V>>2]=H,ar[V+4>>2]=x,Z=0|br(H,a),g=0-x&a,tr[F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)>>0],tr[1+F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)+1>>0],tr[2+F>>0]=0,tr[3+F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)+2>>0],tr[4+F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)+3>>0],(0|_)<=0)ur=U;else{u=0<(0|Y),b=A+5480|0,s=A+10368|0,d=A+10372|0,k=A+10376|0,h=A+10360|0,w=Y+-1|0,v=_+-1|0,m=A+5977|0,$=A+10308|0,AA=(0|br(Q>>tA,E))+(D>>p)|0,K=0;A:for(;;){if(rA=o+((0|br(eA=K+Q|0,a))+D)|0,iA=c+((0|br(eA,l))+D)|0,u){fA=eA<>0])){if(i=q+D<>(e=0|ar[s>>2]),e=fA>>e,(0|i)<=-1){bA=23;break A}if((0|(r=0|ar[d>>2]))<=(0|i)){bA=23;break A}if((0|e)<=-1){bA=26;break A}if((0|e)>=(0|ar[k>>2])){bA=26;break A}A=(0|ar[h>>2])+(3*((0|br(r,e))+i|0)|0)|0,1024&(cr[A>>0]|cr[A+1>>0]<<8)||(bA=28)}else bA=28;e:do{if(28==(0|bA)){if(i=(A=(L=q+D|(bA=0))<>(e=0|ar[s>>2]),e=fA>>e,(0|i)<=-1){bA=30;break A}if((0|(r=0|ar[d>>2]))<=(0|i)){bA=30;break A}if((0|e)<=-1){bA=33;break A}if((0|e)>=(0|ar[k>>2])){bA=33;break A}if(P=(0|ar[h>>2])+(3*((0|br(r,e))+i|0)|0)|0,!(2048&(cr[P>>0]|cr[P+1>>0]<<8))){if(nA|(0|q)==(0|w)|f|0==(0|q)){t=0;do{if(z=(0|ar[J+(t<<2)>>2])+L|0,!((0|(j=(0|ar[V+(t<<2)>>2])+eA|0))<(0|I)&(0|z)<(0|W)&-1<(j|z|0)))break e;if(e=j<>(n=0|ar[C>>2]),(0|(i=z<>n))<=-1){bA=39;break A}if((0|(H=0|ar[R>>2]))<=(0|i)){bA=39;break A}if((0|e)<=-1){bA=42;break A}if((0|(x=0|ar[G>>2]))<=(0|e)){bA=42;break A}if(i=(P=0|ar[N>>2])+(24*((0|br(H,e))+i|0)|0)+2|0,i=0|lr[i>>1],O=S=0|ar[y>>2],i>>>0>=(0|ar[B>>2])-S>>2>>>0){bA=59;break A}if(!(e=0|ar[O+(i<<2)>>2])){bA=59;break A}if((0|(r=0|ar[e+800>>2]))<(0|oA)){if(i=fA>>n,!(-1<(0|(S=A>>n))&(0|S)<(0|H))){bA=47;break A}if(!(-1<(0|i)&(0|i)<(0|x))){bA=49;break A}if(P=P+(24*((0|br(H,i))+S|0)|0)+2|0,!(0|tr[764+(0|ar[O+(lr[P>>1]<<2)>>2])>>0]))break e}if((0|oA)<(0|r)&&0==(0|tr[e+764>>0]))break e;if(0==(0|tr[m>>0])&&(x=(0|br(j>>tA,E))+(z>>p)|0,P=0|ar[$>>2],(0|ar[P+(x<<2)>>2])!=(0|ar[P+(AA<<2)>>2])))break e;t=t+1|0}while((0|t)<2)}P=(A=0|cr[rA+q>>0])-(0|cr[rA+(q+Z+aA)>>0])|0,L=A-(0|cr[rA+(q+g+cA)>>0])|0,A=(0|tr[((0|P)<0?1:0|P?3:2)+((0|L)<0?-1:0!=(0|L)&1)+F>>0])+A|0,tr[iA+q>>0]=(0|A)<0?0:255&((0|A)<(0|M)?A:T)}}}while(0);q=q+1|0}while((0|q)<(0|Y))}if((0|_)<=(0|(K=K+1|0))){bA=59;break}}if(23==(0|bA))sr(48482,48519,118,48539);else if(26==(0|bA))sr(48543,48519,119,48539);else if(30==(0|bA))sr(48482,48519,118,48539);else if(33==(0|bA))sr(48543,48519,119,48539);else if(39==(0|bA))sr(48482,48519,118,48539);else if(42==(0|bA))sr(48543,48519,119,48539);else if(47==(0|bA))sr(48482,48519,118,48539);else if(49==(0|bA))sr(48543,48519,119,48539);else if(59==(0|bA))return void(ur=U)}}else{for(i=0|cr[fA+(24*iA|0)+6+f>>0],r=(e=J)+128|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|r););ar[J+((31&i)<<2)>>2]=1,ar[J+((i+1&31)<<2)>>2]=2,ar[J+((i+2&31)<<2)>>2]=3,ar[J+((i+3&31)<<2)>>2]=4,rA=P+-5|0,i=0<(0|_);A:do{if(X){if(i){K=0<(0|Y),q=A+5480|0,$=A+10368|0,AA=A+10372|0,eA=A+10376|0,L=A+10360|0,A=7<(0|rA),P=0;e:for(;;){r:do{if(K){if(x=(z=P+Q|0)<>0]),H=-1<(0|(j=x>>(t=0|ar[$>>2]))),n=-1<(0|(O=x>>t)),S=0;;){if(i=S+D<>t))<=-1){bA=88;break e}if((0|(r=0|ar[AA>>2]))<=(0|e)){bA=88;break e}if(!n){bA=91;break e}if((0|O)>=(0|ar[eA>>2])){bA=91;break e}cA=(0|ar[L>>2])+(3*((0|br(r,O))+e|0)|0)|0,1024&(cr[cA>>0]|cr[cA+1>>0]<<8)||(bA=79)}if(79==(0|bA)){if(((bA=0)|(i>>=t))<=-1){bA=95;break e}if((0|i)>=(0|ar[AA>>2])){bA=95;break e}if(!H){bA=98;break e}if((0|j)>=(0|ar[eA>>2])){bA=98;break e}}if((0|Y)<=(0|(S=S+1|0)))break r}else n=0;do{if(i=(j=n+D|0)<>2],0|tr[q>>0]){if(r=x>>O,(0|(e=i>>O))<=-1){bA=88;break e}if((0|(S=0|ar[AA>>2]))<=(0|e)){bA=88;break e}if((0|r)<=-1){bA=91;break e}if((0|r)>=(0|ar[eA>>2])){bA=91;break e}cA=(0|ar[L>>2])+(3*((0|br(S,r))+e|0)|0)|0,1024&(cr[cA>>0]|cr[cA+1>>0]<<8)||(bA=93)}else bA=93;do{if(93==(0|bA)){if(r=i>>O,i=x>>O,((bA=0)|r)<=-1){bA=95;break e}if((0|(e=0|ar[AA>>2]))<=(0|r)){bA=95;break e}if((0|i)<=-1){bA=98;break e}if((0|i)>=(0|ar[eA>>2])){bA=98;break e}if(cA=(0|ar[L>>2])+(3*((0|br(e,i))+r|0)|0)|0,2048&(cr[cA>>0]|cr[cA+1>>0]<<8))break;if(i=0|cr[o+(j+t)>>0],(0|(e=0|ar[J+(i>>>rA<<2)>>2]))<=0)break;cA=(0|tr[e+-1+(fA+(24*iA|0)+9+(f<<2))>>0])+i|0,tr[c+(j+z)>>0]=(0|cA)<0?0:255&((0|cA)<(0|M)?cA:T)}}while(0);n=n+1|0}while((0|n)<(0|Y))}}while(0);if((0|_)<=(0|(P=P+1|0)))break A}88==(0|bA)?sr(48482,48519,118,48539):91==(0|bA)?sr(48543,48519,119,48539):95==(0|bA)?sr(48482,48519,118,48539):98==(0|bA)&&sr(48543,48519,119,48539)}}else if(i&&(L=7<(0|rA),0<(0|Y))){e=0;do{if(r=0|br(S=e+Q|0,a),S=0|br(S,l),!L)for(i=0;n=0|cr[o+((O=i+D|0)+r)>>0],0<(0|(t=0|ar[J+(n>>>rA<<2)>>2]))&&(bA=(0|tr[t+-1+(fA+(24*iA|0)+9+(f<<2))>>0])+n|0,tr[c+(O+S)>>0]=(0|bA)<0?0:255&((0|bA)<(0|M)?bA:T)),(0|(i=i+1|0))<(0|Y););e=e+1|0}while((0|e)<(0|_))}}while(0);ur=U}else ur=U}function _a(A,e){A|=0;var r=0;switch(0|(e|=0)){case 0:e=7796,r=4;break;case 1:e=7824,r=4;break;case 2:e=7768,r=4;break;default:e=0}return 4==(0|r)&&(e=0|ar[e+(A<<2)>>2]),0|e}function Ya(){var A=0,e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;t=1;do{for(f=0|ar[7824+(t<<2)>>2],o=1<>0]=r,tr[f+(i<<1)+1>>0]=n,(0|(r=r+1|0))!=(0|o);)i=i+1|0;if((0|(A=A+1|0))==(0|o))break;e=e+o|0}for(f=0|ar[7768+(t<<2)>>2],e=A=0;;){for(n=255&A,r=0,i=e;tr[f+(i<<1)>>0]=n,(0|(r=(tr[f+(i<<1)+1>>0]=r)+1|0))!=(0|o);)i=i+1|0;if((0|(A=A+1|0))==(0|o))break;e=e+o|0}f=0|ar[7796+(t<<2)>>2],n=o<>0]=i,tr[f+(A<<1)+1>>0]=r,A=A+1|0),e=i+1|0,0<(0|r);)i=e,r=r+-1|0;else e=0}while((0|A)<(0|n));t=t+1|0}while(6!=(0|t));a=2;do{c=1<>2],n=(h=2==(0|o))?66707:0,t=0;do{switch(k=t<>2],r=0;do{for(A=16,e=l;A=(f=0==(0|A))?15:A+-1|0,(((0|cr[i+((e=(f<<31>>31)+e|0)<<1)>>0])<<2)+(0|cr[63979+(A<<1)>>0])|0)!=(0|r)||(((0|cr[i+(e<<1)+1>>0])<<2)+(0|cr[63979+(A<<1)+1>>0])|0)!=(0|t););tr[d+((f=r+k|0)<<1)>>0]=e,tr[d+(f<<1)+1>>0]=A,r=r+1|0}while((0|r)<(0|c));break;case 1:i=0|ar[s>>2],r=0;do{for(A=16,e=l;A=(f=0==(0|A))?15:A+-1|0,(((0|cr[i+((e=(f<<31>>31)+e|0)<<1)>>0])<<2)+(0|cr[61251+(A<<1)>>0])|0)!=(0|r)||(((0|cr[i+(e<<1)+1>>0])<<2)+(0|cr[61251+(A<<1)+1>>0])|0)!=(0|t););tr[d+((f=r+k|0)<<1)>>0]=e,tr[d+(f<<1)+1>>0]=A,r=r+1|0}while((0|r)<(0|c));break;default:i=0;do{for(f=i+k|0,e=h?0|ar[u>>2]:0,A=16,r=l;A=(w=0==(0|A))?15:A+-1|0,(((0|cr[e+((r=(w<<31>>31)+r|0)<<1)>>0])<<2)+(0|cr[n+(A<<1)>>0])|0)!=(0|i)||(((0|cr[e+(r<<1)+1>>0])<<2)+(0|cr[n+(A<<1)+1>>0])|0)!=(0|t););tr[d+(f<<1)>>0]=r,tr[d+(f<<1)+1>>0]=A,i=i+1|0}while((0|i)<(0|c))}t=t+1|0}while((0|t)<(0|c));o=o+1|0}while(3!=(0|o));a=a+1|0}while(6!=(0|a))}function Qa(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0;if(ur=(V=ur)+208|0,H=V+24|0,G=V+8|0,t=(C=V)+40|0,w=V+192|0,132!=(0|ar[(A|=0)>>2]))return ur=V,(H=0)|H;if(!(0|tr[512+(0|ar[e+10332>>2])>>0]))return ur=V,(H=0)|H;if(!(0|tr[e+100>>0]))return ur=V,(H=0)|H;r=0==(0|ar[e+1240>>2])?1:3,i=e+32|0,f=e+24|0,n=e+36|0,o=e+28|0,a=e+40|0,c=e+44|0,l=A+8|0,u=e+5760|0,b=e+5768|0,s=1+w|0,d=2+w|0,k=3+w|0,h=4+w|0,v=5+w|0,m=6+w|0,g=7+w|0,Z=8+w|0,p=9+w|0,y=10+w|0,B=11+w|0,E=12+w|0,X=13+w|0,W=14+w|0,I=15+w|0,j=0;A:for(;;){switch(U=0|ar[((R=0==(0|j))?f:i)>>2],O=0|ar[(R?o:n)>>2],S=0|ar[e+4+(j<<2)>>2],T=0|ar[(R?a:c)>>2],0|ar[l>>2]){case 0:F=0|ar[(R?u:b)>>2],oc(t);e:do{if(0<(0|O)){if(D=U<<1,J=(0|U)<0?-1:D,(0|F)<=8)for(F=0;;)if(ac(t,S+(0|br(F,T))|0,U),(0|O)<=(0|(F=F+1|0))){F=0;break e}if(0<(0|U))F=Q=0;else for(F=R=0;;)if(ac(t,N=F||(F=0|wu(J)),D),(0|O)<=(0|(R=R+1|0)))break e;do{for(N=F||(F=0|wu(J)),_=0|br(Q,T),Y=F,R=0;x=S+(R+_<<1)|0,tr[N+(M=R<<1)>>0]=or[x>>1],tr[Y+(1|M)>>0]=(0|lr[x>>1])>>>8,(0|(R=R+1|0))!=(0|U);)N=Y;ac(t,Y,D),Q=Q+1|0}while((0|Q)<(0|O))}else F=0}while(0);if(lc(w,t),0|F&&mu(F),(0|tr[w>>0])!=(0|tr[A+12+(j<<4)>>0])){z=22;break A}if((0|tr[s>>0])!=(0|tr[A+12+(j<<4)+1>>0])){z=22;break A}if((0|tr[d>>0])!=(0|tr[A+12+(j<<4)+2>>0])){z=22;break A}if((0|tr[k>>0])!=(0|tr[A+12+(j<<4)+3>>0])){z=22;break A}if((0|tr[h>>0])!=(0|tr[A+12+(j<<4)+4>>0])){z=22;break A}if((0|tr[v>>0])!=(0|tr[A+12+(j<<4)+5>>0])){z=22;break A}if((0|tr[m>>0])!=(0|tr[A+12+(j<<4)+6>>0])){z=22;break A}if((0|tr[g>>0])!=(0|tr[A+12+(j<<4)+7>>0])){z=22;break A}if((0|tr[Z>>0])!=(0|tr[A+12+(j<<4)+8>>0])){z=22;break A}if((0|tr[p>>0])!=(0|tr[A+12+(j<<4)+9>>0])){z=22;break A}if((0|tr[y>>0])!=(0|tr[A+12+(j<<4)+10>>0])){z=22;break A}if((0|tr[B>>0])!=(0|tr[A+12+(j<<4)+11>>0])){z=22;break A}if((0|tr[E>>0])!=(0|tr[A+12+(j<<4)+12>>0])){z=22;break A}if((0|tr[X>>0])!=(0|tr[A+12+(j<<4)+13>>0])){z=22;break A}if((0|tr[W>>0])!=(0|tr[A+12+(j<<4)+14>>0])){z=22;break A}if((0|tr[I>>0])==(0|tr[A+12+(j<<4)+15>>0]))break;z=22;break A;case 1:e:do{if(0<(0|O)){if(J=U<<1,M=(0|U)<0?-1:J,F=0<(0|U),(0|ar[(R?u:b)>>2])<=8){if(!F){F=7439,z=39;break}for(R=0,F=7439;;){for(_=S+(0|br(R,T))|0,N=0;z=65535&F,x=cr[_+N>>0]^z>>>8,F=((x^=x>>>4)|z<<8)^x<<5^x<<12,(0|(N=N+1|0))!=(0|U););if((0|(R=R+1|0))==(0|O)){z=39;break e}}}if(F){F=7439,R=D=0;do{for(_=R||(R=0|wu(M)),Y=0|br(D,T),Q=R,N=0;;){if(P=S+(N+Y<<1)|0,tr[_+(x=N<<1)>>0]=or[P>>1],tr[Q+(1|x)>>0]=(0|lr[P>>1])>>>8,(0|(N=N+1|0))==(0|U)){N=0;break}_=Q}for(;x=65535&F,P=cr[Q+N>>0]^x>>>8,F=((P^=P>>>4)|x<<8)^P<<5^P<<12,(0|(N=N+1|0))<(0|J););D=D+1|0}while((0|D)!=(0|O))}else{for(R=F=0;R=R||0|wu(M),(0|(F=F+1|0))!=(0|O););F=7439}F&=65535,R&&mu(R)}else F=7439,z=39}while(0);if(39==(0|z)&&(z=0,F&=65535),(0|F)==(0|(R=0|lr[A+60+(j<<1)>>1])))break;z=43;break A;case 2:if(F=0<(0|U)&0<(0|O),(0|ar[(R?u:b)>>2])<9)if(F){F=R=0;do{for(_=R>>>8^R,Y=0|br(R,T),N=0;F=(255&(_^N^N>>>8)^cr[S+(N+Y)>>0])+F|0,(0|(N=N+1|0))!=(0|U););R=R+1|0}while((0|R)!=(0|O))}else F=0;else if(F){F=N=0;do{for(_=N>>>8^N,Y=0|br(N,T),R=0;F=(P=255&(_^R^R>>>8))+F+(P^cr[S+(R+Y)>>0])|0,(0|(R=R+1|0))!=(0|U););N=N+1|0}while((0|N)!=(0|O))}else F=0;if((0|F)==(0|(R=0|ar[A+68+(j<<2)>>2])))break;z=54;break A}if((0|r)<=(0|(j=j+1|0))){F=0,z=71;break}}return 22==(0|z)?(P=0|ar[2669],ar[C>>2]=ar[e+92>>2],Ii(P,39084,C),ur=V,0|(P=5)):43==(0|z)?(P=0|ar[2669],x=0|ar[e+92>>2],ar[G>>2]=R,ar[4+G>>2]=F,ar[8+G>>2]=x,Ii(P,39127,G),ur=V,0|(P=5)):54==(0|z)?(P=0|ar[2669],x=0|ar[e+92>>2],ar[H>>2]=R,ar[H+4>>2]=F,ar[H+8>>2]=x,Ii(P,39127,H),ur=V,0|(P=5)):71==(0|z)?(ur=V,0|F):0}function Da(A){var e,r,i,f=0,n=0,t=0,o=0,a=0;if(e=(o=0|ar[(A|=0)+18596>>2])+5932|0,n=0|ar[(r=A+18600|0)>>2],!(0|tr[n+12>>0]))return 3<=(f=0|ar[n+796>>2])>>>0&&sr(39211,39242,1508,39251),ht(A+18580|0,f,0|ar[n+792>>2]),tr[(A=A+18588|0)>>0]=0,tr[A+1>>0]=0,tr[A+2>>0]=0,(tr[A+3>>0]=0)|(A=1);if(t=0|ar[n+16>>2],f=0|lr[(0|ar[o+10340>>2])+(24*(0|ar[(0|ar[o+10284>>2])+((0|ar[(0|ar[o+10272>>2])+(t<<2)>>2])-1<<2)>>2])|0)+2>>1],n=0|ar[o+48>>2],f>>>0>=(0|ar[o+52>>2])-n>>2>>>0)return(A=0)|A;if(i=0|ar[n+(f<<2)>>2],0|Fa(e,(0|t)%(0|(o=0|ar[o+5820>>2]))|0,(0|t)/(0|o)|0))return f=0|ar[r>>2],3<=(n=0|ar[f+796>>2])>>>0&&sr(39211,39242,1508,39251),ht(A+18580|0,n,0|ar[f+792>>2]),tr[(A=A+18588|0)>>0]=0,tr[A+1>>0]=0,tr[A+2>>0]=0,(tr[A+3>>0]=0)|(A=1);if(t=0|ar[A+18604>>2],n=0|ar[A+18608>>2],o=0|ar[t+10632>>2],!(1<(t=(0|ar[t+10636>>2])-o>>2)>>>0))return(A=0)|A;for(f=1;(0|ar[o+(f<<2)>>2])!=(0|n);)if(t>>>0<=(f=f+1|0)>>>0){f=0,a=16;break}return 16==(0|a)?0|f:(f=0|ar[o+(f+-1<<2)>>2])?(Mn(f+44|0,0|ar[f+124>>2]),0|tr[1340+i>>0]?(gt(A+18580|0,a=1332+i|0),vt(a),0|(A=1)):(A=0)|A):(A=0)|A}function Ja(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0;m=0|ar[(C=(A|=0)+18596|0)>>2],h=0|ar[m+5820>>2],v=0|ar[(w=A+12|0)>>2],k=m+5965|0;do{if(!r&&0<(0|v)&0!=(0|tr[k>>0])&&0==(0|ar[A+8>>2])){if(r=v+-1|0,1<(0|h)){if(I=0|ar[(v=A+18604|0)>>2],r>>>0<(0|ar[I+10680>>2])-(0|ar[I+10676>>2])>>3>>>0){ba(m,0|ar[A+18612>>2],1,r,1),gt(A+18580|0,(0|ar[10676+(0|ar[v>>2])>>2])+((0|ar[w>>2])-1<<3)|0),vt((0|ar[10676+(0|ar[v>>2])>>2])+((0|ar[w>>2])-1<<3)|0);break}return 0|(C=2)}if(ba(m,0|ar[A+18612>>2],0,r,1),r=0|ar[A+18600>>2],(v=0|ar[r+796>>2])>>>0<3){ht(A+18580|0,v,0|ar[r+792>>2]),tr[(I=A+18588|0)>>0]=0,tr[I+1>>0]=0,tr[I+2>>0]=0,tr[I+3>>0]=0;break}sr(39211,39242,1508,39251)}}while(0);for(f=A+8|0,n=h-1|0,t=A+18612|0,o=A+18580|0,a=A+18584|0,c=m+5828|0,l=A+18604|0,I=A+18556|0,u=m+5935|0,b=A+18600|0,s=A+4|0,d=m+5966|0,i=m+10296|0,X=0|ar[w>>2],p=0|ar[f>>2],W=0|ar[C>>2];;){if((v=(0|br(X,h))+p|0)>>>0>=(0|ar[W+10276>>2])-(0|ar[W+10272>>2])>>2>>>0){r=2,v=35;break}if((0|p)>=(0|ar[W+5820>>2])){r=2,v=35;break}if((0|X)>=(0|ar[W+5828>>2])){r=2,v=35;break}if((0|p)<(0|n)&0<(0|X)&e&&ba(W,0|ar[t>>2],p+1|0,X+-1|0,1),!(0|ar[a>>2])){r=2,v=35;break}if(Ma(A),1==(0|p)&0!=(0|tr[k>>0])&&(0|X)<((0|ar[c>>2])-1|0)){if(W=0|ar[l>>2],r=0|ar[W+10676>>2],(0|ar[W+10680>>2])-r>>3>>>0<=X>>>0){r=2,v=35;break}gt(r+(X<<3)|0,o),mt((0|ar[10676+(0|ar[l>>2])>>2])+(X<<3)|0)}if((B=0!=(0|(y=0|at(I))))&&0|tr[u>>0]&&(gt(1332+(0|ar[b>>2])|0,o),mt(1332+(0|ar[b>>2])|0),tr[1340+(0|ar[b>>2])>>0]=1),Tn((0|ar[10524+(0|ar[C>>2])>>2])+(80*v|0)|0,1),E=0|ar[w>>2],Z=(g=0|ar[s>>2])+1|0,ar[s>>2]=Z,W=0|ar[C>>2],r=0|ar[W+5836>>2],v=0|ar[W+5820>>2],(0|Z)<(0|r)?r=(m=0)|ar[(0|ar[W+10284>>2])+(Z<<2)>>2]:m=1,X=(0|r)/(0|v)|0,p=(0|r)%(0|v)|0,ar[A>>2]=r,ar[f>>2]=p,ar[w>>2]=X,0==(0|y)&m){v=27;break}if(B){r=0,v=35;break}if((r=0|tr[d>>0]?(r=0|ar[i>>2],(0|ar[r+(Z<<2)>>2])!=(0|ar[r+(g<<2)>>2])):0)|(0|E)!=(0|X)&0!=(0|tr[k>>0])){v=32;break}}return 27==(0|v)?(er(4+(0|ar[A+18592>>2])|0,1004,0),tr[10516+(0|ar[C>>2])>>0]=3,0|(C=2)):32==(0|v)?0|at(I)?(tt(I),0|(C=1)):(er(4+(0|ar[A+18592>>2])|0,1017,0),tr[10516+(0|ar[C>>2])>>0]=3,0|(C=2)):35==(0|v)?0|r:0}function Ma(A){var e,r,i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0;n=0|ar[(A|=0)+18600>>2],b=0|ar[A+18596>>2],a=(0|(c=0|ar[A>>2]))%(0|(s=0|ar[b+5820>>2]))|0,s=(0|c)/(0|s)|0,r=a<<(e=0|ar[(c=b+5804|0)>>2]),i=s<>2],l=(0|br(f,s))+a|0,t=0|ar[b+10340>>2],or[t+(24*l|0)>>1]=ar[800+n>>2],l=65535&ar[n>>2],o=r>>(u=0|ar[b+10348>>2]),u=i>>u,-1<(0|o)&(0|o)<(0|f)||sr(48482,48519,128,48539),(0|u)<=-1&&sr(48543,48519,129,48539),(0|u)>=(0|ar[b+10356>>2])&&sr(48543,48519,129,48539),b=t+(24*((0|br(f,u))+o|0)|0)+2|0,or[b>>1]=l,0!=(0|tr[325+n>>0])||0!=(0|tr[326+n>>0])?(function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;ur=(n=ur)+32|0,i=n,a=0|ar[18600+(A|=0)>>2],f=0|ar[A+18596>>2],o=(t=i)+17|0;for(;tr[t>>0]=0,t=t+1|0,(0|t)<(0|o););t=0<(0|e)&&(C=0|br(0|ar[5820+f>>2],r),I=0|ar[10308+f>>2],(0|ar[A>>2])>(0|ar[a+800>>2])&&(0|ar[I+(C+e<<2)>>2])==(0|ar[I+(e+-1+C<<2)>>2]))?255&(0|ot(A+18556|0,0|ar[A+18580>>2])):0;o=0<(0|r)&(I=t<<24>>24==0)&&(E=0|ar[5820+f>>2],W=(0|br(E,r))+e|0,X=0|ar[10308+f>>2],C=X+((0|br(E,r+-1|0))+e<<2)|0,((0|ar[A>>2])-E|0)>=(0|ar[a+800>>2])&&(0|ar[X+(W<<2)>>2])==(0|ar[C>>2]))?255&(0|ot(A+18556|0,0|ar[A+18580>>2])):0;if(C=o<<24>>24==0,!((o|t)<<24>>24)){E=0==(0|ar[5776+f>>2])?1:3,X=a+325|0,W=A+18556|0,m=A+18580|0,g=5760+f|0,Z=5768+f|0,p=10087+f|0,y=10088+f|0,B=i+1|0,v=a+326|0,t=o=w=0;do{if((b=0==(0|w))&0!=(0|tr[X>>0])||0<(0|w)&0!=(0|tr[v>>0])){do{if(b)o=0|ot(W,1+(0|ar[m>>2])|0)?(o=0==(0|ct(W)))?1:2:0,a=o,o&=255;else{if(1!=(0|w)){a=(255&o)>>>(w<<1)&3;break}A=0|ot(W,1+(0|ar[m>>2])|0)?(A=0==(0|ct(W)))?1:2:0,o=255&((a=A)<<4|A<<2|255&o)}}while(0);if(A=255&a){a=0|ar[(u=b?g:Z)>>2],a=255&(0|lt(W,(1<<((0|a)<10?a:10)+-5)-1|0)),tr[(s=i+5+(w<<2)|0)>>0]=a,c=0|ar[u>>2],c=255&(0|lt(W,(1<<((0|c)<10?c:10)+-5)-1|0)),tr[(d=i+5+(w<<2)+1|0)>>0]=c,l=0|ar[u>>2],l=255&(0|lt(W,(1<<((0|l)<10?l:10)+-5)-1|0)),tr[(k=i+5+(w<<2)+2|0)>>0]=l,u=0|ar[u>>2],u=255&(0|lt(W,(1<<((0|u)<10?u:10)+-5)-1|0)),tr[(h=i+5+(w<<2)+3|0)>>0]=u;do{if(1==(0|A))A=a<<24>>24?(A=0!=(0|ct(W)))?-1:1:0,c=c<<24>>24?(c=0!=(0|ct(W)))?-1:1:0,l=l<<24>>24?(l=0!=(0|ct(W)))?-1:1:0,a=u<<24>>24?(a=0!=(0|ct(W)))?-1:1:0,u=255&(0|ut(W,5)),tr[i+2+w>>0]=u,b?u=p:G=30;else{if(b){u=p,a=l=-(c=A=1),t=255&(0|ut(W,2));break}G=(1==(0|w)?(G=255&(0|ut(W,2)),l=a=-1,A=c=1,t=255&(255&t|G<<2|G<<4)):(l=a=-1,A=c=1),30)}}while(0);30==(0|G)&&(G=0,u=y),b=0|cr[u>>0],u=255&(0|br(tr[s>>0]<>0]=u,s=255&(0|br(tr[d>>0]<>0]=s,d=255&(0|br(tr[k>>0]<>0]=d,k=255&(0|br(tr[h>>0]<>0]=k}}w=w+1|0}while((0|w)<(0|E));for(tr[i>>0]=o,tr[B>>0]=t,t=(0|br(0|ar[10352+f>>2],r))+e|0,t=(0|ar[10340+f>>2])+(24*t|0)+4|0,o=t+17|0;tr[t>>0]=0|tr[i>>0],i=i+1|0,(0|(t=t+1|0))<(0|o););}if(!I)for(i=0|br(0|ar[10352+f>>2],r),o=0|ar[10340+f>>2],t=o+(24*(i+e|0)|0)+4|0,i=o+(24*(e+-1+i|0)|0)+4|0,o=t+17|0;tr[t>>0]=0|tr[i>>0],i=i+1|0,(0|(t=t+1|0))<(0|o););if(C)return ur=n;t=0|ar[10352+f>>2],i=(0|br(t,r+-1|0))+e|0,o=0|ar[10340+f>>2],t=o+(24*((0|br(t,r))+e|0)|0)+4|0,i=o+(24*i|0)+4|0,o=t+17|0;for(;tr[t>>0]=0|tr[i>>0],t=t+1|0,i=i+1|0,(0|t)<(0|o););ur=n}(A,a,s,0),Ta(A,r,i,s=0|ar[c>>2],0)):Ta(A,r,i,s=e,0)}function Ta(A,e,r,i,f){var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;for(t=(A|=0)+18596|0,o=A+18600|0,a=A+18516|0,c=A+18508|0,m=A+18512|0,s=A+18556|0,n=A+18580|0,B=e|=0,y=r|=0,Z=i|=0,p=f|=0;;){if(g=0|ar[t>>2],((e=1<>2]))&&(e+y|0)<=(0|(d=0|ar[g+1252>>2]))&&(0|ar[g+5800>>2])<(0|Z)){if(e=-1<((i=B+-1|0)|y|0)&(0|B)<=(0|r)&(0|y)<(0|d)&&(h=0|ar[g+5804>>2],k=(u=0|br(y>>h,0|ar[g+5820>>2]))+(B>>h)|0,h=u+(i>>h)|0,u=0|ar[g+10340>>2],(0|or[u+(24*k|0)>>1])==(0|or[u+(24*h|0)>>1]))?(e=0|ar[g+10308>>2],(0|ar[e+(k<<2)>>2])==(0|ar[e+(h<<2)>>2])&1):0,l=(0|r)<=(0|B)|((u=y+-1|0)|B|0)<0|(0|d)<(0|y)||(f=0|ar[g+5804>>2],l=0|ar[g+5820>>2],v=B>>f,w=(0|br(y>>f,l))+v|0,v=(0|br(u>>f,l))+v|0,l=0|ar[g+10340>>2],(0|or[l+(24*w|0)>>1])!=(0|or[l+(24*v|0)>>1]))?0:(l=0|ar[g+10308>>2],(0|ar[l+(w<<2)>>2])==(0|ar[l+(v<<2)>>2])&1),e){if(e=i>>(r=0|ar[g+10368>>2]),r=y>>r,(0|e)<=-1){e=14;break}if((0|(i=0|ar[g+10372>>2]))<=(0|e)){e=14;break}if((0|r)<=-1){e=17;break}if((0|r)>=(0|ar[g+10376>>2])){e=17;break}f=(0|ar[g+10360>>2])+(3*((0|br(i,r))+e|0)|0)|0,f=((65535&(cr[f>>0]|cr[f+1>>0]<<8))>>>6&3|0)>(0|p)?3:2}else f=2;if(l){if(i=B>>(r=0|ar[g+10368>>2]),r=u>>r,(0|i)<=-1){e=22;break}if((0|(e=0|ar[g+10372>>2]))<=(0|i)){e=22;break}if((0|r)<=-1){e=25;break}if((0|r)>=(0|ar[g+10376>>2])){e=25;break}e=(0|ar[g+10360>>2])+(3*((0|br(e,r))+i|0)|0)|0,e=((65535&(cr[e>>0]|cr[e+1>>0]<<8))>>>6&3|0)>(0|p)&1}else e=0;e=0|ot(s,(0|ar[n>>2])+(e+f)|0)}else e=(0|ar[g+5800>>2])<(0|Z)&1;if(0|tr[g+5946>>0]&&(0|ar[g+10092>>2])<=(0|Z)&&(ar[c>>2]=0,ar[m>>2]=0),0|tr[752+(0|ar[o>>2])>>0]&&(0|ar[g+10096>>2])<=(0|Z)&&(ar[a>>2]=0),!e){e=42;break}if(i=(f=1<<(r=Z+-1|0))+B|0,f=f+y|0,Ta(A,B,y,r,l=p+1|0),(0|i)<(0|ar[b>>2])&&Ta(A,i,y,r,l),(0|f)<(0|ar[(e=g+1252|0)>>2])&&Ta(A,B,f,r,l),(0|i)>=(0|ar[b>>2])){e=48;break}if(!((0|f)<(0|ar[e>>2]))){e=48;break}B=i,y=f,Z=r,p=l}if(14==(0|e))sr(48482,48519,118,48539);else if(17==(0|e))sr(48543,48519,119,48539);else if(22==(0|e))sr(48482,48519,118,48539);else if(25==(0|e))sr(48543,48519,119,48539);else{if(42==(0|e)){if(b=B>>(m=0|ar[g+10368>>2]),r=y>>m,s=(e=1<<(m=Z-m|0))+r|0,31!=(0|m)){l=e+b|0,u=g+10372|0,i=g+10360|0,f=(65535&p)<<6&192,e=r;do{for(r=b;g=(0|br(0|ar[u>>2],e))+r|0,g=(0|ar[i>>2])+(3*g|0)|0,m=-193&(cr[g>>0]|cr[g+1>>0]<<8)|f,tr[g>>0]=m,tr[g+1>>0]=m>>8,(0|(r=r+1|0))<(0|l););e=e+1|0}while((0|e)<(0|s))}return void function(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0;if(ur=(c=ur)+80|0,n=(D=c)+56|0,t=c+40|0,o=c+24|0,a=0|ar[(C=18596+(A|=0)|0)>>2],v=0|ar[(E=A+18600|0)>>2],function(A,e,r,i,f){e|=0,r|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(n=10368+(A|=0)|0,(f|=0)&&(c=0|ar[n>>2],b=e>>c,l=r>>c,u=(t=1<<(c=i-c|0))+l|0,31!=(0|c))){o=t+b|0,a=A+10372|0,c=A+10360|0,t=l;do{for(f=b;l=(0|br(0|ar[a>>2],t))+f|0,l=(0|ar[c>>2])+(3*l|0)|0,s=-8&(cr[l>>0]|cr[l+1>>0]<<8),tr[l>>0]=s,tr[l+1>>0]=s>>8,(0|(f=f+1|0))<(0|o););t=t+1|0}while((0|t)<(0|u))}t=0|ar[n>>2],o=e>>t,t=r>>t,(0|o)<=-1&&sr(48482,48519,128,48539);f=0|ar[A+10372>>2],(0|f)<=(0|o)&&sr(48482,48519,128,48539);(0|t)<=-1&&sr(48543,48519,129,48539);{if((0|t)<(0|ar[A+10376>>2]))return s=(0|ar[A+10360>>2])+(3*((0|br(f,t))+o|0)|0)|0,i=-8&(cr[s>>0]|cr[s+1>>0]<<8)|7&i,tr[s>>0]=i,tr[s+1>>0]=i>>8;sr(48543,48519,129,48539)}}(a,e,r,i,1),J=0|ar[10448+a>>2],h=e>>J,u=r>>J,w=(l=1<<(J=i-J|0))+u|0,31!=(0|J)){b=l+h|0,d=10452+a|0,k=10440+a|0,l=u;do{for(u=h;J=(0|br(0|ar[d>>2],l))+u|0,((tr[(0|ar[k>>2])+J>>0]=0)|(u=u+1|0))<(0|b););l=l+1|0}while((0|l)<(0|w))}J=1<>0]?(Q=0|ot(A+18556|0,161+(0|ar[A+18580>>2])|0),0|(tr[A+32>>0]=Q)&&function(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(l=0|ar[10368+(A|=0)>>2],t=e>>l,u=r>>l,n=(i=1<<(l=i-l|0))+u|0,31!=(0|l)){a=i+t|0,c=A+10372|0,l=A+10360|0,o=(1&f)<<11&65535,i=u;do{for(f=t;u=(0|br(0|ar[c>>2],i))+f|0,u=(0|ar[l>>2])+(3*u|0)|0,b=-2049&(cr[u>>0]|cr[u+1>>0]<<8)|o,tr[u>>0]=b,tr[u+1>>0]=b>>8,(0|(f=f+1|0))<(0|a););i=i+1|0}while((0|i)<(0|n))}i=0|ar[A+10348>>2],o=e>>i,i=r>>i,(0|o)<=-1&&sr(48482,48519,128,48539);f=0|ar[A+10352>>2],(0|f)<=(0|o)&&sr(48482,48519,128,48539);(0|i)<=-1&&sr(48543,48519,129,48539);{if((0|i)<(0|ar[A+10356>>2]))return b=(0|ar[A+10340>>2])+(24*((0|br(f,i))+o|0)|0)+22|0,tr[b>>0]=1;sr(48543,48519,129,48539)}}(a,e,r,i,1)):tr[A+32>>0]=0;w=v+20|0;do{if(2!=(0|ar[w>>2])){h=0|ar[C>>2],l=0<=((u=e+-1|0)|r|0)&&(0|ar[h+1248>>2])>=(0|e)&&(0|ar[h+1252>>2])>(0|r)&&(g=0|ar[h+5804>>2],Q=0|br(r>>g,0|ar[h+5820>>2]),m=Q+(e>>g)|0,g=Q+(u>>g)|0,Q=0|ar[h+10340>>2],(0|or[Q+(24*m|0)>>1])==(0|or[Q+(24*g|0)>>1]))?(l=0|ar[h+10308>>2],(0|ar[l+(m<<2)>>2])==(0|ar[l+(g<<2)>>2])&1):0,d=0<=((k=r+-1|0)|e|0)&&(0|ar[h+1248>>2])>(0|e)&&(0|ar[h+1252>>2])>=(0|r)&&(Y=0|ar[h+5804>>2],Q=0|ar[h+5820>>2],p=e>>Y,Z=(0|br(r>>Y,Q))+p|0,p=(0|br(k>>Y,Q))+p|0,Q=0|ar[h+10340>>2],(0|or[Q+(24*Z|0)>>1])==(0|or[Q+(24*p|0)>>1]))?(d=0|ar[h+10308>>2],(0|ar[d+(Z<<2)>>2])==(0|ar[d+(p<<2)>>2])&1):0;do{if(l){if(Q=0|ar[h+10368>>2],l=u>>Q,u=r>>Q,(0|l)<=-1&&sr(48482,48519,118,48539),(0|(b=0|ar[h+10372>>2]))<=(0|l)&&sr(48482,48519,118,48539),(0|u)<=-1&&sr(48543,48519,119,48539),(0|u)<(0|ar[h+10376>>2])){y=(0|ar[h+10360>>2])+(3*((0|br(b,u))+l|0)|0)|0,y=512==(768&(cr[y>>0]|cr[y+1>>0]<<8))?6:5;break}sr(48543,48519,119,48539)}else y=5}while(0);do{if(d){if(l=0|ar[h+10368>>2],b=e>>l,l=k>>l,(0|b)<=-1&&sr(48482,48519,118,48539),(0|(u=0|ar[h+10372>>2]))<=(0|b)&&sr(48482,48519,118,48539),(0|l)<=-1&&sr(48543,48519,119,48539),(0|l)<(0|ar[h+10376>>2])){B=(0|ar[h+10360>>2])+(3*((0|br(u,l))+b|0)|0)|0,B=512==(768&(cr[B>>0]|cr[B+1>>0]<<8))&1;break}sr(48543,48519,119,48539)}else B=0}while(0);if(!((255&(0|ot(u=A+18556|0,(0|ar[(l=A+18580|0)>>2])+(B+y)|0)))<<24>>24)){if(2==(0|ar[w>>2])){Q=0;break}Q=0==(0|ot(u,149+(0|ar[l>>2])|0))&1;break}A:do{if(2<=(0|ar[804+(0|ar[E>>2])>>2])&&0!=(0|ot(u,148+(0|ar[l>>2])|0)))if(1<((0|ar[804+(0|ar[E>>2])>>2])-1|0)){l=1;do{if(!(0|ct(u)))break A;l=l+1|0}while((0|l)<((0|ar[804+(0|ar[E>>2])>>2])-1|0))}else l=1;else l=0}while(0);if(tr[(b=A+26|0)>>0]=15&tr[b>>0]|(255&l)<<5&255|16,b=0|ar[(l=10368+a|0)>>2],u=e>>b,b=r>>b,(0|u)<=-1&&sr(48482,48519,128,48539),(0|(s=0|ar[(h=10372+a|0)>>2]))<=(0|u)&&sr(48482,48519,128,48539),(0|b)<=-1&&sr(48543,48519,129,48539),(0|b)>=(0|ar[10376+a>>2])&&sr(48543,48519,129,48539),D=(0|ar[(k=10360+a|0)>>2])+(3*((0|br(s,b))+u|0)|0)|0,d=-57&(cr[D>>0]|cr[D+1>>0]<<8),tr[D>>0]=d,tr[D+1>>0]=d>>8,D=0|ar[l>>2],d=e>>D,u=r>>D,s=(l=1<<(D=i-D|0))+u|0,31!=(0|D)){b=l+d|0,l=u;do{for(u=d;D=(0|br(0|ar[h>>2],l))+u|0,D=(0|ar[k>>2])+(3*D|0)|0,i=-769&(cr[D>>0]|cr[D+1>>0]<<8)|512,tr[D>>0]=i,tr[D+1>>0]=i>>8,(0|(u=u+1|0))<(0|b););l=l+1|0}while((0|l)<(0|s))}return mc(0|ar[A+18592>>2],0|ar[E>>2],0|ar[C>>2],A+16|0,e,r,0,0,J,J,J,0),ur=c}Q=0}while(0);if(Y=0|ar[(m=10368+a|0)>>2],w=e>>Y,u=r>>Y,v=(l=1<<(Y=i-Y|0))+u|0,31!=(0|Y)){b=l+w|0,d=10372+a|0,k=10360+a|0,h=(65535&Q)<<8&65535,l=u;do{for(u=w;Y=(0|br(0|ar[d>>2],l))+u|0,Y=(0|ar[k>>2])+(3*Y|0)|0,_=-769&(cr[Y>>0]|cr[Y+1>>0]<<8)|h,tr[Y>>0]=_,tr[Y+1>>0]=_>>8,(0|(u=u+1|0))<(0|b););l=l+1|0}while((0|l)<(0|v))}if((Y=0!=(0|Q))||(0|ar[5800+a>>2])==(0|i)){u=0|ar[C>>2],h=0==(0|Q),l=0|ot(b=A+18556|0,8+(0|ar[(d=A+18580|0)>>2])|0);do{if(h)s=0|l?0:3;else if(l)s=0;else{if(k=0|ot(b,9+(0|ar[d>>2])|0),(0|ar[u+5800>>2])>=(0|i)){if(0|k){s=1;break}if(3==(0|i)){s=2;break}s=3-(0|ot(b,10+(0|ar[d>>2])|0))|0;break}if(!(0|tr[u+5466>>0])){s=0|k?1:2;break}if(0|ot(b,11+(0|ar[d>>2])|0)){s=0|k?1:2;break}l=0|ct(b),0!=(0|k)&(u=0!=(0|l))?s=5:(b=0==(0|k))|u?l|k?b&u?s=7:sr(55739,39242,1760,39275):s=6:s=4}}while(0);_=h&3==(0|s)&1}else s=_=0;u=0|ar[m>>2],l=e>>u,u=r>>u,(0|l)<=-1&&sr(48482,48519,128,48539);b=0|ar[10372+a>>2],(0|b)<=(0|l)&&sr(48482,48519,128,48539);(0|u)<=-1&&sr(48543,48519,129,48539);(0|u)>=(0|ar[10376+a>>2])&&sr(48543,48519,129,48539);R=(0|ar[10360+a>>2])+(3*((0|br(b,u))+l|0)|0)|0,N=-57&(cr[R>>0]|cr[R+1>>0]<<8)|(65535&s)<<3&56,tr[R>>0]=N,tr[R+1>>0]=N>>8,R=0==(0|Q),N=0==(0|s);A:do{if(R){if(N&&0|tr[5468+a>>0]&&(0|ar[5884+a>>2])<=(0|i)&&(0|ar[5888+a>>2])>=(0|i)&&0|at(G=A+18556|0)){if(Ua(a,e,r,i,1),l=0|ar[(Z=A+18560|0)>>2],ar[D>>2]=l,ar[D+4>>2]=(0|ar[A+18564>>2])-l,ar[(l=D+8|0)>>2]=0,ar[l+4>>2]=0,ar[D+16>>2]=0,l=0|ar[C>>2],b=0|ar[l+5760>>2],h=0|tr[l+5469>>0],k=0|ar[l+40>>2],l=0|ar[l+4>>2],u=(0|br(k,r))+e|0,8<(0|b)){if(d=l+(u<<1)|0,s=b-h|0,31!=(0|i)){u=0;do{for(b=0|br(u,k),l=0;i=(0|At(D,h))<>1]=i,(0|(l=l+1|0))!=(0|J););u=u+1|0}while((0|u)!=(0|J))}}else if(d=l+u|0,s=b-h|0,31!=(0|i)){u=0;do{for(b=0|br(u,k),l=0;i=(0|At(D,h))<>0]=i,(0|(l=l+1|0))!=(0|J););u=u+1|0}while((0|u)!=(0|J))}u=0|ar[C>>2];do{if(0|ar[u+5776>>2])if(w=0|ar[u+5768>>2],k=0|ar[u+5780>>2],h=(0|J)/(0|k)|0,b=0|ar[u+5784>>2],v=(0|J)/(0|b)|0,l=0|tr[u+5470>>0],g=l<<24>>24,m=0|ar[u+44>>2],s=0|ar[u+8>>2],d=(0|br(m,(0|r)/(0|b)|0))+((0|e)/(0|k)|0)|0,8<(0|w)){if(s=s+(d<<1)|0,d=w-g|0,0<(0|h)&0<(0|v)){u=0;do{for(b=0|br(u,m),l=0;i=(0|At(D,g))<>1]=i,(0|(l=l+1|0))!=(0|h););u=u+1|0}while((0|u)!=(0|v));u=0|ar[C>>2],m=0|ar[u+44>>2],w=0|ar[u+5768>>2],s=0|ar[u+5780>>2],b=0|ar[u+5784>>2],l=0|tr[u+5470>>0]}else s=k;if(v=(0|J)/(0|s)|0,h=(0|J)/(0|b)|0,k=l<<24>>24,d=(0|ar[u+12>>2])+((0|br((0|r)/(0|b)|0,m))+((0|e)/(0|s)|0)<<1)|0,b=w-k|0,!(0<(0|v)&0<(0|h)))break;u=0;do{for(s=0|br(u,m),l=0;r=(0|At(D,k))<>1]=r,(0|(l=l+1|0))!=(0|v););u=u+1|0}while((0|u)!=(0|h))}else{if(s=s+d|0,d=w-g|0,0<(0|h)&0<(0|v)){u=0;do{for(b=0|br(u,m),l=0;i=(0|At(D,g))<>0]=i,(0|(l=l+1|0))!=(0|h););u=u+1|0}while((0|u)!=(0|v));u=0|ar[C>>2],m=0|ar[u+44>>2],w=0|ar[u+5768>>2],s=0|ar[u+5780>>2],b=0|ar[u+5784>>2],l=0|tr[u+5470>>0]}else s=k;if(v=(0|J)/(0|s)|0,h=(0|J)/(0|b)|0,k=l<<24>>24,d=(0|ar[u+12>>2])+((0|br((0|r)/(0|b)|0,m))+((0|e)/(0|s)|0))|0,b=w-k|0,!(0<(0|v)&0<(0|h)))break;u=0;do{for(s=0|br(u,m),l=0;r=(0|At(D,k))<>0]=r,(0|(l=l+1|0))!=(0|v););u=u+1|0}while((0|u)!=(0|h))}}while(0);return rt(D),ar[Z>>2]=ar[D>>2],tt(G),ur=c}if(G=(V=3==(0|s))?(0|J)/2|0:J,V=(V<<31>>31)+i|0,!(C=31==(0|i))){s=A+18556|0,d=A+18580|0,u=l=0;do{for(b=0;E=0|ot(s,12+(0|ar[d>>2])|0),l=(f=l)+1|0,ar[D+(f<<2)>>2]=E,(0|(b=b+G|0))<(0|J););u=u+G|0}while((0|u)<(0|J))}if(u=0<=((l=e+-1|0)|r|0)&&(0|ar[1248+a>>2])>=(0|e)&&(0|ar[1252+a>>2])>(0|r)&&(W=0|ar[5804+a>>2],f=0|br(r>>W,0|ar[5820+a>>2]),X=f+(e>>W)|0,W=f+(l>>W)|0,f=0|ar[10340+a>>2],(0|or[f+(24*X|0)>>1])==(0|or[f+(24*W|0)>>1]))?(u=0|ar[10308+a>>2],(0|ar[u+(X<<2)>>2])==(0|ar[u+(W<<2)>>2])&1):0,l=0<=((l=r+-1|0)|e|0)&&(0|ar[1248+a>>2])>(0|e)&&(0|ar[1252+a>>2])>=(0|r)&&(X=0|ar[5804+a>>2],W=0|ar[5820+a>>2],F=e>>X,I=(0|br(r>>X,W))+F|0,F=(0|br(l>>X,W))+F|0,W=0|ar[10340+a>>2],(0|or[W+(24*I|0)>>1])==(0|or[W+(24*F|0)>>1]))?(l=0|ar[10308+a>>2],(0|ar[l+(I<<2)>>2])==(0|ar[l+(F<<2)>>2])&1):0,!C){I=A+18556|0,W=0!=(0|u),v=0!=(0|l),m=5872+a|0,g=5876+a|0,Z=10408+a|0,p=10412+a|0,y=10400+a|0,B=4+o|0,E=8+o|0,l=h=0;do{f=h+r|0,X=v|0<(0|h),w=0;do{if(s=0|ar[D+(l<<2)>>2],b=s?(u=n,0|lt(I,2)):(u=t,0|ut(I,5)),ar[u+(l<<2)>>2]=b,F=w+e|0,k=0|ar[m>>2],k=(0|br(f>>k,0|ar[g>>2]))+(F>>k)|0,Ct(o,F,f,k,W|0<(0|w),X,a),u=1==(0|s)?0|ar[o+(ar[n+(l<<2)>>2]<<2)>>2]:(u=0|ar[o>>2],(0|(b=0|ar[B>>2]))<(0|u)?(ar[o>>2]=b,ar[B>>2]=u,s=b):(s=u,u=b),(0|(b=0|ar[E>>2]))<(0|s)?(ar[o>>2]=b,ar[E>>2]=s,d=s):(d=b,b=s),(0|d)<(0|u)?(ar[B>>2]=d,ar[E>>2]=u,s=d):(s=u,u=d),F=0|ar[t+(l<<2)>>2],((0|u)<=(0|(F=((0|s)<=(0|(F=((0|b)<=(0|F)&1)+F|0))&1)+F|0))&1)+F|0),F=V-(0|ar[Z>>2])|0,d=1<>2],u))|0,tr[(0|ar[y>>2])+F>>0]=s,(0|(b=b+1|0))<(0|d););u=u+1|0}while((0|u)<(0|d))}l=l+1|0,w=w+G|0}while((0|w)<(0|J));h=h+G|0}while((0|h)<(0|J))}d=5776+a|0;e:do{switch(0|ar[d>>2]){case 3:if(!C){h=A+18556|0,w=A+18580|0,v=10408+a|0,m=10412+a|0,g=10416+a|0,Z=10400+a|0,k=0;r:for(;;){p=k+r|0,d=0;do{if(y=d+e|0,s=0|ot(h,13+(0|ar[w>>2])|0)?0|ut(h,2):4,u=0|ar[v>>2],l=y>>u,u=p>>u,(0|l)<=-1){l=174;break r}if((0|(b=0|ar[m>>2]))<=(0|l)){l=174;break r}if((0|u)<=-1){l=175;break r}if((0|u)>=(0|ar[g>>2])){l=175;break r}l=(0|ar[Z>>2])+((0|br(b,u))+l)|0,l=0|cr[l>>0],(u=4==(0|s))||(D=0|ar[7948+(s<<2)>>2],l=(0|D)==(0|l)?34:D),Sa(a,y,p,V,l,u),d=d+G|0}while((0|d)<(0|J));if((0|J)<=(0|(k=k+G|0)))break e}174==(0|l)?sr(48482,48519,118,48539):175==(0|l)&&sr(48543,48519,119,48539)}break;case 0:break;default:s=0|ot(l=A+18556|0,13+(0|ar[A+18580>>2])|0)?0|ut(l,2):4,u=0|ar[10408+a>>2],l=e>>u,u=r>>u,(0|l)<=-1&&sr(48482,48519,118,48539),(0|(b=0|ar[10412+a>>2]))<=(0|l)&&sr(48482,48519,118,48539),(0|u)<=-1&&sr(48543,48519,119,48539),(0|u)>=(0|ar[10416+a>>2])&&sr(48543,48519,119,48539),l=(0|ar[10400+a>>2])+((0|br(b,u))+l)|0,l=0|cr[l>>0],(u=4==(0|s))||(J=0|ar[7948+(s<<2)>>2],l=(0|J)==(0|l)?34:J),2==(0|ar[d>>2])&&(l=0|cr[39292+l>>0]),Sa(a,e,r,i,l,u)}}while(0)}else{if(N){Oa(A,e,r,0,0,J,J,f,J,0);break}switch(0|s){case 1:Oa(A,e,r,0,0,J,D=(0|J)/2|0,f,J,0),Oa(A,e,r,0,D,J,D,f,J,1);break A;case 2:Oa(A,e,r,0,0,D=(0|J)/2|0,J,f,J,0),Oa(A,e,r,D,0,D,J,f,J,1);break A;case 4:Oa(A,e,r,0,0,J,D=(0|J)/4|0,f,J,0),Oa(A,e,r,0,D,J,(3<>0]))&&0==(0|ot(A+18556|0,153+(0|ar[A+18580>>2])|0)))return ur=c;l=R?(0|ar[1396+a>>2])+_|0:0|ar[1392+a>>2];J=0!=(0|ar[5776+a>>2])&1,function A(e,r,i,f,n,t,o,a,c,l,u,b,s,d,k){e|=0;r|=0;i|=0;f|=0;n|=0;t|=0;o|=0;a|=0;c|=0;l|=0;u|=0;b|=0;s|=0;d|=0;k|=0;var h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0;X=e+18596|0;w=0|ar[X>>2];h=0|ar[w+10368>>2];v=r>>h;(0|v)<=-1&&sr(48482,48519,118,48539);W=1==(0|b);I=e+18556|0;C=e+18580|0;G=0!=(0|b);E=i;y=f;p=n;B=a;Z=l;g=w;m=v;f=i>>h;for(;;){if((0|(l=0|ar[g+10372>>2]))<=(0|m)){V=4;break}if((0|f)<=-1){V=7;break}if((0|(w=0|ar[g+10376>>2]))<=(0|f)){V=7;break}if(v=0|ar[g+10360>>2],i=v+(3*((0|br(l,f))+m|0)|0)|0,(65535&(i=(65535&(cr[i>>0]|cr[i+1>>0]<<8))>>>8&3)|0)!=(0|s)){V=9;break}if((n=(0|ar[g+5868>>2])<(0|B))||((0|u)<=(0|c)?1:(0|ar[g+5864>>2])>=(0|B))|G&0==(0|c)){if(f=E>>h,!(-1<(0|(a=r>>h))&(0|a)<(0|l))){V=16;break}if(!(-1<(0|f)&(0|f)<(0|w))){V=18;break}l=v+(3*((0|br(l,f))+a|0)|0)|0,l=1&(W&0==(0|c)|n|0!=(56&(cr[l>>0]|cr[l+1>>0]<<8))&(i<<16>>16==1?0==(ar[g+1392>>2]|c|0):0))}else{if(3<=(f=5-B|0)>>>0){V=13;break}l=0|ot(I,(0|ar[C>>2])+(f+20)|0)}if(w=0!=(0|l)){if(n=0|ar[g+10448>>2],f=r>>n,n=E>>n,(0|f)<=-1){V=23;break}if((0|(h=0|ar[g+10452>>2]))<=(0|f)){V=23;break}if((0|n)<=-1){V=26;break}if((0|n)>=(0|ar[g+10456>>2])){V=26;break}m=(0|ar[g+10440>>2])+((0|br(h,n))+f)|0,tr[m>>0]=0|cr[m>>0]|1<>2]))|2<(0|B)&0!=(0|g)?(d<<24>>24?(f=c+16|0,n=0|ot(I,(0|ar[C>>2])+f|0),2==(0|ar[a>>2])&&3==(0|B)|0==(0|l)&&(n=(0|ot(I,(0|ar[C>>2])+f|0))<<1|n)):n=-1,k<<24>>24?(h=c+16|0,f=0|ot(I,(0|ar[C>>2])+h|0),2==(0|ar[a>>2])&&3==(0|B)|0==(0|l)&&(f=(0|ot(I,(0|ar[C>>2])+h|0))<<1|f)):f=-1,(0|n)<0?V=38:l=n):(f=-1,V=38),38==(0|V)){if((n=2==((V=0)|B))&0==(0|c)){V=39;break}l=n&0<(0|c)?255&d:0}if(h=(0|f)<0?2==(0|B)&0<(0|c)?255&k:0:f,!w){V=43;break}if(n=(a=1<<(f=B+-1|0))+r|0,a=a+E|0,A(e,r,E,r,E,t,o,f,c=c+1|0,0,u,b,s,d=255&l,k=255&h),A(e,n,E,r,E,t,o,f,c,1,u,b,s,d,k),A(e,r,a,r,E,t,o,f,c,2,u,b,s,d,k),g=0|ar[X>>2],h=0|ar[g+10368>>2],(0|(m=n>>h))<=-1){V=4;break}p=E,y=r,r=n,B=f,Z=3,f=(E=a)>>h}switch(0|V){case 4:sr(48482,48519,118,48539);break;case 7:sr(48543,48519,119,48539);break;case 9:sr(39344,39242,3827,39367);break;case 13:sr(39387,39242,1820,39416);break;case 16:sr(48482,48519,118,48539);break;case 18:sr(48543,48519,119,48539);break;case 23:sr(48482,48519,128,48539);break;case 26:sr(48543,48519,129,48539);break;case 39:sr(39444,39242,3894,39367);break;case 43:return i<<16>>16==0|0!=(l|c|h|0)?(V=0|ot(I,(0|ar[C>>2])+(0==(0|c)?15:14)|0),void za(e,r,E,y,p,t,o,B,0,Z,V,l,h)):void za(e,r,E,y,p,t,o,B,0,Z,V=1,l,h)}}(A,e,r,e,r,e,r,i,0,0,l,_,Q,J,J),ur=c}(A,B,y,Z,p)}if(48==(0|e))return}}function Ua(A,e,r,i,f){r|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(t=(e|=0)>>(l=0|ar[(A|=0)+10368>>2]),u=r>>l,n=(i=1<<(l=i-l|0))+u|0,31!=(0|l)){a=i+t|0,c=A+10372|0,l=A+10360|0,o=(1&f)<<10&65535,i=u;do{for(f=t;u=(0|br(0|ar[c>>2],i))+f|0,u=(0|ar[l>>2])+(3*u|0)|0,b=-1025&(cr[u>>0]|cr[u+1>>0]<<8)|o,tr[u>>0]=b,tr[u+1>>0]=b>>8,(0|(f=f+1|0))<(0|a););i=i+1|0}while((0|i)<(0|n))}if(o=e>>(i=0|ar[A+10348>>2]),i=r>>i,(0|o)<=-1&&sr(48482,48519,128,48539),(0|(f=0|ar[A+10352>>2]))<=(0|o)&&sr(48482,48519,128,48539),(0|i)<=-1&&sr(48543,48519,129,48539),(0|i)<(0|ar[A+10356>>2]))return b=(0|ar[A+10340>>2])+(24*((0|br(f,i))+o|0)|0)+22|0,void(tr[b>>0]=1);sr(48543,48519,129,48539)}function Sa(A,e,r,i,f,n){e|=0,r|=0,f|=0;var t,o,a,c,l=0,u=0;if(c=255&((n|=0)?128|f:f),o=1<<(u=(i|=0)-(0|ar[(A|=0)+10408>>2])|0),l=0|ar[A+5872>>2],r=(0|br(r>>l,0|ar[(a=A+5876|0)>>2]))+(e>>l)|0,31!=(0|u)){t=A+5880|0,l=A+10432|0,u=A+10424|0,i=A+10420|0,n=0;A:for(;;){f=0;do{if((0|f)>=(0|ar[a>>2])){f=10;break A}if((0|n)>=(0|ar[t>>2])){f=11;break A}if((0|(e=r+f+(0|br(0|ar[l>>2],n))|0))>=(0|ar[u>>2])){f=12;break A}tr[(0|ar[i>>2])+e>>0]=c,f=f+1|0}while((0|f)<(0|o));if((0|o)<=(0|(n=n+1|0))){f=9;break}}9!=(0|f)&&(10==(0|f)?sr(39542,48519,659,39565):11==(0|f)?sr(39584,48519,660,39565):12==(0|f)&&sr(39608,48519,663,39565))}}function Oa(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0;if(l=0|ar[(w=(A|=0)+18600|0)>>2],k=0|ot(h=A+18556|0,147+(0|ar[(u=A+18580|0)>>2])|0),b=A+16|0,tr[(v=A+26|0)>>0]=(255&k)<<4&16|-17&tr[v>>0],k){A:do{if(2<=(0|ar[804+(0|ar[w>>2])>>2])&&0!=(0|ot(h,148+(0|ar[u>>2])|0)))if(1<((0|ar[804+(0|ar[w>>2])>>2])-1|0)){s=1;do{if(!(0|ct(h)))break A;s=s+1|0}while((0|s)<((0|ar[804+(0|ar[w>>2])>>2])-1|0))}else s=1;else s=0}while(0);o=31&tr[v>>0],s=(255&s)<<5&255}else{do{if(0|ar[20+l>>2])k=1;else{if(s=0|ar[u>>2],12!=(t+n|0)&&0|ot(h,s+156+o|0)){k=3;break}k=1+(0|ot(h,s+160|0))|0}}while(0);if(tr[v>>0]=-4&tr[v>>0]|3&k,2!=(0|k)){s=(0|ar[328+l>>2])-1|0;A:do{if(0!=(0|s)&&0!=(0|ot(h,154+(0|ar[u>>2])|0)))for(o=0;;){if((0|(d=o+1|0))==(0|s))break A;if(!(o=o?0|ct(h):0|ot(h,155+(0|ar[u>>2])|0))){s=d;break}o=d}else s=0}while(0);if(tr[b>>0]=s,xa(A,0,0,0),d=255&(0|ot(h,152+(0|ar[u>>2])|0)),tr[v>>0]=d<<2&4|-5&tr[v>>0],1==(0|k))return void mc(h=0|ar[(h=A+18592|0)>>2],w=0|ar[w>>2],v=0|ar[(v=A+18596|0)>>2],b,e,r,i,f,a,n,t,c)}d=(0|ar[332+l>>2])-1|0;A:do{if(0!=(0|d)&&0!=(0|ot(h,154+(0|ar[u>>2])|0)))for(o=0;;){if((0|(s=o+1|0))==(0|d)){s=d;break A}if(!(o=o?0|ct(h):0|ot(h,155+(0|ar[u>>2])|0)))break;o=s}else s=0}while(0);tr[A+17>>0]=s,3==(0|k)&0!=(0|tr[370+l>>0])?(or[A+22>>1]=0,or[A+24>>1]=0):xa(A,0,0,1),s=255&(0|ot(h,152+(0|ar[u>>2])|0)),o=-9&tr[v>>0],s=s<<3&8}tr[v>>0]=o|s,mc(h=0|ar[(h=A+18592|0)>>2],w=0|ar[w>>2],v=0|ar[(v=A+18596|0)>>2],b,e,r,i,f,a,n,t,c)}function za(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,b|=0;var s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0;-1==(0|(u|=0))&&sr(39481,39242,3547,39494),-1==(0|b)&&sr(39514,39242,3548,39494),-1==(0|l)&&sr(39527,39242,3549,39494),g=0|ar[(w=A+18596|0)>>2],X=2<(0|(X=((1^(d=3==(0|(k=0|ar[g+5776>>2]))))<<31>>31)+o|0))?X:2,Z=b|u,tr[(v=A+33|0)>>0]=0,tr[v+1>>0]=0,tr[v+2>>0]=0,a=e>>(v=(tr[v+3>>0]=0)|ar[g+10368>>2]),v=r>>v,(0|a)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[g+10372>>2]))<=(0|a)&&sr(48482,48519,118,48539),(0|v)<=-1&&sr(48543,48519,119,48539),(0|v)>=(0|ar[g+10376>>2])&&sr(48543,48519,119,48539),E=(0|ar[g+10360>>2])+(3*((0|br(m,v))+a|0)|0)|0,h=65535&(E=(65535&(cr[E>>0]|cr[E+1>>0]<<8))>>>8&3),s=0!=(0|l),m=0!=(0|Z);do{if(Z|l|0){if(0!=(0|tr[g+5946>>0])&&0==(0|ar[(p=A+18508|0)>>2])){v=A+18556|0,a=A+18580|0;do{if(0|ot(v,139+(0|ar[a>>2])|0)){if(0|ot(v,140+(0|ar[a>>2])|0))if(0|ot(v,140+(0|ar[a>>2])|0))if(0|ot(v,140+(0|ar[a>>2])|0))if(0|ot(v,140+(0|ar[a>>2])|0)){if(!(a=5+(0|bt(v,0))|0)){a=v=0;break}}else a=4;else a=3;else a=2;else a=1;v=0|ct(v)}else a=v=0}while(0);ar[p>>2]=1,g=0|br(1-(v<<1)|0,a),ar[A+18512>>2]=g,g=1}else g=0;if(m&0!=(0|tr[752+(0|ar[A+18600>>2])>>0])&&0==(0|tr[A+32>>0])&&0==(0|ar[(y=A+18516|0)>>2])?(p=0|ot(v=A+18556|0,23+(0|ar[(a=A+18580|0)>>2])|0),m=0|ar[w>>2],a=p?(a=1<(0|cr[m+10074>>0])?0|ot(v,24+(0|ar[a>>2])|0):0,ar[y>>2]=1,ar[A+18520>>2]=tr[m+10075+a>>0],0|tr[m+10081+a>>0]):(ar[y>>2]=1,ar[A+18520>>2]=0),ar[A+18524>>2]=a):B=33,33==(0|B)&&!g)break;zn(A,e,r,n,t)}}while(0);if(m=1<>2],y=0|ar[B+5780>>2],B=0|ar[B+5784>>2],ar[(l=A+28|0)>>2]=0,s&&ja(A,e,r,o,0),Ha(A,e,r,n,t,m,0,h,s),!(2<(0|o)|d))return 3!=(0|c)?0:((a=0!=(1&u|0))&&ja(A,i,f,o,1),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|i)/(0|y)|0,(0|f)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,1,h,a),(a=0!=(2&u|0))&&ja(A,i,m+f|0,o,1),(v=2==(0|k))&&Ha(A,(0|i)/(0|y)|0,((0|f)/(0|B)|0)+m|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,1,h,a),(a=0!=(1&b|0))&&ja(A,i,f,o,2),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|i)/(0|y)|0,(0|f)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,2,h,a),(a=0!=(2&b|0))&&ja(A,i,p+f|0,o,2),v&&Ha(A,(0|i)/(0|y)|0,((0|f)/(0|B)|0)+m|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,2,h,a),0);g=0|ar[w>>2];A:do{if(s&0!=(0|tr[g+10071>>0])){do{if(E<<16>>16!=1){if(a=e>>(v=0|ar[g+10428>>2]),v=r>>v,(0|a)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[g+10432>>2]))<=(0|a)&&sr(48482,48519,118,48539),(0|v)<=-1&&sr(48543,48519,119,48539),(0|v)<(0|ar[g+10436>>2])){if(o=(0|ar[g+10420>>2])+((0|br(m,v))+a)|0,(0|tr[o>>0])<0)break;v=a=0;break A}sr(48543,48519,119,48539)}}while(0);for(m=A+18556|0,g=A+18580|0,v=a=0;v=(1&(o=0!=(0|ot(m,(0|ar[g>>2])+(a+162)|0))))+v|0,(0|(a=a+1|0))<4&o;);v=(a=v?1-((0|ot(m,170+(0|ar[g>>2])|0))<<1)<>2]=a,(a=0!=(1&u|0))&&ja(A,e,r,X,1),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|e)/(0|y)|0,(0|r)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,p,1,h,a),(Z=2==(0|k))&&((a=0!=(2&u|0))&&ja(A,e,(B<>2])+(a+166)|0))))+v|0,(0|(a=a+1|0))<4&u;);a=v?1-((0|ot(m,171+(0|ar[g>>2])|0))<<1)<>2]=a,(a=0!=(1&b|0))&&ja(A,e,r,X,2),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|e)/(0|y)|0,(0|r)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,p,2,h,a),Z&&((a=0!=(2&b|0))&&ja(A,e,(B<>2])+764|0,z=e>>(j=0|ar[fA+10368>>2]),j=r>>j,(0|z)<=-1&&sr(48482,48519,118,48539),(0|(H=0|ar[fA+10372>>2]))<=(0|z)&&sr(48482,48519,118,48539),(0|j)<=-1&&sr(48543,48519,119,48539),(0|j)>=(0|ar[fA+10376>>2])&&sr(48543,48519,119,48539),AA=(0|ar[fA+10360>>2])+(3*((0|br(H,j))+z|0)|0)|0,AA=(65535&(cr[AA>>0]|cr[AA+1>>0]<<8))>>>8&3,(R=0==(0|f))&&(K=e>>(uA=0|ar[fA+10448>>2]),L=r>>uA,q=(x=1<<(uA=i-uA|0))+L|0,31!=(0|uA))){H=x+K|0,x=fA+10452|0,P=fA+10440|0,z=L;do{for(j=K;uA=(0|br(0|ar[x>>2],z))+j|0,uA=(0|ar[P>>2])+uA|0,tr[uA>>0]=-128|tr[uA>>0],(0|(j=j+1|0))<(0|H););z=z+1|0}while((0|z)<(0|q))}z=0!=(0|tr[fA+5945>>0])&&0==(0|tr[A+32>>0])&&(0|ar[fA+10100>>2])>=(0|i)?255&(0|ot(A+18556|0,(0|ar[A+18580>>2])+(0|f?142:141)|0)):0,tr[(uA=A+33+f|0)>>0]=z,tr[(F=A+36|0)>>0]=0;do{if(AA<<16>>16==1&&0!=(0|tr[fA+5751>>0])){if(0==(0|tr[uA>>0])&&0==(0|tr[A+32>>0])){bA=23;break}H=0!=(0|f)&1,lA=255&(0|ot(j=A+18556|0,143+(0|ar[(z=A+18580|0)>>2])+H|0)),(tr[F>>0]=lA)<<24>>24&&(lA=255&(0|ot(j,145+(0|ar[z>>2])+H|0)),tr[A+37>>0]=lA)}else bA=23}while(0);if(23==(0|bA)&&(tr[F>>0]=0),z=R?2:0,0==(0|tr[uA>>0])&&0==(0|tr[A+32>>0])||(z|=1),x=25+(0|ar[(V=A+18580|0)>>2])|0,$=(cA=i<<1)+-1|0,lA=i+-2|0,L=R?i+1>>2:lA,K=R?(3*lA|0)+(i+-1>>2)|0:15,1<(0|cA)){for(q=A+18556|0,j=$,H=0;j=(cA=0==(0|ot(q,x+((H>>L)+K)|0)))?H:j,(0|(H=H+1|0))<(0|$)&(1^cA););for(P=43+(0|ar[V>>2])|0,x=$,H=0;x=(cA=0==(0|ot(q,P+((H>>L)+K)|0)))?H:x,(0|(H=H+1|0))<(0|$)&(1^cA););}else j=x=$;if(H=(j>>1)-1|0,3<(0|j)&&(j=(0|ut(A+18556|0,H))+((1&j|2)<>1)-1|0,L=3<(0|x)?(0|ut(A+18556|0,H))+((1&x|2)<>16==0){do{if(R){if(H=e>>(x=0|ar[fA+10408>>2]),x=r>>x,(0|H)<=-1&&sr(48482,48519,118,48539),(0|(P=0|ar[fA+10412>>2]))<=(0|H)&&sr(48482,48519,118,48539),(0|x)<=-1&&sr(48543,48519,119,48539),(0|x)<(0|ar[fA+10416>>2])){eA=(0|ar[fA+10400>>2])+((0|br(P,x))+H)|0,eA=0|tr[eA>>0];break}sr(48543,48519,119,48539)}else{if(H=e>>(x=0|ar[fA+10428>>2]),x=r>>x,(0|H)<=-1&&sr(48482,48519,118,48539),(0|(P=0|ar[fA+10432>>2]))<=(0|H)&&sr(48482,48519,118,48539),(0|x)<=-1&&sr(48543,48519,119,48539),(0|x)<(0|ar[fA+10436>>2])){eA=(0|ar[fA+10420>>2])+((0|br(P,x))+H)|0,eA=63&tr[eA>>0];break}sr(48543,48519,119,48539)}}while(0);H=(aA=2==(0|(x=0|function(A,e,r,i){e|=0,r|=0,i|=0;var f=0;switch(0|(A|=0)){case 2:break;case 3:f=2;break;default:return 0}return 2==(0|f)&&0|r&&3!=(0|ar[i+5012>>2])?0:0|((e+-6|0)>>>0<9?2:(e+-22|0)>>>0<9&1)}(i,255&eA,f,rA))))?j:L,j=aA?L:j}else x=0,H=L;G=0|_a(lA,x),aA=0|_a(2,x),M=iA,T=j,U=H,S=x,O=i,M|=0,T|=0,U|=0,O=(0|ar[7852+(24*(S|=0)|0)+((O|=0)<<2)>>2])+((U<>0]|cr[O+1>>0]<<8,tr[M>>0]=O,tr[M+1>>0]=O>>8,C=0|tr[iA+1>>0],E=0|cr[iA>>0],vb(0|_,0,1<>1]=0),I=0!=(0|f)&1,u=0!=(0|x)&1,b=(255&C)-1|0,s=fA+5749|0,d=A+32|0,k=R?42:43,h=C<<24>>24!=0,w=0<(0|f),v=fA+10408|0,m=fA+10412|0,g=fA+10416|0,Z=fA+10400|0,p=fA+5750|0,y=fA+5936|0,B=fA+5755|0,o=A+18588+z|0,a=fA+10428|0,c=fA+10432|0,l=fA+10436|0,n=fA+10420|0,t=1<(255&C),z=1,oA=E,j=AA=0;A:for(;;){K=0|tr[G+(oA<<1)>>0],q=0|tr[G+(oA<<1)+1>>0],(0|oA)<(0|E)&0!=(0|oA)?(tA=1&(tA=0|cr[_+((x=(H=255&q)<>0])|tA>>>1,0|ot(W,(0|ar[V>>2])+((R?tA:tA+2|0)+61)|0)?(L=1,bA=59):(x=1,H=0)):0==(0|oA)|(0|oA)==(0|E)?(L=0,H=x=255&q,x<<=lA,P=255&K,bA=59):H=x=0,59==(0|bA)&&(x=_+(P+-1+x)|(bA=0),K<<24>>24&&(tr[x>>0]=1|tr[x>>0]),H=_+((H+-1<>24&&(tr[H>>0]=2|tr[H>>0]),L),1));do{if(H){if(tA=($=255&K)<<2,nA=(q&=255)<<2,q=0|ar[57308+(lA<<6)+(I<<5)+(u<<4)+(cr[_+((q<>0]<<2)>>2],($=(0|oA)==(0|E))?(or[Y>>1]=1,tr[N>>0]=1,tr[Q>>0]=C,t?(K=b,H=x,x=1,bA=67):(H=x,x=1)):(K=15,H=x,x=0,bA=67),67==(0|bA))for(;;){P=((bA=0)|cr[aA+(K<<1)>>0])+tA|0,L=(0|cr[aA+(K<<1)+1>>0])+nA|0;do{if(0|tr[s>>0]){if(0|tr[d>>0]){P=k;break}0|tr[uA>>0]?P=k:bA=70}else bA=70}while(0);if(70==(0|bA)&&(P=(bA=0)|cr[q+(P+(L<>0]),0|ot(W,(0|ar[V>>2])+(P+65)|0)&&(or[Y+(x<<1)>>1]=1,tr[N+x>>0]=1,tr[Q+x>>0]=K,x=x+1|(H=0)),!(1<(0|K)))break;K=K+-1|0,bA=67}do{if(h|1^$){if(0|H){or[Y+(x<<1)>>1]=1,fA=x+(tr[N+x>>0]=1)|(tr[Q+x>>0]=0);break}do{if(0|tr[s>>0]){if(0|tr[d>>0]){H=k;break}0|tr[uA>>0]?H=k:bA=78}else bA=78}while(0);if(78==(0|bA)&&(H=(bA=0)|cr[q+((nA<>0]),!(0|ot(W,(0|ar[V>>2])+(H+65)|0))){fA=x;break}or[Y+(x<<1)>>1]=1,fA=x+(tr[N+x>>0]=1)|(tr[Q+x>>0]=0)}else fA=x}while(0);if(fA){q=0==(0|z)|(w|0==(0|oA)?0:2),L=(0|fA)<8?fA:8,$=0<(0|fA);do{if($){if(K=q<<2,w)for(P=0,x=-1,z=1,H=AA;j=P?0<(0|j)?1==(0|H)?0:j+1|0:j:1,z=(H=0|ot(W,(0|ar[V>>2])+(((0|j)<3?j:3)+K+125)|0))?(or[(z=Y+(P<<1)|0)>>1]=1+(0|or[z>>1])<<16>>16,x=-1==(0|x)?P:x,0):((z+-1|(tr[N+P>>0]=0))>>>0<2&1)+z|0,(0|(P=P+1|0))<(0|L););else for(P=0,x=-1,z=1,H=AA;j=P?0<(0|j)?1==(0|H)?0:j+1|0:j:1,z=(H=0|ot(W,(0|ar[V>>2])+(((0|j)<3?j:3)+K+109)|0))?(or[(z=Y+(P<<1)|0)>>1]=1+(0|or[z>>1])<<16>>16,x=-1==(0|x)?P:x,0):((z+-1|(tr[N+P>>0]=0))>>>0<2&1)+z|0,(0|(P=P+1|0))<(0|L););if(-1==(0|x))break;iA=0|ot(W,(0|ar[V>>2])+((w?4|q:q)+133)|0),or[(rA=Y+(x<<1)|0)>>1]=(0|lr[rA>>1])+iA,tr[N+x>>0]=iA}else z=1,H=AA}while(0);if(R){if(x=e>>(P=0|ar[v>>2]),P=r>>P,(0|x)<=-1){bA=102;break A}if((0|(L=0|ar[m>>2]))<=(0|x)){bA=102;break A}if((0|P)<=-1){bA=105;break A}if((0|P)>=(0|ar[g>>2])){bA=105;break A}x=(0|ar[Z>>2])+((0|br(L,P))+x)|0,x=0|tr[x>>0]}else{if(x=e>>(P=0|ar[a>>2]),P=r>>P,(0|x)<=-1){bA=109;break A}if((0|(L=0|ar[c>>2]))<=(0|x)){bA=109;break A}if((0|P)<=-1){bA=112;break A}if((0|P)>=(0|ar[l>>2])){bA=112;break A}x=(0|ar[n>>2])+((0|br(L,P))+x)|0,x=63&tr[x>>0]}e:do{if(0|tr[d>>0])P=0;else{do{if(cA){if(!(0|tr[p>>0]))break;if((16|x)<<24>>24==26&0!=(0|tr[uA>>0])){P=0;break e}}}while(0);if(0|tr[F>>0]){P=0;break}P=3<((0|tr[Q>>0])-(0|tr[Q+(fA+-1)>>0])|0)&1}}while(0);if(iA=fA+-1|0,1<(0|fA))for(x=0;rA=255&(0|ct(W)),tr[D+x>>0]=rA,(0|(x=x+1|0))!=(0|iA););if(x=(rA=0!=(0|P))&0!=(0|tr[y>>0])?0:255&(0|ct(W)),tr[D+iA>>0]=x,x=0|tr[B>>0]?(0|cr[o>>0])>>>2&255:0,!$)break;$=1,P=eA=0;do{AA=0|or[Y+(eA<<1)>>1];do{if(0|tr[N+eA>>0]){for(K=-1;;){if(L=K+1|0,q=0|ct(W),63<(0|K)){q=0;break}if(!q){bA=130;break}K=L}if(130==(0|bA)&&(((bA=0)|L)<4?K=0|ut(W,x):(K=0|ut(W,(L=K+-2|0)+x|0),L=2+(1<>0]),L=x+1|0,x=(3<>0]))>>>2&255)|0)<=(0|q)){tr[o>>0]=L+1<<24>>24,$=0;break}if(L<<24>>24==0|(1<>0]=L+-1<<24>>24,$=0}else q=0}while(0);K=q+AA|0,L=65535&(q=0==(0|tr[D+eA>>0])?K:0-(65535&K)|0);do{if(rA&0!=(0|tr[y>>0])){if((0|eA)!=(0|iA)|0==(1&(P=K+P|0)|0))break;L=0-q&65535}}while(0);AA=0|tr[Q+eA>>0],q=(0|cr[aA+(AA<<1)>>0])+tA|0,AA=(0|cr[aA+(AA<<1)+1>>0])+nA|0,or[A+2116+(f<<11)+(or[X>>1]<<1)>>1]=L,or[A+8260+(f<<11)+(or[X>>1]<<1)>>1]=q+(AA<>1]=1+(0|or[X>>1])<<16>>16,eA=eA+1|0}while((0|eA)!=(0|fA))}else H=AA}else H=AA}while(0);if(!(0<(0|oA))){bA=54;break}oA=oA+-1|0,AA=H}return 54==(0|bA)?ur=J:102==(0|bA)?sr(48482,48519,118,48539):105==(0|bA)?sr(48543,48519,119,48539):109==(0|bA)?sr(48482,48519,118,48539):112==(0|bA)&&sr(48543,48519,119,48539),0}function Ha(A,e,r,i,f,n,t,o,a){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0;var c,l,u,b=0,s=0,d=0;if(c=0|ar[(l=(A|=0)+18596|0)>>2],u=0==(0|o)){do{if(t){if(o=0|br(0|ar[5780+c>>2],e),s=0|br(0|ar[5784+c>>2],r),o>>=b=0|ar[10428+c>>2],b=s>>b,(0|o)<=-1&&sr(48482,48519,118,48539),(0|(s=0|ar[10432+c>>2]))<=(0|o)&&sr(48482,48519,118,48539),(0|b)<=-1&&sr(48543,48519,119,48539),(0|b)<(0|ar[10436+c>>2])){d=(0|ar[10420+c>>2])+((0|br(s,b))+o)|0,d=63&tr[d>>0];break}sr(48543,48519,119,48539)}else{if(o=e>>(b=0|ar[10408+c>>2]),b=r>>b,(0|o)<=-1&&sr(48482,48519,118,48539),(0|(s=0|ar[10412+c>>2]))<=(0|o)&&sr(48482,48519,118,48539),(0|b)<=-1&&sr(48543,48519,119,48539),(0|b)<(0|ar[10416+c>>2])){d=(0|ar[10400+c>>2])+((0|br(s,b))+o)|0,d=0|tr[d>>0];break}sr(48543,48519,119,48539)}}while(0);Gt(c,e,r,b=34<(255&d)?1:255&d,n,t);do{if(0|tr[5750+(0|ar[l>>2])>>0]){if(0==(0|tr[A+32>>0])&&0==(0|tr[A+33+t>>0])){o=0;break}o=26==(16|b)}else o=0}while(0);o=26==(0|b)&o?2:1&o}else o=0|tr[A+36>>0]?0|tr[A+37>>0]?2:1:0;a?jn(A,e,r,i,f,n,t,0!=(0|tr[A+33+t>>0]),u,o):t&&0|ar[A+28>>2]&&jn(A,e,r,i,f,n,t,(or[A+14404+(t<<1)>>1]=0)!=(0|tr[A+33+t>>0]),u,0)}function xa(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0;ur=(n=ur)+16|0,l=n,t=0|ot(c=(A|=0)+18556|0,150+(0|ar[(r=A+18580|0)>>2])|0),e=0|ot(c,150+(0|ar[r>>2])|0),o=(t=0==(0|t))?0:0|ot(c,151+(0|ar[r>>2])|0),a=(f=0==(0|e))?0:0|ot(c,151+(0|ar[r>>2])|0),t?(r=l,e=0,u=11):(t=o?0|bt(c,1):-1,o=0|ct(c),e=t+2|0,ar[l>>2]=e,o?(r=l,e=-2-t|0,u=11):o=e),11==(0|u)&&(o=ar[r>>2]=e);do{if(!f){if(t=a?0|bt(c,1):-1,u=0|ct(c),e=t+2|0,ar[(r=l+4|0)>>2]=e,u){e=-2-t|0;break}return u=e,c=65535&o,or[(l=A+18+(i<<2)|0)>>1]=c,u&=65535,or[(i=A+18+(i<<2)+2|0)>>1]=u,void(ur=n)}r=l+4|0,e=0}while(0);u=ar[r>>2]=e,c=65535&o,or[(l=A+18+(i<<2)|0)>>1]=c,u&=65535,or[(i=A+18+(i<<2)+2|0)>>1]=u,ur=n}function Pa(A,e,r){A|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(l=0|tr[(r|=0)+93784+(4400*(0|ar[(e|=0)+8>>2])|0)+2>>0],d=0|it(A),7<(tr[(a=e+380|0)>>0]=d)>>>0)return(w=0)|w;d=r+11096+(5168*l|0)+476|0;do{if(0|ar[d>>2]){if(c=0|ft(A),7<(c=(0|cr[a>>0])+c|0)>>>0)return(w=0)|w;tr[(s=e+381|0)>>0]=c;break}s=e+381|0}while(0);n=e+332|0,t=e+328|0,o=r+11096+(5168*l|0)+5164|0,i=r+11096+(5168*l|0)+5160|0,f=e+20|0,b=0;A:for(;;){if(c=0==(0|b))w=10;else if(1==(0|b)){if(0|ar[f>>2]){c=1,w=27;break}w=10}if(10==(0|w)&&(h=(w=0)<(0|(k=0|ar[(c?t:n)>>2])))){for(c=0;u=255&(0|At(A,1)),tr[e+382+(b<<4)+c>>0]=u,(0|(c=c+1|0))!=(0|k););if(0!=(0|ar[d>>2])&h)for(c=0;u=255&(0|At(A,1)),tr[e+414+(b<<4)+c>>0]=u,(0|(c=c+1|0))!=(0|k););if(h){u=0;do{if(0|tr[e+382+(b<<4)+u>>0]){if(255<((c=0|ft(A))+128|0)>>>0){c=0,w=27;break A}if(or[e+446+(b<<5)+(u<<1)>>1]=(1<>0])+c,c=0|ft(A),!((0-(l=0|ar[i>>2])|0)<=(0|c)&(0|c)<(0|l))){c=0,w=27;break A}c&=255}else or[e+446+(b<<5)+(u<<1)>>1]=1<>0],c=0;if(tr[e+510+(b<<4)+u>>0]=c,0|tr[e+414+(b<<4)+u>>0]){if(255<((c=0|ft(A))+128|0)>>>0){c=0,w=27;break A}if(or[(l=e+542+(b<<6)+(u<<2)|0)>>1]=(1<>0])+c,c=0|ft(A),r=0|ar[o>>2],!((0|c)>=(0|br(r,-4))&(0|c)<(r<<2|0))){c=0,w=27;break A}if(c=r+c-((l=0|br(0|or[l>>1],r))>>cr[s>>0])|0,l=0-r|0,tr[e+670+(b<<5)+(u<<1)>>0]=(0|c)<(0|l)?l:(0|c)<(0|r)?c:r+255|0,255<((c=0|ft(A))+128|0)>>>0){c=0,w=27;break A}if(or[(l=e+542+(b<<6)+(u<<2)+2|0)>>1]=(1<>0])+c,c=0|ft(A),r=0|ar[o>>2],!((0|c)>=(0|br(r,-4))&(0|c)<(r<<2|0))){c=0,w=27;break A}c=255&((0|(c=r+c-((l=0|br(0|or[l>>1],r))>>cr[s>>0])|0))<(0|(l=0-r|0))?l:(0|c)<(0|r)?c:r+255|0)}else c=1<>0]&65535,or[e+542+(b<<6)+(u<<2)>>1]=c,tr[e+670+(b<<5)+(u<<1)>>0]=0,or[e+542+(b<<6)+(u<<2)+2>>1]=c,c=0;tr[e+670+(b<<5)+(u<<1)+1>>0]=c,u=u+1|0}while((0|u)<(0|k))}}if(2<=(0|(b=b+1|0))){c=1,w=27;break}}return 27==(0|w)?0|c:0}function La(A){var e=0,r=0,i=0;for(ar[(A|=0)>>2]=0,tr[A+4>>0]=0,tr[A+5>>0]=0,ar[A+8>>2]=0,e=A+16|(tr[A+12>>0]=0),ar[A+28>>2]=0,tr[A+32>>0]=0,ar[e>>2]=0,ar[e+4>>2]=0,gc(A+34|(or[e+8>>1]=0)),ar[A+136>>2]=0,ar[A+140>>2]=0,e=ar[A+144>>2]=0;tr[A+148+e>>0]=0,ar[A+164+(e<<2)>>2]=0,tr[A+228+e>>0]=0,16!=((tr[A+244+e>>0]=0)|(e=e+1|(ar[A+260+(e<<2)>>2]=0))););for(e=A+324|0,ar[A+376>>2]=0,tr[A+380>>0]=0,i=(r=e)+48|(tr[A+381>>0]=0);(0|(r=r+4|(ar[r>>2]=0)))<(0|i););for(e=tr[e+48>>0]=0;tr[A+382+e>>0]=0,tr[A+414+e>>0]=0,or[A+446+(e<<1)>>1]=0,tr[A+510+e>>0]=0,or[A+542+(e<<2)+2>>1]=0,or[A+542+(e<<2)>>1]=0,16!=((tr[A+670+(e<<1)+1>>0]=0)|(e=e+1|(tr[A+670+(e<<1)>>0]=0))););for(e=0;tr[A+398+e>>0]=0,tr[A+430+e>>0]=0,or[A+478+(e<<1)>>1]=0,tr[A+526+e>>0]=0,or[A+606+(e<<2)+2>>1]=0,or[A+606+(e<<2)>>1]=0,16!=((tr[A+702+(e<<1)+1>>0]=0)|(e=e+1|(tr[A+702+(e<<1)>>0]=0))););for(r=A+736|0,ar[A+756>>2]=0,ar[A+760>>2]=0,tr[A+764>>0]=0,ar[A+768>>2]=0,ar[A+772>>2]=0,ar[r>>2]=0,ar[r+4>>2]=0,ar[r+8>>2]=0,ar[r+12>>2]=0,or[r+16>>1]=0,r=(tr[r+18>>0]=0)|ar[A+776>>2],(0|(e=0|ar[(i=A+780|0)>>2]))!=(0|r)&&(ar[i>>2]=e+(~((e+-4-r|0)>>>2)<<2)),ar[(e=A+788|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,gc(A+812|(ar[e+20>>2]=0)),e=ar[A+912>>2]=0;ar[A+916+(e<<6)>>2]=0,ar[A+1044+(e<<6)>>2]=0,ar[A+1172+(e<<6)>>2]=0,tr[A+1300+(e<<4)>>0]=0,ar[A+916+(e<<6)+4>>2]=0,ar[A+1044+(e<<6)+4>>2]=0,ar[A+1172+(e<<6)+4>>2]=0,tr[A+1300+(e<<4)+1>>0]=0,ar[A+916+(e<<6)+8>>2]=0,ar[A+1044+(e<<6)+8>>2]=0,ar[A+1172+(e<<6)+8>>2]=0,tr[A+1300+(e<<4)+2>>0]=0,ar[A+916+(e<<6)+12>>2]=0,ar[A+1044+(e<<6)+12>>2]=0,ar[A+1172+(e<<6)+12>>2]=0,tr[A+1300+(e<<4)+3>>0]=0,ar[A+916+(e<<6)+16>>2]=0,ar[A+1044+(e<<6)+16>>2]=0,ar[A+1172+(e<<6)+16>>2]=0,tr[A+1300+(e<<4)+4>>0]=0,ar[A+916+(e<<6)+20>>2]=0,ar[A+1044+(e<<6)+20>>2]=0,ar[A+1172+(e<<6)+20>>2]=0,tr[A+1300+(e<<4)+5>>0]=0,ar[A+916+(e<<6)+24>>2]=0,ar[A+1044+(e<<6)+24>>2]=0,ar[A+1172+(e<<6)+24>>2]=0,tr[A+1300+(e<<4)+6>>0]=0,ar[A+916+(e<<6)+28>>2]=0,ar[A+1044+(e<<6)+28>>2]=0,ar[A+1172+(e<<6)+28>>2]=0,tr[A+1300+(e<<4)+7>>0]=0,ar[A+916+(e<<6)+32>>2]=0,ar[A+1044+(e<<6)+32>>2]=0,ar[A+1172+(e<<6)+32>>2]=0,tr[A+1300+(e<<4)+8>>0]=0,ar[A+916+(e<<6)+36>>2]=0,ar[A+1044+(e<<6)+36>>2]=0,ar[A+1172+(e<<6)+36>>2]=0,tr[A+1300+(e<<4)+9>>0]=0,ar[A+916+(e<<6)+40>>2]=0,ar[A+1044+(e<<6)+40>>2]=0,ar[A+1172+(e<<6)+40>>2]=0,tr[A+1300+(e<<4)+10>>0]=0,ar[A+916+(e<<6)+44>>2]=0,ar[A+1044+(e<<6)+44>>2]=0,ar[A+1172+(e<<6)+44>>2]=0,tr[A+1300+(e<<4)+11>>0]=0,ar[A+916+(e<<6)+48>>2]=0,ar[A+1044+(e<<6)+48>>2]=0,ar[A+1172+(e<<6)+48>>2]=0,tr[A+1300+(e<<4)+12>>0]=0,ar[A+916+(e<<6)+52>>2]=0,ar[A+1044+(e<<6)+52>>2]=0,ar[A+1172+(e<<6)+52>>2]=0,tr[A+1300+(e<<4)+13>>0]=0,ar[A+916+(e<<6)+56>>2]=0,ar[A+1044+(e<<6)+56>>2]=0,ar[A+1172+(e<<6)+56>>2]=0,tr[A+1300+(e<<4)+14>>0]=0,ar[A+916+(e<<6)+60>>2]=0,ar[A+1044+(e<<6)+60>>2]=0,2!=((ar[A+1172+(e<<6)+60>>2]=0)|(e=e+1|(tr[A+1300+(e<<4)+15>>0]=0))););e=0|ar[A+1344>>2],(0|(i=0|ar[(r=A+1348|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),tr[(A=A+1340|0)>>0]=0}function Ka(){var A=0,e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;if(!(A=0|yc(11296)))return(g=0)|g;vb(0|A,-1,11296),ar[14327]=A,ar[14328]=A,ar[14329]=A,ar[14330]=A,ar[14331]=A,ar[14332]=A,ar[14333]=A,b=(ar[14334]=A)+16|0,ar[14335]=b,ar[14336]=b,ar[14337]=b,ar[14338]=b,ar[14339]=b,ar[14340]=b,ar[14341]=b,ar[14342]=b,ar[14343]=A+32,ar[14344]=A+96,ar[14345]=A+160,ar[14346]=A+224,ar[14347]=A+288,ar[14348]=A+352,ar[14349]=A+416,ar[14350]=A+480,ar[14351]=A+544,ar[14352]=A+608,ar[14353]=A+672,ar[14354]=A+736,ar[14355]=A+800,ar[14356]=A+864,ar[14357]=A+928,ar[14358]=A+992,b=A+1056|0,ar[14359]=b,ar[14363]=b,b=A+1312|0,ar[14360]=b,ar[14364]=b,b=A+1568|0,ar[14361]=b,ar[14365]=b,b=A+1824|0,ar[14362]=b,ar[14366]=b,b=A+2080|0,ar[14367]=b,ar[14371]=b,b=A+2336|0,ar[14368]=b,ar[14372]=b,b=A+2592|0,ar[14369]=b,ar[14373]=b,b=A+2848|0,ar[14370]=b,ar[14374]=b,b=A+3104|0,ar[14375]=b,ar[14379]=b,b=A+4128|0,ar[14376]=b,ar[14380]=b,b=A+5152|0,ar[14377]=b,ar[14381]=b,b=A+6176|0,ar[14378]=b,ar[14382]=b,b=A+7200|0,ar[14383]=b,ar[14387]=b,b=A+8224|0,ar[14384]=b,ar[14388]=b,b=A+9248|0,ar[14385]=b,ar[14389]=b,b=A+10272|0,ar[14386]=b,ar[14390]=b,b=2;A:for(;;){d=1==(0|(h=(s=1<>2)),k=b+-2|0,h=2==(0|h),u=0;do{w=0==(0|u),l=0;do{v=0==(0|l)?9:15,c=0;do{m=57308+(k<<6)+(u<<5)+(l<<4)+(c<<2)|0,a=0;do{if(i=a<<2,g=a<>2,o=0==(0|(t=3&a))?2:1==(0|t)&1,d){e=0;do{if(A=0|cr[41489+(e+i)>>0],A=w?A:A+27|0,r=(0|ar[m>>2])+(e+g)|0,!((o=0|tr[r>>0])<<24>>24==-1|(255&o|0)==(0|A))){e=28;break A}tr[r>>0]=A,e=e+1|0}while((0|e)<(0|s))}else{r=0;do{do{if((0|r)!=(0|f)){switch(e=r>>2,A=3&r,0|c){case 0:A=2<(A=A+t|0)>>>0?0:0|A?1:2;break;case 1:A=o;break;case 2:A=0==(0|A)?2:1==(0|A)&1;break;default:A=2}if(w){if(A=0<(e+n|0)?A+3|0:A,h){A=A+v|0;break}A=A+21|0;break}if(h){A=A+9|0;break}A=A+12|0;break}A=0}while(0);if(A=w?A:A+27|0,e=(0|ar[m>>2])+(r+g)|0,!((i=0|tr[e>>0])<<24>>24==-1|(255&i|0)==(0|A))){e=28;break A}tr[e>>0]=A,r=r+1|0}while((0|r)<(0|s))}a=a+1|0}while((0|a)<(0|s));c=c+1|0}while((0|c)<4);l=l+1|0}while((0|l)<2);u=u+1|0}while((0|u)<2);if(6<=(0|(b=b+1|0))){A=1,e=30;break}}if(28==(0|e))sr(41505,39242,2100,41581);else if(30==(0|e))return 0|A;return 0}function qa(){Bc(0|ar[14327]),ar[14327]=0}function $a(A){var e,r=0;for(ar[(A|=0)+4720>>2]=0,ar[A+4724>>2]=0,function(A){var e,r=0,i=0;for(tr[(A|=0)>>0]=0,or[(r=A+2|0)>>1]=0,or[r+2>>1]=0,or[r+4>>1]=0,tr[r+6>>0]=0,ar[A+12>>2]=5,tr[A+16>>0]=0,tr[A+17>>0]=0,tr[A+18>>0]=2,tr[A+19>>0]=2,tr[A+20>>0]=2,ar[A+48>>2]=0,ar[A+52>>2]=0,r=A+60|(tr[A+56>>0]=0),e=(i=A+21|0)+24|0;(0|(i=i+1|(tr[i>>0]=0)))<(0|e););ar[r>>2]=1,tr[A+64>>0]=0,tr[A+65>>0]=0,tr[A+66>>0]=0,tr[A+67>>0]=1,tr[A+68>>0]=0,or[A+70>>1]=0,tr[A+72>>0]=2,tr[A+73>>0]=1,tr[A+74>>0]=15,tr[A+75>>0]=15}(A+4904|(ar[A+4728>>2]=0)),e=(r=A+4984|0)+9|0;(0|(r=r+1|(tr[r>>0]=0)))<(0|e););tr[A>>0]=0}function Ac(A){var e,r;(r=0|ar[(A|=0)+4720>>2])&&((0|(e=0|ar[(A=A+4724|0)>>2]))!=(0|r)&&(ar[A>>2]=e+(100*~(((e-100-r|0)>>>0)/100|0)|0)),vu(r))}function ec(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0;ur=(t=ur)+6240|0,n=(f=t)+96|0,l=0;A:for(;;){k=(d=3==(0|l))?2:6,w=3!=(0|l),b=(h=0==(0|l))?16:64,s=1<(0|l),u=0;do{c=n+(u<<10)|0,o=d&1==(0|u);do{if(!((255&(0|At(A,1)))<<24>>24)){if(-99999==(0|(e=0|it(A)))|(0|u)<(0|e)){a=31;break A}if(ar[(i=f+(24*l|0)+(u<<2)|0)>>2]=16,0|e){if(!(w|1==(0|e))){a=13;break A}hb(0|c,n+((o=u-e|0)<<10)|0,0|b),o=0|ar[f+(24*l|0)+(o<<2)>>2],ar[i>>2]=o,a=21;break}if(h){for(i=41646,o=(e=c)+16|0;tr[e>>0]=0|tr[i>>0],i=i+1|0,(0|(e=e+1|0))<(0|o););a=22;break}if((0|u)<3&(1^o)){for(i=41662,o=(e=c)+64|0;tr[e>>0]=0|tr[i>>0],i=i+1|0,(0|(e=e+1|0))<(0|o););o=16,a=21;break}for(i=41726,o=(e=c)+64|0;tr[e>>0]=0|tr[i>>0],i=i+1|0,(0|(e=e+1|0))<(0|o););o=16,a=21;break}if(s){if(254<((e=0|ft(A))+7|0)>>>0){a=31;break A}o=e+8|0,e=ar[f+(24*l|0)+(u<<2)>>2]=o}else e=8,o=16;for(a=0;;){if(255<((i=0|ft(A))+128|0)>>>0){a=31;break A}if(e=(e+256+i|0)%256|0,tr[n+(u<<10)+a>>0]=e,(0|b)<=(0|(a=a+1|0))){a=21;break}}}while(0);e:do{if(21==(0|a))switch((a=0)|l){case 0:a=22;break e;case 1:for(i=0|_a(3,0),e=0;tr[((0|cr[i+(e<<1)+1>>0])<<3)+(0|cr[i+(e<<1)>>0])+(r+96+(u<<6))>>0]=0|tr[n+(u<<10)+e>>0],64!=(0|(e=e+1|0)););break;case 2:for(i=0|_a(3,0),e=0;c=i+(e<<1)|0,v=i+(e<<1)+1|0,m=0|tr[n+(u<<10)+e>>0],tr[((0|cr[v>>0])<<5)+((0|cr[c>>0])<<1)+(r+480+(u<<8))>>0]=m,tr[((0|cr[c>>0])<<1|1)+((0|cr[v>>0])<<5)+(r+480+(u<<8))>>0]=m,tr[((0|cr[v>>0])<<5|16)+((0|cr[c>>0])<<1)+(r+480+(u<<8))>>0]=m,tr[((0|cr[v>>0])<<5|16)+((0|cr[c>>0])<<1|1)+(r+480+(u<<8))>>0]=m,64!=(0|(e=e+1|0)););tr[r+480+(u<<8)>>0]=o;break e;case 3:fc(m=r+2016+(u<<10)|0,c,3),tr[m>>0]=o;break e;default:break e}}while(0);if(22==(0|a))for(i=0|_a(2,0),e=0;tr[((0|cr[i+(e<<1)+1>>0])<<2)+(0|cr[i+(e<<1)>>0])+(r+(u<<4))>>0]=0|tr[n+(u<<10)+e>>0],16!=(0|(e=e+1|0)););u=u+1|0}while((0|u)<(0|k));if(4<=(0|(l=l+1|0))){e=0,a=32;break}}if(13==(0|a))sr(41810,41639,873,41847);else{if(31==(0|a))return ur=t,0|(m=8);if(32==(0|a))return ur=t,0|e}return 0}function rc(A){A|=0;var e=0,r=0,i=0,f=0,n=0,t=0,o=0;for(r=0|_a(2,0),e=0;tr[A+(((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0]))>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+16)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+32)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+48)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+64)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+80)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+96)>>0]=0|tr[41662+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+288)>>0]=0|tr[41726+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+160)>>0]=0|tr[41662+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+352)>>0]=0|tr[41726+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+224)>>0]=0|tr[41662+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+416)>>0]=0|tr[41726+e>>0],64!=(0|(e=e+1|0)););f=0;do{for(r=0|_a(3,0),e=0;i=r+(e<<1)|0,t=41662+e|0,tr[((0|cr[(n=r+(e<<1)+1|0)>>0])<<5)+((0|cr[i>>0])<<1)+(A+480+(f<<8))>>0]=0|tr[t>>0],tr[((0|cr[i>>0])<<1|1)+((0|cr[n>>0])<<5)+(A+480+(f<<8))>>0]=0|tr[t>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[i>>0])<<1)+(A+480+(f<<8))>>0]=0|tr[t>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[i>>0])<<1|1)+(A+480+(f<<8))>>0]=0|tr[t>>0],64!=(0|(e=e+1|0)););for(r=f+3|0,i=0|_a(3,0),e=0;t=i+(e<<1)|0,o=41726+e|0,tr[((0|cr[(n=i+(e<<1)+1|0)>>0])<<5)+((0|cr[t>>0])<<1)+(A+480+(r<<8))>>0]=0|tr[o>>0],tr[((0|cr[t>>0])<<1|1)+((0|cr[n>>0])<<5)+(A+480+(r<<8))>>0]=0|tr[o>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[t>>0])<<1)+(A+480+(r<<8))>>0]=0|tr[o>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[t>>0])<<1|1)+(A+480+(r<<8))>>0]=0|tr[o>>0],64!=(0|(e=e+1|0)););f=f+1|0}while(3!=(0|f));fc(A+2016|0,41662,3),fc(A+3040|0,41726,3)}function ic(A,e,r){return A|=0,e|=0,e=255&(0|At(r|=0,1)),tr[A>>0]=e,e=255&(0|At(r,1)),tr[A+1>>0]=e,e=255&(0|At(r,1)),tr[A+2>>0]=e,e=255&(0|At(r,1)),tr[A+3>>0]=e,e=255&(0|At(r,1)),tr[A+4>>0]=e,e=255&(0|At(r,1)),tr[A+5>>0]=e,e=255&(0|At(r,1)),tr[A+6>>0]=e,e=255&(0|At(r,1)),tr[A+7>>0]=e,r=255&(0|At(r,1)),tr[A+8>>0]=r,0}function fc(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0;switch(0|(r|=0)){case 0:for(i=0|_a(2,0),r=0;tr[A+(((0|cr[i+(r<<1)+1>>0])<<2)+(0|cr[i+(r<<1)>>0]))>>0]=0|tr[e+r>>0],16!=(0|(r=r+1|0)););return;case 1:for(i=0|_a(3,0),r=0;tr[A+(((0|cr[i+(r<<1)+1>>0])<<3)+(0|cr[i+(r<<1)>>0]))>>0]=0|tr[e+r>>0],64!=(0|(r=r+1|0)););return;case 2:for(i=0|_a(3,0),r=0;o=i+(r<<1)+1|0,n=e+r|0,tr[A+(((0|cr[(t=i+(r<<1)|0)>>0])<<1)+((0|cr[o>>0])<<5))>>0]=0|tr[n>>0],tr[A+(((0|cr[t>>0])<<1|1)+((0|cr[o>>0])<<5))>>0]=0|tr[n>>0],tr[A+(((0|cr[t>>0])<<1)+((0|cr[o>>0])<<5|16))>>0]=0|tr[n>>0],tr[A+(((0|cr[t>>0])<<1|1)+((0|cr[o>>0])<<5|16))>>0]=0|tr[n>>0],64!=(0|(r=r+1|0)););return;case 3:f=0|_a(3,0),i=0;do{for(n=f+(i<<1)|0,t=f+(i<<1)+1|0,o=e+i|0,r=0;tr[A+(((0|cr[n>>0])<<2)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],tr[A+(((0|cr[n>>0])<<2|1)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],tr[A+(((0|cr[n>>0])<<2|2)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],tr[A+(((0|cr[n>>0])<<2|3)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],4!=(0|(r=r+1|0)););i=i+1|0}while(64!=(0|i));return;default:sr(44456,41639,810,41790)}}function nc(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0;if(ur=(n=ur)+144|0,c=n,4==(0|(r|=0))|1==(0|(f|=0)))ur=n;else{switch(f=(0|(l=(0|f)<26?26-f|0:f+-26|0))<(0|(f=(0|f)<10?10-f|0:f+-10|0))?l:f,0|r){case 8:t=7;break;case 16:t=1;break;case 32:t=0;break;default:sr(55739,48289,518,48361)}if((0|f)<=(0|t))ur=n;else{if(f=32==(0|r)&(0==(0|i)&0!=(0|tr[A+5665>>0]))&&(o=0|cr[e>>0],(0|((0|(l=(0|cr[e+64>>0])+o-(cr[e+32>>0]<<1)|0))<0?0-l|0:l))<(0|(a=1<<(0|ar[A+1276>>2])-5)))?(0|((0|(f=(0|cr[e+-64>>0])+o-(cr[e+-32>>0]<<1)|0))<0?0-f|0:f))<(0|a):0,i=c+64|0,a=0|br(r,-2),tr[i+a>>0]=0|tr[e+a>>0],tr[i+(a=r<<1)>>0]=0|tr[e+a>>0],f)for(t=0|tr[e>>0],tr[i>>0]=t,t&=255,A=(0|cr[e+-64>>0])-t|0,o=(0|cr[e+64>>0])-t|0,f=1;l=((32+(0|br(A,f))|0)>>>6)+t&255,tr[i+(0-f)>>0]=l,l=((32+(0|br(o,f))|0)>>>6)+t&255,tr[i+f>>0]=l,64!=(0|(f=f+1|0)););else if((0|(f=1-a|0))<(0|a))for(f=0|tr[e+(t=f)>>0];c=f,f=0|tr[e+(t=(l=t)+1|0)>>0],tr[i+l>>0]=(2+(255&f)+((255&c)<<1)+(0|cr[e+(l+-1)>>0])|0)>>>2,(0|t)!=(0|a););hb(e+(l=0-a|0)|0,i+l|0,r<<2|1),ur=n}}}function tc(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0;if(ur=(n=ur)+272|0,c=n,4==(0|(r|=0))|1==(0|(f|=0)))ur=n;else{switch(f=(0|(l=(0|f)<26?26-f|0:f+-26|0))<(0|(f=(0|f)<10?10-f|0:f+-10|0))?l:f,0|r){case 8:t=7;break;case 16:t=1;break;case 32:t=0;break;default:sr(55739,48289,518,48361)}if((0|f)<=(0|t))ur=n;else{if(f=32==(0|r)&(0==(0|i)&0!=(0|tr[A+5665>>0]))&&(o=0|lr[e>>1],(0|((0|(l=(0|lr[e+128>>1])+o-(lr[e+64>>1]<<1)|0))<0?0-l|0:l))<(0|(a=1<<(0|ar[A+1276>>2])-5)))?(0|((0|(f=(0|lr[e+-128>>1])+o-(lr[e+-64>>1]<<1)|0))<0?0-f|0:f))<(0|a):0,i=c+128|0,a=0|br(r,-2),or[i+(a<<1)>>1]=0|or[e+(a<<1)>>1],or[i+((a=r<<1)<<1)>>1]=0|or[e+(a<<1)>>1],f)for(t=0|or[e>>1],or[i>>1]=t,t&=65535,A=(0|lr[e+-128>>1])-t|0,o=(0|lr[e+128>>1])-t|0,f=1;l=((32+(0|br(A,f))|0)>>>6)+t&65535,or[i+(0-f<<1)>>1]=l,l=((32+(0|br(o,f))|0)>>>6)+t&65535,or[i+(f<<1)>>1]=l,64!=(0|(f=f+1|0)););else if((0|(f=1-a|0))<(0|a))for(f=0|or[e+((t=f)<<1)>>1];c=f,f=0|or[e+((t=(l=t)+1|0)<<1)>>1],or[i+(l<<1)>>1]=(2+(65535&f)+((65535&c)<<1)+(0|lr[e+(l+-1<<1)>>1])|0)>>>2,(0|t)!=(0|a););hb(e+((l=0-a|0)<<1)|0,i+(l<<1)|0,r<<3|2),ur=n}}}function oc(A){ar[(A|=0)+8>>2]=1732584193,ar[A+12>>2]=-271733879,ar[A+16>>2]=-1732584194,ar[A+20>>2]=271733878,ar[A>>2]=0,ar[A+4>>2]=0}function ac(A,e,r){e|=0,r|=0;var i,f,n=0,t=0;f=(t=0|ar[(A|=0)>>2])+r&536870911,ar[A>>2]=f,n=0|ar[(i=A+4|0)>>2],f>>>0>>0&&(n=n+1|0,ar[i>>2]=n),ar[i>>2]=n+(r>>>29),n=63&t;do{if(n){if(t=64-n|0,n=A+24+n|0,t>>>0<=r>>>0){hb(0|n,0|e,0|t),cc(A,A+24|0,64),e=e+t|0,r=r-t|0;break}return void hb(0|n,0|e,0|r)}}while(0);63>>0&&(e=0|cc(A,e,-64&r),r&=63),hb(A+24|0,0|e,0|r)}function cc(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0;for(g=(A|=0)+12|0,Z=A+16|0,p=A+20|0,f=A+88|0,n=A+92|0,t=A+96|0,o=A+100|0,a=A+104|0,c=A+108|0,l=A+112|0,u=A+116|0,b=A+120|0,s=A+124|0,d=A+128|0,k=A+132|0,h=A+136|0,w=A+140|0,v=A+144|0,i=A+148|0,A=0|ar[(m=A+8|0)>>2],y=0|ar[g>>2],B=0|ar[p>>2],E=0|ar[Z>>2];X=(0|cr[e+1>>0])<<8|0|cr[e>>0]|(0|cr[e+2>>0])<<16|(0|cr[e+3>>0])<<24,X=((X=A+-680876936+(y&(B^E)^B)+(ar[f>>2]=X)|0)<<7|X>>>25)+y|0,W=(0|cr[e+5>>0])<<8|0|cr[e+4>>0]|(0|cr[e+6>>0])<<16|(0|cr[e+7>>0])<<24,W=((W=B+-389564586+(ar[n>>2]=W)+(X&(y^E)^E)|0)<<12|W>>>20)+X|0,I=(0|cr[e+9>>0])<<8|0|cr[e+8>>0]|(0|cr[e+10>>0])<<16|(0|cr[e+11>>0])<<24,I=((I=E+606105819+(ar[t>>2]=I)+(W&(X^y)^y)|0)<<17|I>>>15)+W|0,j=(0|cr[e+13>>0])<<8|0|cr[e+12>>0]|(0|cr[e+14>>0])<<16|(0|cr[e+15>>0])<<24,j=((j=y+-1044525330+(ar[o>>2]=j)+(I&(W^X)^X)|0)<<22|j>>>10)+I|0,Y=(0|cr[e+17>>0])<<8|0|cr[e+16>>0]|(0|cr[e+18>>0])<<16|(0|cr[e+19>>0])<<24,Y=((Y=X+-176418897+(ar[a>>2]=Y)+(j&(I^W)^W)|0)<<7|Y>>>25)+j|0,X=(0|cr[e+21>>0])<<8|0|cr[e+20>>0]|(0|cr[e+22>>0])<<16|(0|cr[e+23>>0])<<24,X=((X=W+1200080426+(ar[c>>2]=X)+(Y&(j^I)^I)|0)<<12|X>>>20)+Y|0,W=(0|cr[e+25>>0])<<8|0|cr[e+24>>0]|(0|cr[e+26>>0])<<16|(0|cr[e+27>>0])<<24,W=((W=I+-1473231341+(ar[l>>2]=W)+(X&(Y^j)^j)|0)<<17|W>>>15)+X|0,I=(0|cr[e+29>>0])<<8|0|cr[e+28>>0]|(0|cr[e+30>>0])<<16|(0|cr[e+31>>0])<<24,I=((I=j+-45705983+(ar[u>>2]=I)+(W&(X^Y)^Y)|0)<<22|I>>>10)+W|0,j=(0|cr[e+33>>0])<<8|0|cr[e+32>>0]|(0|cr[e+34>>0])<<16|(0|cr[e+35>>0])<<24,j=((j=Y+1770035416+(ar[b>>2]=j)+(I&(W^X)^X)|0)<<7|j>>>25)+I|0,Y=(0|cr[e+37>>0])<<8|0|cr[e+36>>0]|(0|cr[e+38>>0])<<16|(0|cr[e+39>>0])<<24,X=((X=(ar[s>>2]=Y)+-1958414417+X+(j&(I^W)^W)|0)<<12|X>>>20)+j|0,Y=(0|cr[e+41>>0])<<8|0|cr[e+40>>0]|(0|cr[e+42>>0])<<16|(0|cr[e+43>>0])<<24,W=((W=(ar[d>>2]=Y)+-42063+W+(X&(j^I)^I)|0)<<17|W>>>15)+X|0,Y=(0|cr[e+45>>0])<<8|0|cr[e+44>>0]|(0|cr[e+46>>0])<<16|(0|cr[e+47>>0])<<24,I=((I=(ar[k>>2]=Y)+-1990404162+I+(W&(X^j)^j)|0)<<22|I>>>10)+W|0,Y=(0|cr[e+49>>0])<<8|0|cr[e+48>>0]|(0|cr[e+50>>0])<<16|(0|cr[e+51>>0])<<24,j=((j=(ar[h>>2]=Y)+1804603682+j+(I&(W^X)^X)|0)<<7|j>>>25)+I|0,Y=(0|cr[e+53>>0])<<8|0|cr[e+52>>0]|(0|cr[e+54>>0])<<16|(0|cr[e+55>>0])<<24,X=((X=(ar[w>>2]=Y)+-40341101+X+(j&(I^W)^W)|0)<<12|X>>>20)+j|0,Y=(0|cr[e+57>>0])<<8|0|cr[e+56>>0]|(0|cr[e+58>>0])<<16|(0|cr[e+59>>0])<<24,W=((W=(ar[v>>2]=Y)+-1502002290+W+(X&(j^I)^I)|0)<<17|W>>>15)+X|0,Y=(0|cr[e+61>>0])<<8|0|cr[e+60>>0]|(0|cr[e+62>>0])<<16|(0|cr[e+63>>0])<<24,I=((I=(ar[i>>2]=Y)+1236535329+I+(W&(X^j)^j)|0)<<22|I>>>10)+W|0,j=((j=(D=0|ar[n>>2])+-165796510+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,X=((X=(_=0|ar[l>>2])+-1069501632+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0,W=((W=(F=0|ar[k>>2])+643717713+W+((X^j)&I^j)|0)<<14|W>>>18)+X|0,I=((I=(z=0|ar[f>>2])+-373897302+I+((W^X)&j^X)|0)<<20|I>>>12)+W|0,j=((j=(U=0|ar[c>>2])+-701558691+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,W=((W=Y+-660478335+W+(((X=((X=(J=0|ar[d>>2])+38016083+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0)^j)&I^j)|0)<<14|W>>>18)+X|0,I=((I=(R=0|ar[a>>2])+-405537848+I+((W^X)&j^X)|0)<<20|I>>>12)+W|0,j=((j=(G=0|ar[s>>2])+568446438+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,X=((X=(S=0|ar[v>>2])+-1019803690+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0,W=((W=(M=0|ar[o>>2])+-187363961+W+((X^j)&I^j)|0)<<14|W>>>18)+X|0,I=((I=(Q=0|ar[b>>2])+1163531501+I+((W^X)&j^X)|0)<<20|I>>>12)+W|0,j=((j=(N=0|ar[w>>2])+-1444681467+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,X=((X=(V=0|ar[t>>2])+-51403784+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0,C=(W=((W=(O=0|ar[u>>2])+1735328473+W+((X^j)&I^j)|0)<<14|W>>>18)+X|0)^X,A=(C=((C=R+-145523070+(C=((C=Q+1873313359+(C=((C=(T=0|ar[h>>2])+1700485571+(C=((C=z+-198630844+(C=((C=G+-640364487+(C=((C=N+681279174+(C=((C=D+-1530992060+(C=((C=U+-378558+j+(C^(I=((I=T+-1926607734+I+(C&j^X)|0)<<20|I>>>12)+W|0))|0)<<4|C>>>28)+I|0)+((W=((W=F+1839030562+W+(C^I^(X=((X=Q+-2022574463+X+(I^W^C)|0)<<11|X>>>21)+C|0))|0)<<16|W>>>16)+X|0)^X^(I=((I=S+-35309556+I+(X^C^W)|0)<<23|I>>>9)+W|0))|0)<<4|C>>>28)+I|0)+((W=((W=O+-155497632+W+(C^I^(X=((X=R+1272893353+X+(I^W^C)|0)<<11|X>>>21)+C|0))|0)<<16|W>>>16)+X|0)^X^(I=((I=J+-1094730640+I+(X^C^W)|0)<<23|I>>>9)+W|0))|0)<<4|C>>>28)+I|0)+((W=((W=M+-722521979+W+(C^I^(X=((X=z+-358537222+X+(I^W^C)|0)<<11|X>>>21)+C|0))|0)<<16|W>>>16)+X|0)^X^(I=((I=_+76029189+I+(X^C^W)|0)<<23|I>>>9)+W|0))|0)<<4|C>>>28)+I|0)+(((I=((I=V+-995338651+I+((X=((X=T+-421815835+X+(I^W^C)|0)<<11|X>>>21)+C|0)^C^(W=((W=Y+530742520+W+(C^I^X)|0)<<16|W>>>16)+X|0))|0)<<23|I>>>9)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+(((I=((I=U+-57434055+I+(((W=((W=S+-1416354905+W+(((X=((X=O+1126891415+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)|~C)^X)|0)<<21|I>>>11)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+(((I=((I=D+-2054922799+I+(((W=((W=J+-1051523+W+(((X=((X=M+-1894986606+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)|~C)^X)|0)<<21|I>>>11)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+(((I=((I=N+1309151649+I+(((W=((W=_+-1560198380+W+(((X=((X=Y+-30611744+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)|~C)^X)|0)<<21|I>>>11)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+A|0,y=(W=((W=V+718787259+W+(((X=((X=F+-1120210379+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)+y+((I=G+-343485551+I+((W|~C)^X)|0)<<21|I>>>11)|0,E=W+E|0,B=X+B|0,e=e+64|0,0!=(0|(r=r+-64|0)););return ar[m>>2]=A,ar[g>>2]=y,ar[Z>>2]=E,ar[p>>2]=B,0|e}function lc(A,e){A|=0;var r=0,i=0,f=0;r=(i=63&ar[(e|=0)>>2])+1|0,tr[e+24+i>>0]=-128,f=e+24|0,(i^=63)>>>0<8?(vb(e+24+r|0,0,0|i),cc(e,f,64),i=56,r=0):i=i+-8|0,vb(e+24+r|0,0,0|i),r=(i=0|ar[e>>2])<<3,ar[e>>2]=r,tr[e+80>>0]=r,tr[e+81>>0]=i>>>5,tr[e+82>>0]=i>>>13,tr[e+83>>0]=i>>>21,i=0|ar[e+4>>2],tr[e+84>>0]=i,tr[e+85>>0]=i>>>8,tr[e+86>>0]=i>>>16,tr[e+87>>0]=i>>>24,cc(e,f,64),f=e+8|0,tr[A>>0]=ar[f>>2],tr[A+1>>0]=(0|ar[f>>2])>>>8,tr[A+2>>0]=(0|ar[f>>2])>>>16,tr[A+3>>0]=(0|ar[f>>2])>>>24,f=e+12|0,tr[A+4>>0]=ar[f>>2],tr[A+5>>0]=(0|ar[f>>2])>>>8,tr[A+6>>0]=(0|ar[f>>2])>>>16,tr[A+7>>0]=(0|ar[f>>2])>>>24,f=e+16|0,tr[A+8>>0]=ar[f>>2],tr[A+9>>0]=(0|ar[f>>2])>>>8,tr[A+10>>0]=(0|ar[f>>2])>>>16,tr[A+11>>0]=(0|ar[f>>2])>>>24,f=e+20|0,tr[A+12>>0]=ar[f>>2],tr[A+13>>0]=(0|ar[f>>2])>>>8,tr[A+14>>0]=(0|ar[f>>2])>>>16,tr[A+15>>0]=(0|ar[f>>2])>>>24,vb(0|e,0,152)}function uc(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0;var s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(ur=(Z=ur)+20448|0,d=(W=Z)+9088|0,k=3&(r|=0),h=3&(i|=0),g=(r>>2)+(f|=0)|0,m=(i>>2)+(n|=0)|0,y=14-(0|ar[(e|=0)+4996>>2])|0,v=0|ar[e+484>>2],w=0|ar[e+488>>2],3&(i|r)){if(y=0|ar[9768+(k<<2)>>2],n=0|ar[9784+(k<<2)>>2],s=0|ar[9768+(h<<2)>>2],f=0|ar[9784+(h<<2)>>2],p=0-y|0,-1<(m-s|g-y|0)&&(g+l+n|0)<(0|v)&&(m+u+f|0)<(0|w))f=a+((0|br(m,n=c))+g<<1)|0;else{if((0|(e=0-s|0))<(0|(i=f+u|0))&&(E=v-1|0,X=w-1|0,(0|p)<(0|(B=n+l|0))))do{for(n=0|br((0|(n=e+m|0))<0?0:(0|n)<(0|w)?n:X,c),r=(80*(e+s|0)|0)+y|0,f=p;I=f+g|0,or[d+(r+f<<1)>>1]=0|or[a+(((0|I)<0?0:(0|I)<(0|v)?I:E)+n<<1)>>1],(0|(f=f+1|0))!=(0|B););e=e+1|0}while((0|e)!=(0|i));f=d+(((n=80)*s|0)+y<<1)|0}(0|b)<9?cs[31&ar[A+220+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W):ls[31&ar[A+300+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W,b),ur=Z}else{if(!((m|g|0)<0|(0|v)<(g+l|0)|(0|w)<(m+u|0)))return f=a+((0|br(m,c))+g<<1)|0,(0|b)<9?cs[31&ar[A+220>>2]](t,o,f,c,l,u,W):ls[31&ar[A+300>>2]](t,o,f,c,l,u,W,b),void(ur=Z);if((0|u)<=0)return void(ur=Z);if(e=v-1|0,r=w-1|0,!(0<(0|l)))return void(ur=Z);f=0;do{for(i=0|br((0|(i=f+m|0))<0?0:(0|i)<(0|w)?i:r,c),p=0|br(f,o),n=0;W=n+g|0,or[t+(n+p<<1)>>1]=(0|lr[a+(((0|W)<0?0:(0|W)<(0|v)?W:e)+i<<1)>>1])<>2)+(f|=0)|0,m=(i>>2)+(n|=0)|0,y=14-(0|ar[(e|=0)+4996>>2])|0,v=0|ar[e+484>>2],w=0|ar[e+488>>2],3&(i|r)){if(y=0|ar[9768+(k<<2)>>2],n=0|ar[9784+(k<<2)>>2],s=0|ar[9768+(h<<2)>>2],f=0|ar[9784+(h<<2)>>2],p=0-y|0,-1<(m-s|g-y|0)&&(g+l+n|0)<(0|v)&&(m+u+f|0)<(0|w))f=a+((0|br(m,n=c))+g)|0;else{if((0|(e=0-s|0))<(0|(i=f+u|0))&&(E=v-1|0,X=w-1|0,(0|p)<(0|(B=n+l|0))))do{for(n=0|br((0|(n=e+m|0))<0?0:(0|n)<(0|w)?n:X,c),r=(80*(e+s|0)|0)+y|0,f=p;I=f+g|0,tr[d+(r+f)>>0]=0|tr[a+(((0|I)<0?0:(0|I)<(0|v)?I:E)+n)>>0],(0|(f=f+1|0))!=(0|B););e=e+1|0}while((0|e)!=(0|i));f=d+(((n=80)*s|0)+y)|0}(0|b)<9?cs[31&ar[A+220+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W):ls[31&ar[A+300+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W,b),ur=Z}else{if(!((m|g|0)<0|(0|v)<(g+l|0)|(0|w)<(m+u|0)))return f=a+((0|br(m,c))+g)|0,(0|b)<9?cs[31&ar[A+220>>2]](t,o,f,c,l,u,W):ls[31&ar[A+300>>2]](t,o,f,c,l,u,W,b),void(ur=Z);if((0|u)<=0)return void(ur=Z);if(e=v-1|0,r=w-1|0,!(0<(0|l)))return void(ur=Z);f=0;do{for(i=0|br((0|(i=f+m|0))<0?0:(0|i)<(0|w)?i:r,c),p=0|br(f,o),n=0;W=n+g|0,or[t+(n+p<<1)>>1]=(0|cr[a+(((0|W)<0?0:(0|W)<(0|v)?W:e)+i)>>0])<>2])|0,E=0|ar[e+5016>>2],w=(0|ar[e+484>>2])/(0|E)|0,B=0|ar[e+5020>>2],h=(0|ar[e+488>>2])/(0|B)|0,s=7&(r=0|br(2/(0|E)|0,r)),d=7&(i=0|br(2/(0|B)|0,i)),E=((0|f)/(0|E)|0)+(r>>3)|0,B=((0|n)/(0|B)|0)+(i>>3)|0,7&(i|r)){if(0<(0|E)&&(E+l|0)<=(w-2|0)&0<(0|B)&&(B+u|0)<=(h-2|0))f=a+((0|br(B,c))+E<<1)|0,e=c;else{if(-1<(0|(i=u+2|0))&&(Z=w-1|0,p=h-1|0,-1<(0|(g=l+2|0)))){r=-1;do{for(f=0|br((0|(f=r+B|0))<0?0:(0|f)<(0|h)?f:p,c),n=80+(80*r|0)|0,e=-1;y=e+E|0,or[m+(n+(e=e+1|0)<<1)>>1]=0|or[a+(((0|y)<0?0:(0|y)<(0|w)?y:Z)+f<<1)>>1],(0|e)!=(0|g););r=r+1|0}while((0|r)!=(0|i))}f=m+162|0,e=80}r=0!=(0|s),i=0!=(0|d);do{if(r&i){if((0|b)<9){bs[7&ar[A+216>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+296>>2]](t,o,f,e,l,u,s,d,k,b);break}if(r){if((0|b)<9){bs[7&ar[A+208>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+288>>2]](t,o,f,e,l,u,s,d,k,b);break}if(i||sr(55739,48428,268,48472),(0|b)<9){bs[7&ar[A+212>>2]](t,o,f,e,l,u,0,d,k,b);break}bs[7&ar[A+292>>2]](t,o,f,e,l,u,0,d,k,b);break}while(0);ur=v}else{if(-1<(0|E)&&!((0|B)<0|(0|w)<(E+l|0)|(0|h)<(B+u|0)))return e=a+((0|br(B,c))+E<<1)|0,(0|b)<9?us[3&ar[A+204>>2]](t,o,e,c,l,u,0,0,0):bs[7&ar[A+284>>2]](t,o,e,c,l,u,0,0,0,b),void(ur=v);if((0|u)<=0)return void(ur=v);if(i=w-1|0,f=h-1|0,!(0<(0|l)))return void(ur=v);r=0;do{for(n=0|br((0|(n=r+B|0))<0?0:(0|n)<(0|h)?n:f,c),m=0|br(r,o),e=0;b=e+E|0,or[t+(e+m<<1)>>1]=(0|lr[a+(((0|b)<0?0:(0|b)<(0|w)?b:i)+n<<1)>>1])<>2])|0,E=0|ar[e+5016>>2],w=(0|ar[e+484>>2])/(0|E)|0,B=0|ar[e+5020>>2],h=(0|ar[e+488>>2])/(0|B)|0,s=7&(r=0|br(2/(0|E)|0,r)),d=7&(i=0|br(2/(0|B)|0,i)),E=((0|f)/(0|E)|0)+(r>>3)|0,B=((0|n)/(0|B)|0)+(i>>3)|0,7&(i|r)){if(0<(0|E)&&(E+l|0)<=(w-2|0)&0<(0|B)&&(B+u|0)<=(h-2|0))f=a+((0|br(B,c))+E)|0,e=c;else{if(-1<(0|(i=u+2|0))&&(Z=w-1|0,p=h-1|0,-1<(0|(g=l+2|0)))){r=-1;do{for(f=0|br((0|(f=r+B|0))<0?0:(0|f)<(0|h)?f:p,c),n=80+(80*r|0)|0,e=-1;y=e+E|0,tr[m+(n+(e=e+1|0))>>0]=0|tr[a+(((0|y)<0?0:(0|y)<(0|w)?y:Z)+f)>>0],(0|e)!=(0|g););r=r+1|0}while((0|r)!=(0|i))}f=m+81|0,e=80}r=0!=(0|s),i=0!=(0|d);do{if(r&i){if((0|b)<9){bs[7&ar[A+216>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+296>>2]](t,o,f,e,l,u,s,d,k,b);break}if(r){if((0|b)<9){bs[7&ar[A+208>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+288>>2]](t,o,f,e,l,u,s,d,k,b);break}if(i||sr(55739,48428,268,48472),(0|b)<9){bs[7&ar[A+212>>2]](t,o,f,e,l,u,0,d,k,b);break}bs[7&ar[A+292>>2]](t,o,f,e,l,u,0,d,k,b);break}while(0);ur=v}else{if(-1<(0|E)&&!((0|B)<0|(0|w)<(E+l|0)|(0|h)<(B+u|0)))return e=a+((0|br(B,c))+E)|0,(0|b)<9?us[3&ar[A+204>>2]](t,o,e,c,l,u,0,0,0):bs[7&ar[A+284>>2]](t,o,e,c,l,u,0,0,0,b),void(ur=v);if((0|u)<=0)return void(ur=v);if(i=w-1|0,f=h-1|0,!(0<(0|l)))return void(ur=v);r=0;do{for(n=0|br((0|(n=r+B|0))<0?0:(0|n)<(0|h)?n:f,c),m=0|br(r,o),e=0;b=e+E|0,or[t+(e+m<<1)>>1]=(0|cr[a+(((0|b)<0?0:(0|b)<(0|w)?b:i)+n)>>0])<>2])>>2]](A,n)||sr(48581,48428,1074,48604),b=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,n),(0|ar[24+b>>2])>(0|t)&&(0|ar[28+b>>2])>(0|o)){if(i=t>>(f=0|ar[10368+b>>2]),f=o>>f,(0|i)<=-1&&sr(48482,48519,118,48539),(0|(n=0|ar[10372+b>>2]))<=(0|i)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)>=(0|ar[10376+b>>2])&&sr(48543,48519,119,48539),w=(0|ar[10360+b>>2])+(3*((0|br(n,f))+i|0)|0)|0,!(768&(cr[w>>0]|cr[w+1>>0]<<8)))return or[l>>1]=0,or[l+2>>1]=0,void(tr[u>>0]=0);if(1==(0|tr[10516+b>>0]))return or[l>>1]=0,or[l+2>>1]=0,void(tr[u>>0]=0);if(i=t>>(f=0|ar[10388+b>>2]),f=o>>f,(0|i)<=-1&&sr(48482,48519,118,48539),(0|(n=0|ar[10392+b>>2]))<=(0|i)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)>=(0|ar[10396+b>>2])&&sr(48543,48519,119,48539),w=0|ar[10380+b>>2],h=(0|br(n,f))+i|0,0|tr[w+(12*h|0)>>0])if(0|tr[w+(12*h|0)+1>>0]){if(s=0|ar[e+92>>2],0<(0|ar[(n=r+332|0)>>2]))for(f=0;i=92+(0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+980+(f<<2)>>2]))|0,(i=(0|ar[i>>2])<=(0|s))&(0|(f=f+1|0))<(0|ar[n>>2]););else i=1;if(i&0<(0|ar[(n=r+328|0)>>2]))for(f=0;i=92+(0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(f<<2)>>2]))|0,(i=(0|ar[i>>2])<=(0|s))&(0|(f=f+1|0))<(0|ar[n>>2]););d=i?c:0|tr[r+372>>0]}else d=0;else d=1;return(k=lr[(k=w+(12*h|0)+4+(d<<2)|0)>>1]|lr[k+2>>1]<<16,s=0|tr[w+(12*h|0)+2+d>>0],n=t>>(i=0|ar[10348+b>>2]),i=o>>i,(0|n)<=-1&&sr(48482,48519,118,48539),(0|(f=0|ar[10352+b>>2]))<=(0|n)&&sr(48482,48519,118,48539),(0|i)<=-1&&sr(48543,48519,119,48539),(0|i)>=(0|ar[10356+b>>2])&&sr(48543,48519,119,48539),i=(0|ar[10340+b>>2])+(24*((0|br(f,i))+n|0)|0)+2|0,i=0|ar[(0|ar[48+b>>2])+(lr[i>>1]<<2)>>2],(0|tr[(n=r+1300+(c<<4)+a|0)>>0])!=(0|tr[i+1300+(d<<4)+s>>0]))?(tr[u>>0]=0,or[l>>1]=0,void(or[l+2>>1]=0)):(tr[u>>0]=1,i=(0|ar[92+b>>2])-(0|ar[i+1044+(d<<6)+(s<<2)>>2])|0,f=(0|ar[e+92>>2])-(0|ar[r+1044+(c<<6)+(a<<2)>>2])|0,0!=(0|tr[n>>0])|(0|i)==(0|f)?(or[l>>1]=k,void(or[l+2>>1]=k>>>16)):(i=(0|i)<-128?-128:(0|i)<127?i:127)?(e=32+(0|br((16384+(((0|i)<0?0-i|0:i)>>1)|0)/(0|i)|0,(0|f)<-128?-128:(0|f)<127?f:127))>>6,A=0|br(e=(0|e)<-4096?-4096:(0|e)<4095?e:4095,k<<16>>16),A=0|br(((c=(0|A)<0)?0-A|0:A)+127>>8,c?-1:0!=(0|A)&1),or[l>>1]=(0|A)<-32768?-32768:65535&((0|A)<32767?A:32767),e=0|br(e,k>>16),e=0|br(((A=(0|e)<0)?0-e|0:e)+127>>8,A?-1:0!=(0|e)&1),void(or[l+2>>1]=(0|e)<-32768?-32768:65535&((0|e)<32767?e:32767))):(or[l>>1]=k,or[l+2>>1]=k>>>16,er(A+4|0,1008,0),void(tr[e+10516>>0]=3)))}er(A+4|0,1026,0),tr[u>>0]=0}function hc(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d=0;if(!(0|tr[(r|=0)+324>>0]))return or[c>>1]=0,or[c+2>>1]=0,void(tr[l>>0]=0);if(s=0|ar[e+5804>>2],d=0|ar[r+20>>2]?0:0==(0|tr[r+372>>0])&1,d=0|ar[r+916+(d<<6)+(ar[r+376>>2]<<2)>>2],!(0|Hb[31&ar[12+(0|ar[A>>2])>>2]](A,d)))return or[c>>1]=0,or[c+2>>1]=0,void er(A+4|(tr[l>>0]=0),1012,0);if(b=n+i|0,(f>>s|0)==((u=t+f|0)>>s|0)&&(0|b)<(0|ar[e+1248>>2])&&(0|u)<(0|ar[e+1252>>2])){if(kc(A,e,r,0,0,d,-16&b,-16&u,o,a,c,l),0|tr[l>>0])return}else or[c>>1]=0,or[c+2>>1]=0,tr[l>>0]=0;kc(A,e,r,0,0,d,(n>>1)+i&-16,(t>>1)+f&-16,o,a,c,l)}function wc(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,n|=0,t|=0,a|=0,c|=0,l|=0,u|=0,b|=0;var s,d,k,h,w,v,m=0,g=0,Z=0;if(g=ur=(v=ur)+31&-32,ur=ur+16|0,w=g+8|0,g=(m=g)+12|0,t=0|function(A,e,r,i,f,n,t,o,a,c,l,u){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0;var b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;w=0|ar[(A|=0)+10060>>2],t=e>>(m=0|ar[A+10368>>2]),m=r>>m,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10372>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|m)<=-1&&sr(48543,48519,119,48539),(0|m)>=(0|ar[A+10376>>2])&&sr(48543,48519,119,48539),Z=(0|ar[A+10360>>2])+(3*((0|br(g,m))+t|0)|0)|0,Z=(65535&(cr[Z>>0]|cr[Z+1>>0]<<8))>>>3,t=(d=a+n|0)-1|0,(h=(0|(s=f>>w))==((k=f+-1|0)>>w|0))&&(n>>w|0)==(t>>w|0)?v=I=0:E=9;A:do{if(9==(0|E)){if(1==(0|c))switch(7&Z){case 2:case 6:case 7:v=I=0;break A}if(0|ka(A,e,r,i,f,n,o,a,c,k,t)){if(t>>=X=0|ar[A+10388>>2],(0|(g=k>>X))<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[A+10392>>2]))<=(0|g)&&sr(48482,48519,118,48539),(0|t)<=-1&&sr(48543,48519,119,48539),(0|t)<(0|ar[A+10396>>2])){I=(0|ar[A+10380>>2])+(12*((0|br(m,t))+g|0)|0)|0,or[l>>1]=0|or[I>>1],or[l+2>>1]=0|or[I+2>>1],or[l+4>>1]=0|or[I+4>>1],or[l+6>>1]=0|or[I+6>>1],or[l+8>>1]=0|or[I+8>>1],or[l+10>>1]=0|or[I+10>>1],v=I=1;break}sr(48543,48519,119,48539)}else v=I=0}}while(0);if((0|u)<=(0|v))return 0|(l=v);X=n+-1|0,(0|s)==((t=(b=o+f|0)-1|0)>>w|0)&&(n>>w|0)==(X>>w|0)?B=p=0:E=22;A:do{if(22==(0|E)){if(1==(0|c))switch(7&Z){case 1:case 4:case 5:B=p=0;break A}if(0|ka(A,e,r,i,f,n,o,a,c,t,X)){t>>=m=0|ar[A+10388>>2],m=X>>m,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10392>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|m)<=-1&&sr(48543,48519,119,48539),(0|m)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(g,m))+t|0)|0)|0;do{if(I&&(p=0|tr[l>>0])<<24>>24==(0|tr[t>>0])){if(p<<24>>24){if((0|or[l+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+1>>0])<<24>>24==(0|tr[Z+(12*g|0)+1>>0])){if(!(m<<24>>24)){p=1,B=0;break A}if((0|or[l+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+3>>0])==(0|tr[Z+(12*g|0)+3>>0])){p=1,B=0;break A}}}}while(0);or[(p=l+(12*v|0)|0)>>1]=0|or[t>>1],or[p+2>>1]=0|or[t+2>>1],or[p+4>>1]=0|or[t+4>>1],or[p+6>>1]=0|or[t+6>>1],or[p+8>>1]=0|or[t+8>>1],or[p+10>>1]=0|or[t+10>>1],v=(B=v)+(p=1)|0}else B=p=0}}while(0);if((0|u)<=(0|v))return 0|(l=v);(0|s)==(b>>w|0)&&(n>>w|0)==(X>>w|0)||(E=47);A:do{if(47==(0|E)&&0|ka(A,e,r,i,f,n,o,a,c,b,X)){t=b>>(m=0|ar[A+10388>>2]),m=X>>m,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10392>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|m)<=-1&&sr(48543,48519,119,48539),(0|m)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(g,m))+t|0)|0)|0;do{if(p&&(y=0|tr[l+(12*B|0)>>0])<<24>>24==(0|tr[t>>0])){if(y<<24>>24){if((0|or[l+(12*B|0)+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+(12*B|0)+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+(12*B|0)+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+(12*B|0)+1>>0])<<24>>24==(0|tr[Z+(12*g|0)+1>>0])){if(!(m<<24>>24))break A;if((0|or[l+(12*B|0)+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+(12*B|0)+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+(12*B|0)+3>>0])==(0|tr[Z+(12*g|0)+3>>0]))break A}}}while(0);or[(y=l+(12*v|0)|0)>>1]=0|or[t>>1],or[y+2>>1]=0|or[t+2>>1],or[y+4>>1]=0|or[t+4>>1],or[y+6>>1]=0|or[t+6>>1],or[y+8>>1]=0|or[t+8>>1],or[y+10>>1]=0|or[t+10>>1],v=v+1|0}}while(0);if((0|u)<=(0|v))return 0|(l=v);h&&(n>>w|0)==(d>>w|0)||(E=70);A:do{if(70==(0|E)&&0|ka(A,e,r,i,f,n,o,a,c,k,d)){g=k>>(t=0|ar[A+10388>>2]),t=d>>t,(0|g)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[A+10392>>2]))<=(0|g)&&sr(48482,48519,118,48539),(0|t)<=-1&&sr(48543,48519,119,48539),(0|t)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(m,t))+g|0)|0)|0;do{if(I&&(W=0|tr[l>>0])<<24>>24==(0|tr[t>>0])){if(W<<24>>24){if((0|or[l+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+1>>0])<<24>>24!=(0|tr[Z+(12*g|0)+1>>0]))break;if(!(m<<24>>24))break A;if((0|or[l+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+3>>0])==(0|tr[Z+(12*g|0)+3>>0]))break A}}while(0);or[(W=l+(12*v|0)|0)>>1]=0|or[t>>1],or[W+2>>1]=0|or[t+2>>1],or[W+4>>1]=0|or[t+4>>1],or[W+6>>1]=0|or[t+6>>1],or[W+8>>1]=0|or[t+8>>1],or[W+10>>1]=0|or[t+10>>1],v=v+1|0}}while(0);if((0|u)<=(0|v)|4==(0|v))return 0|(l=v);if(h&&(n>>w|0)==(X>>w|0))return 0|(l=v);if(!(0|ka(A,e,r,i,f,n,o,a,c,k,X)))return 0|(l=v);g=k>>(t=0|ar[A+10388>>2]),t=X>>t,(0|g)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[A+10392>>2]))<=(0|g)&&sr(48482,48519,118,48539),(0|t)<=-1&&sr(48543,48519,119,48539),(0|t)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(m,t))+g|0)|0)|0;do{if(p){if((m=0|tr[l+(12*B|0)>>0])<<24>>24!=(0|tr[t>>0]))break;if(m<<24>>24){if((0|or[l+(12*B|0)+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+(12*B|0)+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+(12*B|0)+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+(12*B|0)+1>>0])<<24>>24!=(0|tr[Z+(12*g|0)+1>>0]))break;if(!(m<<24>>24))return 0|(l=v);if((0|or[l+(12*B|0)+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+(12*B|0)+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+(12*B|0)+3>>0])!=(0|tr[Z+(12*g|0)+3>>0]))break;return 0|v}}while(0);do{if(I){if((m=0|tr[l>>0])<<24>>24!=(0|tr[t>>0]))break;if(m<<24>>24){if((0|or[l+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+1>>0])<<24>>24!=(0|tr[Z+(12*g|0)+1>>0]))break;if(!(m<<24>>24))return 0|(l=v);if((0|or[l+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+3>>0])!=(0|tr[Z+(12*g|0)+3>>0]))break;return 0|v}}while(0);return or[(l=l+(12*v|0)|0)>>1]=0|or[t>>1],or[l+2>>1]=0|or[t+2>>1],or[l+4>>1]=0|or[t+4>>1],or[l+6>>1]=0|or[t+6>>1],or[l+8>>1]=0|or[t+8>>1],or[l+10>>1]=0|or[t+10>>1],0|(l=v+1|0)}(r|=0,i|=0,f|=0,o|=0,n=(Z=8==(0|o)?2<(0|ar[r+10060>>2]):0)?i:n,s=Z?f:t,0,d=Z?o:a,k=Z?o:c,Z?0:l,b,h=u+1|0),(0|u)<(0|(ar[w>>2]=t))?i=e+20|0:(hc(A,r,e,n,s,d,k,0,0,m,g),c=0|tr[g>>0],(tr[(a=g+1|0)>>0]=0)|ar[(i=e+20|0)>>2]?a=0:(hc(A,r,e,n,s,d,k,0,1,m+4|0,a),c|=a=0|tr[a>>0]),c<<24>>24&&(ar[w>>2]=t+1,Z=b+(12*t|0)+4|0,r=0|ar[m>>2],or[Z>>1]=r,or[Z+2>>1]=r>>>16,Z=b+(12*t|0)+8|0,m=0|ar[m+4>>2],or[Z>>1]=m,or[Z+2>>1]=m>>>16,tr[b+(12*t|0)>>0]=0|tr[g>>0],tr[b+(12*t|0)+1>>0]=a,tr[b+(12*t|0)+2>>0]=0,tr[b+(12*t|0)+3>>0]=0)),(c=0|ar[i>>2])||(function(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(1<(0|(n=0|ar[(i|=0)>>2]))&(0|n)<(0|f)){for(t=0|br(n-1|0,n),u=0;;){if(!((0|(b=0|ar[9800+(u<<2)>>2]))<(0|n)&(0|(s=0|ar[9848+(u<<2)>>2]))<(0|n))){o=4;break}if(d=0|tr[(o=r+(12*b|0)|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[e+916+(tr[r+(12*b|0)+2>>0]<<2)>>2]):0,k=0|tr[(a=r+(12*s|0)+1|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[e+980+(tr[r+(12*s|0)+3>>0]<<2)>>2]):0,!(0!=(0|d)|(l=(c=0|tr[o>>0])<<24>>24==0))){o=18;break}if(!(0!=(0|k)|(a=(o=0|tr[a>>0])<<24>>24==0))){o=18;break}do{if(!(l|a)){if((0|ar[d+92>>2])==(0|ar[k+92>>2])&&(0|or[r+(12*b|0)+4>>1])==(0|or[r+(12*s|0)+8>>1])&&(0|or[r+(12*b|0)+6>>1])==(0|or[r+(12*s|0)+10>>1]))break;k=0|ar[i>>2],tr[r+(12*k|0)+2>>0]=0|tr[r+(12*b|0)+2>>0],tr[r+(12*k|0)+3>>0]=0|tr[r+(12*s|0)+3>>0],tr[r+(12*k|0)>>0]=c,tr[r+(12*k|0)+1>>0]=o,d=r+(12*k|0)+4|0,b=lr[(b=r+(12*b|0)+4|0)>>1]|lr[b+2>>1]<<16,or[d>>1]=b,or[d+2>>1]=b>>>16,k=r+(12*k|0)+8|0,d=lr[(d=r+(12*s|0)+8|0)>>1]|lr[d+2>>1]<<16,or[k>>1]=d,or[k+2>>1]=d>>>16,ar[i>>2]=1+(0|ar[i>>2])}}while(0);if((0|(u=u+1|0))==(0|t)){o=18;break}if((0|ar[i>>2])==(0|f)){o=18;break}}if(4==(0|o))sr(55739,48428,1360,48637);else if(18==(0|o));}}(A,e,b,w,h),c=0|ar[i>>2]),t=0|ar[(a=e+328|0)>>2],1!=(0|c)&&(t=0|ar[((0|t)<(0|ar[(Z=e+332|0)>>2])?a:Z)>>2]),(0|u)<(0|(a=0|ar[w>>2])))ur=v;else{for(l=0;n=1==(0|c),Z=(0|l)<(0|t)?255&l:0,tr[b+(12*a|0)+2>>0]=Z,tr[b+(12*a|0)+3>>0]=n?-1:Z,tr[b+(12*a|0)>>0]=1,tr[b+(12*a|0)+1>>0]=1&(1^n),or[(Z=n=b+(12*a|0)+4|0)>>1]=0,or[Z+2>>1]=0,or[(n=n+4|0)>>1]=0,n=a+1|(or[n+2>>1]=0),!((0|u)<=(0|a));)l=l+1|0,c=0|ar[i>>2],a=n;ar[w>>2]=n,ur=v}}function vc(A,e,r,i,f,n,t,o,a,c,l,u,b,s){s|=0;var d,k=0,h=0,w=0,v=0,m=0;if(m=ur=(d=ur)+31&-32,ur=ur+32|0,v=m+16|0,function(A,e,r,i,f,n,t,o,a,c,l,u,b,s,d){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,d|=0;var k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0;if(P=ur=(V=ur)+31&-32,ur=ur+48|0,v=P+32|0,m=P+24|0,g=P+44|0,I=P+12|0,P=(C=P)+40|0,Z=(t|=0)+-1|(tr[(G=(s|=0)+1|0)>>0]=0),ar[v>>2]=Z,x=c+o|0,ar[m>>2]=x,ar[4+v>>2]=Z,L=x+-1|0,ar[4+m>>2]=L,tr[s>>0]=0,or[d>>1]=0,R=1&(x=(or[(S=d+2|0)>>1]=0)|ka(e,i,f,n,t,o,a,c,b,Z,x)),tr[g>>0]=R,L=0|ka(e,i,f,n,t,o,a,c,b,Z,L),tr[1+g>>0]=1&L,x|=L,L=r+916+(l<<6)+(u<<2)|0,F=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[L>>2])){p=0|ar[F+92>>2],M=e+10368|0,k=e+10372|0,h=e+10376|0,w=e+10360|0,y=1-l|0,B=e+10388|0,E=e+10392|0,X=e+10396|0,W=e+10380|0,D=-1,J=0,F=R;A:for(;;){do{if(F<<24>>24!=0&&0==(0|tr[s>>0])){if(F=0|ar[v+(J<<2)>>2],Y=0|ar[m+(J<<2)>>2],R=F>>(N=0|ar[M>>2]),N=Y>>N,(0|R)<=-1){F=8;break A}if((0|(_=0|ar[k>>2]))<=(0|R)){F=8;break A}if((0|N)<=-1){F=11;break A}if((0|N)>=(0|ar[h>>2])){F=11;break A}if(H=(0|ar[w>>2])+(3*((0|br(_,N))+R|0)|0)|0,768&(cr[H>>0]|cr[H+1>>0]<<8)){if(N=F>>(H=0|ar[B>>2]),F=Y>>H,(0|N)<=-1){F=15;break A}if((0|(R=0|ar[E>>2]))<=(0|N)){F=15;break A}if((0|F)<=-1){F=18;break A}if((0|F)>=(0|ar[X>>2])){F=18;break A}if(Q=0|ar[W>>2],_=(0|br(R,F))+N|0,F=0|tr[(Y=Q+(12*_|0)+l|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(l<<6)+(tr[Q+(12*_|0)+2+l>>0]<<2)>>2]):0,R=0|tr[(N=Q+(12*_|0)+y|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(y<<6)+(tr[Q+(12*_|0)+2+y>>0]<<2)>>2]):0,0!=(0|F)&0!=(0|tr[Y>>0])&&(0|ar[F+92>>2])==(0|p)){tr[s>>0]=1,R=lr[(R=Q+(12*_|0)+4+(l<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,R=0|tr[Q+(12*_|0)+2+l>>0];break}R=0!=(0|R)&0!=(0|tr[N>>0])&&(0|ar[R+92>>2])==(0|p)?(tr[s>>0]=1,R=lr[(R=Q+(12*_|0)+4+(y<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,0|tr[Q+(12*_|0)+2+y>>0]):D}else R=D}else R=D}while(0);if(2<=(0|(F=J+1|0))){F=3;break}D=R,F=0|tr[g+(J=F)>>0]}if(3==(0|F)){O=r+1300+(l<<4)+u|0,z=e+92|0,j=A+4|0,H=e+10516|0,D=0,_=R;A:for(;;){if(0|tr[s>>0]){F=62;break}do{if(0|tr[g+D>>0]){if(F=0|ar[v+(D<<2)>>2],Q=0|ar[m+(D<<2)>>2],R=F>>(N=0|ar[M>>2]),N=Q>>N,(0|R)<=-1){F=35;break A}if((0|(Y=0|ar[k>>2]))<=(0|R)){F=35;break A}if((0|N)<=-1){F=38;break A}if((0|N)>=(0|ar[h>>2])){F=38;break A}if(u=(0|ar[w>>2])+(3*((0|br(Y,N))+R|0)|0)|0,768&(cr[u>>0]|cr[u+1>>0]<<8)){if(N=F>>(u=0|ar[B>>2]),F=Q>>u,(0|N)<=-1){F=42;break A}if((0|(R=0|ar[E>>2]))<=(0|N)){F=42;break A}if((0|F)<=-1){F=45;break A}if((0|F)>=(0|ar[X>>2])){F=45;break A}if(Y=0|ar[W>>2],F=(0|br(R,F))+N|0,1==(0|tr[Y+(12*F|0)+l>>0])&&(T=Y+(12*F|0)+2+l|0,(0|tr[O>>0])==(0|tr[(0|tr[T>>0])+(r+1300+(l<<4))>>0]))){tr[s>>0]=1,R=lr[(R=Y+(12*F|0)+4+(l<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,R=l,_=0|tr[T>>0];break}1==(0|tr[Y+(12*F|0)+y>>0])&&(U=Y+(12*F|0)+2+y|0,(0|tr[O>>0])==(0|tr[(0|tr[U>>0])+(r+1300+(y<<4))>>0]))?(tr[s>>0]=1,R=lr[(R=Y+(12*F|0)+4+(y<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,R=y,_=0|tr[U>>0]):R=-1}else R=-1}else R=-1}while(0);do{if(1==(0|tr[s>>0])){if((0|_)<0){F=61;break A}if((0|R)<=-1){F=55;break A}if(F=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(R<<6)+(_<<2)>>2]),Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[L>>2]),!((tr[O>>0]|tr[r+1300+(R<<4)+_>>0])<<24>>24)){if(N=(R=0|ar[z>>2])-(0|ar[F+92>>2])|0,F=R-p|0,R=lr[d>>1]|lr[d+2>>1]<<16,N=(0|N)<-128?-128:(0|N)<127?N:127){u=32+(0|br((16384+(((0|N)<0?0-N|0:N)>>1)|0)/(0|N)|0,(0|F)<-128?-128:(0|F)<127?F:127))>>6,J=0|br(u=(0|u)<-4096?-4096:(0|u)<4095?u:4095,R<<16>>16),J=0|br(((Q=(0|J)<0)?0-J|0:J)+127>>8,Q?-1:0!=(0|J)&1),or[d>>1]=(0|J)<-32768?-32768:65535&((0|J)<32767?J:32767),u=0|br(u,R>>16),u=0|br(((J=(0|u)<0)?0-u|0:u)+127>>8,J?-1:0!=(0|u)&1),or[S>>1]=(0|u)<-32768?-32768:65535&((0|u)<32767?u:32767);break}er(j,1008,0),tr[H>>0]=3;break}}}while(0);if(2<=(0|(D=D+1|0))){F=62;break}}if(35==(0|F))sr(48482,48519,118,48539);else if(38==(0|F))sr(48543,48519,119,48539);else if(42==(0|F))sr(48482,48519,118,48539);else if(45==(0|F))sr(48543,48519,119,48539);else if(55==(0|F))sr(48685,48428,1698,48699);else{if(61==(0|F))return tr[G>>0]=0,tr[s>>0]=0,ur=V;if(62==(0|F)){F=a+t|0,ar[I>>2]=F,R=o+-1|0,ar[C>>2]=R,ar[4+I>>2]=F+-1,ar[C+4>>2]=R,ar[8+I>>2]=Z,ar[C+8>>2]=R,tr[G>>0]=0,or[(u=d+4|0)>>1]=0,Y=-1,J=or[(M=d+6|0)>>1]=0;A:for(;;){S=0|ka(e,i,f,n,t,o,a,c,b,F,R),tr[P+J>>0]=1&S;do{if(S&&0==(0|tr[G>>0])){if(N=F>>(S=0|ar[B>>2]),F=R>>S,(0|N)<=-1){F=68;break A}if((0|(R=0|ar[E>>2]))<=(0|N)){F=68;break A}if((0|F)<=-1){F=71;break A}if((0|F)>=(0|ar[X>>2])){F=71;break A}if(D=0|ar[W>>2],N=(0|br(R,F))+N|0,R=0|tr[(_=D+(12*N|0)+l|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(l<<6)+(tr[D+(12*N|0)+2+l>>0]<<2)>>2]):0,F=0|tr[(Q=D+(12*N|0)+y|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(y<<6)+(tr[D+(12*N|0)+2+y>>0]<<2)>>2]):0,0!=(0|R)&0!=(0|tr[_>>0])&&(0|ar[R+92>>2])==(0|p)){tr[G>>0]=1,Y=lr[(Y=D+(12*N|0)+4+(l<<2)|0)>>1]|lr[Y+2>>1]<<16,or[u>>1]=Y,or[u+2>>1]=Y>>>16,Y=0|tr[D+(12*N|0)+2+l>>0];break}0!=(0|F)&0!=(0|tr[Q>>0])&&(0|ar[F+92>>2])==(0|p)&&(tr[G>>0]=1,Y=lr[(Y=D+(12*N|0)+4+(y<<2)|0)>>1]|lr[Y+2>>1]<<16,or[u>>1]=Y,or[u+2>>1]=Y>>>16,Y=0|tr[D+(12*N|0)+2+y>>0])}}while(0);if(3<=(0|(R=J+1|0))){F=63;break}F=0|ar[I+((J=R)<<2)>>2],R=0|ar[C+(R<<2)>>2]}if(63==(0|F)){A:do{if(!x){0|tr[G>>0]&&(tr[s>>0]=1,x=lr[u>>1]|lr[u+2>>1]<<16,or[d>>1]=x,or[d+2>>1]=x>>>16),D=e+10332|(tr[G>>0]=0),Q=0;e:for(;;){do{if(0|tr[P+Q>>0]){if(R=0|ar[B>>2],F=ar[I+(Q<<2)>>2]>>R,R=ar[C+(Q<<2)>>2]>>R,(0|F)<=-1){F=90;break e}if((0|(N=0|ar[E>>2]))<=(0|F)){F=90;break e}if((0|R)<=-1){F=93;break e}if((0|R)>=(0|ar[X>>2])){F=93;break e}if(_=0|ar[W>>2],F=(0|br(N,R))+F|0,1==(0|tr[_+(12*F|0)+l>>0])&&(K=_+(12*F|0)+2+l|0,(0|tr[O>>0])==(0|tr[(0|tr[K>>0])+(r+1300+(l<<4))>>0]))){tr[G>>0]=1,N=lr[(N=_+(12*F|0)+4+(l<<2)|0)>>1]|lr[N+2>>1]<<16,or[u>>1]=N,or[u+2>>1]=N>>>16,N=l,Y=0|tr[K>>0];break}1==(0|tr[_+(12*F|0)+y>>0])&&(q=_+(12*F|0)+2+y|0,(0|tr[O>>0])==(0|tr[(0|tr[q>>0])+(r+1300+(y<<4))>>0]))?(tr[G>>0]=1,N=lr[(N=_+(12*F|0)+4+(y<<2)|0)>>1]|lr[N+2>>1]<<16,or[u>>1]=N,or[u+2>>1]=N>>>16,N=y,Y=0|tr[q>>0]):N=-1}else N=-1}while(0);do{if(1==(0|tr[G>>0])){if((0|Y)<0){F=110;break e}if((0|N)<=-1){F=103;break e}if(0==(0|(F=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(N<<6)+(Y<<2)>>2])))|0==(0|(R=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[L>>2])))){er(4+(0|ar[D>>2])|0,1012,0),tr[H>>0]=3;break}if((0|(F=0|ar[F+92>>2]))!=(0|ar[R+92>>2])&&(tr[r+1300+(N<<4)+Y>>0]|tr[O>>0])<<24>>24==0){if(N=(R=0|ar[z>>2])-F|0,F=R-p|0,R=lr[u>>1]|lr[u+2>>1]<<16,N=(0|N)<-128?-128:(0|N)<127?N:127){x=32+(0|br((16384+(((0|N)<0?0-N|0:N)>>1)|0)/(0|N)|0,(0|F)<-128?-128:(0|F)<127?F:127))>>6,c=0|br(x=(0|x)<-4096?-4096:(0|x)<4095?x:4095,R<<16>>16),c=0|br(((a=(0|c)<0)?0-c|0:c)+127>>8,a?-1:0!=(0|c)&1),or[u>>1]=(0|c)<-32768?-32768:65535&((0|c)<32767?c:32767),x=0|br(x,R>>16),x=0|br(((c=(0|x)<0)?0-x|0:x)+127>>8,c?-1:0!=(0|x)&1),or[M>>1]=(0|x)<-32768?-32768:65535&((0|x)<32767?x:32767);break}er(j,1008,0),tr[H>>0]=3;break}}}while(0);if(3<=(0|(Q=Q+1|0)))break A;if(0|tr[G>>0])break A}if(90==(0|F))sr(48482,48519,118,48539);else if(93==(0|F))sr(48543,48519,119,48539);else if(103==(0|F))sr(48685,48428,1839,48699);else if(110==(0|F)){tr[G>>0]=0,tr[s>>0]=0;break}}}while(0);return ur=V}68==(0|F)?sr(48482,48519,118,48539):71==(0|F)&&sr(48543,48519,119,48539)}}}else 8==(0|F)?sr(48482,48519,118,48539):11==(0|F)?sr(48543,48519,119,48539):15==(0|F)?sr(48482,48519,118,48539):18==(0|F)&&sr(48543,48519,119,48539)}else ur=V}(A|=0,r|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,h=m+18|0,w=m+8|0),0|tr[h>>0]){do{if(0|tr[h+1>>0]){if((0|or[w>>1])==(0|or[w+4>>1])&&(0|or[w+2>>1])==(0|or[w+6>>1])){k=6;break}tr[v>>0]=0}else k=6}while(0);6==(0|k)&&hc(A,r,e,t,o,a,c,u,l,m,v),A=0|ar[w>>2],or[s>>1]=A,or[s+2>>1]=A>>>16,e=A=1}else hc(A,r,e,t,o,a,c,u,l,m,v),e=A=0;do{if(0|tr[h+1>>0]){if(e&&(0|or[w>>1])==(0|or[w+4>>1])&&(0|or[w+2>>1])==(0|or[w+6>>1]))break;h=s+(A<<2)|0,w=0|ar[w+4>>2],or[h>>1]=w,or[h+2>>1]=w>>>16,A=A+1|0}}while(0);if(0|tr[v>>0]&&(v=s+(A<<2)|0,m=0|ar[m>>2],or[v>>1]=m,or[v+2>>1]=m>>>16,A=A+1|0),(0|A)<2)return vb(s+(A<<2)|0,0,8-(A<<2)|0),void(ur=d);2!=(0|A)?sr(48737,48428,1943,48753):ur=d}function mc(A,e,r,i,f,n,t,o,a,c,l,u){var b,s;s=ur=(b=ur)+31&-32,ur=ur+16|0,function(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,i|=0,a|=0,c|=0,l|=0,u|=0,b|=0;var s,d,k,h,w,v=0,m=0,g=0;switch(d=ur=(w=ur)+31&-32,ur=ur+80|0,h=8+d|0,k=(t|=0)+(f|=0)|0,s=(o|=0)+(n|=0)|0,t=f>>(o=0|ar[(r|=0)+10368>>2]),o=n>>o,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(v=0|ar[r+10372>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[r+10376>>2])&&sr(48543,48519,119,48539),v=(0|ar[r+10360>>2])+(3*((0|br(v,o))+t|0)|0)|0,(65535&(cr[v>>0]|cr[v+1>>0]<<8))>>>8&3){case 2:t=0|tr[i+10>>0],g=11;break;case 1:16&(t=0|tr[(o=i+10|0)>>0])?g=11:t=o;break;default:t=i+10|0}if(11==(0|g))return wc(A,e,r,f,n,k,s,a,c,l,u,g=(255&t)>>>5&255,h),g=h+(12*g|0)|0,or[b>>1]=0|or[g>>1],or[b+2>>1]=0|or[g+2>>1],or[b+4>>1]=0|or[g+4>>1],or[b+6>>1]=0|or[g+6>>1],or[b+8>>1]=0|or[g+8>>1],or[b+10>>1]=0|or[g+10>>1],0|tr[b>>0]&&12==(l+c|0)&0!=(0|tr[(m=b+1|0)>>0])&&(tr[b+3>>0]=-1,tr[m>>0]=0),ur=w;switch(3&tr[t>>0]){case 1:case 3:v=0|tr[i>>0],tr[b+2>>0]=v,tr[b>>0]=1,g=0|lr[i+4>>1],m=0|lr[i+2>>1],vc(A,e,r,f,n,a,k,s,c,l,0,v<<24>>24,u,h),v=h+(((0|cr[t>>0])>>>2&1)<<2)|0,v=lr[v>>1]|lr[v+2>>1]<<16,ar[d>>2]=v,g=(0|lr[2+d>>1])+g|0,or[b+4>>1]=v+m,or[b+6>>1]=g;break;default:tr[b+2>>0]=-1,tr[b>>0]=0}((3&tr[t>>0])-2&255)<2?(v=0|tr[i+1>>0],tr[b+3>>0]=v,tr[b+1>>0]=1,g=0|lr[i+8>>1],m=0|lr[i+6>>1],vc(A,e,r,f,n,a,k,s,c,l,1,v<<24>>24,u,h),c=h+(((0|cr[t>>0])>>>3&1)<<2)|0,c=lr[c>>1]|lr[c+2>>1]<<16,ar[4+d>>2]=c,g=(0|lr[6+d>>1])+g|0,or[b+8>>1]=c+m,or[b+10>>1]=g):(tr[b+3>>0]=-1,tr[b+1>>0]=0),ur=w}(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,s),function(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0;ur=(B=ur)+49168|0,w=B+32768|0,Y=(y=B)+49152|0,N=(n|=0)+(i|=0)|0,V=(t|=0)+(f|=0)|0,F=(r|=0)+764|0,v=0|ar[r+5780>>2],m=0|ar[r+5784>>2],k=0|ar[r+40>>2],J=(0|br(k,V))+N|0,J=(0|ar[r+4>>2])+(J<>0])|0,g=0|ar[r+44>>2],M=(0|br(g,(0|V)/(0|m)|0))+((0|N)/(0|v)|0)|0,Z=(0|ar[r+8>>2])+(M<>0])|0,M=(0|ar[r+12>>2])+(M<>0])|0,f=255&(u=0|tr[l>>0]),ar[Y>>2]=f,i=255&(D=0|tr[l+1>>0]),ar[(n=Y+4|0)>>2]=i,h=0|ar[(R=r+5760|0)>>2],p=0|ar[(_=r+5768|0)>>2],d=u<<24>>24==0,D<<24>>24==0|0!=(0|tr[(b=r+5961|0)>>0])|d||(0|or[l+4>>1])!=(0|or[l+8>>1])||(0|or[l+6>>1])!=(0|or[l+10>>1])||(0|ar[e+916+(tr[l+2>>0]<<2)>>2])!=(0|ar[e+980+(tr[l+3>>0]<<2)>>2])||(i=ar[n>>2]=0),s=r+10516|0,D=A+4|0,G=0,n=f;A:for(;;){do{if(0|n){if(15<(n=0|tr[l+2+G>>0])<<24>>24){Q=9;break A}if(C=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[e+916+(G<<6)+(n<<24>>24<<2)>>2]),!(0|ar[C+96>>2])){tr[s>>0]=3,er(D,1012,0);break}if(n=0|or[(W=l+4+(G<<2)|0)>>1],f=0|or[(I=l+4+(G<<2)+2|0)>>1],t=w+(G<<13)|0,E=0|ar[C+4>>2],X=0|ar[C+40>>2],(8<(0|ar[R>>2])?uc:bc)(A,F,n,f,N,V,t,o,E,X,a,c,h),n=0|or[W>>1],f=0|or[I>>1],t=y+(G<<13)|0,E=0|ar[C+8>>2],8<(0|ar[R>>2])){T=(0|a)/(0|v)|0,X=(0|c)/(0|m)|0,sc(A,F,n,f,N,V,t,o,E,0|ar[(U=C+44|0)>>2],T,X,p),sc(A,F,0|or[W>>1],0|or[I>>1],N,V,y+16384+(G<<13)|0,o,0|ar[C+12>>2],0|ar[U>>2],T,X,p);break}T=(0|a)/(0|v)|0,U=(0|c)/(0|m)|0,dc(A,F,n,f,N,V,t,o,E,0|ar[(X=C+44|0)>>2],T,U,p),dc(A,F,0|or[W>>1],0|or[I>>1],N,V,y+16384+(G<<13)|0,o,0|ar[C+12>>2],0|ar[X>>2],T,U,p);break}}while(0);if(2<=(0|(n=G+1|0)))break;n=0|ar[Y+((G=n)<<2)>>2]}if(9==(0|Q))return tr[s>>0]=3,er(D,1012,0),ur=B;switch(f=2<(0|(f=14-(0|ar[R>>2])|0))?f:2,V=0|cr[r+5920>>0],W=2<(0|(W=14-(0|ar[_>>2])|0))?W:2,Y=0|cr[r+5921>>0],0|ar[e+20>>2]){case 1:return i=u<<24>>24==1&0==(0|i),0|tr[b>>0]?i?(U=0|tr[l+2>>0],t=(0|cr[e+380>>0])+f|0,I=(0|cr[e+381>>0])+W|0,n=0|or[e+446+(U<<1)>>1],i=tr[e+510+U>>0]<>1],X=tr[e+670+(U<<1)>>0]<>1],f=tr[e+670+(U<<1)+1>>0]<>2]](J,k,w,o,a,c,n,i,t):bs[7&ar[A+196>>2]](J,k,w,o,a,c,n,i,t,h),n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(us[3&ar[(U=A+180|0)>>2]](Z,g,y,o,n,i,E,X,I),us[3&ar[U>>2]](M,g,y+16384|0,o,n,i,W,f,I)):(bs[7&ar[(U=A+196|0)>>2]](Z,g,y,o,n,i,E,X,I,p),bs[7&ar[U>>2]](M,g,y+16384|0,o,n,i,W,f,I,p))):(er(D,1011,0),tr[s>>0]=3):i?((0|h)<9?as[15&ar[A+176>>2]](J,k,w,o,a,c):cs[31&ar[A+192>>2]](J,k,w,o,a,c,h),n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(as[15&ar[(U=A+176|0)>>2]](Z,g,y,o,n,i),as[15&ar[U>>2]](M,g,y+16384|0,o,n,i)):(cs[31&ar[(U=A+192|0)>>2]](Z,g,y,o,n,i,p),cs[31&ar[U>>2]](M,g,y+16384|0,o,n,i,p))):(er(D,1011,0),tr[s>>0]=3),ur=B;case 0:return(n=u<<24>>24==1)&(i=1==(0|i))?0|tr[r+5962>>0]?(F=0|tr[l+2>>0],i=0|tr[l+3>>0],X=(0|cr[e+380>>0])+f|0,_=(0|cr[e+381>>0])+W|0,f=0|or[e+446+(F<<1)>>1],t=tr[e+510+F>>0]<>1],n=tr[e+526+i>>0]<>1],C=tr[e+670+(F<<1)>>0]<>1],V=tr[e+670+(F<<1)+1>>0]<>1],R=tr[e+702+(i<<1)>>0]<>1],W=tr[e+702+(i<<1)+1>>0]<>2]](J,k,w,i,o,a,c,f,t,E,n,X):ds[1&ar[A+200>>2]](J,k,w,i,o,a,c,f,t,E,n,X,h),f=y+8192|0,t=y+16384|0,E=y+24576|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(ss[1&ar[(U=A+184|0)>>2]](Z,g,y,f,o,n,i,I,C,F,R,_),ss[1&ar[U>>2]](M,g,t,E,o,n,i,G,V,N,W,_)):(ds[1&ar[(U=A+200|0)>>2]](Z,g,y,f,o,n,i,I,C,F,R,_,p),ds[1&ar[U>>2]](M,g,t,E,o,n,i,G,V,N,W,_,p))):(i=8192+w|0,X=A+172|0,(0|h)<9?cs[31&ar[X>>2]](J,k,w,i,o,a,c):ls[31&ar[A+188>>2]](J,k,w,i,o,a,c,h),f=y+8192|0,t=y+16384|0,E=y+24576|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(cs[31&ar[X>>2]](Z,g,y,f,o,n,i),cs[31&ar[X>>2]](M,g,t,E,o,n,i)):(ls[31&ar[(U=A+188|0)>>2]](Z,g,y,f,o,n,i,p),ls[31&ar[U>>2]](M,g,t,E,o,n,i,p))):n|i?(G=1&d,0|tr[r+5962>>0]?(t=0|tr[l+2+G>>0],E=(0|cr[e+380>>0])+f|0,C=(0|cr[e+381>>0])+W|0,f=0|or[e+446+(G<<5)+(t<<1)>>1],n=tr[e+510+(G<<4)+t>>0]<>1],W=tr[e+670+(G<<5)+(t<<1)>>0]<>1],t=tr[e+670+(G<<5)+(t<<1)+1>>0]<>2]](J,k,i,o,a,c,f,n,E):bs[7&ar[A+196>>2]](J,k,i,o,a,c,f,n,E,h),f=y+(G<<13)|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(us[3&ar[(U=A+180|0)>>2]](Z,g,f,o,n,i,X,W,C),us[3&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i,I,t,C)):(bs[7&ar[(U=A+196|0)>>2]](Z,g,f,o,n,i,X,W,C,p),bs[7&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i,I,t,C,p))):(i=w+(G<<13)|0,(0|h)<9?as[15&ar[A+176>>2]](J,k,i,o,a,c):cs[31&ar[A+192>>2]](J,k,i,o,a,c,h),f=y+(G<<13)|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(as[15&ar[(U=A+176|0)>>2]](Z,g,f,o,n,i),as[15&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i)):(cs[31&ar[(U=A+192|0)>>2]](Z,g,f,o,n,i,p),cs[31&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i,p)))):(er(D,1011,0),tr[s>>0]=3),ur=B;default:sr(48395,48428,489,48438)}}(A,e,r,f,n,t,o,a,c,l,s),function(A,e,r,i,f,n){var t,o,a,c,l;if(n|=0,l=(e|=0)>>2,c=(r|=0)>>2,a=(i|=0)>>2,o=(f|=0)>>2,t=0|ar[(A|=0)+10392>>2],!((0|o)<=0)&&(i=A+10380|0,0<(0|a))){e=0;do{for(f=(0|br(e+c|0,t))+l|0,r=0;A=(0|ar[i>>2])+(12*(f+r|0)|0)|0,or[A>>1]=0|or[n>>1],or[A+2>>1]=0|or[n+2>>1],or[A+4>>1]=0|or[n+4>>1],or[A+6>>1]=0|or[n+6>>1],or[A+8>>1]=0|or[n+8>>1],or[A+10>>1]=0|or[n+10>>1],(0|(r=r+1|0))!=(0|a););e=e+1|0}while((0|e)!=(0|o))}}(r,t+f|0,o+n|0,c,l,s),ur=b}function gc(A){var e;for(e=(A|=0)+100|0;(0|(A=A+2|(or[A>>1]=0)))<(0|e););}function Zc(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0;var o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(o=ur,0!=(0|(f|=0))&&(255&(0|At(r,1)))<<24>>24!=0){do{if(t){if(-99999!=(0|(t=0|it(r)))&(0|t)<(0|f)){t=t+1|0;break}return ur=o,(i=0)|i}t=1}while(0);if((0|(X=f-t|0))<=-1&&sr(48788,48796,129,48806),l=0|At(r,1),-99999==(0|(t=0|it(r))))return ur=o,(i=0)|i;for(u=t+1|0,a=~t,y=0|cr[(0|ar[n>>2])+(100*X|0)+98>>0],ur=(E=ur=(B=ur)+(15+(0|+(c=y+1|0))&-16)|0)+(15+(0|+c)&-16)|0,t=0;p=255&(0|At(r,1)),f=(tr[B+t>>0]=p)<<24>>24?1:255&(0|At(r,1)),tr[E+t>>0]=f,(0|(t=t+1|0))!=(0|c););g=0|l?a:u,t=0|ar[n>>2],Z=255&(u=0|tr[t+(100*X|0)+96>>0]),p=255&(w=0|tr[t+(100*X|0)+97>>0]),w=w<<24>>24==0;A:do{if(w)d=0;else{X>>>0<(((0|ar[(l=n+4|0)>>2])-t|0)/100|0)>>>0?(b=p,k=0,s=t):sr(48834,48796,174,48806);e:for(;;){for(t=b;;){if(a=t+-1|0,17<=(0|t)){I=18;break e}if((0|(f=(0|or[s+(100*X|0)+32+(a<<1)>>1])+g|0))<0&&0|tr[E+(h=a+Z|0)>>0])break;if(!(1<(0|t))){d=k;break A}t=a}if(15<(0|k)){v=0,I=74;break}if(c=k+1|0,or[i+(k<<1)>>1]=f,tr[i+64+k>>0]=0|tr[B+h>>0],(0|t)<=1){d=c;break A}if(t=0|ar[n>>2],!(X>>>0<(((0|ar[l>>2])-t|0)/100|0)>>>0)){I=17;break}b=a,k=c,s=t}if(17==(0|I))sr(48834,48796,174,48806);else if(18==(0|I))sr(48866,48796,175,48806);else if(74==(0|I))return ur=o,0|v}}while(0);do{if((0|g)<0&&0!=(0|tr[E+y>>0])){if(15<(0|d))return ur=o,(i=0)|i;or[i+(d<<1)>>1]=g,tr[i+64+d>>0]=0|tr[B+y>>0],t=d+1|0;break}t=d}while(0);c=u<<24>>24==0;A:do{if(c)tr[(u=i+96|0)>>0]=t,t=0;else{for(a=0;;){if((0|(f=(0|or[(0|ar[n>>2])+(100*X|0)+(a<<1)>>1])+g|0))<0&&0!=(0|tr[E+a>>0])){if(15<(0|t)){v=0,I=74;break}or[i+(t<<1)>>1]=f,tr[i+64+t>>0]=0|tr[B+a>>0],m=t+1|0}else m=t;if((0|Z)<=(0|(a=a+1|0)))break;t=m}if(74==(0|I))return ur=o,0|v;if(tr[(u=i+96|0)>>0]=m,!c){for(f=Z,t=0;;){for(c=0|ar[n>>2],a=f;!(0<(0|(l=(0|or[c+(100*X|0)+((f=a+-1|0)<<1)>>1])+g|0))&&0|tr[E+f>>0]);){if(!(1<(0|a)))break A;a=f}if(15<(0|t)){v=0;break}if(c=t+1|0,or[i+32+(t<<1)>>1]=l,tr[i+80+t>>0]=0|tr[B+f>>0],!(1<(0|a))){t=c;break A}t=c}return ur=o,0|v}t=0}}while(0);do{if(0<(0|g)&&0!=(0|tr[E+y>>0])){if(15<(0|t))return ur=o,(i=0)|i;or[i+32+(t<<1)>>1]=g,tr[i+80+t>>0]=0|tr[B+y>>0],t=t+1|0;break}}while(0);A:do{if(!w){for(a=0;;){if(0<(0|(f=(0|or[(0|ar[n>>2])+(100*X|0)+32+(a<<1)>>1])+g|0))&&0!=(0|tr[E+(W=a+Z|0)>>0])){if(15<(0|t)){v=0;break}or[i+32+(t<<1)>>1]=f,tr[i+80+t>>0]=0|tr[B+W>>0],t=t+1|0}if((0|p)<=(0|(a=a+1|0)))break A}return ur=o,0|v}}while(0);tr[i+97>>0]=t}else I=54;A:do{if(54==(0|I)){if(l=0|it(r),((b=0|it(r))+l|0)>(0|ar[e+528+((0|tr[e+2>>0])-1<<2)>>2]))return or[(i=i+96|0)>>1]=0,er(A,1018,or[i+2>>1]=0),ur=o,(i=0)|i;if(16<(0|l)|16<(0|b))return er(A,1018,0),ur=o,(i=0)|i;tr[(u=i+96|0)>>0]=l,tr[i+97>>0]=b;e:do{if(0<(0|l)){for(f=t=0;;){if(-99999==(0|(a=0|it(r)))){v=0;break}if(e=255&(0|At(r,1)),or[(c=i+(t<<1)|0)>>1]=f+65535-a,tr[i+64+t>>0]=e,(0|l)<=(0|(t=t+1|0)))break e;f=0|or[c>>1]}return ur=o,0|v}}while(0);if(0<(0|b)){for(f=t=0;;){if(-99999==(0|(a=0|it(r)))){v=0;break}if(e=255&(0|At(r,1)),or[(c=i+32+(t<<1)|0)>>1]=f+1+a,tr[i+80+t>>0]=e,(0|b)<=(0|(t=t+1|0)))break A;f=0|or[c>>1]}return ur=o,0|v}}}while(0);if((l=(tr[(b=i+99|0)>>0]=0)|tr[u>>0])<<24>>24)for(c=255&l,f=a=0;t=f+1<<24>>24,0|tr[i+64+a>>0]?tr[b>>0]=t:t=f,(0|(a=a+1|0))!=(0|c);)f=t;else t=0;if(c=255&(r=0|tr[i+97>>0]),r<<24>>24)for(a=0;f=t+1<<24>>24,0|tr[i+80+a>>0]&&(t=tr[b>>0]=f),(0|(a=a+1|0))!=(0|c););return tr[i+98>>0]=c+(255&l),ur=o,0|(i=1)}function pc(A,e,r){A|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0;if(t=16+(i=ur=(o=ur)+31&-32)|0,n=8+i|0,ur=(f=ur=ur+32|0)+(15+((a=(e|=0)<<1)+2|0)&-16)|0,(tr[f+(a|=1)>>0]=0)<(0|a)&&vb(0|f,46,0|a),tr[f+e>>0]=124,(a=0|tr[A+96>>0])<<24>>24)for(b=0-e|0,a&=255;u=0|or[A+((a=(c=a)+-1|0)<<1)>>1],l=0|tr[A+64+a>>0]?88:111,(0|u)<(0|b)?(ar[i>>2]=u,ar[4+i>>2]=255&l,Pn(r,48895,i)):tr[f+(u+e)>>0]=l,1<(0|c););if(!((a=0|tr[A+97>>0])<<24>>24))return ar[n>>2]=f,Pn(r,48902,n),void(ur=o);for(a&=255;u=0|or[A+32+((a=(c=a)+-1|0)<<1)>>1],l=0|tr[A+80+a>>0]?88:111,(0|e)<(0|u)?(ar[t>>2]=u,ar[4+t>>2]=255&l,Pn(r,48895,t)):tr[f+(u+e)>>0]=l,1<(0|c););ar[n>>2]=f,Pn(r,48902,n),ur=o}function yc(A){A|=0;var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;s=ur=(e=ur)+31&-32,ur=ur+16|0;do{if(A>>>0<245){if(A=(l=A>>>0<11?16:A+11&-8)>>>3,3&(i=(b=0|ar[14392])>>>A)|0)return f=0|ar[(i=(A=57608+((r=(1&i^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|A)==(0|(t=0|ar[(n=f+8|0)>>2]))?ar[14392]=b&~(1<>2]=A,ar[i>>2]=t),Z=r<<3,ar[f+4>>2]=3|Z,ar[(Z=f+Z+4|0)>>2]=1|ar[Z>>2],ur=e,0|(Z=n);if((u=0|ar[14394])>>>0>>0){if(0|i)return r=((r=i<>>=o=r>>>12&16)>>>5&8)|o|(n=(r>>>=i)>>>2&4)|(A=(r>>>=n)>>>1&2)|(f=(r>>>=A)>>>1&1))+(r>>>f)|0)<<1<<2)|0)+8|0)>>2],(0|r)==(0|(i=0|ar[(o=n+8|0)>>2]))?(A=b&~(1<>2]=r,ar[A>>2]=i,A=b),t=(f<<3)-l|0,ar[n+4>>2]=3|l,ar[(f=n+l|0)+4>>2]=1|t,ar[f+t>>2]=t,0|u&&(n=0|ar[14397],i=57608+((r=u>>>3)<<1<<2)|0,A&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=n,ar[r+12>>2]=n,ar[n+8>>2]=r,ar[n+12>>2]=i),ar[14394]=t,ar[14397]=f,ur=e,0|(Z=o);if(a=0|ar[14393]){if(i=(a&0-a)-1|0,A=0|ar[57872+(((t=(i>>>=o=i>>>12&16)>>>5&8)|o|(c=(i>>>=t)>>>2&4)|(f=(i>>>=c)>>>1&2)|(A=(i>>>=f)>>>1&1))+(i>>>A)<<2)>>2],i=(-8&ar[A+4>>2])-l|0,f=0|ar[A+16+((0==(0|ar[A+16>>2])&1)<<2)>>2]){for(;i=(c=(o=(-8&ar[f+4>>2])-l|0)>>>0>>0)?o:i,A=c?f:A,0!=(0|(f=0|ar[f+16+((0==(0|ar[f+16>>2])&1)<<2)>>2])););c=A,t=i}else c=A,t=i;if(c>>>0<(o=c+l|0)>>>0){n=0|ar[c+24>>2],r=0|ar[c+12>>2];do{if((0|r)==(0|c)){if(!(r=0|ar[(A=c+20|0)>>2])&&!(r=0|ar[(A=c+16|0)>>2])){i=0;break}for(;;)if(0|(f=0|ar[(i=r+20|0)>>2]))r=f,A=i;else{if(!(f=0|ar[(i=r+16|0)>>2]))break;r=f,A=i}ar[A>>2]=0,i=r}else i=0|ar[c+8>>2],ar[i+12>>2]=r,ar[r+8>>2]=i,i=r}while(0);do{if(0|n){if(r=0|ar[c+28>>2],(0|c)==(0|ar[(A=57872+(r<<2)|0)>>2])){if(!(ar[A>>2]=i)){ar[14393]=a&~(1<>2])!=(0|c)&1)<<2)>>2]=i))break;ar[i+24>>2]=n,0|(r=0|ar[c+16>>2])&&(ar[i+16>>2]=r,ar[r+24>>2]=i),0|(r=0|ar[c+20>>2])&&(ar[i+20>>2]=r,ar[r+24>>2]=i)}}while(0);return t>>>0<16?(Z=t+l|0,ar[c+4>>2]=3|Z,ar[(Z=c+Z+4|0)>>2]=1|ar[Z>>2]):(ar[c+4>>2]=3|l,ar[o+4>>2]=1|t,ar[o+t>>2]=t,0|u&&(f=0|ar[14397],i=57608+((r=u>>>3)<<1<<2)|0,b&(r=1<>2]:(ar[14392]=b|r,A=(r=i)+8|0),ar[A>>2]=f,ar[r+12>>2]=f,ar[f+8>>2]=r,ar[f+12>>2]=i),ar[14394]=t,ar[14397]=o),ur=e,0|(Z=c+8|0)}b=l}else b=l}else b=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),c=0|ar[14393]){f=0-l|0,a=(A>>>=8)?16777215>>0?31:l>>>((a=14-((u=((g=A<<(b=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|b|(a=((g<<=u)+245760|0)>>>16&2))+(g<>>15)|0)+7|0)&1|a<<1:0,i=0|ar[57872+(a<<2)>>2];A:do{if(i)for(o=l<<(31==((A=0)|a)?0:25-(a>>>1)|0),t=0;;){if((n=(-8&ar[i+4>>2])-l|0)>>>0>>0){if(!n){f=0,n=A=i,g=61;break A}A=i,f=n}if(t=0==(0|(n=0|ar[i+20>>2]))|(0|n)==(0|(i=0|ar[i+16+(o>>>31<<2)>>2]))?t:n,n=0==(0|i)){i=t,g=57;break}o<<=1&(1^n)}else A=i=0,g=57}while(0);if(57==(0|g)){if(0==(0|i)&0==(0|A)){if(!(A=c&((A=2<>>=o=b>>>12&16)>>>5&8)|o|(a=(b>>>=t)>>>2&4)|(u=(b>>>=a)>>>1&2)|(i=(b>>>=u)>>>1&1))+(b>>>i)<<2)>>2]}i?(n=i,g=61):(a=A,o=f)}if(61==(0|g))for(;;){if(g=0,i=(b=(i=(-8&ar[n+4>>2])-l|0)>>>0>>0)?i:f,A=b?n:A,!(n=0|ar[n+16+((0==(0|ar[n+16>>2])&1)<<2)>>2])){a=A,o=i;break}f=i,g=61}if(0!=(0|a)&&o>>>0<((0|ar[14394])-l|0)>>>0){if((t=a+l|0)>>>0<=a>>>0)return ur=e,(Z=0)|Z;n=0|ar[a+24>>2],r=0|ar[a+12>>2];do{if((0|r)==(0|a)){if(!(r=0|ar[(A=a+20|0)>>2])&&!(r=0|ar[(A=a+16|0)>>2])){r=0;break}for(;;)if(0|(f=0|ar[(i=r+20|0)>>2]))r=f,A=i;else{if(!(f=0|ar[(i=r+16|0)>>2]))break;r=f,A=i}ar[A>>2]=0}else Z=0|ar[a+8>>2],ar[Z+12>>2]=r,ar[r+8>>2]=Z}while(0);do{if(n){if(A=0|ar[a+28>>2],(0|a)==(0|ar[(i=57872+(A<<2)|0)>>2])){if(!(ar[i>>2]=r)){f=c&~(1<>2])!=(0|a)&1)<<2)>>2]=r)){f=c;break}ar[r+24>>2]=n,0|(A=0|ar[a+16>>2])&&(ar[r+16>>2]=A,ar[A+24>>2]=r),f=((A=0|ar[a+20>>2])&&(ar[r+20>>2]=A,ar[A+24>>2]=r),c)}else f=c}while(0);do{if(16<=o>>>0){if(ar[a+4>>2]=3|l,ar[t+4>>2]=1|o,r=(ar[t+o>>2]=o)>>>3,o>>>0<256){i=57608+(r<<1<<2)|0,(A=0|ar[14392])&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=t,ar[r+12>>2]=t,ar[t+8>>2]=r,ar[t+12>>2]=i;break}if(i=57872+((r=(r=o>>>8)?16777215>>0?31:o>>>((r=14-((m=((Z=r<<(g=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|g|(r=((Z<<=m)+245760|0)>>>16&2))+(Z<>>15)|0)+7|0)&1|r<<1:0)<<2)|0,ar[t+28>>2]=r,ar[(A=t+16|0)+4>>2]=0,ar[A>>2]=0,!(f&(A=1<>2]=t,ar[t+24>>2]=i,ar[t+12>>2]=t,ar[t+8>>2]=t;break}for(A=o<<(31==(0|r)?0:25-(r>>>1)|0),i=0|ar[i>>2];;){if((-8&ar[i+4>>2]|0)==(0|o)){g=97;break}if(!(r=0|ar[(f=i+16+(A>>>31<<2)|0)>>2])){g=96;break}A<<=1,i=r}if(96==(0|g)){ar[f>>2]=t,ar[t+24>>2]=i,ar[t+12>>2]=t,ar[t+8>>2]=t;break}if(97==(0|g)){Z=0|ar[(g=i+8|0)>>2],ar[Z+12>>2]=t,ar[g>>2]=t,ar[t+8>>2]=Z,ar[t+12>>2]=i,ar[t+24>>2]=0;break}}else Z=o+l|0,ar[a+4>>2]=3|Z,ar[(Z=a+Z+4|0)>>2]=1|ar[Z>>2]}while(0);return ur=e,0|(Z=a+8|0)}b=l}else b=l;else b=-1}while(0);if(b>>>0<=(i=0|ar[14394])>>>0)return r=i-b|0,A=0|ar[14397],15>>0?(Z=A+b|0,ar[14397]=Z,ar[14394]=r,ar[Z+4>>2]=1|r,ar[Z+r>>2]=r,ar[A+4>>2]=3|b):(ar[14394]=0,ar[14397]=0,ar[A+4>>2]=3|i,ar[(Z=A+i+4|0)>>2]=1|ar[Z>>2]),ur=e,0|(Z=A+8|0);if(b>>>0<(o=0|ar[14395])>>>0)return m=o-b|0,ar[14395]=m,g=(Z=0|ar[14398])+b|0,ar[14398]=g,ar[g+4>>2]=1|m,ar[Z+4>>2]=3|b,ur=e,0|(Z=Z+8|0);if(a=b+48|0,(l=(t=(A=0|ar[14510]?0|ar[14512]:(ar[14512]=4096,ar[14511]=4096,ar[14513]=-1,ar[14514]=-1,ar[14515]=0,ar[14503]=0,A=-16&s^1431655768,ar[s>>2]=A,ar[14510]=A,4096))+(c=b+47|0)|0)&(n=0-A|0))>>>0<=b>>>0)return ur=e,(Z=0)|Z;if(0|(A=0|ar[14502])&&(s=(u=0|ar[14500])+l|0)>>>0<=u>>>0|A>>>0>>0)return ur=e,(Z=0)|Z;A:do{if(4&ar[14503])r=0,g=133;else{i=0|ar[14398];e:do{if(i){for(f=58016;!((A=0|ar[f>>2])>>>0<=i>>>0&&(A+(0|ar[(h=f+4|0)>>2])|0)>>>0>i>>>0);){if(!(A=0|ar[f+8>>2])){g=118;break e}f=A}if((r=t-o&n)>>>0<2147483647)if((0|(A=0|yb(0|r)))==((0|ar[f>>2])+(0|ar[h>>2])|0)){if(-1!=(0|A)){o=r,t=A,g=135;break A}}else f=A,g=126;else r=0}else g=118}while(0);do{if(118==(0|g))if(-1!=(0|(i=0|yb(0)))&&(r=i,k=(r=(0==((k=(d=0|ar[14511])+-1|0)&r|0)?0:(k+r&0-d)-r|0)+l|0)+(d=0|ar[14500])|0,b>>>0>>0&r>>>0<2147483647)){if(0|(h=0|ar[14502])&&k>>>0<=d>>>0|h>>>0>>0){r=0;break}if((0|(A=0|yb(0|r)))==(0|i)){o=r,t=i,g=135;break A}f=A,g=126}else r=0}while(0);do{if(126==(0|g)){if(i=0-r|0,!(r>>>0>>0&r>>>0<2147483647&-1!=(0|f))){if(-1==(0|f)){r=0;break}o=r,t=f,g=135;break A}if(2147483647<=(A=c-r+(A=0|ar[14512])&0-A)>>>0){o=r,t=f,g=135;break A}if(-1==(0|yb(0|A))){yb(0|i),r=0;break}o=A+r|0,t=f,g=135;break A}}while(0);ar[14503]=4|ar[14503],g=133}}while(0);if(133==(0|g)&&l>>>0<2147483647&&!(-1==(0|(m=0|yb(0|l)))|1^(v=(b+40|0)>>>0<(w=(h=0|yb(0))-m|0)>>>0)|m>>>0>>0&-1!=(0|m)&-1!=(0|h)^1)&&(o=v?w:r,t=m,g=135),135==(0|g)){r=(0|ar[14500])+o|0,(ar[14500]=r)>>>0>(0|ar[14501])>>>0&&(ar[14501]=r),c=0|ar[14398];do{if(c){for(r=58016;;){if((0|t)==((A=0|ar[r>>2])+(f=0|ar[(i=r+4|0)>>2])|0)){g=145;break}if(!(n=0|ar[r+8>>2]))break;r=n}if(145==(0|g)&&0==(8&ar[r+12>>2]|0)&&c>>>0>>0&A>>>0<=c>>>0){ar[i>>2]=f+o,g=c+(Z=0==(7&(Z=c+8|0)|0)?0:0-Z&7)|0,Z=(0|ar[14395])+(o-Z)|0,ar[14398]=g,ar[14395]=Z,ar[g+4>>2]=1|Z,ar[g+Z+4>>2]=40,ar[14399]=ar[14514];break}for(t>>>0<(0|ar[14396])>>>0&&(ar[14396]=t),i=t+o|0,r=58016;;){if((0|ar[r>>2])==(0|i)){g=153;break}if(!(A=0|ar[r+8>>2]))break;r=A}if(153==(0|g)&&0==(8&ar[r+12>>2]|0)){ar[r>>2]=t,ar[(u=r+4|0)>>2]=(0|ar[u>>2])+o,l=(u=t+(0==(7&(u=t+8|0)|0)?0:0-u&7)|0)+b|0,a=(r=i+(0==(7&(r=i+8|0)|0)?0:0-r&7)|0)-u-b|0,ar[u+4>>2]=3|b;do{if((0|r)!=(0|c)){if((0|r)==(0|ar[14397])){Z=(0|ar[14394])+a|0,ar[14394]=Z,ar[14397]=l,ar[l+4>>2]=1|Z,ar[l+Z>>2]=Z;break}if(1==(3&(A=0|ar[r+4>>2])|0)){o=-8&A,f=A>>>3;A:do{if(A>>>0<256){if(A=0|ar[r+8>>2],(0|(i=0|ar[r+12>>2]))==(0|A)){ar[14392]=ar[14392]&~(1<>2]=i,ar[i+8>>2]=A;break}t=0|ar[r+24>>2],A=0|ar[r+12>>2];do{if((0|A)==(0|r)){if(!(A=0|ar[(i=(f=r+16|0)+4|0)>>2])){if(!(A=0|ar[f>>2])){A=0;break}i=f}for(;;)if(0|(n=0|ar[(f=A+20|0)>>2]))A=n,i=f;else{if(!(n=0|ar[(f=A+16|0)>>2]))break;A=n,i=f}ar[i>>2]=0}else Z=0|ar[r+8>>2],ar[Z+12>>2]=A,ar[A+8>>2]=Z}while(0);if(!t)break;f=57872+((i=0|ar[r+28>>2])<<2)|0;do{if((0|r)==(0|ar[f>>2])){if(0|(ar[f>>2]=A))break;ar[14393]=ar[14393]&~(1<>2])!=(0|r)&1)<<2)>>2]=A))break A}while(0);if(ar[A+24>>2]=t,0|(f=0|ar[(i=r+16|0)>>2])&&(ar[A+16>>2]=f,ar[f+24>>2]=A),!(i=0|ar[i+4>>2]))break;ar[A+20>>2]=i,ar[i+24>>2]=A}while(0);r=r+o|0,n=o+a|0}else n=a;if(ar[(r=r+4|0)>>2]=-2&ar[r>>2],ar[l+4>>2]=1|n,r=(ar[l+n>>2]=n)>>>3,n>>>0<256){i=57608+(r<<1<<2)|0,(A=0|ar[14392])&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=l,ar[r+12>>2]=l,ar[l+8>>2]=r,ar[l+12>>2]=i;break}r=n>>>8;do{if(r){if(16777215>>0){r=31;break}r=n>>>((r=14-((m=((Z=r<<(g=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|g|(r=((Z<<=m)+245760|0)>>>16&2))+(Z<>>15)|0)+7|0)&1|r<<1}else r=0}while(0);if(f=57872+(r<<2)|0,ar[l+28>>2]=r,ar[(A=l+16|0)+4>>2]=0,!((A=(ar[A>>2]=0)|ar[14393])&(i=1<>2]=l,ar[l+24>>2]=f,ar[l+12>>2]=l,ar[l+8>>2]=l;break}for(A=n<<(31==(0|r)?0:25-(r>>>1)|0),i=0|ar[f>>2];;){if((-8&ar[i+4>>2]|0)==(0|n)){g=194;break}if(!(r=0|ar[(f=i+16+(A>>>31<<2)|0)>>2])){g=193;break}A<<=1,i=r}if(193==(0|g)){ar[f>>2]=l,ar[l+24>>2]=i,ar[l+12>>2]=l,ar[l+8>>2]=l;break}if(194==(0|g)){Z=0|ar[(g=i+8|0)>>2],ar[Z+12>>2]=l,ar[g>>2]=l,ar[l+8>>2]=Z,ar[l+12>>2]=i,ar[l+24>>2]=0;break}}else Z=(0|ar[14395])+a|0,ar[14395]=Z,ar[14398]=l,ar[l+4>>2]=1|Z}while(0);return ur=e,0|(Z=u+8|0)}for(r=58016;!((A=0|ar[r>>2])>>>0<=c>>>0&&c>>>0<(Z=A+(0|ar[r+4>>2])|0)>>>0);)r=0|ar[r+8>>2];for(r=(A=(A=(n=Z+-47|0)+(0==(7&(A=n+8|0)|0)?0:0-A&7)|0)>>>0<(n=c+16|0)>>>0?c:A)+8|0,g=t+(i=0==(7&(i=t+8|0)|0)?0:0-i&7)|0,i=o+-40-i|0,ar[14398]=g,ar[14395]=i,ar[g+4>>2]=1|i,ar[g+i+4>>2]=40,ar[14399]=ar[14514],ar[(i=A+4|0)>>2]=27,ar[r>>2]=ar[14504],ar[r+4>>2]=ar[14505],ar[r+8>>2]=ar[14506],ar[r+12>>2]=ar[14507],ar[14504]=t,ar[14505]=o,ar[14507]=0,ar[14506]=r,r=A+24|0;ar[(r=(g=r)+4|0)>>2]=7,(g+8|0)>>>0>>0;);if((0|A)!=(0|c)){if(t=A-c|0,ar[i>>2]=-2&ar[i>>2],ar[c+4>>2]=1|t,r=(ar[A>>2]=t)>>>3,t>>>0<256){i=57608+(r<<1<<2)|0,(A=0|ar[14392])&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=c,ar[r+12>>2]=c,ar[c+8>>2]=r,ar[c+12>>2]=i;break}if(f=57872+((i=(r=t>>>8)?16777215>>0?31:t>>>((i=14-((m=((Z=r<<(g=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|g|(i=((Z<<=m)+245760|0)>>>16&2))+(Z<>>15)|0)+7|0)&1|i<<1:0)<<2)|0,ar[c+28>>2]=i,ar[c+20>>2]=0,!((r=(ar[n>>2]=0)|ar[14393])&(A=1<>2]=c,ar[c+24>>2]=f,ar[c+12>>2]=c,ar[c+8>>2]=c;break}for(A=t<<(31==(0|i)?0:25-(i>>>1)|0),i=0|ar[f>>2];;){if((-8&ar[i+4>>2]|0)==(0|t)){g=216;break}if(!(r=0|ar[(f=i+16+(A>>>31<<2)|0)>>2])){g=215;break}A<<=1,i=r}if(215==(0|g)){ar[f>>2]=c,ar[c+24>>2]=i,ar[c+12>>2]=c,ar[c+8>>2]=c;break}if(216==(0|g)){Z=0|ar[(g=i+8|0)>>2],ar[Z+12>>2]=c,ar[g>>2]=c,ar[c+8>>2]=Z,ar[c+12>>2]=i,ar[c+24>>2]=0;break}}}else{for(0==(0|(Z=0|ar[14396]))|t>>>0>>0&&(ar[14396]=t),ar[14504]=t,ar[14505]=o,ar[14507]=0,ar[14401]=ar[14510],ar[14400]=-1,r=0;ar[(Z=57608+(r<<1<<2)|0)+12>>2]=Z,ar[Z+8>>2]=Z,32!=(0|(r=r+1|0)););g=t+(Z=0==(7&(Z=t+8|0)|0)?0:0-Z&7)|0,Z=o+-40-Z|0,ar[14398]=g,ar[14395]=Z,ar[g+4>>2]=1|Z,ar[g+Z+4>>2]=40,ar[14399]=ar[14514]}}while(0);if(b>>>0<(r=0|ar[14395])>>>0)return m=r-b|0,ar[14395]=m,g=(Z=0|ar[14398])+b|0,ar[14398]=g,ar[g+4>>2]=1|m,ar[Z+4>>2]=3|b,ur=e,0|(Z=Z+8|0)}return ar[(Z=10364)>>2]=12,ur=e,(Z=0)|Z}function Bc(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(A|=0){r=A+-8|0,f=0|ar[14396],a=r+(e=-8&(A=0|ar[A+-4>>2]))|0;do{if(1&A)t=o=r;else{if(i=0|ar[r>>2],!(3&A))return;if(n=i+e|0,(t=r+(0-i)|0)>>>0>>0)return;if((0|t)==(0|ar[14397])){if(3==(3&(e=0|ar[(A=a+4|0)>>2])|0))return ar[14394]=n,ar[A>>2]=-2&e,ar[t+4>>2]=1|n,void(ar[t+n>>2]=n);o=t,e=n;break}if(r=i>>>3,i>>>0<256){if(A=0|ar[t+8>>2],(0|(e=0|ar[t+12>>2]))==(0|A)){ar[14392]=ar[14392]&~(1<>2]=e,ar[e+8>>2]=A,o=t,e=n;break}f=0|ar[t+24>>2],A=0|ar[t+12>>2];do{if((0|A)==(0|t)){if(!(A=0|ar[(e=(r=t+16|0)+4|0)>>2])){if(!(A=0|ar[r>>2])){A=0;break}e=r}for(;;)if(0|(i=0|ar[(r=A+20|0)>>2]))A=i,e=r;else{if(!(i=0|ar[(r=A+16|0)>>2]))break;A=i,e=r}ar[e>>2]=0}else o=0|ar[t+8>>2],ar[o+12>>2]=A,ar[A+8>>2]=o}while(0);if(f){if(e=0|ar[t+28>>2],(0|t)==(0|ar[(r=57872+(e<<2)|0)>>2])){if(!(ar[r>>2]=A)){ar[14393]=ar[14393]&~(1<>2])!=(0|t)&1)<<2)>>2]=A)){o=t,e=n;break}ar[A+24>>2]=f,0|(r=0|ar[(e=t+16|0)>>2])&&(ar[A+16>>2]=r,ar[r+24>>2]=A),e=(o=((e=0|ar[e+4>>2])&&(ar[A+20>>2]=e,ar[e+24>>2]=A),t),n)}else o=t,e=n}}while(0);if(!(a>>>0<=t>>>0)&&1&(i=0|ar[(A=a+4|0)>>2])){if(2&i)ar[A>>2]=-2&i,ar[o+4>>2]=1|e,f=ar[t+e>>2]=e;else{if(A=0|ar[14397],(0|a)==(0|ar[14398])){if(a=(0|ar[14395])+e|0,ar[14395]=a,ar[14398]=o,ar[o+4>>2]=1|a,(0|o)!=(0|A))return;return ar[14397]=0,void(ar[14394]=0)}if((0|a)==(0|A))return a=(0|ar[14394])+e|0,ar[14394]=a,ar[14397]=t,ar[o+4>>2]=1|a,void(ar[t+a>>2]=a);f=(-8&i)+e|0,r=i>>>3;do{if(i>>>0<256){if(e=0|ar[a+8>>2],(0|(A=0|ar[a+12>>2]))==(0|e)){ar[14392]=ar[14392]&~(1<>2]=A,ar[A+8>>2]=e;break}n=0|ar[a+24>>2],A=0|ar[a+12>>2];do{if((0|A)==(0|a)){if(!(A=0|ar[(e=(r=a+16|0)+4|0)>>2])){if(!(A=0|ar[r>>2])){r=0;break}e=r}for(;;)if(0|(i=0|ar[(r=A+20|0)>>2]))A=i,e=r;else{if(!(i=0|ar[(r=A+16|0)>>2]))break;A=i,e=r}ar[e>>2]=0,r=A}else r=0|ar[a+8>>2],ar[r+12>>2]=A,ar[A+8>>2]=r,r=A}while(0);if(0|n){if(A=0|ar[a+28>>2],(0|a)==(0|ar[(e=57872+(A<<2)|0)>>2])){if(!(ar[e>>2]=r)){ar[14393]=ar[14393]&~(1<>2])!=(0|a)&1)<<2)>>2]=r))break;ar[r+24>>2]=n,0|(e=0|ar[(A=a+16|0)>>2])&&(ar[r+16>>2]=e,ar[e+24>>2]=r),0|(A=0|ar[A+4>>2])&&(ar[r+20>>2]=A,ar[A+24>>2]=r)}}while(0);if(ar[o+4>>2]=1|f,ar[t+f>>2]=f,(0|o)==(0|ar[14397]))return void(ar[14394]=f)}if(A=f>>>3,f>>>0<256)return r=57608+(A<<1<<2)|0,(e=0|ar[14392])&(A=1<>2]:(ar[14392]=e|A,e=(A=r)+8|0),ar[e>>2]=o,ar[A+12>>2]=o,ar[o+8>>2]=A,void(ar[o+12>>2]=r);i=57872+((A=(A=f>>>8)?16777215>>0?31:f>>>((A=14-((n=((a=A<<(t=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|t|(A=((a<<=n)+245760|0)>>>16&2))+(a<>>15)|0)+7|0)&1|A<<1:0)<<2)|0,ar[o+28>>2]=A,ar[o+20>>2]=0,e=(ar[o+16>>2]=0)|ar[14393],r=1<>>1)|0),r=0|ar[i>>2];;){if((-8&ar[r+4>>2]|0)==(0|f)){A=73;break}if(!(A=0|ar[(i=r+16+(e>>>31<<2)|0)>>2])){A=72;break}e<<=1,r=A}if(72==(0|A)){ar[i>>2]=o,ar[o+24>>2]=r,ar[o+12>>2]=o,ar[o+8>>2]=o;break}if(73==(0|A)){a=0|ar[(t=r+8|0)>>2],ar[a+12>>2]=o,ar[t>>2]=o,ar[o+8>>2]=a,ar[o+12>>2]=r,ar[o+24>>2]=0;break}}else ar[14393]=e|r,ar[i>>2]=o,ar[o+24>>2]=i,ar[o+12>>2]=o,ar[o+8>>2]=o}while(0);if(a=(0|ar[14400])-1|0,!(ar[14400]=a)){for(A=58024;A=0|ar[A>>2];)A=A+8|0;ar[14400]=-1}}}}function Ec(A,e){e|=0;var r=0,i=0;return(A|=0)?4294967231>>0?(ar[(e=10364)>>2]=12,(e=0)|e):0|(r=0|function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(l=0|ar[(u=4+(A|=0)|0)>>2],r=A+(f=-8&l)|0,!(3&l))return!(e>>>0<256)&&(e+4|0)>>>0<=f>>>0&&(f-e|0)>>>0<=ar[14512]<<1>>>0?0|A:(A=0)|A;if(e>>>0<=f>>>0)return(f=f-e|0)>>>0<=15||(c=A+e|0,ar[u>>2]=1&l|e|2,ar[c+4>>2]=3|f,ar[(u=c+f+4|0)>>2]=1|ar[u>>2],Xc(c,f)),0|A;if((0|r)==(0|ar[14398]))return c=(0|ar[14395])+f|0,f=c-e|0,n=A+e|0,c>>>0<=e>>>0?(A=0)|A:(ar[u>>2]=1&l|e|2,ar[n+4>>2]=1|f,ar[14398]=n,ar[14395]=f,0|A);if((0|r)==(0|ar[14397]))return(t=(0|ar[14394])+f|0)>>>0>>0?(A=0)|A:(n=1&l,15<(f=t-e|0)>>>0?(c=(l=A+e|0)+f|0,ar[u>>2]=n|e|2,ar[l+4>>2]=1|f,ar[c>>2]=f,ar[(n=c+4|0)>>2]=-2&ar[n>>2],n=l):(ar[u>>2]=n|t|2,ar[(n=A+t+4|0)>>2]=1|ar[n>>2],f=n=0),ar[14394]=f,ar[14397]=n,0|A);if(2&(n=0|ar[4+r>>2])|0)return(A=0)|A;if((i=(-8&n)+f|0)>>>0>>0)return(A=0)|A;c=i-e|0,t=n>>>3;do{if(n>>>0<256){if(n=0|ar[8+r>>2],(0|(f=0|ar[12+r>>2]))==(0|n)){ar[14392]=ar[14392]&~(1<>2]=f,ar[f+8>>2]=n;break}a=0|ar[24+r>>2],f=0|ar[12+r>>2];do{if((0|f)==(0|r)){if(f=0|ar[(n=(t=16+r|0)+4|0)>>2])o=n;else{if(!(f=0|ar[t>>2])){t=0;break}o=t}for(;;)if(0|(n=0|ar[(t=f+20|0)>>2]))f=n,o=t;else{if(!(t=0|ar[(n=f+16|0)>>2]))break;f=t,o=n}ar[o>>2]=0,t=f}else t=0|ar[8+r>>2],ar[t+12>>2]=f,ar[f+8>>2]=t,t=f}while(0);if(0|a){if(f=0|ar[28+r>>2],(0|r)==(0|ar[(n=57872+(f<<2)|0)>>2])){if(!(ar[n>>2]=t)){ar[14393]=ar[14393]&~(1<>2])!=(0|r)&1)<<2)>>2]=t))break;ar[t+24>>2]=a,0|(n=0|ar[(f=16+r|0)>>2])&&(ar[t+16>>2]=n,ar[n+24>>2]=t),0|(f=0|ar[f+4>>2])&&(ar[t+20>>2]=f,ar[f+24>>2]=t)}}while(0);return f=1&l,c>>>0<16?(ar[u>>2]=i|f|2,ar[(u=A+i+4|0)>>2]=1|ar[u>>2]):(l=A+e|0,ar[u>>2]=f|e|2,ar[l+4>>2]=3|c,ar[(u=l+c+4|0)>>2]=1|ar[u>>2],Xc(l,c)),0|A}(A+-8|0,e>>>0<11?16:e+11&-8))?0|(e=r+8|0):(r=0|yc(e))?(hb(0|r,0|A,0|((i=(-8&(i=0|ar[A+-4>>2]))-(0==(3&i|0)?8:4)|0)>>>0>>0?i:e)),Bc(A),0|(e=r)):(e=0)|e:0|(e=0|yc(e))}function Xc(A,e){var r=0,i=0,f=0,n=0,t=0,o=0,a=0;a=(A|=0)+(e|=0)|0,r=0|ar[A+4>>2];do{if(1&r)o=A,r=e;else{if(i=0|ar[A>>2],!(3&r))return;if(t=i+e|0,(0|(n=A+(0-i)|0))==(0|ar[14397])){if(3==(3&(r=0|ar[(A=a+4|0)>>2])|0))return ar[14394]=t,ar[A>>2]=-2&r,ar[n+4>>2]=1|t,void(ar[n+t>>2]=t);o=n,r=t;break}if(e=i>>>3,i>>>0<256){if(A=0|ar[n+8>>2],(0|(r=0|ar[n+12>>2]))==(0|A)){ar[14392]=ar[14392]&~(1<>2]=r,ar[r+8>>2]=A,o=n,r=t;break}f=0|ar[n+24>>2],A=0|ar[n+12>>2];do{if((0|A)==(0|n)){if(!(A=0|ar[(r=(e=n+16|0)+4|0)>>2])){if(!(A=0|ar[e>>2])){A=0;break}r=e}for(;;)if(0|(i=0|ar[(e=A+20|0)>>2]))A=i,r=e;else{if(!(i=0|ar[(e=A+16|0)>>2]))break;A=i,r=e}ar[r>>2]=0}else o=0|ar[n+8>>2],ar[o+12>>2]=A,ar[A+8>>2]=o}while(0);if(f){if(r=0|ar[n+28>>2],(0|n)==(0|ar[(e=57872+(r<<2)|0)>>2])){if(!(ar[e>>2]=A)){ar[14393]=ar[14393]&~(1<>2])!=(0|n)&1)<<2)>>2]=A)){o=n,r=t;break}ar[A+24>>2]=f,0|(e=0|ar[(r=n+16|0)>>2])&&(ar[A+16>>2]=e,ar[e+24>>2]=A),r=(o=((r=0|ar[r+4>>2])&&(ar[A+20>>2]=r,ar[r+24>>2]=A),n),t)}else o=n,r=t}}while(0);if(2&(i=0|ar[(A=a+4|0)>>2]))ar[A>>2]=-2&i,ar[o+4>>2]=1|r,ar[o+r>>2]=r;else{if(A=0|ar[14397],(0|a)==(0|ar[14398]))return a=(0|ar[14395])+r|0,ar[14395]=a,ar[14398]=o,ar[o+4>>2]=1|a,(0|o)==(0|A)&&(ar[14397]=0,void(ar[14394]=0));if((0|a)==(0|A))return a=(0|ar[14394])+r|0,ar[14394]=a,ar[14397]=o,ar[o+4>>2]=1|a,void(ar[o+a>>2]=a);n=(-8&i)+r|0,e=i>>>3;do{if(i>>>0<256){if(r=0|ar[a+8>>2],(0|(A=0|ar[a+12>>2]))==(0|r)){ar[14392]=ar[14392]&~(1<>2]=A,ar[A+8>>2]=r;break}f=0|ar[a+24>>2],A=0|ar[a+12>>2];do{if((0|A)==(0|a)){if(!(A=0|ar[(r=(e=a+16|0)+4|0)>>2])){if(!(A=0|ar[e>>2])){e=0;break}r=e}for(;;)if(0|(i=0|ar[(e=A+20|0)>>2]))A=i,r=e;else{if(!(i=0|ar[(e=A+16|0)>>2]))break;A=i,r=e}ar[r>>2]=0,e=A}else e=0|ar[a+8>>2],ar[e+12>>2]=A,ar[A+8>>2]=e,e=A}while(0);if(0|f){if(A=0|ar[a+28>>2],(0|a)==(0|ar[(r=57872+(A<<2)|0)>>2])){if(!(ar[r>>2]=e)){ar[14393]=ar[14393]&~(1<>2])!=(0|a)&1)<<2)>>2]=e))break;ar[e+24>>2]=f,0|(r=0|ar[(A=a+16|0)>>2])&&(ar[e+16>>2]=r,ar[r+24>>2]=e),0|(A=0|ar[A+4>>2])&&(ar[e+20>>2]=A,ar[A+24>>2]=e)}}while(0);if(ar[o+4>>2]=1|n,ar[o+n>>2]=n,(0|o)==(0|ar[14397]))return void(ar[14394]=n);r=n}if(A=r>>>3,r>>>0<256)return e=57608+(A<<1<<2)|0,(r=0|ar[14392])&(A=1<>2]:(ar[14392]=r|A,r=(A=e)+8|0),ar[r>>2]=o,ar[A+12>>2]=o,ar[o+8>>2]=A,void(ar[o+12>>2]=e);if(f=57872+((A=(A=r>>>8)?16777215>>0?31:r>>>((A=14-((n=((a=A<<(t=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|t|(A=((a<<=n)+245760|0)>>>16&2))+(a<>>15)|0)+7|0)&1|A<<1:0)<<2)|0,ar[o+28>>2]=A,ar[o+20>>2]=0,!((e=(ar[o+16>>2]=0)|ar[14393])&(i=1<>2]=o,ar[o+24>>2]=f,ar[o+12>>2]=o,void(ar[o+8>>2]=o);for(e=r<<(31==(0|A)?0:25-(A>>>1)|0),i=0|ar[f>>2];;){if((-8&ar[i+4>>2]|0)==(0|r)){A=69;break}if(!(A=0|ar[(f=i+16+(e>>>31<<2)|0)>>2])){A=68;break}e<<=1,i=A}return 68==(0|A)?(ar[f>>2]=o,ar[o+24>>2]=i,ar[o+12>>2]=o,void(ar[o+8>>2]=o)):69==(0|A)&&(a=0|ar[(t=i+8|0)>>2],ar[a+12>>2]=o,ar[t>>2]=o,ar[o+8>>2]=a,ar[o+12>>2]=i,void(ar[o+24>>2]=0))}function Wc(A,e){return e|=0,(A|=0)>>>0<9?0|(e=0|yc(e)):0|(e=0|function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0;if((A=16<(A|=0)>>>0?A:16)+-1&A)for(i=16;;){if(!(i>>>0>>0)){A=i;break}i<<=1}if((-64-A|0)>>>0<=e>>>0)return ar[(t=10364)>>2]=12,(t=0)|t;if(!(i=0|yc(12+(n=e>>>0<11?16:e+11&-8)+A|0)))return(t=0)|t;r=i+-8|0;do{if(i&A+-1){if(e=(f=15<((f=(i+A+-1&0-A)-8|0)-(e=r)|0)>>>0?f:f+A|0)-e|0,o=0|ar[(A=i+-4|0)>>2],i=(-8&o)-e|0,3&o){ar[(o=f+4|0)>>2]=i|1&ar[o>>2]|2,ar[(i=f+i+4|0)>>2]=1|ar[i>>2],ar[A>>2]=e|1&ar[A>>2]|2,ar[o>>2]=1|ar[o>>2],Xc(r,e),e=A=f;break}ar[f>>2]=(0|ar[r>>2])+e,ar[f+4>>2]=i,e=A=f;break}e=A=r}while(0);3&(i=0|ar[(A=A+4|0)>>2])|0&&(t=-8&i)>>>0>(n+16|0)>>>0&&(o=t-n|0,t=e+n|0,ar[A>>2]=n|1&i|2,ar[t+4>>2]=3|o,ar[(n=t+o+4|0)>>2]=1|ar[n>>2],Xc(t,o));return 0|(o=e+8|0)}(A,e))}function Ic(A){return 4294963200<(A|=0)>>>0&&(ar[10364>>2]=0-A,A=-1),0|A}function Cc(){return 10364}function Gc(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0;c=ur=(o=ur)+31&-32,ur=ur+48|0,t=c+16|0,c=(l=c)+32|0,a=0|ar[(f=(A|=0)+28|0)>>2],ar[c>>2]=a,a=(0|ar[(n=A+20|0)>>2])-a|0,ar[c+4>>2]=a,ar[c+8>>2]=e,a=a+(ar[c+12>>2]=r)|0,i=A+60|0,ar[l>>2]=ar[i>>2],ar[l+4>>2]=c,ar[l+8>>2]=2,l=0|Ic(0|_(146,0|l));A:do{if((0|a)!=(0|l)){for(e=2;!((0|l)<0);)if(a=a-l|0,e=((b=(s=0|ar[c+4>>2])>>>0>>0)<<31>>31)+e|0,s=l-(b?s:0)|0,ar[(c=b?c+8|0:c)>>2]=(0|ar[c>>2])+s,ar[(b=c+4|0)>>2]=(0|ar[b>>2])-s,ar[t>>2]=ar[i>>2],ar[4+t>>2]=c,ar[8+t>>2]=e,(0|a)==(0|(l=0|Ic(0|_(146,0|t))))){u=3;break A}ar[A+16>>2]=0,ar[f>>2]=0,ar[n>>2]=0,ar[A>>2]=32|ar[A>>2],r=2==(0|e)?0:r-(0|ar[c+4>>2])|0}else u=3}while(0);return 3==(0|u)&&(s=0|ar[A+44>>2],ar[A+16>>2]=s+(0|ar[A+48>>2]),ar[f>>2]=s,ar[n>>2]=s),ur=o,0|r}function Vc(A){var e,r=0,i=0;e=A|=0;A:do{if(3&e)for(r=e;;){if(!(0|tr[A>>0])){A=r;break A}if(!(3&(r=A=A+1|0))){i=4;break}}else i=4}while(0);if(4==(0|i)){for(;!((-2139062144&(r=0|ar[A>>2])^-2139062144)&r+-16843009);)A=A+4|0;if((255&r)<<24>>24)for(;0!=(0|tr[(A=A+1|0)>>0]););}return A-e|0}function Fc(A,e){e|=0;var r=0,i=0;if(r=0|tr[(A|=0)>>0],i=0|tr[e>>0],r<<24>>24==0||r<<24>>24!=i<<24>>24)A=i;else{for(;e=e+1|0,r=0|tr[(A=A+1|0)>>0],i=0|tr[e>>0],r<<24>>24!=0&&r<<24>>24==i<<24>>24;);A=i}return(255&r)-(255&A)|0}function Rc(A,e,r){A|=0;var i=0,f=0,n=0,t=0;n=255&(e|=0),i=0!=(0|(r|=0));A:do{if(i&0!=(3&A|0))for(f=255&e;;){if((0|tr[A>>0])==f<<24>>24){t=6;break A}if(!((i=0!=(0|(r=r+-1|0)))&0!=(3&(A=A+1|0)|0))){t=5;break}}else t=5}while(0);5==(0|t)&&(i?t=6:r=0);A:do{if(6==(0|t)&&(f=255&e,(0|tr[A>>0])!=f<<24>>24)){i=0|br(n,16843009);e:do{if(3>>0){for(;!((-2139062144&(n=ar[A>>2]^i)^-2139062144)&n+-16843009|0);)if(A=A+4|0,(r=r+-4|0)>>>0<=3){t=11;break e}}else t=11}while(0);if(11==(0|t)&&!r){r=0;break}for(;;){if((0|tr[A>>0])==f<<24>>24)break A;if(A=A+1|0,!(r=r+-1|0)){r=0;break}}}}while(0);return 0|(0|r?A:0)}function Nc(A,e){A|=0;var r=0,i=0,f=0;i=255&(e|=0);A:do{if(i){if(3&A){r=255&e;do{if((f=0|tr[A>>0])<<24>>24==0||f<<24>>24==r<<24>>24)break A;A=A+1|0}while(0!=(3&A|0))}i=0|br(i,16843009),r=0|ar[A>>2];e:do{if(!((-2139062144&r^-2139062144)&r+-16843009))do{if((-2139062144&(f=r^i)^-2139062144)&f+-16843009|0)break e;r=0|ar[(A=A+4|0)>>2]}while(!((-2139062144&r^-2139062144)&r+-16843009|0))}while(0);for(r=255&e;(f=0|tr[A>>0])<<24>>24!=0&&f<<24>>24!=r<<24>>24;)A=A+1|0}else A=A+(0|Vc(A))|0}while(0);return 0|A}function _c(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n;return n=ur=(f=ur)+31&-32,ur=ur+16|0,ar[n>>2]=i,i=0|Yc(A,e,r,n),ur=f,0|i}function Yc(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0;for(l=ur=(n=ur)+31&-32,ur=ur+128|0,t=l+124|0,a=10804,f=(o=l)+124|0;ar[o>>2]=ar[a>>2],a=a+4|0,(0|(o=o+4|0))<(0|f););return 2147483646<(e+-1|0)>>>0?e?(ar[(e=10364)>>2]=75,e=-1):(A=t,e=1,c=4):c=4,4==(0|c)&&(c=(c=-2-A|0)>>>0>>0?c:e,ar[l+48>>2]=c,ar[(t=l+20|0)>>2]=A,e=(ar[l+44>>2]=A)+c|0,ar[(A=l+16|0)>>2]=e,ar[l+28>>2]=e,e=0|Qc(l,r,i),c&&(l=0|ar[t>>2],tr[l+(((0|l)==(0|ar[A>>2]))<<31>>31)>>0]=0)),ur=n,0|e}function Qc(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;for(k=ur=(t=ur)+31&-32,ur=ur+224|0,i=k+120|0,f=k+80|0,k=(n=k)+136|0,a=(o=f)+40|0;(0|(o=o+4|(ar[o>>2]=0)))<(0|a););return ar[i>>2]=ar[r>>2],r=(0|Dc(0,e,i,n,f))<0?-1:(d=-1<(0|ar[A+76>>2])?0|Jc():0,s=32&(r=0|ar[A>>2]),(0|tr[A+74>>0])<1&&(ar[A>>2]=-33&r),0|ar[(o=A+48|0)>>2]?r=0|Dc(A,e,i,n,f):(c=0|ar[(a=A+44|0)>>2],ar[a>>2]=k,ar[(l=A+28|0)>>2]=k,ar[(u=A+20|0)>>2]=k,ar[o>>2]=80,ar[(b=A+16|0)>>2]=k+80,r=0|Dc(A,e,i,n,f),c&&(xb[63&ar[A+36>>2]](A,0,0),r=0==(0|ar[u>>2])?-1:r,ar[a>>2]=c,ar[o>>2]=0,ar[b>>2]=0,ar[l>>2]=0,ar[u>>2]=0)),o=0|ar[A>>2],ar[A>>2]=o|s,0|d&&Mc(),0==(32&o|0)?r:-1),ur=t,0|r}function Dc(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0;W=ur=(b=ur)+31&-32,ur=ur+64|0,c=W+16|0,X=(l=W)+24|0,u=W+8|0,W=W+20|0,ar[c>>2]=e,n=0!=(0|A),o=t=X+40|0,X=X+39|0,a=4+u|0,v=s=d=0;A:for(;;){do{if(-1<(0|s)){if((2147483647-s|0)<(0|d)){ar[(s=10364)>>2]=75,s=-1;break}s=d+s|0;break}}while(0);if(!((d=0|tr[e>>0])<<24>>24)){E=87;break}k=e;e:for(;;){switch(d<<24>>24){case 37:d=k,E=9;break e;case 0:d=k;break e}B=k+1|0,ar[c>>2]=B,d=0|tr[B>>0],k=B}e:do{if(9==(0|E))for(;;){if(37!=((E=0)|tr[k+1>>0]))break e;if(d=d+1|0,k=k+2|0,ar[c>>2]=k,37!=(0|tr[k>>0]))break;E=9}}while(0);if(d=d-e|0,n&&Tc(A,e,d),0|d)e=k;else{(d=(0|tr[(h=k+1|0)>>0])-48|0)>>>0<10?(y=(B=36==(0|tr[k+2>>0]))?d:-1,v=B?1:v,h=B?k+3|0:h):y=-1,ar[c>>2]=h,k=((d=0|tr[h>>0])<<24>>24)-32|0;e:do{if(k>>>0<32)for(w=0,m=d;;){if(!(75913&(d=1<>2]=h,32<=(k=((d=0|tr[h>>0])<<24>>24)-32|0)>>>0)break;m=d}else w=0}while(0);if(d<<24>>24==42){if((d=(0|tr[(k=h+1|0)>>0])-48|0)>>>0<10&&36==(0|tr[h+2>>0]))ar[f+(d<<2)>>2]=10,d=0|ar[i+((0|tr[k>>0])-48<<3)>>2],v=1,h=h+3|0;else{if(0|v){s=-1;break}h=(v=n?(v=3+(0|ar[r>>2])&-4,d=0|ar[v>>2],ar[r>>2]=v+4,0):d=0,k)}ar[c>>2]=h,d=(B=(0|d)<0)?0-d|0:d,w=B?8192|w:w}else{if((0|(d=0|Uc(c)))<0){s=-1;break}h=0|ar[c>>2]}do{if(46==(0|tr[h>>0])){if(42!=(0|tr[h+1>>0])){ar[c>>2]=h+1,k=0|Uc(c),h=0|ar[c>>2];break}if((k=(0|tr[(m=h+2|0)>>0])-48|0)>>>0<10&&36==(0|tr[h+3>>0])){ar[f+(k<<2)>>2]=10,k=0|ar[i+((0|tr[m>>0])-48<<3)>>2],h=h+4|0,ar[c>>2]=h;break}if(0|v){s=-1;break A}n?(B=3+(0|ar[r>>2])&-4,k=0|ar[B>>2],ar[r>>2]=B+4):k=0,h=ar[c>>2]=m}else k=-1}while(0);for(p=0;;){if(57<((0|tr[h>>0])-65|0)>>>0){s=-1;break A}if(B=h+1|0,ar[c>>2]=B,!(((g=255&(m=0|tr[(0|tr[h>>0])-65+(50202+(58*p|0))>>0]))+-1|0)>>>0<8))break;p=g,h=B}if(!(m<<24>>24)){s=-1;break}Z=-1<(0|y);do{if(m<<24>>24==19){if(Z){s=-1;break A}E=49}else{if(Z){ar[f+(y<<2)>>2]=g,y=0|ar[(Z=i+(y<<3)|0)+4>>2],ar[(E=l)>>2]=ar[Z>>2],ar[E+4>>2]=y,E=49;break}if(!n){s=0;break A}Sc(l,g,r)}}while(0);if(49!=(0|E)||(E=0,n)){h=0!=(0|p)&3==(15&(h=0|tr[h>>0])|0)?-33&h:h,Z=-65537&w,y=0==(8192&w|0)?w:Z;e:do{switch(0|h){case 110:switch((255&p)<<24>>24){case 0:case 1:ar[ar[l>>2]>>2]=s,d=0,e=B;continue A;case 2:d=0|ar[l>>2],ar[d>>2]=s,ar[d+4>>2]=((0|s)<0)<<31>>31,d=0,e=B;continue A;case 3:or[ar[l>>2]>>1]=s,d=0,e=B;continue A;case 4:tr[ar[l>>2]>>0]=s,d=0,e=B;continue A;case 6:ar[ar[l>>2]>>2]=s,d=0,e=B;continue A;case 7:d=0|ar[l>>2],ar[d>>2]=s,ar[d+4>>2]=((0|s)<0)<<31>>31,d=0,e=B;continue A;default:d=0,e=B;continue A}case 112:h=120,k=8>>0?k:8,e=8|y,E=61;break;case 88:case 120:e=y,E=61;break;case 111:m=50666,k=(w=0)==(8&y|0)|(0|(Z=o-(g=0|zc(e=0|ar[(h=l)>>2],h=0|ar[h+4>>2],t))|0))<(0|k)?k:Z+1|0,Z=y,E=67;break;case 105:case 100:if(e=0|ar[(h=l)>>2],(0|(h=0|ar[h+4>>2]))<0){e=0|ob(0,0,0|e,0|h),h=D,ar[(w=l)>>2]=e,ar[w+4>>2]=h,w=1,m=50666,E=66;break e}w=0!=(2049&y|0)&1,m=0==(2048&y|0)?0==(1&y|0)?50666:50668:50667,E=66;break e;case 117:m=50666,e=(w=0)|ar[(h=l)>>2],h=0|ar[h+4>>2],E=66;break;case 99:tr[X>>0]=ar[l>>2],e=X,w=0,m=50666,g=t,h=1,k=Z;break;case 109:h=0|Hc(0|ar[(h=10364)>>2]),E=71;break;case 115:h=0|(h=0|ar[l>>2])?h:50676,E=71;break;case 67:ar[u>>2]=ar[l>>2],ar[a>>2]=0,g=-1,h=ar[l>>2]=u,E=75;break;case 83:e=0|ar[l>>2],E=k?(g=k,h=e,75):(xc(A,32,d,0,y),e=0,84);break;case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:d=0|Lc(A,+Q[l>>3],d,k,y,h),e=B;continue A;default:w=0,m=50666,g=t,h=k,k=y}}while(0);e:do{if(61==(0|E))g=0|Oc(p=0|ar[(y=l)>>2],y=0|ar[y+4>>2],t,32&h),w=(m=0==(8&e|0)|0==(0|p)&0==(0|y))?0:2,m=m?50666:50666+(h>>4)|0,Z=e,e=p,h=y,E=67;else if(66==(0|E))g=0|jc(e,h,t),Z=y,E=67;else if(71==(0|E))w=E=0,m=50666,g=(p=0==(0|(y=0|Rc(e=h,0,k))))?h+k|0:y,h=p?k:y-h|0,k=Z;else if(75==(0|E)){for(m=h,k=e=E=0;(w=0|ar[m>>2])&&!((0|(k=0|Pc(W,w)))<0|(g-e|0)>>>0>>0)&&(e=k+e|0)>>>0>>0;)m=m+4|0;if((0|k)<0){s=-1;break A}if(xc(A,32,d,e,y),e)for(w=0;;){if(!(k=0|ar[h>>2])){E=84;break e}if((0|e)<(0|(w=(k=0|Pc(W,k))+w|0))){E=84;break e}if(Tc(A,W,k),e>>>0<=w>>>0){E=84;break}h=h+4|0}else e=0,E=84}}while(0);if(67==(0|E))y=(E=0)!=(0|k)|(h=0!=(0|e)|0!=(0|h)),h=o-g+(1&(1^h))|0,e=y?g:t,g=t,h=!y||(0|h)<(0|k)?k:h,k=-1<(0|k)?-65537&Z:Z;else if(84==(0|E)){E=0,xc(A,32,d,e,8192^y),d=(0|e)<(0|d)?d:e,e=B;continue}xc(A,32,d=(0|d)<(0|(y=(Z=(0|h)<(0|(p=g-e|0))?p:h)+w|0))?y:d,y,k),Tc(A,m,w),xc(A,48,d,y,65536^k),xc(A,48,Z,p,0),Tc(A,e,p),xc(A,32,d,y,8192^k),e=B}else d=0,e=B}}A:do{if(87==(0|E)&&!A)if(v){for(s=1;e=0|ar[f+(s<<2)>>2];)if(Sc(i+(s<<3)|0,e,r),10<=(0|(s=s+1|0))){s=1;break A}for(;;){if(0|ar[f+(s<<2)>>2]){s=-1;break A}if(10<=(0|(s=s+1|0))){s=1;break}}}else s=0}while(0);return ur=b,0|s}function Jc(){return 0}function Mc(){0}function Tc(A,e,r){e|=0,r|=0,32&ar[(A|=0)>>2]||el(e,r,A)}function Uc(A){var e=0,r=0,i=0;if(r=0|ar[(A|=0)>>2],(i=(0|tr[r>>0])-48|0)>>>0<10)for(e=0;e=i+(10*e|0)|0,r=r+1|0,ar[A>>2]=r,(i=(0|tr[r>>0])-48|0)>>>0<10;);else e=0;return 0|e}function Sc(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0;A:do{if(e>>>0<=20){switch(0|e){case 9:i=3+(0|ar[r>>2])&-4,e=0|ar[i>>2],ar[r>>2]=i+4,ar[A>>2]=e;break A;case 10:i=3+(0|ar[r>>2])&-4,e=0|ar[i>>2],ar[r>>2]=i+4,ar[(i=A)>>2]=e,ar[i+4>>2]=((0|e)<0)<<31>>31;break A;case 11:i=3+(0|ar[r>>2])&-4,e=0|ar[i>>2],ar[r>>2]=i+4,ar[(i=A)>>2]=e,ar[i+4>>2]=0;break A;case 12:i=7+(0|ar[r>>2])&-8,f=0|ar[(e=i)>>2],e=0|ar[e+4>>2],ar[r>>2]=i+8,ar[(i=A)>>2]=f,ar[i+4>>2]=e;break A;case 13:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,i=(65535&i)<<16>>16,ar[(f=A)>>2]=i,ar[f+4>>2]=((0|i)<0)<<31>>31;break A;case 14:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,ar[(f=A)>>2]=65535&i,ar[f+4>>2]=0;break A;case 15:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,i=(255&i)<<24>>24,ar[(f=A)>>2]=i,ar[f+4>>2]=((0|i)<0)<<31>>31;break A;case 16:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,ar[(f=A)>>2]=255&i,ar[f+4>>2]=0;break A;case 17:case 18:f=7+(0|ar[r>>2])&-8,n=+Q[f>>3],ar[r>>2]=f+8,Q[A>>3]=n;break A;default:break A}}}while(0)}function Oc(A,e,r,i){if(r|=0,i|=0,!(0==(0|(A|=0))&0==(0|(e|=0))))for(;tr[(r=r+-1|0)>>0]=0|cr[50714+(15&A)>>0]|i,!(0==(0|(A=0|sb(0|A,0|e,4)))&0==(0|(e=D))););return 0|r}function zc(A,e,r){if(r|=0,!(0==(0|(A|=0))&0==(0|(e|=0))))for(;tr[(r=r+-1|0)>>0]=7&A|48,!(0==(0|(A=0|sb(0|A,0|e,3)))&0==(0|(e=D))););return 0|r}function jc(A,e,r){r|=0;var i=0;if(0<(e|=0)>>>0|0==(0|e)&4294967295<(A|=0)>>>0){for(;i=0|ub(0|A,0|e,10,0),tr[(r=r+-1|0)>>0]=255&i|48,A=0|lb(0|(i=A),0|e,10,0),9>>0|9==(0|e)&4294967295>>0;)e=D;e=A}else e=A;if(e)for(;tr[(r=r+-1|0)>>0]=(e>>>0)%10|48,!(e>>>0<10);)e=(e>>>0)/10|0;return 0|r}function Hc(A){return 0|function(A,e){A|=0,e|=0;var r=0,i=0;i=0;for(;;){if((0|cr[50732+i>>0])==(0|A)){A=2;break}if(87==(0|(r=i+1|0))){r=50820,i=87,A=5;break}i=r}2==(0|A)&&(i?(r=50820,A=5):r=50820);if(5==(0|A))for(;;){for(;r=(A=r)+1|0,0!=(0|tr[A>>0]););if(!(i=i+-1|0))break;A=5}return 0|function(A,e){return 0|function(A,e){A|=0,e=(e|=0)?0|function(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;i=1794895138+(0|ar[(A|=0)>>2])|0,t=0|Al(0|ar[A+8>>2],i),f=0|Al(0|ar[A+12>>2],i),n=0|Al(0|ar[A+16>>2],i);A:do{if(t>>>0>>2>>>0&&(b=e-(t<<2)|0,f>>>0>>0&n>>>0>>0)&&0==(3&(n|f)|0)){for(b=f>>>2,u=n>>>2,l=0;;){if(f=0|Al(0|ar[A+((n=(o=(c=l+(a=t>>>1)|0)<<1)+b|0)<<2)>>2],i),!((n=0|Al(0|ar[A+(n+1<<2)>>2],i))>>>0>>0&f>>>0<(e-n|0)>>>0)){f=0;break A}if(0|tr[A+(n+f)>>0]){f=0;break A}if(!(f=0|Fc(r,A+n|0)))break;if(f=(0|f)<0,1==(0|t)){f=0;break A}l=f?l:c,t=f?a:t-a|0}n=0|Al(0|ar[A+((f=o+u|0)<<2)>>2],i),f=(f=0|Al(0|ar[A+(f+1<<2)>>2],i))>>>0>>0&n>>>0<(e-f|0)>>>0&&0==(0|tr[A+(f+n)>>0])?A+f|0:0}else f=0}while(0);return 0|f}(0|ar[e>>2],0|ar[e+4>>2],A):0;return 0|(0|e?e:A)}(A|=0,e|=0)}(r,0|ar[e+20>>2])}(A|=0,0|ar[2622])}function xc(A,e,r,i,f){A|=0,e|=0;var n,t;if(n=ur=(t=ur)+31&-32,ur=ur+256|0,(0|(i|=0))<(0|(r|=0))&0==(73728&(f|=0)|0)){if(vb(0|n,0|e,0|((f=r-i|0)>>>0<256?f:256)),255>>0){for(e=r-i|0;Tc(A,n,256),255<(f=f+-256|0)>>>0;);f=255&e}Tc(A,n,f)}ur=t}function Pc(A,e){return e|=0,0|(A=(A|=0)?0|$c(A,e):0)}function Lc(A,e,r,i,f,n){A|=0,e=+e,r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;l=ur=(t=ur)+31&-32,ur=ur+560|0,c=l+8|0,W=I=(w=l)+524|0,X=(l=l+512|0)+12|(ar[w>>2]=0),Kc(e),y=(0|D)<0?(e=-e,B=1,50683):(B=0!=(2049&f|0)&1,0==(2048&f|0)?0==(1&f|0)?50684:50689:50686),Kc(e),E=2146435072&D;do{if(E>>>0<2146435072|2146435072==(0|E)&!1){if((o=0!=(d=2*qc(e,w)))&&(ar[w>>2]=(0|ar[w>>2])-1),97==(0|(m=32|n))){s=0==(0|(k=32&n))?y:y+9|0,b=2|B,o=12-i|0;do{if(!(11>>0|0==(0|o))){for(e=8;e*=16,0!=(0|(o=o+-1|0)););if(45==(0|tr[s>>0])){e=-(e+(-d-e));break}e=d+e-e;break}e=d}while(0);for((0|(o=0|jc(o=(0|(a=0|ar[w>>2]))<0?0-a|0:a,((0|o)<0)<<31>>31,X)))==(0|X)&&(tr[(o=l+11|0)>>0]=48),tr[o+-1>>0]=43+(a>>31&2),tr[(u=o+-2|0)>>0]=n+15,l=(0|i)<1,c=0==(8&f|0),o=I;E=~~e,a=o+1|0,tr[o>>0]=cr[50714+E>>0]|k,e=16*(e-(0|E)),o=1!=(a-W|0)||c&l&0==e?a:(tr[a>>0]=46,o+2|0),0!=e;);E=o-W|0,xc(A,32,r,o=(W=X-u|0)+b+(X=0!=(0|i)&(E+-2|0)<(0|i)?i+2|0:E)|0,f),Tc(A,s,b),xc(A,48,r,o,65536^f),Tc(A,I,E),xc(A,48,X-E|0,0,0),Tc(A,u,W),xc(A,32,r,o,8192^f);break}for(a=(0|i)<0?6:i,o?(o=(0|ar[w>>2])-28|0,ar[w>>2]=o,e=268435456*d):(e=d,o=0|ar[w>>2]),c=E=(0|o)<0?c:c+288|0;Z=~~e>>>0,ar[c>>2]=Z,c=c+4|0,0!=(e=1e9*(e-(Z>>>0))););if(0<(0|o))for(l=E,b=c;;){if(u=(0|o)<29?o:29,l>>>0<=(o=b+-4|0)>>>0){for(c=0;v=0|ub(0|(g=0|tb(0|(g=0|db(0|ar[o>>2],0,0|u)),0|D,0|c,0)),0|(Z=D),1e9,0),ar[o>>2]=v,c=0|lb(0|g,0|Z,1e9,0),l>>>0<=(o=o+-4|0)>>>0;);c&&(ar[(l=l+-4|0)>>2]=c)}for(c=b;!(c>>>0<=l>>>0||0|ar[(o=c+-4|0)>>2]);)c=o;if(o=(0|ar[w>>2])-u|0,!(0<(0|(ar[w>>2]=o))))break;b=c}else l=E;if((0|o)<0){i=1+((a+25|0)/9|0)|0,h=102==(0|m);do{if(k=(0|(k=0-o|0))<9?k:9,l>>>0>>0){for(u=(1<>>k,s=0,o=l;Z=0|ar[o>>2],ar[o>>2]=(Z>>>k)+s,s=0|br(Z&u,b),(o=o+4|0)>>>0>>0;);o=0==(0|ar[l>>2])?l+4|0:l,o=s?(ar[c>>2]=s,l=o,c+4|0):(l=o,c)}else l=0==(0|ar[l>>2])?l+4|0:l,o=c;c=(0|i)<(o-(c=h?E:l)>>2|0)?c+(i<<2)|0:o,o=(0|ar[w>>2])+k|0,ar[w>>2]=o}while((0|o)<0);o=l,i=c}else o=l,i=c;if(Z=E,o>>>0>>0){if(c=9*(Z-o>>2)|0,10<=(u=0|ar[o>>2])>>>0)for(l=10;c=c+1|0,(l=10*l|0)>>>0<=u>>>0;);}else c=0;if((0|(l=a-(102!=(0|m)?c:0)+(((v=0!=(0|a))&(h=103==(0|m)))<<31>>31)|0))<((9*(i-Z>>2)|0)-9|0)){if(k=E+4+(((0|(l=l+9216|0))/9|0)-1024<<2)|0,(0|(l=1+((0|l)%9|0)|0))<9)for(u=10;u=10*u|0,9!=(0|(l=l+1|0)););else u=10;if((l=(k+4|0)==(0|i))&0==(0|(s=((b=0|ar[k>>2])>>>0)%(u>>>0)|0)))l=k;else if(d=0==(1&((b>>>0)/(u>>>0)|0)|0)?9007199254740992:9007199254740994,e=s>>>0<(g=(0|u)/2|0)>>>0?.5:l&(0|s)==(0|g)?1:1.5,B&&(e=(g=45==(0|tr[y>>0]))?-e:e,d=g?-d:d),l=b-s|0,ar[k>>2]=l,d+e!=d){if(g=l+u|0,999999999<(ar[k>>2]=g)>>>0)for(c=k;(l=c+-4|0)>>>(ar[c>>2]=0)>>0&&(ar[(o=o+-4|0)>>2]=0),g=1+(0|ar[l>>2])|0,999999999<(ar[l>>2]=g)>>>0;)c=l;else l=k;if(c=9*(Z-o>>2)|0,10<=(b=0|ar[o>>2])>>>0)for(u=10;c=c+1|0,(u=10*u|0)>>>0<=b>>>0;);}else l=k;l=(l=l+4|0)>>>0>>0?l:i,g=o}else l=i,g=o;for(m=l;;){if(m>>>0<=g>>>0){w=0;break}if(0|ar[(o=m+-4|0)>>2]){w=1;break}m=o}i=0-c|0;do{if(h){if(a=(0|c)<(0|(o=(1&(1^v))+a|0))&-5<(0|c)?(u=n+-1|0,o+-1-c|0):(u=n+-2|0,o+-1|0),!(o=8&f)){if(w&&0!=(0|(p=0|ar[m+-4>>2])))if((p>>>0)%10|0)l=0;else for(l=0,o=10;l=l+1|0,!((p>>>0)%((o=10*o|0)>>>0)|0););else l=9;if(o=(9*(m-Z>>2)|0)-9|0,102==(32|u)){a=(0|a)<(0|(k=0<(0|(k=o-l|0))?k:0))?a:k,k=0;break}a=(0|a)<(0|(k=0<(0|(k=o+c-l|0))?k:0))?a:k,k=0;break}k=o}else u=n,k=8&f}while(0);if(b=0!=(0|(h=a|k))&1,s=102==(32|u))o=(v=0)<(0|c)?c:0;else{if(((l=X)-(o=0|jc(o=(0|c)<0?i:c,((0|o)<0)<<31>>31,X))|0)<2)for(;tr[(o=o+-1|0)>>0]=48,(l-o|0)<2;);tr[o+-1>>0]=43+(c>>31&2),tr[(o=o+-2|0)>>0]=u,o=l-(v=o)|0}if(xc(A,32,r,o=B+1+a+b+o|0,f),Tc(A,y,B),xc(A,48,r,o,65536^f),s){b=k=I+9|0,s=I+8|0,l=u=E>>>0>>0?E:g;do{if(c=0|jc(0|ar[l>>2],0,k),(0|l)==(0|u))(0|c)==(0|k)&&(tr[s>>0]=48,c=s);else if(I>>>0>>0)for(vb(0|I,48,c-W|0);I>>>0<(c=c+-1|0)>>>0;);Tc(A,c,b-c|0),l=l+4|0}while(l>>>0<=E>>>0);if(0|h&&Tc(A,50730,1),l>>>0>>0&0<(0|a))for(;;){if(I>>>0<(c=0|jc(0|ar[l>>2],0,k))>>>0)for(vb(0|I,48,c-W|0);I>>>0<(c=c+-1|0)>>>0;);if(Tc(A,c,(0|a)<9?a:9),c=a+-9|0,!((l=l+4|0)>>>0>>0&9<(0|a))){a=c;break}a=c}xc(A,48,a+9|0,9,0)}else{if(h=w?m:g+4|0,-1<(0|a)){k=0==(0|k),i=w=I+9|0,b=0-W|0,s=I+8|0,u=g;do{(0|(c=0|jc(0|ar[u>>2],0,w)))==(0|w)&&(tr[s>>0]=48,c=s);do{if((0|u)==(0|g)){if(l=c+1|0,Tc(A,c,1),k&(0|a)<1){c=l;break}Tc(A,50730,1),c=l}else{if(c>>>0<=I>>>0)break;for(vb(0|I,48,c+b|0);I>>>0<(c=c+-1|0)>>>0;);}}while(0);Tc(A,c,(0|(W=i-c|0))<(0|a)?W:a),a=a-W|0,u=u+4|0}while(u>>>0>>0&-1<(0|a))}xc(A,48,a+18|0,18,0),Tc(A,v,X-v|0)}xc(A,32,r,o,8192^f)}else I=0!=(32&n|0),xc(A,32,r,o=B+3|0,-65537&f),Tc(A,y,B),Tc(A,e!=e|!1?I?52899:50710:I?50702:50706,3),xc(A,32,r,o,8192^f)}while(0);return ur=t,0|((0|o)<(0|r)?r:o)}function Kc(A){A=+A;var e;return Q[d>>3]=A,e=0|ar[d>>2],D=0|ar[d+4>>2],0|e}function qc(A,e){return+ +function A(e,r){e=+e;r|=0;var i=0,f=0,n=0;Q[d>>3]=e;i=0|ar[d>>2];f=0|ar[d+4>>2];n=0|sb(0|i,0|f,52);switch(2047&n){case 0:i=0!=e?(e=+A(0x10000000000000000*e,r),(0|ar[r>>2])-64|0):0,ar[r>>2]=i;break;case 2047:break;default:ar[r>>2]=(2047&n)-1022,ar[d>>2]=i,ar[d+4>>2]=-2146435073&f|1071644672,e=+Q[d>>3]}return+e}(A=+A,e|=0)}function $c(A,e){A|=0,e|=0;do{if(A){if(e>>>0<128){tr[A>>0]=e,A=1;break}if(!(0|ar[ar[10488>>2]>>2])){if(57216==(-128&e|0)){tr[A>>0]=e,A=1;break}ar[(A=10364)>>2]=84,A=-1;break}if(e>>>0<2048){tr[A>>0]=e>>>6|192,tr[A+1>>0]=63&e|128,A=2;break}if(e>>>0<55296|57344==(-8192&e|0)){tr[A>>0]=e>>>12|224,tr[A+1>>0]=e>>>6&63|128,tr[A+2>>0]=63&e|128,A=3;break}if((e+-65536|0)>>>0<1048576){tr[A>>0]=e>>>18|240,tr[A+1>>0]=e>>>12&63|128,tr[A+2>>0]=e>>>6&63|128,tr[A+3>>0]=63&e|128,A=4;break}ar[(A=10364)>>2]=84,A=-1;break}A=1}while(0);return 0|A}function Al(A,e){var r;return r=0|kb(0|(A|=0)),0|(0==(0|(e|=0))?A:r)}function el(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0;(f=0|ar[(i=(r|=0)+16|0)>>2])?n=5:0|rl(r)?i=0:(f=0|ar[i>>2],n=5);A:do{if(5==(0|n)){if((f-(i=t=0|ar[(o=r+20|0)>>2])|0)>>>0>>0){i=0|xb[63&ar[r+36>>2]](r,A,e);break}e:do{if(-1<(0|tr[r+75>>0])){for(t=e;;){if(!t){n=0,f=A;break e}if(10==(0|tr[A+(f=t+-1|0)>>0]))break;t=f}if((i=0|xb[63&ar[r+36>>2]](r,A,t))>>>0>>0)break A;f=A+(n=t)|0,e=e-t|0,i=0|ar[o>>2]}else n=0,f=A}while(0);hb(0|i,0|f,0|e),ar[o>>2]=(0|ar[o>>2])+e,i=n+e|0}}while(0);return 0|i}function rl(A){var e=0,r=0;return r=0|tr[(e=(A|=0)+74|0)>>0],tr[e>>0]=r+255|r,0|(A=8&(e=0|ar[A>>2])?(ar[A>>2]=32|e,-1):(ar[A+8>>2]=0,r=(ar[A+4>>2]=0)|ar[A+44>>2],ar[A+28>>2]=r,ar[A+20>>2]=r,ar[A+16>>2]=r+(0|ar[A+48>>2]),0))}function il(A,e,r){var i,f,n;return 0|(0|(i=A|=0,f=e|=0,n=r|=0,0|(n=0|fl(i|=0,f|=0,n|=0,-1,-1))))}function fl(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a;return t=ur=(a=ur)+31&-32,ur=ur+128|0,ar[t>>2]=0,ar[(o=4+t|0)>>2]=A,ar[44+t>>2]=A,ar[(n=8+t|0)>>2]=(0|A)<0?-1:A+2147483647|0,ar[76+t>>2]=-1,nl(t,0),r=0|wi(t,r,1,i,f),0|e&&(ar[e>>2]=A+((0|ar[o>>2])+(0|ar[108+t>>2])-(0|ar[n>>2]))),ur=a,0|r}function nl(A,e){e|=0;var r,i,f;ar[(A|=0)+104>>2]=e,f=(r=0|ar[A+8>>2])-(i=0|ar[A+4>>2])|0,ar[A+108>>2]=f,ar[A+100>>2]=0!=(0|e)&(0|e)<(0|f)?i+e|0:r}function tl(A){switch(0|(A|=0)){case 15:case 13:case 11:return 0|(A=1);case 14:case 12:case 10:case 3:case 2:case 1:case 0:case 99:return(A=0)|A;default:sr(55739,25597,495,25802)}return 0}function ol(A,e,r,i){A|=0,e|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(!(r|=0))return t=0|ar[e>>2],(f=0|ar[e+4>>2])||(A=0|X(4),ar[A>>2]=17536,I(0|A,3920,421)),(n=0|function(A){var e,r=0,i=0;r=0|ar[(e=4+(A|=0)|0)>>2];for(;;){if(-1==(0|r)){A=0;break}if((0|(i=0|ar[e>>2]))==(0|r)&&(ar[e>>2]=r+1),(0|i)==(0|r))break;r=i}return 0|A}(f))||(A=0|X(4),ar[A>>2]=17536,I(0|A,3920,421)),ar[i>>2]=t,f=0|ar[(e=i+4|0)>>2],ar[e>>2]=n,0|f&&du(f),Z=0|ar[(g=56592)+4>>2],ar[(e=A)>>2]=ar[g>>2],ar[e+4>>2]=Z,void yu(A+8|0,56600);switch(f=0|ar[e+24>>2],n=0|ar[e+28>>2],g=90==(0|r),Z=270==(0|r),0|r){case 90:case 270:l=n;break;default:l=f,f=n}o=0|hu(80),ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o>>2]=6208,ar[(n=o+12|0)>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,ar[n+12>>2]=0,ar[n+16>>2]=0,ar[o+32>>2]=32215,ar[o+36>>2]=0,ar[o+40>>2]=0,ar[o+44>>2]=99,ar[o+48>>2]=99,c=o+52|0,ar[(a=o+72|0)>>2]=0,ar[o+76>>2]=0,ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c+12>>2]=0,ar[o+68>>2]=a,a=n,m=(c=o)+16|0,bu(o),su(o),t=0|ar[m>>2],ar[n>>2]=a,ar[m>>2]=c,0|t&&ku(t),du(o),ar[i>>2]=a,t=0|ar[(m=i+4|0)>>2],ar[m>>2]=c,t?(du(t),n=0|ar[(m=i)>>2]):m=i,v=0|ar[e+32>>2],w=0|ar[e+36>>2],ar[n+24>>2]=l,ar[n+28>>2]=f,ar[n+32>>2]=v,ar[n+36>>2]=w,f=0|ar[e+56>>2],w=e+60|0;A:do{if((0|f)!=(0|w))for(v=180==(0|r),h=f;;){switch(c=0|ar[h+16>>2],f=0|ar[(o=h+24|0)>>2],n=0|ar[(a=h+28|0)>>2],0|r){case 90:case 270:t=f,f=n;break;default:t=n}if(l=h+20|0,Bo(0|ar[m>>2],c,f,t,0|cr[l>>0]),k=0|ar[o>>2],b=0|ar[a>>2],s=0|ar[h+48>>2],d=0|ar[h+40>>2],o=60+(0|ar[m>>2])|0,n=0|ar[o>>2]){f=o;e:for(;;){for(t=n;!((0|ar[t+16>>2])>=(0|c));){if(!(n=0|ar[t+4>>2]))break e;t=n}if(!(n=0|ar[t>>2])){f=t;break}f=t}i=(0|f)!=(0|o)&&(0|ar[f+16>>2])<=(0|c)?(u=0|ar[f+40>>2],0|ar[f+48>>2]):u=0}else i=u=0;f=0<(0|b);e:do{if(8==(0|tr[l>>0])){if(Z){if(!f)break;if(t=b+-1|0,!(0<(0|k)))break;for(n=0;;){for(o=0|br(t-n|0,s),f=0;l=u+((0|br(f,i))+n)|0,tr[l>>0]=0|tr[d+(f+o)>>0],(0|(f=f+1|0))!=(0|k););if((0|(n=n+1|0))==(0|b))break e}}if(v){if(!f)break;if(t=b+-1|0,o=k+-1|0,!(0<(0|k)))break;n=0;do{for(a=o+(0|br(t-n|0,s))|0,c=0|br(n,i),f=0;tr[u+(f+c)>>0]=0|tr[d+(a-f)>>0],(0|(f=f+1|0))!=(0|k););n=n+1|0}while((0|n)!=(0|b))}else{if(!(g&f))break;if(t=k+-1|0,!(0<(0|k)))break;n=0;do{for(o=t+(0|br(n,s))|0,f=0;l=u+((0|br(f,i))+n)|0,tr[l>>0]=0|tr[d+(o-f)>>0],(0|(f=f+1|0))!=(0|k););n=n+1|0}while((0|n)!=(0|b))}}else{if(Z){if(!f)break;if(t=b+-1|0,!(0<(0|k)))break;for(n=0;;){for(o=0|br(t-n|0,s),a=n<<1,f=0;c=(f<<1)+o|0,l=(0|br(f,i))+a|0,tr[u+l>>0]=0|tr[d+c>>0],tr[u+(l+1)>>0]=0|tr[d+(c+1)>>0],(0|(f=f+1|0))!=(0|k););if((0|(n=n+1|0))==(0|b))break e}}if(v){if(!f)break;if(t=b+-1|0,o=k+-1|0,!(0<(0|k)))break;n=0;do{for(a=0|br(t-n|0,s),c=0|br(n,i),f=0;p=(o-f<<1)+a|0,tr[u+(l=(f<<1)+c|0)>>0]=0|tr[d+p>>0],tr[u+(l+1)>>0]=0|tr[d+(p+1)>>0],(0|(f=f+1|0))!=(0|k););n=n+1|0}while((0|n)!=(0|b))}else{if(!(g&f))break;if(t=k+-1|0,!(0<(0|k)))break;f=0;do{for(o=0|br(f,s),a=f<<1,n=0;l=(t-n<<1)+o|0,p=(0|br(n,i))+a|0,tr[u+p>>0]=0|tr[d+l>>0],tr[u+(p+1)>>0]=0|tr[d+(l+1)>>0],(0|(n=n+1|0))!=(0|k););f=f+1|0}while((0|f)!=(0|b))}}}while(0);if(f=0|ar[h+4>>2])for(;n=0|ar[f>>2];)f=n;else if(f=0|ar[(n=h+8|0)>>2],(0|ar[f>>2])!=(0|h))for(;p=0|ar[n>>2],f=0|ar[(n=p+8|0)>>2],(0|ar[f>>2])!=(0|p););if((0|f)==(0|w))break A;h=f}}while(0);f=0|ar[m>>2],n=0|ar[e+40>>2],(o=0==(0|(t=0|ar[e+44>>2])))||(bu(t),bu(t)),ar[f+40>>2]=n,f=0|ar[(p=f+44|0)>>2],ar[p>>2]=t,0|f&&du(f),o||du(t),f=0|ar[m>>2],n=0|ar[e+48>>2],(o=0==(0|(t=0|ar[e+52>>2])))||(bu(t),bu(t)),ar[f+48>>2]=n,f=0|ar[(p=f+52|0)>>2],ar[p>>2]=t,0|f&&du(f),o||du(t),e=0|ar[(Z=56592)+4>>2],ar[(p=A)>>2]=ar[Z>>2],ar[p+4>>2]=e,yu(A+8|0,56600)}function al(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0;ur=(f=ur)+16|0,w=f,n=0|ar[(e|=0)+56>>2],i=e+60|0;A:do{if((0|n)!=(0|i)){for(;8==(0|tr[n+20>>0]);){if(c=0|ar[n+24>>2],l=0|ar[n+28>>2],b=0|ar[n+48>>2],s=0|ar[n+40>>2],r){if(0<(0|l)&&(k=(0|c)/2|0,h=c+-1|0,1<(0|c))){t=0;do{for(a=h+(o=0|br(t,b))|0,e=0;u=s+(a-e)|0,c=0|tr[(v=s+(e+o)|0)>>0],tr[v>>0]=0|tr[u>>0],tr[u>>0]=c,(0|(e=e+1|0))<(0|k););t=t+1|0}while((0|t)!=(0|l))}}else if(u=(0|l)/2|0,1<(0|l)&&(d=l+-1|0,0<(0|c))){e=0;do{for(o=0|br(e,b),a=0|br(d-e|0,b),t=0;v=s+(t+a)|0,l=0|tr[(m=s+(t+o)|0)>>0],tr[m>>0]=0|tr[v>>0],tr[v>>0]=l,(0|(t=t+1|0))!=(0|c););e=e+1|0}while((0|e)<(0|u))}if(e=0|ar[n+4>>2])for(;n=0|ar[e>>2];)e=n;else if(e=0|ar[(t=n+8|0)>>2],(0|ar[e>>2])!=(0|n))for(n=t;m=0|ar[n>>2],e=0|ar[(n=m+8|0)>>2],(0|ar[e>>2])!=(0|m););if((0|e)==(0|i))break A;n=e}for(e=0|hu(64),ar[w>>2]=e,ar[w+8>>2]=-2147483584,t=25898,o=(n=e)+(ar[w+4>>2]=54)|0;tr[n>>0]=0|tr[t>>0],t=t+1|0,(0|(n=n+1|0))<(0|o););return(oo(A,4,tr[e+54>>0]=0,w),0<=(0|tr[w+11>>0]))?void(ur=f):(vu(0|ar[w>>2]),void(ur=f))}}while(0);v=0|ar[(w=56592)+4>>2],ar[(m=A)>>2]=ar[w>>2],ar[m+4>>2]=v,yu(A+8|0,56600),ur=f}function cl(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(l=0|hu(80),ar[l+4>>2]=0,ar[l+8>>2]=0,ar[l>>2]=6208,ar[(o=l+12|0)>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,ar[o+16>>2]=0,ar[l+32>>2]=32215,ar[l+36>>2]=0,ar[l+40>>2]=0,ar[l+44>>2]=99,ar[l+48>>2]=99,u=l+52|0,ar[(c=l+72|0)>>2]=0,ar[l+76>>2]=0,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[l+68>>2]=c,c=o,p=(u=l)+16|0,bu(l),su(l),a=0|ar[p>>2],ar[o>>2]=c,ar[p>>2]=u,0|a&&ku(a),du(l),ar[t>>2]=c,a=0|ar[(p=t+4|0)>>2],ar[p>>2]=u,a?(du(a),o=0|ar[(p=t)>>2]):p=t,Z=0|ar[e+32>>2],m=0|ar[e+36>>2],ar[o+24>>2]=1-r+i,ar[o+28>>2]=1-f+n,ar[o+32>>2]=Z,ar[o+36>>2]=m,(0|(o=0|ar[e+56>>2]))!=(0|(m=e+60|0)))for(g=e+24|0,Z=e+28|0,v=o;;){if(u=0|ar[v+16>>2],h=0|ar[v+24>>2],t=0|ar[v+28>>2],b=(0|(b=0|br(h,r)))/(0|(s=0|ar[g>>2]))|0,s=(0|br(h,i))/(0|s)|0,h=(0|(h=0|br(t,f)))/(0|(w=0|ar[Z>>2]))|0,w=(0|br(t,n))/(0|w)|0,s=s-b+1|0,t=v+20|0,Bo(0|ar[p>>2],u,s,1-h+w|0,0|cr[t>>0]),d=0|ar[v+48>>2],k=0|ar[v+40>>2],l=60+(0|ar[p>>2])|0,a=0|ar[l>>2]){o=l;A:for(;;){for(c=a;!((0|ar[c+16>>2])>=(0|u));){if(!(a=0|ar[c+4>>2]))break A;c=a}if(!(a=0|ar[c>>2])){o=c;break}o=c}l=(0|o)!=(0|l)&&(0|ar[o+16>>2])<=(0|u)?(u=0|ar[o+40>>2],0|ar[o+48>>2]):u=0}else l=u=0;if(o=(0|w)<(0|h),8==(0|tr[t>>0])){if(!o)for(o=h;hb(u+(0|br(o-h|0,l))|0,k+((0|br(o,d))+b)|0,0|s),(0|o)<(0|w);)o=o+1|0}else if(!o)for(c=b<<1,a=s<<1,o=h;hb(u+(0|br(o-h|0,l))|0,k+((0|br(o,d))+c)|0,0|a),(0|o)<(0|w);)o=o+1|0;if(o=0|ar[v+4>>2])for(;a=0|ar[o>>2];)o=a;else if(o=0|ar[(a=v+8|0)>>2],(0|ar[o>>2])!=(0|v))for(;v=0|ar[a>>2],o=0|ar[(a=v+8|0)>>2],(0|ar[o>>2])!=(0|v););if((0|o)==(0|m))break;v=o}if(o=0|ar[p>>2],a=0|ar[e+40>>2],(l=0==(0|(c=0|ar[e+44>>2])))||(bu(c),bu(c)),ar[o+40>>2]=a,o=0|ar[(n=o+44|0)>>2],ar[n>>2]=c,0|o&&du(o),l||du(c),o=0|ar[p>>2],a=0|ar[e+48>>2],(l=0==(0|(c=0|ar[e+52>>2])))||(bu(c),bu(c)),ar[o+48>>2]=a,o=0|ar[(e=o+52|0)>>2],ar[e>>2]=c,0|o&&du(o),l)return i=0|ar[(i=n=56592)>>2],n=0|ar[(n=n+4|0)>>2],ar[(f=e=A)>>2]=i,ar[(e=e+4|0)>>2]=n,void yu(A=A+8|0,56600);du(c),i=0|ar[(i=n=56592)>>2],n=0|ar[(n=n+4|0)>>2],ar[(f=e=A)>>2]=i,ar[(e=e+4|0)>>2]=n,yu(A=A+8|0,56600)}function ll(A,e,r,i,f,n){A|=0;var t,o,a,c,l,u,b=0,s=0,d=0,k=0;ur=(u=ur)+32|0,s=u+12|0,k=u,l=(e|=0)+60|0,c=(65535&(i|=0))>>>8&255,a=(65535&(r|=0))>>>8&255,o=(65535&(f|=0))>>>8&255,t=(65535&(n|=0))>>>8&255,n=6228;A:for(;;){if(e=0|ar[l>>2],b=0|ar[n>>2],e){r=l,i=e;e:for(;;){for(e=i;!((0|ar[e+16>>2])>=(0|b));)if(!(e=0|ar[e+4>>2])){e=r;break e}if(!(i=0|ar[e>>2]))break;r=e}if((0|e)!=(0|l)&&(0|b)>=(0|ar[e+16>>2])){if(8!=(0|tr[e+20>>0])){d=13;break}switch(r=0|ar[e+28>>2],f=0|ar[e+48>>2],i=0|ar[e+40>>2],0|b){case 3:e=a;break;case 4:e=c;break;case 5:e=o;break;case 6:e=t;break;default:d=19;break A}vb(0|i,0|e,0|br(f,r))}else d=9}else d=9;if(9==(0|d)&&6!=((d=0)|b)){d=10;break}if(6244==(0|(n=n+4|0))){d=22;break}}if(10==(0|d))return ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,oo(A,5,2002,s),0<=(0|tr[s+11>>0])||vu(0|ar[s>>2]),void(ur=u);if(13==(0|d)){for(e=0|hu(64),ar[k>>2]=e,ar[k+8>>2]=-2147483584,r=25953,f=(i=e)+(ar[k+4>>2]=52)|0;tr[i>>0]=0|tr[r>>0],r=r+1|0,(0|(i=i+1|0))<(0|f););return(oo(A,4,tr[e+52>>0]=0,k),0<=(0|tr[k+11>>0]))?void(ur=u):(vu(0|ar[k>>2]),void(ur=u))}if(19==(0|d))sr(55739,25597,756,26006);else if(22==(0|d))return d=0|ar[(s=56592)+4>>2],ar[(k=A)>>2]=ar[s>>2],ar[k+4>>2]=d,yu(A+8|0,56600),void(ur=u)}function ul(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(ur=(a=ur)+48|0,W=a+12|0,Io(o=(I=a)+24|0,0|ar[(r|=0)>>2]),k=60+(0|ar[r>>2])|0,s=0==(0|(u=0|ar[k>>2])))d=8;else{c=k,b=u;A:for(;;){for(l=b;!(6<=(0|ar[l+16>>2]));)if(!(l=0|ar[l+4>>2]))break A;if(!(b=0|ar[l>>2])){c=l;break}c=l}(0|c)!=(0|k)&&(0|ar[c+16>>2])<=6||(d=8)}if(8==(0|d)&&(c=k),t=(0|c)==(0|k),s)X=0;else{c=k;A:for(;;){for(l=u;!(6<=(0|ar[l+16>>2]));)if(!(l=0|ar[l+4>>2]))break A;if(!(u=0|ar[l>>2])){c=l;break}c=l}X=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=6?0|ar[c+40>>2]:0}c=0|ar[o>>2],n=4+o|0;A:do{if((0|c)!=(0|n)){E=e+60|0,y=(B=(0|i)<0)?0-i|0:0,B=B?0:i,p=(0|f)<0?0-f|0:0,Z=c;e:for(;;){v=0|ar[Z+16>>2],h=0|ar[E>>2];r:do{if(0|h){c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if((0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)){if(k=60+(0|ar[r>>2])|0,b=0==(0|(s=0|ar[k>>2])))g=m=0;else{c=k,u=s;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}g=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=(0|v)?(m=0|ar[c+40>>2],0|ar[c+48>>2]):m=0}c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if(e=(0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)?(w=0|ar[c+48>>2],0|ar[c+40>>2]):w=0,b){d=59;break e}c=k,u=s;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if(d=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+24>>2]:-1,b)s=-1;else{c=k,u=s;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}s=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+28>>2]:-1}if((0|d)<=-1){d=59;break e}if(!(-1<(0|s))){d=61;break e}c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}b=(0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+24>>2]:-1,c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if(c=(0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+28>>2]:-1,(0|b)<=-1){d=78;break e}if((0|c)<=-1){d=80;break e}if(((s=(0|c)<(s+f|0)?c-f|0:s)|(d=(0|b)<(d+i|0)?b-i|0:d)|0)<0){d=82;break e}if(!((0|y)<(0|d)&(0|p)<(0|s))){d=90;break e}if(l=e+B|0,u=m+y|0,b=d-y|0,t){for(c=p;;)if(hb(l+(0|br(c+f|0,w))|0,u+(0|br(c,g))|0,0|b),(0|s)<=(0|(c=c+1|0)))break r}else l=p;do{for(u=(0|br(l+f|0,w))+B|0,b=(0|br(l,g))+y|0,c=y;v=e+(u+c)|0,k=0|cr[X+(h=b+c|0)>>0],h=0|br(k,0|cr[m+h>>0]),h=255&((((0|br(0|cr[v>>0],255^k))+h|0)>>>0)/255|0),tr[v>>0]=h,(0|(c=c+1|0))<(0|d););l=l+1|0}while((0|l)<(0|s))}}}while(0);if(c=0|ar[Z+4>>2])for(;l=0|ar[c>>2];)c=l;else if(c=0|ar[(l=Z+8|0)>>2],(0|ar[c>>2])!=(0|Z))for(;Z=0|ar[l>>2],c=0|ar[(l=Z+8|0)>>2],(0|ar[c>>2])!=(0|Z););if((0|c)==(0|n))break A;Z=c}if(59==(0|d))sr(26021,25597,795,26031);else if(61==(0|d))sr(26039,25597,796,26031);else if(78==(0|d))sr(26049,25597,800,26031);else if(80==(0|d))sr(26060,25597,801,26031);else{if(82==(0|d)){for(ar[W>>2]=0,ar[W+4>>2]=0,c=(ar[W+8>>2]=0)|hu(64),ar[W>>2]=c,ar[W+8>>2]=-2147483584,u=26071,b=(l=c)+(ar[W+4>>2]=54)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););return(tr[c+54>>0]=0,oo(A,2,122,W),0<=(0|tr[W+11>>0]))?(Co(o,A=0|ar[n>>2]),void(ur=a)):(vu(0|ar[W>>2]),Co(o,A=0|ar[n>>2]),void(ur=a))}if(90==(0|d)){for(ar[I>>2]=0,ar[I+4>>2]=0,c=(ar[I+8>>2]=0)|hu(64),ar[I>>2]=c,ar[I+8>>2]=-2147483584,u=26126,b=(l=c)+(ar[I+4>>2]=50)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););return(tr[c+50>>0]=0,oo(A,2,122,I),0<=(0|tr[I+11>>0]))?(Co(o,A=0|ar[n>>2]),void(ur=a)):(vu(0|ar[I>>2]),Co(o,A=0|ar[n>>2]),void(ur=a))}}}}while(0);W=0|ar[(f=56592)+4>>2],ar[(I=A)>>2]=ar[f>>2],ar[I+4>>2]=W,yu(A+8|0,56600),Co(o,A=0|ar[n>>2]),ur=a}function bl(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A|=0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(4144,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}function sl(A,e){e|=0;var r,i,f,n=0,t=0;if(ar[(A|=0)>>2]=0,ar[(f=A+4|0)>>2]=0,(r=(n=((ar[A+8>>2]=0)|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0)>>3)&&(536870911>>0&&zl(),t=0|hu(n),ar[f>>2]=t,ar[A>>2]=t,ar[A+8>>2]=t+(r<<3),(0|(n=0|ar[e>>2]))!=(0|(e=0|ar[i>>2]))))for(;ar[t>>2]=ar[n>>2],A=0|ar[n+4>>2],0|(ar[t+4>>2]=A)&&bu(A),n=n+8|0,t=8+(0|ar[f>>2])|0,ar[f>>2]=t,(0|n)!=(0|e););}function dl(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A|=0)>>2],ar[f>>2]=ar[e>>2],e=0|cA(4144,0|f),ar[f>>2]=ar[r>>2],r=0|cA(4152,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}function kl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;f=0|ar[(u=(A|=0)+4|0)>>2],c=n=0|ar[A>>2],536870911<(t=1+(r=f-n>>3)|0)>>>0&&zl(),o=(l=(0|ar[(i=A+8|0)>>2])-n|0)>>2,o=l>>3>>>0<268435455?o>>>0>>0?t:o:536870911;do{if(o){if(!(536870911>>0)){a=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else a=0}while(0);if(l=a+(o<<3)|0,ar[(t=n=a+(r<<3)|0)>>2]=ar[e>>2],o=0|ar[e+4>>2],o=(ar[a+(r<<3)+4>>2]=o)?(bu(o),f=0|ar[u>>2],0|ar[A>>2]):c,a=n+8|0,(0|f)!=(0|o)){for(;f=(c=f)+-8|0,ar[n+-8>>2]=ar[f>>2],c=c+-4|0,ar[n+-4>>2]=ar[c>>2],ar[f>>2]=0,t=n=t+-8|(ar[c>>2]=0),(0|f)!=(0|o););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=l,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function hl(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))}function wl(A,e){var r=0,i=0,f=0,n=0,t=0,o=0,a=0;if((e|=0)>>>0<=(f=0|ar[(o=(A|=0)+8|0)>>2])-(r=0|ar[(a=A+4|0)>>2])>>3>>>0)for(;ar[(o=r)>>2]=0,r=8+((ar[o+4>>2]=0)|ar[a>>2])|0,ar[a>>2]=r,0!=(0|(e=e+-1|0)););else{536870911<(r=(n=r-(i=0|ar[A>>2])>>3)+e|0)>>>0&&zl(),t=(f=f-i|0)>>2,r=f>>3>>>0<268435455?t>>>0>>0?r:t:536870911;do{if(r){if(!(536870911>>0)){i=0|hu(r<<3);break}Zu(a=0|X(8),44519),ar[a>>2]=17660,I(0|a,4016,428)}else i=0}while(0);for(t=i+(n<<3)|0,n=i+(r<<3)|0,f=r=t;ar[(i=r)>>2]=0,f=r=f+8|(ar[i+4>>2]=0),0!=(0|(e=e+-1|0)););e=0|ar[A>>2],r=t+(0-((i=(0|ar[a>>2])-e|0)>>3)<<3)|0,0<(0|i)&&hb(0|r,0|e,0|i),ar[A>>2]=r,ar[a>>2]=f,ar[o>>2]=n,e&&vu(e)}}function vl(A,e){A|=0,(e|=0)&&(vl(A,0|ar[e>>2]),vl(A,0|ar[e+4>>2]),0|(A=0|ar[e+24>>2])&&du(A),vu(e))}function ml(A,e){return A|=0,(e|=0)&&(ml(A,0|ar[e>>2]),ml(A,0|ar[e+4>>2]),void vu(e))}function gl(A){var e,r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(f=ur)+16|0,e=f,(0|(n=0|ar[(r=(A|=0)+28|0)>>2]))!=(0|(i=A+32|0)))for(s=b=e+4|0,u=n;;){if(a=0|ar[u+20>>2],(l=0==(0|(c=0|ar[u+24>>2])))||bu(c),sl(e,a+48|0),o=0|ar[e>>2],(0|(n=0|ar[b>>2]))==(0|o))n=o;else{for(;t=n+-8|0,ar[b>>2]=t,(0|(n=(n=0|ar[n+-4>>2])?(du(n),0|ar[b>>2]):t))!=(0|o););n=0|ar[e>>2]}if(0|n){if((0|o)!=(0|n)){for(;t=o+-8|0,ar[b>>2]=t,(o=0|ar[o+-4>>2])&&(du(o),t=0|ar[b>>2]),(0|t)!=(0|n);)o=t;n=0|ar[e>>2]}vu(n)}if(n=(ar[a+68>>2]=0)|ar[(o=a+72|0)>>2],(ar[o>>2]=0)|n&&du(n),n=(ar[a+84>>2]=0)|ar[(o=a+88|0)>>2],(ar[o>>2]=0)|n&&du(n),sl(e,a+172|0),o=0|ar[e>>2],(0|(n=0|ar[s>>2]))==(0|o))n=o;else{for(;t=n+-8|0,ar[s>>2]=t,(0|(n=(n=0|ar[n+-4>>2])?(du(n),0|ar[s>>2]):t))!=(0|o););n=0|ar[e>>2]}if(0|n){if((0|o)!=(0|n)){for(;t=o+-8|0,ar[s>>2]=t,(o=0|ar[o+-4>>2])&&(du(o),t=0|ar[s>>2]),(0|t)!=(0|n);)o=t;n=0|ar[e>>2]}vu(n)}if(l||du(c),n=0|ar[u+4>>2])for(;t=0|ar[n>>2];)n=t;else if(n=0|ar[(t=u+8|0)>>2],(0|ar[n>>2])!=(0|u))for(;u=0|ar[t>>2],n=0|ar[(t=u+8|0)>>2],(0|ar[n>>2])!=(0|u););if((0|n)==(0|i))break;u=n}if(0|(n=0|ar[A+64>>2])&&du(n),0|(n=0|ar[A+56>>2])&&du(n),0|(n=0|ar[(a=A+40|0)>>2])){if((0|(t=0|ar[(c=A+44|0)>>2]))!=(0|n)){for(;o=t+-8|0,ar[c>>2]=o,(0|(t=(t=0|ar[t+-4>>2])?(du(t),0|ar[c>>2]):o))!=(0|n););n=0|ar[a>>2]}vu(n)}vl(r,0|ar[i>>2]),ml(A+16|0,0|ar[A+20>>2]),ur=(0<=(0|tr[A+11>>0])||vu(0|ar[A>>2]),f)}function Zl(A,e){A|=0;var r=0,i=0,f=0,n=0,t=0;if(r=0|ar[(e|=0)>>2]){n=(r=0|qu(r,416,400,0))?(0|(f=i=0|ar[e+4>>2])&&bu(i),r?(ar[A+204>>2]=r,r=0|ar[(n=A+208|0)>>2],ar[n>>2]=f,r&&du(r),0):f):0,r=0|ar[e>>2];do{if(0|r&&0|(t=0|qu(r,416,440,0))){if(i=t,0|(f=r=0|ar[e+4>>2])&&bu(r),t){if(ar[A+196>>2]=i,r=0|ar[(t=A+200|0)>>2],ar[t>>2]=f,!r)break;du(r);break}if(!r)break;du(r);break}}while(0);n&&du(n)}}function pl(A,e){A|=0,e|=0;var r,i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+32|0,ar[(n=(i=o)+8|0)>>2]=0,ar[(t=4+n|0)>>2]=0,((ar[8+n>>2]=0)|(a=0|ar[(f=A+40|0)>>2]))!=(0|(r=0|ar[A+44>>2]))){l=i+4|0,u=8+n|0;do{c=0|ar[a>>2],ar[i>>2]=c,A=0|ar[a+4>>2],A=(ar[l>>2]=A)?(bu(A),c=0|ar[i>>2]):c;do{if((0|A)!=(0|ar[e>>2])){if((0|(A=0|ar[t>>2]))==(0|ar[u>>2])){kl(n,i);break}ar[A>>2]=c,c=0|ar[l>>2],(ar[A+4>>2]=c)&&(bu(c),A=0|ar[t>>2]),ar[t>>2]=A+8}}while(0);0|(A=0|ar[l>>2])&&du(A),a=a+8|0}while((0|a)!=(0|r))}if((0|f)!=(0|n)&&function(A,e,r){var i=0,f=0,n=0,t=0,o=0,a=0,c=0;if(o=(r|=0)-(e|=0)>>3,i=0|ar[(a=8+(A|=0)|0)>>2],n=0|ar[A>>2],o>>>0>i-(f=n)>>3>>>0){if(n){if((0|(i=0|ar[(t=A+4|0)>>2]))==(0|f))i=n;else{for(n=i;i=n+-8|0,ar[t>>2]=i,(n=0|ar[n+-4>>2])&&(du(n),i=0|ar[t>>2]),(0|i)!=(0|f);)n=i;i=0|ar[A>>2]}vu(i),ar[a>>2]=0,ar[t>>2]=0,ar[A>>2]=0,i=0}if(536870911>>0&&zl(),f=i>>2,536870911<(f=i>>3>>>0<268435455?f>>>0>>0?o:f:536870911)>>>0&&zl(),i=0|hu(f<<3),ar[(n=A+4|0)>>2]=i,ar[A>>2]=i,ar[a>>2]=i+(f<<3),(0|e)==(0|r))return;for(;ar[i>>2]=ar[e>>2],f=0|ar[e+4>>2],0|(ar[i+4>>2]=f)&&bu(f),e=e+8|0,i=8+(0|ar[n>>2])|0,ar[n>>2]=i,(0|e)!=(0|r););return}if(i=(0|ar[(a=A+4|0)>>2])-n>>3,A=i>>>0>>0,i=e+(i<<3)|0,(0|(o=A?i:r))==(0|e))e=f;else{for(;n=0|ar[e>>2],0|(t=0|ar[e+4>>2])&&bu(t),ar[f>>2]=n,n=0|ar[(c=f+4|0)>>2],ar[c>>2]=t,0|n&&du(n),f=f+8|0,(0|(e=e+8|0))!=(0|o););e=f}if(!A){if((0|(i=0|ar[a>>2]))==(0|e))return;for(;f=i+-8|0,ar[a>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[a>>2]):f))!=(0|e););return}if((0|o)==(0|r))return;f=0|ar[a>>2];for(;ar[f>>2]=ar[i>>2],e=0|ar[i+4>>2],0|(ar[f+4>>2]=e)&&bu(e),i=i+8|0,f=8+(0|ar[a>>2])|0,ar[a>>2]=f,(0|i)!=(0|r););}(f,0|ar[n>>2],0|ar[t>>2]),A=0|ar[n>>2]){if((0|(a=0|ar[t>>2]))!=(0|A)){for(;c=a+-8|0,ar[t>>2]=c,(0|(a=(a=0|ar[a+-4>>2])?(du(a),0|ar[t>>2]):c))!=(0|A););A=0|ar[n>>2]}vu(A),ur=o}else ur=o}function yl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function Bl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function El(A){var e=0,r=0,i=0,f=0,n=0;if(0|(e=0|ar[(A|=0)+208>>2])&&du(e),0|(e=0|ar[A+200>>2])&&du(e),0|(e=0|ar[(n=A+184|0)>>2])){if((0|(r=0|ar[(f=A+188|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[f>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[f>>2]):i))!=(0|e););e=0|ar[n>>2]}vu(e)}if(0|(e=0|ar[(f=A+172|0)>>2])){if((0|(r=0|ar[(n=A+176|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[n>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[n>>2]):i))!=(0|e););e=0|ar[f>>2]}vu(e)}if((0|tr[(e=A+160|0)+11>>0])<0&&vu(0|ar[e>>2]),0|(e=0|ar[A+88>>2])&&du(e),0|(e=0|ar[A+72>>2])&&du(e),0|(e=0|ar[(f=A+48|0)>>2])){if((0|(r=0|ar[(n=A+52|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[n>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[n>>2]):i))!=(0|e););e=0|ar[f>>2]}vu(e)}0<=(0|tr[A+11>>0])||vu(0|ar[A>>2])}function Xl(A,e,r,i,f,n){A|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0;ur=(k=ur)+272|0,s=k+96|0,B=k+236|0,U=k+72|0,S=k+48|0,t=k+24|0,I=k+224|0,C=(o=k)+200|0,F=k+212|0,G=k+188|0,W=k+176|0,V=k+168|0,R=k+152|0,y=k+140|0,a=k+128|0,b=k+116|0,ho(d=k+248|0,0|ar[(N=(e|=0)+60|0)>>2],r),(Z=0|ar[(c=e+32|0)>>2])?(v=c,g=Z):sr(31354,30203,1047,31362);A:for(;;){for(m=g;!((0|ar[m+16>>2])>>>0>=r>>>0);)if(!(m=0|ar[m+4>>2]))break A;if(!(g=0|ar[m>>2])){v=m;break}v=m}(0|v)==(0|c)&&sr(31354,30203,1047,31362),(0|ar[v+16>>2])>>>0>r>>>0?sr(31354,30203,1047,31362):(w=c,p=Z);A:for(;;){for(v=p;!((0|ar[v+16>>2])>>>0>=r>>>0);)if(!(v=0|ar[v+4>>2]))break A;if(!(p=0|ar[v>>2])){w=v;break}w=v}(0|w)!=(0|c)&&(0|ar[w+16>>2])>>>0<=r>>>0||(w=c),v=0|ar[w+20>>2],0|(u=0|ar[w+24>>2])&&bu(u),(E=v)||sr(31354,30203,1047,31362),h=s,ar[(h|=0)>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=0,ar[h+12>>2]=0,v=(ar[h+16>>2]=0)|tr[(l=11+d|0)>>0],w=0|ar[(m=4+d|0)>>2],M=4==(0|(v<<24>>24<0?w:255&v))?0|Yu(d,0,-1,30298,4)?(v=0|tr[l>>0],w=0|ar[m>>2],22):25:22;A:do{if(22==(0|M)){if(4==(0|(v<<24>>24<0?w:255&v))){if(!(0|Yu(d,0,-1,30318,4))){M=25;break}v=0|tr[l>>0],w=0|ar[m>>2]}do{if(4==(0|(v<<24>>24<0?w:255&v))){if(0|Yu(d,0,-1,30303,4)){v=0|tr[l>>0],w=0|ar[m>>2];break}if(ar[U>>2]=0,ar[(g=U+4|0)>>2]=0,mo(S,(ar[U+8>>2]=0)|ar[N>>2],r,U),w=0|ar[(m=S)+4>>2],ar[(v=s)>>2]=ar[m>>2],ar[v+4>>2]=w,w=S+8|0,(0|tr[(m=(v=8+s|0)+11|0)>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break A}if(Wl(S,e,r,i,U),J=0|ar[(D=S)+4>>2],ar[(w=s)>>2]=ar[D>>2],ar[w+4>>2]=J,w=S+8|0,(0|tr[m>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break A}0|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w)),M=178;break A}}while(0);do{if(4==(0|(v<<24>>24<0?w:255&v))){if(0|Yu(d,0,-1,30308,4)){v=0|tr[l>>0],w=0|ar[m>>2];break}if(Il(U,e,r,i),v=0|ar[(m=U)+4>>2],ar[(w=s)>>2]=ar[m>>2],ar[w+4>>2]=v,v=U+8|0,(0|tr[(m=(w=8+s|0)+11|0)>>0])<0?(tr[ar[w>>2]>>0]=0,ar[12+s>>2]=0):(tr[w>>0]=0,tr[m>>0]=0),Cu(w,0),ar[w>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],!(0|ar[s>>2])){M=178;break A}U=0|ar[(i=s)+4>>2],ar[(S=A)>>2]=ar[i>>2],ar[S+4>>2]=U,ar[(A=A+8|0)>>2]=ar[w>>2],ar[A+4>>2]=ar[w+4>>2],ar[A+8>>2]=ar[w+8>>2],ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0;break A}}while(0);if(4==(0|(v<<24>>24<0?w:255&v))&&0==(0|Yu(d,0,-1,30313,4))){if(ar[U>>2]=0,ar[(g=U+4|0)>>2]=0,mo(S,(ar[U+8>>2]=0)|ar[N>>2],r,U),w=0|ar[(m=S)+4>>2],ar[(v=s)>>2]=ar[m>>2],ar[v+4>>2]=w,w=S+8|0,(0|tr[(m=(v=8+s|0)+11|0)>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break}if(Cl(S,e,r,i,U),J=0|ar[(D=S)+4>>2],ar[(w=s)>>2]=ar[D>>2],ar[w+4>>2]=J,w=S+8|0,(0|tr[m>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break}0|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w)),M=178;break}ar[y>>2]=0,ar[y+4>>2]=0,ar[y+8>>2]=0,oo(A,4,3001,y),(0|tr[y+11>>0])<0&&vu(0|ar[y>>2])}}while(0);do{if(25==(0|M)){if(v=0|tr[l>>0],w=0|ar[m>>2],4==(0|(v<<24>>24<0?w:255&v))?0|Yu(d,0,-1,30298,4)?(v=0|tr[l>>0],w=0|ar[m>>2],M=28):p=1:M=28,28==(0|M)&&(p=4==(0|(v<<24>>24<0?w:255&v))&&(p=0==(0|Yu(d,0,-1,30318,4)))?4:0),m=(w=0|Rl(p))?0|jb[127&ar[w+16>>2]](p):0,(0|(v=0|ar[e+16>>2]))==(0|(y=e+20|0)))g=w;else{do{if(D=0|ar[v+16>>2],w=(J=(0|m)<(0|(g=0|jb[127&ar[D+16>>2]](p))))?D:w,m=J?g:m,g=0|ar[v+4>>2])for(v=g;g=0|ar[v>>2];)v=g;else if(Z=0|ar[(g=v+8|0)>>2],(0|ar[Z>>2])==(0|v))v=Z;else for(;J=0|ar[g>>2],v=0|ar[(g=J+8|0)>>2],(0|ar[v>>2])!=(0|J););}while((0|v)!=(0|y));g=w}if(!g){if(ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,oo(A,4,3e3,B),0<=(0|tr[B+11>>0]))break;vu(0|ar[B>>2]);break}if(ar[U>>2]=0,ar[(X=U+4|0)>>2]=0,mo(S,(ar[U+8>>2]=0)|ar[N>>2],r,U),v=0|ar[(m=S)+4>>2],ar[(w=s)>>2]=ar[m>>2],ar[w+4>>2]=v,v=S+8|0,(0|tr[(m=(w=8+s|0)+11|0)>>0])<0?(tr[ar[w>>2]>>0]=0,ar[12+s>>2]=0):(tr[w>>0]=0,tr[m>>0]=0),Cu(w,0),ar[w>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],0|ar[s>>2])D=0|ar[(Q=s)+4>>2],ar[(J=A)>>2]=ar[Q>>2],ar[J+4>>2]=D,ar[(J=A+8|0)>>2]=ar[w>>2],ar[J+4>>2]=ar[w+4>>2],ar[J+8>>2]=ar[w+8>>2],ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,w=1;else{fs[63&ar[g+20>>2]](t,S),Z=0|ar[t>>2];do{if(Z)m=0|ar[4+t>>2],v=0|ar[8+t>>2],ar[I>>2]=0,ar[I+4>>2]=0,4294967279<(g=(ar[I+8>>2]=0)|Vc(v))>>>0&&pu(),g>>>0<11?(tr[I+11>>0]=g)?(w=I,M=53):w=I:(w=0|hu(M=g+16&-16),ar[I>>2]=w,ar[I+8>>2]=-2147483648|M,ar[I+4>>2]=g,M=53),53==(0|M)&&hb(0|w,0|v,0|g),tr[w+g>>0]=0,oo(A,Z,m,I),w=((0|tr[I+11>>0])<0&&vu(0|ar[I>>2]),1);else{if(J=0|ar[U>>2],ts[31&ar[g+28>>2]](o,0|ar[S>>2],J,(0|ar[X>>2])-J|0),ar[t>>2]=ar[o>>2],ar[4+t>>2]=ar[o+4>>2],ar[8+t>>2]=ar[o+8>>2],0|ar[t>>2]){if(is[511&ar[g+24>>2]](0|ar[S>>2]),m=0|ar[t>>2],g=0|ar[4+t>>2],v=0|ar[8+t>>2],ar[C>>2]=0,ar[C+4>>2]=0,4294967279<(Z=(ar[C+8>>2]=0)|Vc(v))>>>0&&pu(),Z>>>0<11?(tr[C+11>>0]=Z)?(w=C,M=62):w=C:(w=0|hu(M=Z+16&-16),ar[C>>2]=w,ar[C+8>>2]=-2147483648|M,ar[C+4>>2]=Z,M=62),62==(0|M)&&hb(0|w,0|v,0|Z),tr[w+Z>>0]=0,oo(A,m,g,C),0<=(0|tr[C+11>>0])){w=1;break}vu(0|ar[C>>2]),w=1;break}ar[o>>2]=0,ns[127&ar[g+32>>2]](F,0|ar[S>>2],o),ar[t>>2]=ar[F>>2],ar[4+t>>2]=ar[F+4>>2],ar[8+t>>2]=ar[F+8>>2];do{if(0|ar[t>>2]){if(is[511&ar[g+24>>2]](0|ar[S>>2]),m=0|ar[t>>2],g=0|ar[4+t>>2],v=0|ar[8+t>>2],ar[G>>2]=0,ar[G+4>>2]=0,4294967279<(Z=(ar[G+8>>2]=0)|Vc(v))>>>0&&pu(),Z>>>0<11?(tr[G+11>>0]=Z)?(w=G,M=71):w=G:(w=0|hu(M=Z+16&-16),ar[G>>2]=w,ar[G+8>>2]=-2147483648|M,ar[G+4>>2]=Z,M=71),71==(0|M)&&hb(0|w,0|v,0|Z),tr[w+Z>>0]=0,oo(A,m,g,G),0<=(0|tr[G+11>>0])){w=1;break}vu(0|ar[G>>2]),w=1}else{if(!(w=0|ar[o>>2])){if(is[511&ar[g+24>>2]](0|ar[S>>2]),ar[W>>2]=0,ar[W+4>>2]=0,oo(A,7,ar[W+8>>2]=0,W),0<=(0|tr[W+11>>0])){w=1;break}vu(0|ar[W>>2]),w=1;break}p=0|ar[w>>2],J=0|ar[(D=w+4|0)>>2],ar[w>>2]=0,ar[D>>2]=0,ar[i>>2]=p,w=0|ar[(p=i+4|0)>>2],ar[p>>2]=J,0|w&&du(w),hl(0|ar[o>>2]),is[511&ar[g+24>>2]](0|ar[S>>2]),w=0|ar[E+196>>2],(B=0==(0|(y=0|ar[E+200>>2])))||bu(y);do{if(0|w){if(v=0|ar[i>>2],B||(bu(y),bu(y)),ar[v+40>>2]=w,w=0|ar[(J=v+44|0)>>2],ar[J>>2]=y,0|w&&du(w),B)break;du(y)}}while(0);v=0|ar[E+204>>2],(Z=0==(0|(g=0|ar[E+208>>2])))||bu(g);do{if(0|v){if(w=0|ar[i>>2],Z||(bu(g),bu(g)),ar[w+48>>2]=v,w=0|ar[(J=w+52|0)>>2],ar[J>>2]=g,0|w&&du(w),Z)break;du(g)}}while(0);J=0|ar[i>>2],D=0|ar[J+32>>2],v=2==(0|(w=0==(0|(w=99==(0|f)?D:f))?1:w))?0:3;do{if((0|w)==(0|D)&&(0|v)==(0|ar[J+36>>2]))w=0;else{ar[V>>2]=0,me(F,i,w,v,V,ar[(m=V+4|0)>>2]=0),w=0|ar[F>>2],J=0|ar[(v=F+4|0)>>2],ar[F>>2]=0,ar[v>>2]=0,ar[i>>2]=w,w=0|ar[p>>2],ar[p>>2]=J;do{if(0|w){if(du(w),!(w=0|ar[v>>2]))break;du(w)}}while(0);if(0|(w=0|ar[m>>2])&&du(w),0|ar[i>>2]){w=0;break}if(ar[R>>2]=0,ar[R+4>>2]=0,ar[R+8>>2]=0,oo(A,4,3003,R),0<=(0|tr[R+11>>0])){w=1;break}vu(0|ar[R>>2]),w=1}}while(0);if(Z||du(g),B)break;du(y)}}while(0)}}while(0)}0|(v=0|ar[U>>2])&&((0|ar[X>>2])!=(0|v)&&(ar[X>>2]=v),vu(v)),w||(M=178)}}while(0);do{if(178==(0|M)){if(0==(0|n)||0==(0|tr[n+1>>0])){ar[U>>2]=0,ar[(J=U+4|0)>>2]=0,w=(ar[U+8>>2]=0)|ar[N>>2],v=0|ar[w+44>>2],(D=0==(0|(Q=0|ar[w+48>>2])))||(bu(Q),w=0|ar[N>>2]),ar[S>>2]=ar[w+52>>2],Y=S+4|0,w=0|ar[w+56>>2],0|(ar[Y>>2]=w)&&bu(w),Ht(t,v,r,S,U),w=0|ar[(_=t)+4>>2],ar[(N=s)>>2]=ar[_>>2],ar[N+4>>2]=w,w=8+t|0,(0|tr[(_=(N=8+s|0)+11|0)>>0])<0?(tr[ar[N>>2]>>0]=0,ar[12+s>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[w>>2],ar[N+4>>2]=ar[w+4>>2],ar[N+8>>2]=ar[w+8>>2],w=0|ar[U>>2],X=0|ar[J>>2];A:do{if((0|w)!=(0|X)){W=11+a|0,G=12+s|0,f=i+4|0,V=A+8|0,F=8+t|0,R=I=4+t|0,n=C=o+8|0;e:for(;;){v=0|ar[(Z=w+4|0)>>2];r:do{if(v){if(m=0|qu(v,128,808,0)){(v=0|ar[w+8>>2])?bu(v):v=0,ar[t>>2]=0,ol(o,(ar[R>>2]=0)|ar[i>>2],0|ar[m+56>>2],t),B=0|ar[(y=o)+4>>2],ar[(E=s)>>2]=ar[y>>2],ar[E+4>>2]=B,(0|tr[_>>0])<0?(tr[ar[N>>2]>>0]=0,ar[G>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[n>>2],ar[N+4>>2]=ar[n+4>>2],ar[N+8>>2]=ar[n+8>>2];do{if(0|ar[s>>2])E=0|ar[(B=s)+4>>2],ar[(m=A)>>2]=ar[B>>2],ar[m+4>>2]=E,ar[V>>2]=ar[N>>2],ar[V+4>>2]=ar[N+4>>2],ar[V+8>>2]=ar[N+8>>2],ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,m=1;else{if(m=0|ar[t>>2],0|(g=0|ar[R>>2])&&bu(g),ar[i>>2]=m,m=0|ar[f>>2],ar[f>>2]=g,!m){m=0;break}du(m),m=0}}while(0);if(0|(g=0|ar[R>>2])&&du(g),m){m=1;break}E=v}else E=0;if(v=0|ar[Z>>2]){m=0|qu(v,128,776,0);do{if(m){if((v=0|ar[w+8>>2])?bu(v):v=0,al(t,0|ar[i>>2],1==(0|tr[m+56>>0])),B=0|ar[(y=t)+4>>2],ar[(M=s)>>2]=ar[y>>2],ar[M+4>>2]=B,(0|tr[_>>0])<0?(tr[ar[N>>2]>>0]=0,ar[G>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[F>>2],ar[N+4>>2]=ar[F+4>>2],ar[N+8>>2]=ar[F+8>>2],!(0|ar[s>>2])){B=v;break}g=0|ar[(M=s)+4>>2],ar[(m=A)>>2]=ar[M>>2],ar[m+4>>2]=g,ar[V>>2]=ar[N>>2],ar[V+4>>2]=ar[N+4>>2],ar[V+8>>2]=ar[N+8>>2],ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,m=1,g=v,v=E,M=241;break r}B=0}while(0);if(!(v=0|ar[Z>>2])){Z=0,g=B,v=E,M=238;break}if(!(m=0|qu(v,128,744,0))){Z=0,g=B,v=E,M=238;break}if((v=0|ar[w+8>>2])?bu(v):v=0,y=0|ar[i>>2],g=0|ar[y+24>>2],y=0|ar[y+28>>2],(0|g)<=-1){M=220;break e}if((0|y)<=-1){M=222;break e}if(p=0|Kt(m,g),M=0|qt(m,g),Z=0|$t(m,y),(0|(g=(0|M)<(0|g)?M:g+-1|0))<(0|(p=0<(0|p)?p:0))|(0|(m=(0|(m=0|Ao(m,y)))<(0|y)?m:y+-1|0))<(0|(Z=0<(0|Z)?Z:0))){if(ar[a>>2]=0,ar[4+a>>2]=0,ar[8+a>>2]=0,oo(A,2,120,a),0<=(0|tr[W>>0])){m=1,Z=v,g=B,v=E,M=239;break}vu(0|ar[a>>2]),m=1,Z=v,g=B,v=E,M=239;break}ar[t>>2]=0,cl(o,(ar[I>>2]=0)|ar[i>>2],p,g,Z,m,t),y=0|ar[(p=o)+4>>2],ar[(M=s)>>2]=ar[p>>2],ar[M+4>>2]=y,(0|tr[_>>0])<0?(tr[ar[N>>2]>>0]=0,ar[G>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[C>>2],ar[N+4>>2]=ar[C+4>>2],ar[N+8>>2]=ar[C+8>>2];do{if(0|ar[s>>2])M=0|ar[(y=s)+4>>2],ar[(m=A)>>2]=ar[y>>2],ar[m+4>>2]=M,ar[V>>2]=ar[N>>2],ar[V+4>>2]=ar[N+4>>2],ar[V+8>>2]=ar[N+8>>2],ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,m=1;else{if(m=0|ar[t>>2],0|(g=0|ar[I>>2])&&bu(g),ar[i>>2]=m,m=0|ar[f>>2],ar[f>>2]=g,!m){m=0;break}du(m),m=0}}while(0);0|(g=0|ar[I>>2])&&du(g),M=m?(m=1,Z=v,g=B,v=E,239):(Z=v,g=B,v=E,238)}else g=Z=0,v=E,M=238}else v=g=Z=0,M=238}while(0);if(238==(0|M)&&(m=0,M=239),239==(0|M)&&(M=(Z&&du(Z),241)),241==(0|M)&&(M=0,g&&du(g)),0|v&&du(v),w=w+12|0,0|m){T=m;break A}if((0|w)==(0|X)){T=2;break A}}220==(0|M)?sr(31382,30203,1221,31362):222==(0|M)&&sr(31397,30203,1222,31362)}else T=2}while(0);if(0|(w=0|ar[Y>>2])&&du(w),D||du(Q),0|(w=0|ar[U>>2])){if((0|(v=0|ar[J>>2]))!=(0|w)){for(;m=v+-12|0,ar[J>>2]=m,(0|(v=(v=0|ar[v+-4>>2])?(du(v),0|ar[J>>2]):m))!=(0|w););w=0|ar[U>>2]}vu(w)}if(2!=(2|T))break}if(0|(m=0|ar[c>>2])){w=c,g=m;A:for(;;){for(v=g;!((0|ar[v+16>>2])>>>0>=r>>>0);)if(!(v=0|ar[v+4>>2]))break A;if(!(g=0|ar[v>>2])){w=v;break}w=v}if((0|w)!=(0|c)&&(0|ar[w+16>>2])>>>0<=r>>>0){w=c;A:for(;;){for(v=m;!((0|ar[v+16>>2])>>>0>=r>>>0);)if(!(v=0|ar[v+4>>2]))break A;if(!(m=0|ar[v>>2])){w=v;break}w=v}if((0|w)!=(0|c)&&(0|ar[w+16>>2])>>>0<=r>>>0||(w=c),v=0|ar[w+20>>2],(y=0==(0|(p=0|ar[w+24>>2])))||bu(p),w=0|ar[v+68>>2],(Z=0==(0|(g=0|ar[v+72>>2])))||bu(g),w){ar[U>>2]=0,Xl(S,e,(ar[(m=U+4|0)>>2]=0)|ar[w+20>>2],U,99,0);A:do{if(0|ar[S>>2])w=0|ar[(i=S)+4>>2],ar[(U=A)>>2]=ar[i>>2],ar[U+4>>2]=w,w=S+8|0,ar[(U=A+8|0)>>2]=ar[w>>2],ar[U+4>>2]=ar[w+4>>2],ar[U+8>>2]=ar[w+8>>2],ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,w=1;else{switch(0|ar[32+(0|ar[U>>2])>>2]){case 2:case 0:w=0;break;case 1:w=3;break;default:if(ar[b>>2]=0,ar[4+b>>2]=0,ar[8+b>>2]=0,oo(A,2,3003,b),0<=(0|tr[11+b>>0])){w=1;break A}vu(0|ar[b>>2]),w=1;break A}_o(0|ar[i>>2],U,w,6),w=0}}while(0);(0|tr[(v=S+8|0)+11>>0])<0&&vu(0|ar[v>>2]),0|(v=0|ar[m>>2])&&du(v),w||(M=289)}else M=289;if(289==(0|M)&&(w=0),Z||du(g),y||du(p),0|w)break}}U=0|ar[(i=56592)+4>>2],ar[(S=A)>>2]=ar[i>>2],ar[S+4>>2]=U,yu(A+8|0,56600)}}while(0);(0|tr[(w=8+s|0)+11>>0])<0&&vu(0|ar[w>>2]),0|u&&du(u),ur=(0<=(0|tr[l>>0])||vu(0|ar[d>>2]),k)}function Wl(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0;if(ur=(a=ur)+480|0,J=a+24|0,s=(o=a)+460|0,c=a+436|0,Z=a+280|0,k=a+424|0,v=a+264|0,t=a+256|0,p=a+96|0,y=a+240|0,B=a+80|0,E=a+68|0,Q=a+56|0,n=a+48|0,ar[(g=a+448|0)>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0;if(ur=(i=ur)+32|0,t=i+12|0,o=i,n=0|ar[(r|=0)>>2],(r=(0|ar[r+4>>2])-n|0)>>>0<8){for(r=0|hu(32),ar[t>>2]=r,ar[t+8>>2]=-2147483616,n=30033,e=(f=r)+(ar[t+4>>2]=25)|0;tr[f>>0]=0|tr[n>>0],n=n+1|0,(0|(f=f+1|0))<(0|e););return(tr[r+25>>0]=0,oo(A,2,118,t),0<=(0|tr[t+11>>0]))?ur=i:(vu(0|ar[t>>2]),ur=i)}t=0==(1&tr[n+1>>0]),or[e>>1]=1+(0|cr[n+2>>0]),or[e+2>>1]=1+(0|cr[n+3>>0]);do{if(!t){if(12<=r>>>0){ar[e+4>>2]=cr[n+5>>0]<<16|cr[n+4>>0]<<24|cr[n+6>>0]<<8|cr[n+7>>0],r=11,f=cr[n+9>>0]<<16|cr[n+8>>0]<<24|cr[n+10>>0]<<8;break}for(r=0|hu(32),ar[o>>2]=r,ar[o+8>>2]=-2147483616,n=30059,e=(f=r)+(ar[o+4>>2]=26)|0;tr[f>>0]=0|tr[n>>0],n=n+1|0,(0|(f=f+1|0))<(0|e););return(tr[r+26>>0]=0,oo(A,2,118,o),0<=(0|tr[o+11>>0]))?ur=i:(vu(0|ar[o>>2]),ur=i)}ar[e+4>>2]=cr[n+4>>0]<<8|cr[n+5>>0],r=7,f=cr[n+6>>0]<<8}while(0);ar[e+8>>2]=cr[n+r>>0]|f,t=0|ar[(e=56592)+4>>2],ar[(o=A)>>2]=ar[e>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=i}(o,g,f),0|ar[o>>2])U=0|ar[(M=o)+4>>2],ar[(T=A)>>2]=ar[M>>2],ar[T+4>>2]=U,U=o+8|0,ar[(T=A+8|0)>>2]=ar[U>>2],ar[T+4>>2]=ar[U+4>>2],ar[T+8>>2]=ar[U+8>>2],ar[U>>2]=0,ar[U+4>>2]=0,ar[U+8>>2]=0;else{if(T=0|ar[(w=e+60|0)>>2],f=0|ar[T+76>>2],(U=0==(0|(T=0|ar[T+80>>2])))||bu(T),f){fo(c,f,r,1684630887),f=0|ar[(M=c+4|0)>>2],u=l=0|ar[c>>2],h=f,257<=(65535&(G=0|or[g>>1]))&&sr(31678,30203,133,31692),257<=(65535&(s=0|or[g+2>>1]))&&sr(31701,30203,139,31718),d=0|br(Y=65535&s,_=65535&G);A:do{if((f-l>>2|0)==(0|d)){e:do{if((0|u)!=(0|h)){d=0|ar[e+28>>2],k=e+32|0;r:do{if((0|d)==(0|k))s=0|ar[u>>2];else for(b=u;;){for(s=0|ar[b>>2],u=d;(0|ar[u+16>>2])!=(0|s);){if(f=0|ar[u+4>>2])for(;l=0|ar[f>>2];)f=l;else if(f=0|ar[(l=u+8|0)>>2],(0|ar[f>>2])!=(0|u))for(;N=0|ar[l>>2],f=0|ar[(l=N+8|0)>>2],(0|ar[f>>2])!=(0|N););if((0|f)==(0|k))break r;u=f}if((0|(b=b+4|0))==(0|h))break e}}while(0);l=Z+64|0,ar[(b=Z+8|0)>>2]=4524,u=Z+12|0,ar[Z>>2]=188,ar[l>>2]=208,Jf(Z+64|(ar[Z+4>>2]=0),u),ar[Z+136>>2]=0,ar[Z+140>>2]=-1,ar[Z>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=Z+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[Z+60>>2]=24,ar[J>>2]=0,ar[J+4>>2]=0,ar[J+8>>2]=0,Xe(u,J),(0|tr[J+11>>0])<0&&vu(0|ar[J>>2]),We(0|Lf(0|We(f=Z+8|0,31789,14),s),31804,23),Ie(v,u),oo(A,2,119,v),(0|tr[v+11>>0])<0&&vu(0|ar[v>>2]),ar[Z>>2]=4504,ar[l>>2]=4544,ar[f>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l);break A}}while(0);f=0|ar[w>>2],ar[Z>>2]=ar[f+52>>2],N=Z+4|0,l=0|ar[f+56>>2],(ar[N>>2]=l)&&(bu(l),f=0|ar[w>>2]),l=0|ar[f+44>>2],(R=0==(0|(F=0|ar[f+48>>2])))||bu(F),Lt(t,l,r,Z,1885960297),V=0!=(0|(f=0|ar[t>>2]))&&0!=(0|(m=0|qu(f,128,352,0)))?(f=0|ar[4+t>>2])?(bu(f),d=m,f):(d=m,0):d=0,h=0|ar[g+4>>2],k=0|ar[g+8>>2],(0|ar[c>>2])==(0|ar[M>>2])&&sr(31828,30203,1359,31854),s=e+72|0;e:do{if(h>>>0<(0|ar[s>>2])>>>0&&k>>>0<(0|ar[e+76>>2])>>>0){u=0|hu(80),ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u>>2]=6208,ar[(f=u+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[u+32>>2]=30025,ar[u+36>>2]=0,ar[u+40>>2]=0,ar[u+44>>2]=99,ar[u+48>>2]=99,s=u+52|0,ar[(b=u+72|0)>>2]=0,ar[u+76>>2]=0,ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[u+68>>2]=b,b=f,C=(s=u)+16|0,bu(u),su(u),l=0|ar[C>>2],ar[f>>2]=b,ar[C>>2]=s,0|l&&ku(l),du(u),ar[i>>2]=b,l=0|ar[(C=i+4|0)>>2],ar[C>>2]=s,l?(du(l),f=0|ar[(b=i)>>2]):b=i,yo(f,h,k,1,3),u=0!=(0|d);do{if(u){if(f=0|ar[d+56>>2],1<=((0|ar[d+60>>2])-f|0)){l=0|cr[f>>0];break}for(ar[B>>2]=0,ar[B+4>>2]=0,f=(ar[B+8>>2]=0)|hu(48),ar[B>>2]=f,ar[B+8>>2]=-2147483600,u=31877,b=(l=f)+(ar[B+4>>2]=37)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););if(tr[f+37>>0]=0,oo(A,2,130,B),0<=(0|tr[B+11>>0]))break e;vu(0|ar[B>>2]);break e}l=8}while(0);Bo(0|ar[b>>2],3,h,k,l);do{if(u){if(f=I=0|ar[d+56>>2],3!=((0|ar[d+60>>2])-I|0))break;if((0|cr[f+1>>0])==(0|l)&&(0|cr[f+2>>0])==(0|l))break;for(ar[E>>2]=0,ar[E+4>>2]=0,f=(ar[E+8>>2]=0)|hu(64),ar[E>>2]=f,ar[E+8>>2]=-2147483584,u=31915,b=(l=f)+(ar[E+4>>2]=51)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););if(tr[f+51>>0]=0,oo(A,2,130,E),0<=(0|tr[E+11>>0]))break e;vu(0|ar[E>>2]);break e}}while(0);Bo(0|ar[b>>2],4,h,k,l),Bo(0|ar[b>>2],5,h,k,l),Z=e+32|0,p=4+n|0,B=(y=J+8|0)+11|0,E=A+8|0,X=Q+8|0,W=Q+4|0,I=Q+11|0;r:do{if(G<<16>>16){g=f=m=0;i:for(;;){for(v=w=r=0;!((0|Y)<=(0|r));){if(d=0|ar[(0|ar[c>>2])+(f<<2)>>2],!(u=0|ar[Z>>2]))break i;l=Z;f:for(;;){for(b=u;!((0|ar[b+16>>2])>>>0>=d>>>0);){if(!(u=0|ar[b+4>>2]))break f;b=u}if(!(u=0|ar[b>>2])){l=b;break}l=b}if((0|l)==(0|Z))break i;if(d>>>0<(0|ar[l+16>>2])>>>0)break i;u=0|ar[l+20>>2],(h=0==(0|(k=0|ar[l+24>>2])))||bu(k),s=0|ar[u+24>>2],b=0|ar[u+28>>2],ar[n>>2]=ar[i>>2],l=0|ar[C>>2],(ar[p>>2]=l)?(bu(l),Gl(J,e,d,n,v,g),du(l)):Gl(J,e,d,n,v,g);do{if(0|ar[J>>2])u=0|ar[(l=J)+4>>2],ar[(b=A)>>2]=ar[l>>2],ar[b+4>>2]=u,ar[E>>2]=ar[y>>2],ar[E+4>>2]=ar[y+4>>2],ar[E+8>>2]=ar[y+8>>2],ar[y>>2]=0,ar[y+4>>2]=0,ar[y+8>>2]=0,b=w,u=v,l=1;else{if(l=s+v|0,f=f+1|0,0<=(0|tr[B>>0])){u=l,l=0;break}vu(0|ar[y>>2]),u=l,l=0}}while(0);if(h||du(k),l)break e;r=r+1|0,w=b,v=u}if((0|_)<=(0|(m=m+1|0)))break r;g=w+g|0}for(ar[Q>>2]=0,ar[Q+4>>2]=0,f=(ar[Q+8>>2]=0)|hu(48),ar[Q>>2]=f,ar[X>>2]=-2147483600,u=31967,b=(l=f)+(ar[W>>2]=32)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););if(tr[f+32>>0]=0,oo(A,2,119,Q),0<=(0|tr[I>>0]))break e;vu(0|ar[Q>>2]);break e}}while(0);J=0|ar[(Q=56592)+4>>2],ar[A>>2]=ar[Q>>2],ar[A+4>>2]=J,yu(E,56600)}else D=51}while(0);51==(0|D)&&(l=p+64|0,ar[(b=p+8|0)>>2]=4524,u=p+12|0,ar[p>>2]=188,ar[l>>2]=208,Jf(p+64|(ar[p+4>>2]=0),u),ar[p+136>>2]=0,ar[p+140>>2]=-1,ar[p>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=p+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[p+60>>2]=24,ar[J>>2]=0,ar[J+4>>2]=0,ar[J+8>>2]=0,Xe(u,J),(0|tr[J+11>>0])<0&&vu(0|ar[J>>2]),J=0|We(0|Lf(0|We(0|Lf(0|We(f=p+8|0,30366,11),h),30170,1),k),30378,32),J=0|We(0|Lf(J,0|ar[s>>2]),30170,1),We(0|Lf(J,0|ar[e+76>>2]),30086,1),Ie(y,u),oo(A,6,1e3,y),(0|tr[y+11>>0])<0&&vu(0|ar[y>>2]),ar[p>>2]=4504,ar[l>>2]=4544,ar[f>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l)),0|V&&du(V),0|(f=0|ar[4+t>>2])&&du(f),R||du(F),0|(f=0|ar[N>>2])&&du(f)}else l=Z+64|0,ar[(b=Z+8|0)>>2]=4524,u=Z+12|0,ar[Z>>2]=188,ar[l>>2]=208,Jf(Z+64|(ar[Z+4>>2]=0),u),ar[Z+136>>2]=0,ar[Z+140>>2]=-1,ar[Z>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=Z+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[Z+60>>2]=24,ar[J>>2]=0,ar[J+4>>2]=0,ar[J+8>>2]=0,Xe(u,J),(0|tr[J+11>>0])<0&&vu(0|ar[J>>2]),J=0|We(0|Pf(0|We(0|xf(0|We(0|xf(0|We(f=Z+8|0,31730,17),G),30170,1),s),31748,1),d),31750,17),We(0|Lf(J,(0|ar[M>>2])-(0|ar[c>>2])>>2),31768,20),Ie(k,u),oo(A,2,119,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2]),ar[Z>>2]=4504,ar[l>>2]=4544,ar[f>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l)}while(0);0|(c=0|ar[c>>2])&&((0|(f=0|ar[M>>2]))!=(0|c)&&(ar[M>>2]=f+(~((f+-4-c|0)>>>2)<<2)),vu(c))}else{for(ar[s>>2]=0,ar[s+4>>2]=0,c=(ar[s+8>>2]=0)|hu(64),ar[s>>2]=c,ar[s+8>>2]=-2147483584,u=31629,b=(l=c)+(ar[s+4>>2]=48)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););tr[c+48>>0]=0,oo(A,2,113,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2])}U||du(T)}ur=(0<=(0|tr[(c=o+8|0)+11>>0])||vu(0|ar[c>>2]),a)}function Il(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+64|0,c=o+32|0,n=o+44|0,l=o+20|0,f=o,u=0|ar[(e|=0)+60>>2],a=0|ar[u+76>>2],(t=0==(0|(u=0|ar[u+80>>2])))||bu(u),a){if(fo(n,a,r,1684630887),c=4+n|0,a=0|ar[n>>2],4!=((0|ar[c>>2])-a|0)){for(ar[l>>2]=0,ar[l+4>>2]=0,a=(ar[l+8>>2]=0)|hu(48),ar[l>>2]=a,ar[l+8>>2]=-2147483600,e=31581,i=(r=a)+(ar[l+4>>2]=47)|0;tr[r>>0]=0|tr[e>>0],e=e+1|0,(0|(r=r+1|0))<(0|i););tr[a+47>>0]=0,oo(A,2,119,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2])}else Xl(f,e,0|ar[a>>2],i,1,0),i=0|ar[(e=f)+4>>2],ar[(l=A)>>2]=ar[e>>2],ar[l+4>>2]=i,l=f+8|0,ar[(A=A+8|0)>>2]=ar[l>>2],ar[A+4>>2]=ar[l+4>>2],ar[A+8>>2]=ar[l+8>>2];0|(a=0|ar[n>>2])&&((0|(r=0|ar[c>>2]))!=(0|a)&&(ar[c>>2]=r+(~((r+-4-a|0)>>>2)<<2)),vu(a))}else{for(ar[c>>2]=0,ar[c+4>>2]=0,a=(ar[c+8>>2]=0)|hu(64),ar[c>>2]=a,ar[c+8>>2]=-2147483584,e=31532,i=(r=a)+(ar[c+4>>2]=48)|0;tr[r>>0]=0|tr[e>>0],e=e+1|0,(0|(r=r+1|0))<(0|i););tr[a+48>>0]=0,oo(A,2,113,c),(0|tr[c+11>>0])<0&&vu(0|ar[c>>2])}ur=(t||du(u),o)}function Cl(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0;if(ur=(l=ur)+288|0,X=l+168|0,s=l+264|0,a=l+276|0,w=l+232|0,o=l+144|0,d=l+220|0,k=(W=l)+208|0,n=l+200|0,t=l+188|0,V=0|ar[(e|=0)+60>>2],u=0|ar[V+76>>2],(c=0==(0|(V=0|ar[V+80>>2])))||bu(V),u){fo(a,u,r,1684630887),ar[(I=w+20|0)>>2]=0,ar[(C=w+24|0)>>2]=0,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;for(ur=(n=ur)+208|0,u=n+192|0,t=(f=n)+32|0,b=n+48|0,s=n+20|0,o=0|hu(32),ar[t>>2]=o,ar[t+8>>2]=-2147483616,c=30088,l=(a=o)+(ar[t+4>>2]=29)|0;tr[a>>0]=0|tr[c>>0],c=c+1|0,(0|(a=a+1|0))<(0|l););tr[o+29>>0]=0,oo(f,2,118,t),(0|tr[t+11>>0])<0&&vu(0|ar[t>>2]),l=0|ar[i>>2],o=(0|ar[i+4>>2])-l|0;do{if(o>>>0<10)w=0|ar[(i=f)+4>>2],ar[(r=A)>>2]=ar[i>>2],ar[r+4>>2]=w,r=A+8|0,A=f+8|0,ar[r>>2]=ar[A>>2],ar[r+4>>2]=ar[A+4>>2],ar[r+8>>2]=ar[A+8>>2],ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;else{if(w=0|tr[l>>0],tr[e>>0]=w,t=0|tr[l+1>>0],tr[e+1>>0]=t,w<<24>>24){o=b+64|0,ar[(c=b+8|0)>>2]=4524,a=b+12|0,ar[b>>2]=188,ar[o>>2]=208,Jf(b+64|(ar[b+4>>2]=0),a),ar[b+136>>2]=0,ar[b+140>>2]=-1,ar[b>>2]=4504,ar[o>>2]=4544,ar[c>>2]=4524,Sf(a),ar[a>>2]=4340,ar[(c=b+44|0)>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c+12>>2]=0,ar[b+60>>2]=24,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,Xe(a,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2]),r=0|We(t=b+8|0,30118,27),We(0|Pf(r,0|cr[e>>0]),30146,23),Ie(s,a),oo(A,4,3002,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2]),ar[b>>2]=4504,ar[o>>2]=4544,ar[t>>2]=4524,ar[a>>2]=4340,(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),kf(a),bf(o);break}if(((10+((u=(b=t<<1&2)+2<<24>>24)<<1&255)&255)+(0|br(r<<1,w=255&u))|0)>>>0>o>>>0){w=0|ar[(i=f)+4>>2],ar[(r=A)>>2]=ar[i>>2],ar[r+4>>2]=w,r=A+8|0,A=f+8|0,ar[r>>2]=ar[A>>2],ar[r+4>>2]=ar[A+4>>2],ar[r+8>>2]=ar[A+8>>2],ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;break}for(or[e+2>>1]=cr[l+3>>0]|cr[l+2>>0]<<8,or[e+4>>1]=cr[l+5>>0]|cr[l+4>>0]<<8,or[e+6>>1]=cr[l+7>>0]|cr[l+6>>0]<<8,or[e+8>>1]=cr[l+9>>0]|cr[l+8>>0]<<8,a=255&b,t=0,o=w,c=10;o=o+-1|0,t=cr[l+c>>0]|t<<8,o;)c=c+1|0;for(k=12|a,ar[e+12>>2]=t,o=k+a|0,c=0,t=w,a=k;t=t+-1|0,c=cr[l+a>>0]|c<<8,t;)a=a+1|0;if(l=o+2|0,ar[e+16>>2]=c,k=e+20|0,r>>>0<=(o=(c=0|ar[(t=e+24|0)>>2])-(a=0|ar[k>>2])>>3)>>>0?(r>>>0>>0&&(0|c)!=(0|(d=a+(r<<3)|0))&&(ar[t>>2]=c+(~((c+-8-d|0)>>>3)<<3)),0|r&&(h=25)):(wl(k,r-o|0),h=25),25==(0|h))for(d=~(e=128<<(u<<3&255)-8),s=4+(b<<1&255)&255,b=0|ar[i>>2],u=0;;){for(a=0,t=w,o=l;t=t+-1|0,a=cr[b+o>>0]|a<<8,t;)o=o+1|0;for(c=0|ar[k>>2],ar[c+(u<<3)>>2]=(a&d)-(0==(a&e|0)?0:e),a=(o=w)+l|(t=0);o=o+-1|0,t=cr[b+a>>0]|t<<8,o;)a=a+1|0;if(ar[c+(u<<3)+4>>2]=(t&d)-(0==(t&e|0)?0:e),(0|(u=u+1|0))==(0|r))break;l=s+l|0}w=0|ar[(i=56592)+4>>2],ar[(r=A)>>2]=ar[i>>2],ar[r+4>>2]=w,yu(A+8|0,56600)}}while(0);ur=(0<=(0|tr[(t=f+8|0)+11>>0])||vu(0|ar[t>>2]),n)}(o,w,((ar[w+28>>2]=0)|ar[(G=4+a|0)>>2])-(0|ar[a>>2])>>2,f);A:do{if(0|ar[o>>2])W=0|ar[(e=o)+4>>2],ar[(F=A)>>2]=ar[e>>2],ar[F+4>>2]=W,F=8+o|0,ar[(A=A+8|0)>>2]=ar[F>>2],ar[A+4>>2]=ar[F+4>>2],ar[A+8>>2]=ar[F+8>>2],ar[F>>2]=0,ar[F+4>>2]=0,ar[F+8>>2]=0;else{if(y=w+20|0,((0|ar[G>>2])-(0|ar[a>>2])>>2|0)!=((0|ar[C>>2])-(0|ar[y>>2])>>3|0)){for(ar[d>>2]=0,ar[d+4>>2]=0,u=(ar[d+8>>2]=0)|hu(80),ar[d>>2]=u,ar[d+8>>2]=-2147483568,f=31462,b=(r=u)+(ar[d+4>>2]=69)|0;tr[r>>0]=0|tr[f>>0],f=f+1|0,(0|(r=r+1|0))<(0|b););if(tr[u+69>>0]=0,oo(A,2,121,d),0<=(0|tr[d+11>>0]))break;vu(0|ar[d>>2]);break}if(d=0|ar[w+12>>2],h=0|ar[w+16>>2],d>>>0<(0|ar[(s=e+72|0)>>2])>>>0&&h>>>0<(0|ar[e+76>>2])>>>0){if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(u=f+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[f+32>>2]=30025,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,s=f+52|0,ar[(b=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[f+68>>2]=b,b=u,p=(s=f)+16|0,bu(f),su(f),r=0|ar[p>>2],ar[u>>2]=b,ar[p>>2]=s,0|r&&ku(r),du(f),ar[i>>2]=b,r=0|ar[(p=i+4|0)>>2],ar[p>>2]=s,r?(du(r),u=0|ar[(p=i)>>2]):p=i,yo(u,d,h,1,3),Bo(0|ar[p>>2],3,d,h,8),Bo(0|ar[p>>2],4,d,h,8),Bo(0|ar[p>>2],5,d,h,8),ll(X,0|ar[p>>2],0|or[w+2>>1],0|or[w+4>>1],0|or[w+6>>1],0|or[w+8>>1]),u=0|ar[(Z=X)+4>>2],ar[(g=o)>>2]=ar[Z>>2],ar[g+4>>2]=u,u=X+8|0,(0|tr[(Z=(g=8+o|0)+11|0)>>0])<0?(tr[ar[g>>2]>>0]=0,ar[12+o>>2]=0):(tr[g>>0]=0,tr[Z>>0]=0),Cu(g,0),ar[g>>2]=ar[u>>2],ar[g+4>>2]=ar[u+4>>2],ar[g+8>>2]=ar[u+8>>2],0|ar[o>>2]){e=0|ar[(X=o)+4>>2],ar[(W=A)>>2]=ar[X>>2],ar[W+4>>2]=e,ar[(A=A+8|0)>>2]=ar[g>>2],ar[A+4>>2]=ar[g+4>>2],ar[A+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0;break}u=0|ar[a>>2];e:do{if((0|ar[G>>2])==(0|u))E=(B=A)+8|0;else{b=X+4|0,d=12+o|0,k=4+n|0,i=W+4|0,h=11+t|0,w=s=W+8|0,v=A+8|0,m=4+o|0,f=0;r:for(;;){ar[X>>2]=0,Xl(W,e,(ar[b>>2]=0)|ar[u+(f<<2)>>2],X,1,0),u=0|ar[(F=W)+4>>2],ar[(r=o)>>2]=ar[F>>2],ar[r+4>>2]=u,(0|tr[Z>>0])<0?(tr[ar[g>>2]>>0]=0,ar[d>>2]=0):(tr[g>>0]=0,tr[Z>>0]=0),Cu(g,0),ar[g>>2]=ar[s>>2],ar[g+4>>2]=ar[s+4>>2],ar[g+8>>2]=ar[s+8>>2];i:do{if((0|ar[o>>2])==(0|ar[14148])){ar[n>>2]=0,me(W,X,1,3,n,ar[k>>2]=0),u=0|ar[W>>2],F=0|ar[i>>2],ar[W>>2]=0,ar[i>>2]=0,ar[X>>2]=u,u=0|ar[b>>2],ar[b>>2]=F;do{if(0|u){if(du(u),!(u=0|ar[i>>2]))break;du(u)}}while(0);if(0|(u=0|ar[k>>2])&&du(u),!(0|ar[X>>2])){if(ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,oo(A,4,3003,t),0<=(0|tr[h>>0])){u=1;break}vu(0|ar[t>>2]),u=1;break}if(u=F=0|ar[y>>2],(0|ar[C>>2])-F>>3>>>0<=f>>>0)break r;ul(W,0|ar[p>>2],X,0|ar[u+(f<<3)>>2],0|ar[u+(f<<3)+4>>2]),r=0|ar[(u=W)+4>>2],ar[(F=o)>>2]=ar[u>>2],ar[F+4>>2]=r,(0|tr[Z>>0])<0?(tr[ar[g>>2]>>0]=0,ar[d>>2]=0):(tr[g>>0]=0,tr[Z>>0]=0),Cu(g,0),ar[g>>2]=ar[w>>2],ar[g+4>>2]=ar[w+4>>2],ar[g+8>>2]=ar[w+8>>2];f:do{switch(0|ar[o>>2]){case 0:u=0;break i;case 2:if(122!=(0|ar[m>>2]))break f;F=0|ar[(r=56592)+4>>2],ar[(u=o)>>2]=ar[r>>2],ar[u+4>>2]=F,Eu(g,56600),u=0;break i}}while(0);F=0|ar[(r=o)+4>>2],ar[(u=A)>>2]=ar[r>>2],ar[u+4>>2]=F,ar[v>>2]=ar[g>>2],ar[v+4>>2]=ar[g+4>>2],ar[v+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,u=1}else F=0|ar[(r=o)+4>>2],ar[(u=A)>>2]=ar[r>>2],ar[u+4>>2]=F,ar[v>>2]=ar[g>>2],ar[v+4>>2]=ar[g+4>>2],ar[v+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,u=1}while(0);if(0|(r=0|ar[b>>2])&&du(r),f=f+1|0,0|u)break A;if(u=0|ar[a>>2],f>>>0>=(0|ar[G>>2])-u>>2>>>0){B=A,E=v;break e}}sr(30172,30203,382,30219)}}while(0);A=0|ar[(W=o)+4>>2],ar[(F=B)>>2]=ar[W>>2],ar[F+4>>2]=A,ar[E>>2]=ar[g>>2],ar[E+4>>2]=ar[g+4>>2],ar[E+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0;break}r=W+64|0,ar[(b=W+8|0)>>2]=4524,f=W+12|0,ar[W>>2]=188,ar[r>>2]=208,Jf(W+64|(ar[W+4>>2]=0),f),ar[W+136>>2]=0,ar[W+140>>2]=-1,ar[W>>2]=4504,ar[r>>2]=4544,ar[b>>2]=4524,Sf(f),ar[f>>2]=4340,ar[(b=W+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[W+60>>2]=24,ar[X>>2]=0,ar[X+4>>2]=0,ar[X+8>>2]=0,Xe(f,X),(0|tr[X+11>>0])<0&&vu(0|ar[X>>2]),F=0|We(0|Lf(0|We(0|Lf(0|We(u=W+8|0,30366,11),d),30170,1),h),30378,32),F=0|We(0|Lf(F,0|ar[s>>2]),30170,1),We(0|Lf(F,0|ar[e+76>>2]),30086,1),Ie(k,f),oo(A,6,1e3,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2]),ar[W>>2]=4504,ar[r>>2]=4544,ar[u>>2]=4524,ar[f>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(f),bf(r)}}while(0);(0|tr[(u=8+o|0)+11>>0])<0&&vu(0|ar[u>>2]),0|(u=0|ar[I>>2])&&((0|(r=0|ar[C>>2]))!=(0|u)&&(ar[C>>2]=r+(~((r+-8-u|0)>>>3)<<3)),vu(u)),0|(u=0|ar[a>>2])&&((0|(r=0|ar[G>>2]))!=(0|u)&&(ar[G>>2]=r+(~((r+-4-u|0)>>>2)<<2)),vu(u))}else{for(ar[s>>2]=0,ar[s+4>>2]=0,u=(ar[s+8>>2]=0)|hu(64),ar[s>>2]=u,ar[s+8>>2]=-2147483584,f=31413,b=(r=u)+(ar[s+4>>2]=48)|0;tr[r>>0]=0|tr[f>>0],f=f+1|0,(0|(r=r+1|0))<(0|b););tr[u+48>>0]=0,oo(A,2,113,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2])}ur=(c||du(V),l)}function Gl(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(ur=(l=ur)+80|0,Z=(c=l)+52|0,k=l+36|0,t=l+48|0,o=l+32|0,h=l+20|0,ar[(g=l+64|0)>>2]=0,Xl(c,e,r,g,(ar[(a=g+4|0)>>2]=0)|ar[32+(0|ar[i>>2])>>2],0),(0|ar[c>>2])==(0|ar[14148])){e=0|ar[i>>2],s=0|ar[e+24>>2],d=0|ar[e+28>>2],r=0|ar[g>>2],u=0|ar[r+24>>2],r=0|ar[r+28>>2],(0|u)<=-1&&sr(32e3,30203,1540,32015),(0|r)<=-1&&sr(32043,30203,1541,32015),m=0|ar[e+36>>2],Io(Z,e),e=0|ar[g>>2];A:do{if((0|m)!=(0|ar[e+36>>2])){for(ar[k>>2]=0,ar[k+4>>2]=0,e=(ar[k+8>>2]=0)|hu(64),ar[k>>2]=e,ar[k+8>>2]=-2147483584,u=32059,b=(r=e)+(ar[k+4>>2]=58)|0;tr[r>>0]=0|tr[u>>0],u=u+1|0,(0|(r=r+1|0))<(0|b););tr[e+58>>0]=0,oo(A,2,127,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2])}else{b=0|ar[Z>>2],m=Z+4|0;e:do{if((0|b)!=(0|m)){if(k=(0|(k=s-f|0))<(0|u)?k:u,w=0<(0|(v=(0|(v=d-n|0))<(0|r)?v:r)),!((0|f)<(0|s)&(0|n)<(0|d))){Fo(e,g=0|ar[b+16>>2],t),Fo(0|ar[i>>2],g,o),ar[h>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=0,oo(A,2,118,h),(0|tr[h+11>>0])<0&&vu(0|ar[h>>2]);break A}for(;;){if(u=0|Fo(e,s=0|ar[b+16>>2],t),e=0|Fo(0|ar[i>>2],s,o),s=0|br((255&(0|Go(0|ar[g>>2],3)))>>>3&255,k),r=0|Go(0|ar[g>>2],3),w)for(r=e+(0|br((255&r)>>>3&255,f))|0,e=0;hb(0|(h=r+(0|br(0|ar[o>>2],e+n|0))|0),u+(0|br(0|ar[t>>2],e))|0,0|s),(0|(e=e+1|0))<(0|v););if(e=0|ar[b+4>>2])for(;r=0|ar[e>>2];)e=r;else if(e=0|ar[(r=b+8|0)>>2],(0|ar[e>>2])!=(0|b))for(;h=0|ar[r>>2],e=0|ar[(r=h+8|0)>>2],(0|ar[e>>2])!=(0|h););if((0|e)==(0|m))break e;b=e,e=0|ar[g>>2]}}}while(0);n=0|ar[(f=56592)+4>>2],ar[(g=A)>>2]=ar[f>>2],ar[g+4>>2]=n,yu(A+8|0,56600)}}while(0);Co(Z,0|ar[Z+4>>2]),(0|tr[c+8+11>>0])<0&&vu(0|ar[c+8>>2])}else g=0|ar[(n=c)+4>>2],ar[(Z=A)>>2]=ar[n>>2],ar[Z+4>>2]=g,Z=c+8|0,ar[(A=A+8|0)>>2]=ar[Z>>2],ar[A+4>>2]=ar[Z+4>>2],ar[A+8>>2]=ar[Z+8>>2],ar[Z>>2]=0,ar[Z+4>>2]=0,ar[Z+8>>2]=0;ur=((e=0|ar[a>>2])&&du(e),l)}function Vl(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;if(ur=(f=ur)+80|0,i=f+76|0,b=f+72|0,d=(s=f)+64|0,YA(n=f+32|0,u=0|ar[(e|=0)>>2],(0|ar[(t=e+4|0)>>2])-u|0),(0|(u=0|QA(n,32)))<=(0|(n=((0|ar[n+24>>2])/-8|0)+((0|ar[n+4>>2])-(0|ar[n+8>>2]))|0)))return b=0|ar[(b=r=56592)>>2],r=0|ar[(r=r+4|0)>>2],ar[(s=d=A)>>2]=b,ar[(d=d+4|0)>>2]=r,yu(A=A+8|0,56600),void(ur=f);if(YA(s,(u=0|ar[e>>2])+n|0,(0|ar[t>>2])-(u+n)|0),QA(s,32),u=(0|QA(s,8))>>>1,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+24|0)>>2]))<(0|e)){i=64-i|0,n=A+8|0;A:do{if(7<(0|i)){t=A+16|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}c=0|db(0|ar[(c=l=A+16|0)>>2],0|ar[c+4>>2],0|e),ar[l>>2]=c,ar[l+4>>2]=D,ar[r>>2]=i-e}(s,8),((255&u)-39|0)>>>0<2&&(u=0|QA(s,8),QA(s,8),177==(255&u|0))){for(u=0|hu(80),ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u>>2]=6448,t=(n=e=u+16|0)+64|0;(0|(n=n+4|(ar[n>>2]=0)))<(0|t););ar[e>>2]=6476,l=e,tr[(c=u)+24>>0]=1,ar[(e=u+68|0)>>2]=0,ar[u+72>>2]=0,k=255&((ar[u+76>>2]=0)|QA(s,1)),tr[(n=u+25|0)>>0]=k,k=255&(0|QA(s,1)),tr[(t=u+26|0)>>0]=k,k=255&(0|QA(s,1)),tr[(o=u+27|0)>>0]=k,k=255&(0|QA(s,1)),tr[(a=u+28|0)>>0]=k,DA(s,i),ar[u+64>>2]=ar[i>>2],(0!=(0|tr[o>>0])||0|tr[a>>0])&&(DA(s,b),ar[e>>2]=ar[b>>2]),0|tr[n>>0]&&(h=+Fl(s),Q[u+32>>3]=h),0|tr[t>>0]&&(h=+Fl(s),Q[u+40>>3]=h),0|tr[o>>0]&&(h=+Fl(s),Q[u+48>>3]=h),0|tr[a>>0]&&(h=+Fl(s),Q[u+56>>3]=h),ar[d>>2]=l,ar[(t=d+4|0)>>2]=c,(0|(n=0|ar[(e=r+4|0)>>2]))==(0|ar[r+8>>2])?function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;f=0|ar[(u=4+(A|=0)|0)>>2],n=0|ar[A>>2],536870911<(t=1+(r=f-(c=n)>>3)|0)>>>0&&zl();l=(0|ar[(i=A+8|0)>>2])-n|0,o=l>>2,o=l>>3>>>0<268435455?o>>>0>>0?t:o:536870911;do{if(o){if(!(536870911>>0)){a=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else a=0}while(0);l=a+(o<<3)|0,ar[(t=n=a+(r<<3)|0)>>2]=ar[e>>2],o=0|ar[e+4>>2],o=(ar[a+(r<<3)+4>>2]=o)?(bu(o),f=0|ar[u>>2],0|ar[A>>2]):c;if(a=n+8|0,(0|f)!=(0|o)){for(;f=(c=f)+-8|0,ar[n+-8>>2]=ar[f>>2],c=c+-4|0,ar[n+-4>>2]=ar[c>>2],ar[f>>2]=0,ar[c>>2]=0,t=n=t+-8|0,(0|f)!=(0|o););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=l,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););if(!o)return;vu(o)}(r,d):(ar[n>>2]=l,bu(ar[n+4>>2]=u),ar[e>>2]=8+(0|ar[e>>2])),0|(e=0|ar[t>>2])&&du(e)}s=0|ar[(s=d=56592)>>2],d=0|ar[(d=d+4|0)>>2],ar[(r=k=A)>>2]=s,ar[(k=k+4|0)>>2]=d,yu(k=A+8|0,56600),ur=f}function Fl(A){var e,r,i,f=0,n=0,t=0;return e=0|QA(A|=0,1),r=0|QA(A,7),i=0|QA(A,5),A=0|QA(A,f=1+i|0),0<(0|r)?(t=+Af(1,r-31|0),n=-(t*=(0|A)/Af(1,f)+1),+(n=(f=0==(0|e))?t:n)):(t=-(n=(0|A)*Af(1,-31-i|0)),+(t=(f=0==(0|e))?n:t))}function Rl(A){A|=0;var e=0,r=0,i=0,f=0,n=0,t=0;if(57284==(0|(r=0|ar[14320])))return(A=0)|A;n=e=0;do{if(t=0|ar[r+16>>2],e=(f=(0|n)<(0|(i=0|jb[127&ar[t+16>>2]](A))))?t:e,n=f?i:n,i=0|ar[r+4>>2])for(r=i;i=0|ar[r>>2];)r=i;else if(f=0|ar[(i=r+8|0)>>2],(0|ar[f>>2])==(0|r))r=f;else for(;t=0|ar[i>>2],r=0|ar[(i=t+8|0)>>2],(0|ar[r>>2])!=(0|t););}while(57284!=(0|r));return 0|e}function Nl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;o=0|ar[(b=(A|=0)+4|0)>>2],r=f=0|ar[A>>2],119304647<(n=(l=((t=o)-f|0)/36|0)+1|0)>>>0&&zl(),a=(u=((0|ar[(i=A+8|0)>>2])-f|0)/36|0)<<1,a=u>>>0<59652323?a>>>0>>0?n:a:119304647;do{if(a){if(!(119304647>>0)){c=0|hu(36*a|0);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(36*a|0)|0,ar[(f=n=c+(36*l|0)|0)>>2]=ar[e>>2],ar[n+4>>2]=ar[e+4>>2],ar[n+8>>2]=ar[e+8>>2],ar[n+12>>2]=ar[e+12>>2],s=e+16|0,ar[c+(36*l|0)+16>>2]=ar[s>>2],a=e+20|0,ar[c+(36*l|0)+20>>2]=ar[a>>2],ar[s>>2]=0,a=c+(36*l|(ar[a>>2]=0))+24|0,l=e+24|0,ar[a>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],a=n+36|0,(0|t)!=(0|r)){for(;t=(l=t)+-36|0,ar[(e=n+-36|0)>>2]=ar[t>>2],ar[e+4>>2]=ar[t+4>>2],ar[e+8>>2]=ar[t+8>>2],ar[e+12>>2]=ar[t+12>>2],e=l+-20|0,ar[n+-20>>2]=ar[e>>2],s=l+-16|0,ar[n+-16>>2]=ar[s>>2],ar[e>>2]=0,l=l+-12|(ar[s>>2]=0),ar[(s=n+-12|0)>>2]=ar[l>>2],ar[s+4>>2]=ar[l+4>>2],ar[s+8>>2]=ar[l+8>>2],f=n=f+-36|0,(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-16>>2],f=f+-36|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function _l(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){if(r=0|un(r,60968),e){for(fs[63&ar[44+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}else{for(fs[63&ar[40+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}for(A=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),ar[f>>2]=A,A=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[n>>2]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,r),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=o+8+3|0)>>0])<0?(t=0|ar[o>>2],ar[l>>2]=0,ln(t,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u),A=0|jb[127&ar[36+(0|ar[r>>2])>>2]](r)}else{if(r=0|un(r,60960),e){for(fs[63&ar[44+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}else{for(fs[63&ar[40+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}for(A=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),ar[f>>2]=A,A=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[n>>2]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,r),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=o+8+3|0)>>0])<0?(t=0|ar[o>>2],ar[l>>2]=0,ln(t,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u),A=0|jb[127&ar[36+(0|ar[r>>2])>>2]](r)}ar[c>>2]=A,ur=b}function Yl(A,e,r,i,f,n,t,o,a,c,l,u,b,s,d){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,s|=0,d|=0;var k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0;for(ar[(r|=0)>>2]=A,k=s+8+3|0,p=s+4|0,h=b+8+3|0,w=b+4|0,v=0==(512&i|0),m=0<(0|d),g=u+11|0,Z=u+4|0,F=0;4!=(0|F);){A:do{switch(0|tr[a+F>>0]){case 0:ar[e>>2]=ar[r>>2];break;case 1:ar[e>>2]=ar[r>>2],G=0|Hb[31&ar[44+(0|ar[t>>2])>>2]](t,32),V=0|ar[r>>2],ar[r>>2]=V+4,ar[V>>2]=G;break;case 3:0|((y=(V=0|tr[k>>0])<<24>>24<0)?0|ar[p>>2]:255&V)&&(G=0|ar[(y?0|ar[s>>2]:s)>>2],V=0|ar[r>>2],ar[r>>2]=V+4,ar[V>>2]=G);break;case 2:if(!(v|0==(0|(W=(y=(W=0|tr[h>>0])<<24>>24<0)?0|ar[w>>2]:255&W)))){for(B=(X=y?0|ar[b>>2]:b)+(W<<2)|0,y=E=0|ar[r>>2];(0|X)!=(0|B);)ar[y>>2]=ar[X>>2],y=y+4|0,X=X+4|0;ar[r>>2]=E+(W<<2)}break;case 4:for(B=0|ar[r>>2],y=f=o?f+4|0:f;!(n>>>0<=y>>>0)&&0|xb[63&ar[12+(0|ar[t>>2])>>2]](t,2048,0|ar[y>>2]);)y=y+4|0;if(m){for(X=d;f>>>0>>0&(E=0<(0|X));)C=0|ar[(V=y+-4|0)>>2],G=0|ar[r>>2],ar[r>>2]=G+4,ar[G>>2]=C,X=X+-1|0,y=V;for(I=E?0|Hb[31&ar[44+(0|ar[t>>2])>>2]](t,48):0,W=0|ar[r>>2];E=W+4|0,!((0|X)<=0);)ar[W>>2]=I,X=X+-1|0,W=E;ar[r>>2]=E,ar[W>>2]=c}if((0|y)==(0|f))G=0|Hb[31&ar[44+(0|ar[t>>2])>>2]](t,48),y=(V=0|ar[r>>2])+4|0,ar[r>>2]=y,ar[V>>2]=G;else{for(G=(V=0|tr[g>>0])<<24>>24<0,V&=255,I=E=(W=0|(G?0|ar[Z>>2]:V)?0|tr[(G?0|ar[u>>2]:u)>>0]:-1,0);(0|y)!=(0|f);)X=0|ar[r>>2],(0|I)==(0|W)&&(C=X+4|0,ar[r>>2]=C,ar[X>>2]=l,X=(I=(W=(E=E+1|0)>>>0<(G?0|ar[Z>>2]:V)>>>0?(W=0|tr[(G?0|ar[u>>2]:u)+E>>0])<<24>>24==127?-1:W<<24>>24:I,0),C)),R=0|ar[(C=y+-4|0)>>2],ar[r>>2]=X+4,ar[X>>2]=R,I=I+1|0,y=C;y=0|ar[r>>2]}if((0|B)!=(0|y))for(;;){if((y=y+-4|0)>>>0<=B>>>0)break A;R=0|ar[B>>2],ar[B>>2]=ar[y>>2],ar[y>>2]=R,B=B+4|0}}}while(0);F=F+1|0}if(1<(f=(y=(f=0|tr[k>>0])<<24>>24<0)?0|ar[p>>2]:255&f)>>>0){for(X=(y=y?0|ar[s>>2]:s)+4|0,E=(y=y+(f<<2)|0)-X|0,f=B=0|ar[r>>2];(0|X)!=(0|y);)ar[f>>2]=ar[X>>2],f=f+4|0,X=X+4|0;ar[r>>2]=B+(E>>>2<<2)}switch((176&i)<<24>>24){case 32:ar[e>>2]=ar[r>>2];break;case 16:break;default:ar[e>>2]=A}}function Ql(A){var e;ar[(A|=0)>>2]=16988,(0|(0|ar[(e=A+8|0)>>2]))!=(0|dn())&&of(0|ar[e>>2]),an()}function Dl(A){var e,r,i=0,f=0;for(ar[(A|=0)>>2]=17036,e=A+8|0,r=A+12|0,f=0;i=0|ar[e>>2],!(f>>>0>=(0|ar[r>>2])-i>>2>>>0);)0|(i=0|ar[i+(f<<2)>>2])&&lu(i),f=f+1|0;Bu(A+144|0),function(A){var e,r=0,i=0,f=0;e=0|ar[(A|=0)>>2];do{if(0|e){for(i=0|ar[(r=A+4|0)>>2];(0|i)!=(0|e);)f=i+-4|0,ar[r>>2]=f,i=f;if((A+16|0)==(0|e)){tr[A+128>>0]=0;break}vu(e);break}}while(0)}(e),an()}function Jl(A){var e;ar[(A|=0)>>2]=17056,0|(e=0|ar[A+8>>2])&&0|tr[A+12>>0]&&mu(e),an()}function Ml(){return 0|ar[3118]}function Tl(){return 0|ar[2733]}function Ul(){return 0|ar[2732]}function Sl(A){ar[(A|=0)>>2]=17108,Bu(A+12|0),an()}function Ol(A){ar[(A|=0)>>2]=17148,Bu(A+16|0),an()}function zl(){lA()}function jl(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA=0,uA=0,bA=0,sA=0;for(r=ur=(i=ur)+31&-32,ur=ur+16|0,ar[(A|=0)+4>>2]=e+-1,ar[A>>2]=17036,f=lA=A+8|0,n=28,n|=0,ar[(f|=0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,(tr[f+128>>0]=0)|n&&(function(A,e){var r=0;(0|Ll(A|=0))>>>0<(e|=0)>>>0&&zl();r=e>>>0<29&0==(0|tr[(r=A+128|0)>>0])?(tr[r>>0]=1,A+16|0):0|hu(e<<2);ar[A+4>>2]=r,ar[A>>2]=r,ar[A+8>>2]=r+(e<<2)}(f,n),Pl(f,n)),ar[(e=A+144|0)>>2]=0,ar[e+4>>2]=0,4294967279<(uA=(ar[e+8>>2]=0)|Yf(53684))>>>0&&pu(),uA>>>0<11?tr[e+11>>0]=uA:(bA=0|hu(sA=uA+16&-16),ar[e>>2]=bA,ar[A+152>>2]=-2147483648|sA,ar[A+148>>2]=uA,e=bA),wf(e,53684,uA),Qf(e+uA|(tr[r>>0]=0),r),e=0|ar[lA>>2],uA=0|ar[(lA=A+12|0)>>2];(0|uA)!=(0|e);)sA=uA+-4|0,uA=ar[lA>>2]=sA;ar[14199]=0,ar[14198]=14700,t=A,o=56792,Hl(t|=0,o|=0,0|hn(59216)),ar[14201]=0,ar[14200]=14732,a=A,c=56800,Hl(a|=0,c|=0,0|hn(59224)),function(A,e,r,i){e|=0,r|=0,i|=0,ar[4+(A|=0)>>2]=i+-1,ar[A>>2]=17056,ar[(i=A+8|0)>>2]=e,tr[A+12>>0]=1&r,e||(r=0|Ul(),ar[i>>2]=r)}(56808,0,0,1),l=A,u=56808,Hl(l|=0,u|=0,0|hn(59232)),ar[14207]=0,ar[14206]=17252,b=A,s=56824,Hl(b|=0,s|=0,0|hn(59264)),ar[14209]=0,ar[14208]=17320,d=A,k=56832,Hl(d|=0,k|=0,0|hn(61024)),function(A,e){e|=0,ar[4+(A|=0)>>2]=e+-1,ar[A>>2]=16988,e=0|dn(),ar[A+8>>2]=e}(56840,1),h=A,w=56840,Hl(h|=0,w|=0,0|hn(61032)),ar[14215]=0,ar[14214]=17368,v=A,m=56856,Hl(v|=0,m|=0,0|hn(61040)),ar[14217]=0,ar[14216]=17416,g=A,Z=56864,Hl(g|=0,Z|=0,0|hn(61048)),function(A,e){for(e|=0,ar[4+(A|=0)>>2]=e+-1,ar[A>>2]=17108,tr[A+8>>0]=46,tr[A+9>>0]=44,ar[(e=A+12|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0}(56872,1),p=A,y=56872,Hl(p|=0,y|=0,0|hn(59248)),function(A,e){for(e|=0,ar[4+(A|=0)>>2]=e+-1,ar[A>>2]=17148,ar[A+8>>2]=46,ar[A+12>>2]=44,ar[(e=A+16|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0}(56896,1),B=A,E=56896,Hl(B|=0,E|=0,0|hn(59272)),ar[14233]=0,ar[14232]=14764,X=A,W=56928,Hl(X|=0,W|=0,0|hn(59256)),ar[14235]=0,ar[14234]=14828,I=A,C=56936,Hl(I|=0,C|=0,0|hn(59280)),ar[14237]=0,ar[14236]=14892,G=A,V=56944,Hl(G|=0,V|=0,0|hn(59288)),ar[14239]=0,ar[14238]=14944,F=A,R=56952,Hl(F|=0,R|=0,0|hn(59296)),ar[14241]=0,ar[14240]=16492,N=A,_=56960,Hl(N|=0,_|=0,0|hn(60944)),ar[14243]=0,ar[14242]=16548,Y=A,Q=56968,Hl(Y|=0,Q|=0,0|hn(60952)),ar[14245]=0,ar[14244]=16604,D=A,J=56976,Hl(D|=0,J|=0,0|hn(60960)),ar[14247]=0,ar[14246]=16660,M=A,T=56984,Hl(M|=0,T|=0,0|hn(60968)),ar[14249]=0,ar[14248]=16716,U=A,S=56992,Hl(U|=0,S|=0,0|hn(60976)),ar[14251]=0,ar[14250]=16744,O=A,z=57e3,Hl(O|=0,z|=0,0|hn(60984)),ar[14253]=0,ar[14252]=16772,j=A,H=57008,Hl(j|=0,H|=0,0|hn(60992)),ar[14255]=0,ar[14254]=16800,x=A,P=57016,Hl(x|=0,P|=0,0|hn(61e3)),ar[14257]=0,ar[14256]=17232,function(A){ar[(A|=0)>>2]=17464}(57032),ar[14256]=14996,ar[14258]=15044,L=A,K=57024,Hl(L|=0,K|=0,0|hn(60108)),ar[14261]=0,ar[14260]=17232,function(A){ar[(A|=0)>>2]=17500}(57048),ar[14260]=15080,ar[14262]=15128,q=A,$=57040,Hl(q|=0,$|=0,0|hn(60920)),ar[14265]=0,ar[14264]=17232,AA=0|dn(),ar[14266]=AA,ar[14264]=16444,eA=A,rA=57056,Hl(eA|=0,rA|=0,0|hn(60928)),ar[14269]=0,ar[14268]=17232,iA=0|dn(),ar[14270]=iA,ar[14268]=16468,fA=A,nA=57072,Hl(fA|=0,nA|=0,0|hn(60936)),ar[14273]=0,ar[14272]=16828,tA=A,oA=57088,Hl(tA|=0,oA|=0,0|hn(61008)),ar[14275]=0,ar[14274]=16860,aA=A,cA=57096,Hl(aA|=0,cA|=0,0|hn(61016)),ur=i}function Hl(A,e,r){A|=0,r|=0;var i,f=0;au(e|=0),f=0|ar[(i=A+8|0)>>2],(0|ar[A+12>>2])-f>>2>>>0>r>>>0?A=i:(function(A,e){e|=0;var r,i,f=0,n=0;f=0|ar[(i=4+(A|=0)|0)>>2],n=0|ar[A>>2],r=f-n>>2;A:do{if(e>>>0<=r>>>0){if(e>>>0>>0)for(A=n+(e<<2)|0;;){if((0|f)==(0|A))break A;n=f+-4|0,ar[i>>2]=n,f=n}}else xl(A,e-r|0)}while(0)}(i,r+1|0),f=0|ar[(A=i)>>2]),0|(f=0|ar[f+(r<<2)>>2])&&lu(f),ar[(0|ar[A>>2])+(r<<2)>>2]=e}function xl(A,e){e|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0;r=ur=(f=ur)+31&-32,ur=ur+32|0,o=(A|=0)+8|0,n=0|ar[(i=A+4|0)>>2];do{if((0|ar[o>>2])-n>>2>>>0>>0){if(n=(n-(0|ar[A>>2])>>2)+e|0,!((t=0|Ll())>>>0>>0)){a=0|ar[A>>2],o=(c=(0|ar[o>>2])-a|0)>>1,Kl(r,c>>2>>>0>>1>>>0?o>>>0>>0?n:o:t,(0|ar[i>>2])-a>>2,A+16|0),ql(r,e),$l(A,r),Au(r);break}zl()}else Pl(A,e)}while(0);ur=f}function Pl(A,e){var r;for(r=(A|=0)+4|0,A=e|=0,e=0|ar[r>>2];e=4+((ar[e>>2]=0)|ar[r>>2])|0,ar[r>>2]=e,0!=(0|(A=A+-1|0)););}function Ll(){return 1073741823}function Kl(A,e,r,i){e|=0,r|=0,i|=0;var f=0;ar[(A|=0)+12>>2]=0,ar[A+16>>2]=i;do{if(e){if(e>>>0<29&0==(0|tr[(f=i+112|0)>>0])){tr[f>>0]=1;break}i=0|hu(e<<2);break}i=0}while(0);r=(ar[A>>2]=i)+(r<<2)|0,ar[A+8>>2]=r,ar[A+4>>2]=r,ar[A+12>>2]=i+(e<<2)}function ql(A,e){var r;for(r=(A|=0)+8|0,A=e|=0,e=0|ar[r>>2];e=4+((ar[e>>2]=0)|ar[r>>2])|0,ar[r>>2]=e,0!=(0|(A=A+-1|0)););}function $l(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0;i=0|ar[(A|=0)>>2],n=e+4|0,f=(0|ar[(t=A+4|0)>>2])-i|0,r=(0|ar[n>>2])+(0-(f>>2)<<2)|0,ar[n>>2]=r,0<(0|f)?(hb(0|r,0|i,0|f),r=0|ar[(i=n)>>2]):i=n,n=0|ar[A>>2],ar[A>>2]=r,ar[i>>2]=n,n=e+8|0,f=0|ar[t>>2],ar[t>>2]=ar[n>>2],ar[n>>2]=f,t=e+12|0,A=0|ar[(n=A+8|0)>>2],ar[n>>2]=ar[t>>2],ar[t>>2]=A,ar[e>>2]=ar[i>>2]}function Au(A){var e=0,r=0,i=0,f=0;for(e=0|ar[(A|=0)+4>>2],i=0|ar[(r=A+8|0)>>2];(0|i)!=(0|e);)f=i+-4|0,i=ar[r>>2]=f;r=0|ar[A>>2];do{if(0|r){if((0|(e=0|ar[A+16>>2]))==(0|r)){tr[e+112>>0]=0;break}vu(r);break}}while(0)}function eu(){return 0==(0|tr[57104])&&0|ib(57104)&&(jl(57112,1),ar[15264]=57112,ar[15265]=61056),0|ar[15265]}function ru(A,e){A|=0,e=0|ar[(e|=0)>>2],au(ar[A>>2]=e)}function iu(){return 0==(0|tr[57272])&&0|ib(57272)&&(ru(61064,0|eu()),ar[15267]=61064),0|ar[15267]}function fu(A){A|=0;var e=0;e=0|iu(),e=0|ar[e>>2],au(ar[A>>2]=e)}function nu(A,e,r){return A|=0,e|=0,0|(A=(r|=0)?0|function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;A:do{if(r){for(;(i=0|tr[A>>0])<<24>>24==(f=0|tr[e>>0])<<24>>24;){if(!(r=r+-1|0)){A=0;break A}A=A+1|0,e=e+1|0}A=(255&i)-(255&f)|0}else A=0}while(0);return 0|A}(A,e,r):0)}function tu(){0}function ou(A){0}function au(A){cu((A|=0)+4|0)}function cu(A){ar[(A|=0)>>2]=1+(0|ar[A>>2])}function lu(A){return 0|(A=-1==(0|uu((A|=0)+4|0))?(is[511&ar[8+(0|ar[A>>2])>>2]](A),1):0)}function uu(A){var e;return e=0|ar[(A|=0)>>2],ar[A>>2]=e-1,e-1|0}function bu(A){au(A|=0)}function su(A){cu((A|=0)+8|0)}function du(A){0|lu(A|=0)&&ku(A)}function ku(A){var e;0!=(0|ar[(e=(A|=0)+8|0)>>2])&&-1!=(0|uu(e))||is[511&ar[16+(0|ar[A>>2])>>2]](A)}function hu(A){var e;for(e=0==(0|(A|=0))?1:A;!(0|(A=0|yc(e)));){if(!(A=0|fb())){A=0;break}rs[7&A]()}return 0|A}function wu(A){return 0|hu(A|=0)}function vu(A){Bc(A|=0)}function mu(A){vu(A|=0)}function gu(){lA()}function Zu(A,e){e|=0,ar[(A|=0)>>2]=17640,function(A,e){A|=0;var r,i,f=0;f=0|hu(13+(r=0|Vc(e|=0))|0),ar[f>>2]=r,ar[f+4>>2]=r,hb((ar[f+8>>2]=0)|(f=0|(i=f,12+(i|=0)|0)),0|e,1+r|0),ar[A>>2]=f}(A+4|0,e)}function pu(){lA()}function yu(A,e){e|=0;var r,i,f=0,n=0,t=0;r=ur=(i=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,((ar[A+8>>2]=0)|tr[e+11>>0])<0?(f=0|ar[e>>2],4294967279<(e=0|ar[e+4>>2])>>>0&&pu(),e>>>0<11?tr[A+11>>0]=e:(n=0|hu(t=e+16&-16),ar[A>>2]=n,ar[A+8>>2]=-2147483648|t,ar[A+4>>2]=e,A=n),wf(A,f,e),Qf(A+e|(tr[r>>0]=0),r)):(ar[A>>2]=ar[e>>2],ar[A+4>>2]=ar[e+4>>2],ar[A+8>>2]=ar[e+8>>2]),ur=i}function Bu(A){(0|tr[(A|=0)+11>>0])<0&&vu(0|ar[A>>2])}function Eu(A,e){var r=0,i=0;return(0|(A|=0))!=(0|(e|=0))&&Xu(A,(i=(r=0|tr[e+11>>0])<<24>>24<0)?0|ar[e>>2]:e,i?0|ar[e+4>>2]:255&r),0|A}function Xu(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0;f=ur=(t=ur)+31&-32,ur=ur+16|0,a=(i=(o=0|tr[(n=(A|=0)+11|0)>>0])<<24>>24<0)?(2147483647&ar[A+8>>2])-1|0:10;do{if(r>>>0<=a>>>0){if(Wu(o=i?0|ar[A>>2]:A,e,r),Qf(o+r|(tr[f>>0]=0),f),(0|tr[n>>0])<0){ar[A+4>>2]=r;break}tr[n>>0]=r;break}i?o=0|ar[A+4>>2]:o&=255,Iu(A,a,r-a|0,o,0,o,r,e)}while(0);return ur=t,0|A}function Wu(A,e,r){return A|=0,e|=0,0|(r|=0)&&wb(0|A,0|e,0|r),0|A}function Iu(A,e,r,i,f,n,t,o){A|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l=0,u=0,b=0;a=ur=(c=ur)+31&-32,ur=ur+16|0,(-18-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),b=(0|tr[A+11>>0])<0?0|ar[A>>2]:A,u=0|hu(l=e>>>0<2147483623?(l=(l=r+e|0)>>>0<(u=e<<1)>>>0?u:l)>>>0<11?11:l+16&-16:-17),0|f&&wf(u,b,f),0|t&&wf(u+f|0,o,t),0|(i=(r=i-n|0)-f|0)&&wf(u+f+t|0,b+f+n|0,i),10!=(0|e)&&vu(b),ar[A>>2]=u,ar[A+8>>2]=-2147483648|l,t=r+t|0,Qf(u+(ar[A+4>>2]=t)|(tr[a>>0]=0),a),ur=c}function Cu(A,e){A|=0;var r,i=0,f=0,n=0,t=0,o=0;4294967279<(e|=0)>>>0&&pu(),i=(n=(f=0|tr[(r=A+11|0)>>0])<<24>>24<0)?(o=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(o=255&f,10),t=(e=(t=e>>>0>>0?o:e)>>>0<11)?10:(t+16&-16)-1|0;do{if((0|t)!=(0|i)){do{if(!e){if(e=0|hu(t+1|0),n){n=1,i=0|ar[A>>2],f=13;break}wf(e,A,1+(255&f)|0),f=14;break}e=0|ar[A>>2],f=n?(n=0,i=e,e=A,13):(wf(A,e,1+(255&f)|0),vu(e),15)}while(0);if(13==(0|f)&&(wf(e,i,1+(0|ar[A+4>>2])|0),vu(i),f=n?14:15),14==(0|f)){ar[A+8>>2]=t+1|-2147483648,ar[A+4>>2]=o,ar[A>>2]=e;break}if(15==(0|f)){tr[r>>0]=o;break}}}while(0)}function Gu(A,e){return 0|Xu(A|=0,e|=0,0|Yf(e))}function Vu(A,e,r){e|=0,r|=0;var i,f,n,t=0,o=0;i=ur=(n=ur)+31&-32,ur=ur+16|0,(o=(t=0|tr[(f=(A|=0)+11|0)>>0])<<24>>24<0)?t=0|ar[A+4>>2]:t&=255;do{if(e>>>0<=t>>>0){if(o){o=(0|ar[A>>2])+e|0,tr[i>>0]=0,Qf(o,i),ar[A+4>>2]=e;break}Qf(A+e|(tr[i>>0]=0),i),tr[f>>0]=e;break}Fu(A,e-t|0,r)}while(0);ur=n}function Fu(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,0|(e|=0)&&(t=(n=0|tr[(c=A+11|0)>>0])<<24>>24<0?(o=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(o=255&n,10),a=o+e|0,(t-o|0)>>>0>>0&&(Ru(A,t,a-t|0,o,o,0,0),n=0|tr[c>>0]),oi((n=n<<24>>24<0?0|ar[A>>2]:A)+o|0,e,r),(0|tr[c>>0])<0?ar[A+4>>2]=a:tr[c>>0]=a,Qf(n+a|(tr[i>>0]=0),i)),ur=f,0|A}function Ru(A,e,r,i,f,n,t){A|=0,i|=0,f|=0,n|=0,t|=0;var o=0,a=0,c=0;(-17-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),c=(0|tr[A+11>>0])<0?0|ar[A>>2]:A,a=0|hu(o=e>>>0<2147483623?(o=(o=r+e|0)>>>0<(a=e<<1)>>>0?a:o)>>>0<11?11:o+16&-16:-17),0|f&&wf(a,c,f),0|(r=i-n-f|0)&&wf(a+f+t|0,c+f+n|0,r),10!=(0|e)&&vu(c),ar[A>>2]=a,ar[A+8>>2]=-2147483648|o}function Nu(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0;return n=ur=(o=ur)+31&-32,ur=ur+16|0,a=(f=(a=0|tr[(t=(A|=0)+11|0)>>0])<<24>>24<0)?(c=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(c=255&a,10),i=c+r|0,r>>>0<=(a-c|0)>>>0?0|r&&(wf((a=f?0|ar[A>>2]:A)+c|0,e,r),(0|tr[t>>0])<0?ar[A+4>>2]=i:tr[t>>0]=i,Qf(a+i|(tr[n>>0]=0),n)):Iu(A,a,i-a|0,c,c,0,r,e),ur=o,0|A}function _u(A,e){A|=0,e|=0;var r,i,f=0,n=0,t=0,o=0;o=ur=(i=ur)+31&-32,ur=ur+16|0,o=(r=o)+1|0,tr[r>>0]=e,e=(f=(e=0|tr[(n=A+11|0)>>0])<<24>>24<0)?(t=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(t=255&e,10),7==(0|(f=(0|t)==(0|e)?(Ru(A,e,1,e,e,0,0),e=e+1|0,(0|tr[n>>0])<0?8:7):(e=t+1|0,f?8:7)))?(tr[n>>0]=e,e=A):8==(0|f)&&(n=0|ar[A>>2],ar[A+4>>2]=e,e=n),Qf(A=e+t|0,r),Qf(A+1|(tr[o>>0]=0),o),ur=i}function Yu(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t=0;return(n=(t=0|tr[(A|=0)+11>>0])<<24>>24<0)?t=0|ar[A+4>>2]:t&=255,-1==(0|f)|t>>>0>>0&&lA(),r=(t=t-e|0)>>>0>>0?t:r,n&&(A=0|ar[A>>2]),(A=0|nu(A+e|0,i,(t=f>>>0>>0)?f:r))?0|A:0|(r>>>0>>0?-1:1&t)}function Qu(A){(0|tr[(A|=0)+8+3>>0])<0&&vu(0|ar[A>>2])}function Du(A,e,r){return A|=0,e|=0,(r|=0)&&function(A,e,r){var i=0;if((r|=0)>>>0<=(A|=0)-(e|=0)>>2>>>0){if(0|r)for(i=A;r=r+-1|0,ar[i>>2]=ar[e>>2],r;)e=e+4|0,i=i+4|0}else for(;ar[A+((r=r+-1|0)<<2)>>2]=ar[e+(r<<2)>>2],0!=(0|r););}(A,e,r),0|A}function Ju(A,e,r,i,f,n,t,o){A|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u=0,b=0,s=0;c=ur=(l=ur)+31&-32,ur=ur+16|0,(1073741806-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),s=(0|tr[3+(a=A+8|0)>>0])<0?0|ar[A>>2]:A,e>>>0<536870887?1073741823<(r=(r=(r=r+e|0)>>>0<(u=e<<1)>>>0?u:r)>>>0<2?2:r+4&-4)>>>0?lA():b=r:b=1073741807,u=0|hu(b<<2),0|f&&Zf(u,s,f),0|t&&Zf(u+(f<<2)|0,o,t),0|(i=(r=i-n|0)-f|0)&&Zf(u+(f<<2)+(t<<2)|0,s+(f<<2)+(n<<2)|0,i),1!=(0|e)&&vu(s),ar[A>>2]=u,ar[a>>2]=-2147483648|b,t=r+t|0,ln(u+((ar[A+4>>2]=t)<<2)|(ar[c>>2]=0),c),ur=l}function Mu(A,e){A|=0;var r,i,f=0,n=0,t=0,o=0,a=0;1073741807<(e|=0)>>>0&&pu(),f=(t=(n=0|tr[(r=3+(i=A+8|0)|0)>>0])<<24>>24<0)?(a=0|ar[A+4>>2],(2147483647&ar[i>>2])-1|0):(a=255&n,1),o=(e=(o=e>>>0>>0?a:e)>>>0<2)?1:(o+4&-4)-1|0;do{if((0|o)!=(0|f)){do{if(!e){if(1073741823<(e=o+1|0)>>>0&&lA(),e=0|hu(e<<2),t){t=1,f=0|ar[A>>2],n=15;break}Zf(e,A,1+(255&n)|0),n=16;break}e=0|ar[A>>2],n=t?(t=0,f=e,e=A,15):(Zf(A,e,1+(255&n)|0),vu(e),17)}while(0);if(15==(0|n)&&(Zf(e,f,1+(0|ar[A+4>>2])|0),vu(f),n=t?16:17),16==(0|n)){ar[i>>2]=o+1|-2147483648,ar[A+4>>2]=a,ar[A>>2]=e;break}if(17==(0|n)){tr[r>>0]=a;break}}}while(0)}function Tu(A,e){return 0|function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0;n=ur=(o=ur)+31&-32,ur=ur+16|0,c=(f=(i=0|tr[(t=(a=(A|=0)+8|0)+3|0)>>0])<<24>>24<0)?(2147483647&ar[a>>2])-1|0:1;do{if(r>>>0<=c>>>0){if(Du(a=f?0|ar[A>>2]:A,e,r),ln(a+(r<<2)|(ar[n>>2]=0),n),(0|tr[t>>0])<0){ar[A+4>>2]=r;break}tr[t>>0]=r;break}Ju(A,c,r-c|0,a=f?0|ar[A+4>>2]:255&i,0,a,r,e)}while(0);return ur=o,0|A}(A|=0,e|=0,0|Mr(e))}function Uu(A,e,r,i,f,n,t){A|=0,i|=0,f|=0,n|=0,t|=0;var o,a=0,c=0,l=0;(1073741807-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),l=(0|tr[3+(o=A+8|0)>>0])<0?0|ar[A>>2]:A,e>>>0<536870887?1073741823<(r=(r=(r=r+e|0)>>>0<(a=e<<1)>>>0?a:r)>>>0<2?2:r+4&-4)>>>0?lA():c=r:c=1073741807,a=0|hu(c<<2),0|f&&Zf(a,l,f),0|(r=i-n-f|0)&&Zf(a+(f<<2)+(t<<2)|0,l+(f<<2)+(n<<2)|0,r),1!=(0|e)&&vu(l),ar[A>>2]=a,ar[o>>2]=-2147483648|c}function Su(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0;return f=ur=(t=ur)+31&-32,ur=ur+16|0,o=(i=(o=0|tr[(n=(a=(A|=0)+8|0)+3|0)>>0])<<24>>24<0)?(c=0|ar[A+4>>2],(2147483647&ar[a>>2])-1|0):(c=255&o,1),a=c+r|0,r>>>0<=(o-c|0)>>>0?0|r&&(Zf((o=i?0|ar[A>>2]:A)+(c<<2)|0,e,r),(0|tr[n>>0])<0?ar[A+4>>2]=a:tr[n>>0]=a,ln(o+(a<<2)|(ar[f>>2]=0),f)):Ju(A,o,a-o|0,c,c,0,r,e),ur=t,0|A}function Ou(A,e){A|=0,e|=0;var r,i,f,n=0,t=0,o=0,a=0;a=ur=(f=ur)+31&-32,ur=ur+16|0,a=(i=a)+4|0,ar[i>>2]=e,e=(r=(e=0|tr[(t=(n=A+8|0)+3|0)>>0])<<24>>24<0)?(o=0|ar[A+4>>2],(2147483647&ar[n>>2])-1|0):(o=255&e,1),7==(0|(n=(0|o)==(0|e)?(Uu(A,e,1,e,e,0,0),e=e+1|0,(0|tr[t>>0])<0?8:7):(e=o+1|0,r?8:7)))?(tr[t>>0]=e,e=A):8==(0|n)&&(t=0|ar[A>>2],ar[A+4>>2]=e,e=t),ln(A=e+(o<<2)|0,i),ln(A+4|(ar[a>>2]=0),a),ur=f}function zu(){var A,e=0;return e=ur=(A=ur)+31&-32,ur=ur+16|0,0|yA(61148,5)?(ju(56158,e),0):(e=0|wA(0|ar[15288]),ur=A,0|e)}function ju(A,e){A|=0,e|=0;var r;r=ur=ur+31&-32,ur=ur+16|0,ar[r>>2]=e,Qc(e=0|ar[2669],A,r),function(A,e){var r,i=0,f=0,n=0,t=0,o=0,a=0;i=r=255&(A|=0),0<=(0|ar[(e|=0)+76>>2])&&0!=(0|Jc())?((0|i)!=(0|tr[e+75>>0])&&(o=0|ar[(t=e+20|0)>>2])>>>0<(0|ar[e+16>>2])>>>0?(ar[t>>2]=o+1,tr[o>>0]=r):i=0|Si(e,A),Mc()):a=3;do{if(3==(0|a)){if((0|i)!=(0|tr[e+75>>0])&&(n=0|ar[(f=e+20|0)>>2])>>>0<(0|ar[e+16>>2])>>>0){ar[f>>2]=n+1,tr[n>>0]=r;break}i=0|Si(e,A)}}while(0)}(10,e),lA()}function Hu(A){0}function xu(A,e){return(0|(A|=0))==(0|(e|=0))|0}function Pu(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t;f=0|ar[(A=(e|=0)+16|0)>>2],n=e+36|0,t=e+24|0;do{if(f){if((0|f)!=(0|r)){ar[n>>2]=1+(0|ar[n>>2]),ar[t>>2]=2,tr[e+54>>0]=1;break}2==(0|ar[t>>2])&&(ar[t>>2]=i)}else ar[A>>2]=r,ar[t>>2]=i,ar[n>>2]=1}while(0)}function Lu(A,e,r,i){r|=0,i|=0;var f=0;(0|ar[(e|=0)+4>>2])==(0|r)&&1!=(0|ar[(f=e+28|0)>>2])&&(ar[f>>2]=i)}function Ku(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;tr[(e|=0)+53>>0]=1;do{if((0|ar[e+4>>2])==(0|i)){if(tr[e+52>>0]=1,o=e+54|0,a=e+48|0,t=e+24|0,A=e+36|0,!(n=0|ar[(i=e+16|0)>>2])){if(ar[i>>2]=r,ar[t>>2]=f,!((ar[A>>2]=1)==(0|ar[a>>2])&1==(0|f)))break;tr[o>>0]=1;break}if((0|n)!=(0|r)){ar[A>>2]=1+(0|ar[A>>2]),tr[o>>0]=1;break}2==(0|(A=0|ar[t>>2]))&&(A=ar[t>>2]=f),1==(0|ar[a>>2])&1==(0|A)&&(tr[o>>0]=1)}}while(0)}function qu(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u=0,b=0;for(a=ur=(l=ur)+31&-32,ur=ur+64|0,b=0|ar[(A|=0)>>2],c=A+(0|ar[b+-8>>2])|0,b=0|ar[b+-4>>2],ar[a>>2]=r,ar[4+a>>2]=A,ar[8+a>>2]=e,ar[12+a>>2]=i,e=20+a|0,i=24+a|0,f=28+a|0,n=32+a|0,t=40+a|0,o=(u=A=16+a|0)+36|0;(0|(u=u+4|(ar[u>>2]=0)))<(0|o););or[A+36>>1]=0,tr[A+38>>0]=0;A:do{if(0|xu(b,r))ar[48+a>>2]=1,as[15&ar[20+(0|ar[b>>2])>>2]](b,a,c,c,1,0),A=1==(0|ar[i>>2])?c:0;else{switch(os[63&ar[24+(0|ar[b>>2])>>2]](b,a,c,1,0),0|ar[36+a>>2]){case 0:A=1==(0|ar[t>>2])&1==(0|ar[f>>2])&1==(0|ar[n>>2])?0|ar[e>>2]:0;break A;case 1:break;default:A=0;break A}if(1!=(0|ar[i>>2])&&!(0==(0|ar[t>>2])&1==(0|ar[f>>2])&1==(0|ar[n>>2]))){A=0;break}A=0|ar[A>>2]}}while(0);return ur=l,0|A}function $u(A){var e,r,i;ar[(A|=0)>>2]=17640,e=A+4|0,(i=r=0)|(e|=0,1)&&(r=0|function(A){return(A|=0)+-12|0}(0|ar[e>>2]),e=0|ar[(i=r+8|0)>>2],ar[i>>2]=e+-1,(e+-1|0)<0)&&vu(r)}function Ab(A,e,r,i){e|=0,r|=0,i|=0;var f,n=0;n=(f=0|ar[(A|=0)+4>>2])>>8,1&f&&(n=0|ar[(0|ar[r>>2])+n>>2]),A=0|ar[A>>2],ts[31&ar[28+(0|ar[A>>2])>>2]](A,e,r+n|0,2&f|0?i:2)}function eb(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o=0;o=(t=0|ar[(A|=0)+4>>2])>>8,1&t&&(o=0|ar[(0|ar[i>>2])+o>>2]),A=0|ar[A>>2],as[15&ar[20+(0|ar[A>>2])>>2]](A,e,r,i+o|0,2&t|0?f:2,n)}function rb(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t=0;t=(n=0|ar[(A|=0)+4>>2])>>8,1&n&&(t=0|ar[(0|ar[r>>2])+t>>2]),A=0|ar[A>>2],os[63&ar[24+(0|ar[A>>2])>>2]](A,e,r+t|0,2&n|0?i:2,f)}function ib(A){return 0|(A=1==(0|tr[(A|=0)>>0])?0:tr[A>>0]=1)}function fb(){var A;return A=0|ar[15289],0|(ar[15289]=A)}function nb(A,e,r,i){e|=0,i|=0;var f,n,t,o,a,c,l,u;return r=0|(t=f=A|=0,o=n=r|=0,t=((a=(u=0)|br(u=65535&(o|=0),l=65535&(t|=0)))>>>16)+(0|br(u,c=t>>>16))|0,o=0|br(u=o>>>16,l),0|(D=(t>>>16)+(0|br(u,c))+(((65535&t)+o|0)>>>16)|0,t+o<<16|65535&a|0)),A=D,0|(D=(0|br(e,n))+(0|br(i,f))+A|0&A,0|r)}function tb(A,e,r,i){return 0|(D=(e|=0)+(i|=0)+((r=(A|=0)+(r|=0)>>>0)>>>0>>0|0)>>>0,0|r)}function ob(A,e,r,i){return 0|(D=i=(e|=0)-(i|=0)-((A|=0)>>>0<(r|=0)>>>0|0)>>>0,A-r>>>0|0)}function ab(A){var e=0;return(0|(e=0|tr[s+(255&(A|=0))>>0]))<8?0|e:(0|(e=0|tr[s+(A>>8&255)>>0]))<8?e+8|0:(0|(e=0|tr[s+(A>>16&255)>>0]))<8?e+16|0:24+(0|tr[s+(A>>>24)>>0])|0}function cb(A,e,r,i,f){f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(l=A|=0,t=r|=0,o=b=i|=0,!(c=a=e|=0))return n=0!=(0|f),o?(n&&(ar[f>>2]=0|A,ar[f+4>>2]=0&e),(f=b=0)|(D=b,f)):(n&&(ar[f>>2]=(l>>>0)%(t>>>0),ar[f+4>>2]=0),(b=0)|(D=b,f=(l>>>0)/(t>>>0)>>>0));n=0==(0|o);do{if(t){if(!n){if((n=(0|g(0|o))-(0|g(0|c))|0)>>>0<=31){A=l>>>((t=u=n+1|0)>>>0)&(e=n-31>>31)|c<<(o=31-n|0),e&=c>>>(u>>>0),n=0,o=l<>2]=0|A,ar[f+4>>2]=a|0&e,(f=b=0)|(D=b,f)):(f=b=0)|(D=b,f)}if((n=t-1|0)&t|0){A=(u=32-(o=33+(0|g(0|t))-(0|g(0|c))|0)|0)-1>>31&c>>>((s=o-32|0)>>>0)|(c<>>((t=o)>>>0))&(e=s>>31),e&=c>>>(o>>>0),n=l<<(d=64-o|0)&(a=u>>31),o=(c<>>(s>>>0))&a|l<>31;break}return 0|f&&(ar[f>>2]=n&l,ar[f+4>>2]=0),1==(0|t)?0|(D=s=a|0&e,d=0|A):(d=0|ab(0|t),0|(D=s=c>>>(d>>>0)|0,d=c<<32-d|l>>>(d>>>0)|0))}if(n)return 0|f&&(ar[f>>2]=(c>>>0)%(t>>>0),ar[f+4>>2]=0),(s=0)|(D=s,d=(c>>>0)/(t>>>0)>>>0);if(!l)return 0|f&&(ar[f>>2]=0,ar[f+4>>2]=(c>>>0)%(o>>>0)),(s=0)|(D=s,d=(c>>>0)/(o>>>0)>>>0);if(!((n=o-1|0)&o))return 0|f&&(ar[f>>2]=0|A,ar[f+4>>2]=n&c|0&e),d=c>>>(((s=0)|ab(0|o))>>>0),0|(D=s,d);if((n=(0|g(0|o))-(0|g(0|c))|0)>>>0<=30){A=c<<(o=31-n|0)|l>>>((t=e=n+1|0)>>>0),e=c>>>(e>>>0),n=0,o=l<>2]=0|A,ar[f+4>>2]=a|0&e),(d=s=0)|(D=s,d)}while(0);if(t){for(c=0|tb(0|(u=0|r),0|(l=b|0&i),-1,-1),r=D,a=o,o=0;a=n>>>31|(i=a)<<1,n=o|n<<1,ob(0|c,0|r,0|(i=A<<1|i>>>31|0),0|(b=A>>>31|e<<1|0)),o=1&(s=(d=D)>>31|((0|d)<0?-1:0)<<1),A=0|ob(0|i,0|b,s&u|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&l|0),e=D,0!=(0|(t=t-1|0)););c=a,a=0}else c=o,o=a=0;return(t=0)|f&&(ar[f>>2]=A,ar[f+4>>2]=e),0|(D=s=(0|n)>>>31|(c|t)<<1|0&(t<<1|n>>>31)|a,d=-2&(n<<1|0)|o)}function lb(A,e,r,i){return 0|cb(A|=0,e|=0,r|=0,i|=0,0)}function ub(A,e,r,i){var f,n;return ur=(n=ur)+16|0,cb(A|=0,e|=0,r|=0,i|=0,f=0|n),ur=n,0|(D=0|ar[4+f>>2],0|ar[f>>2])}function bb(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(D=e>>r,A>>>r|(e&(1<>r-32|0)}function sb(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(D=e>>>r,A>>>r|(e&(1<>>r-32|(D=0)}function db(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(D=e<>>32-r,A<>8&255)<<16|(A>>16&255)<<8|A>>>24|0}function hb(A,e,r){A|=0,e|=0;var i,f,n=0;if(8192<=(0|(r|=0)))return 0|uA(0|A,0|e,0|r);if(f=0|A,i=A+r|0,(3&A)==(3&e)){for(;3&A;){if(!r)return 0|f;tr[A>>0]=0|tr[e>>0],A=A+1|0,e=e+1|0,r=r-1|0}for(n=(r=-4&i|0)-64|0;(0|A)<=(0|n);)ar[A>>2]=ar[e>>2],ar[A+4>>2]=ar[e+4>>2],ar[A+8>>2]=ar[e+8>>2],ar[A+12>>2]=ar[e+12>>2],ar[A+16>>2]=ar[e+16>>2],ar[A+20>>2]=ar[e+20>>2],ar[A+24>>2]=ar[e+24>>2],ar[A+28>>2]=ar[e+28>>2],ar[A+32>>2]=ar[e+32>>2],ar[A+36>>2]=ar[e+36>>2],ar[A+40>>2]=ar[e+40>>2],ar[A+44>>2]=ar[e+44>>2],ar[A+48>>2]=ar[e+48>>2],ar[A+52>>2]=ar[e+52>>2],ar[A+56>>2]=ar[e+56>>2],ar[A+60>>2]=ar[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|r);)ar[A>>2]=ar[e>>2],A=A+4|0,e=e+4|0}else for(r=i-4|0;(0|A)<(0|r);)tr[A>>0]=0|tr[e>>0],tr[A+1>>0]=0|tr[e+1>>0],tr[A+2>>0]=0|tr[e+2>>0],tr[A+3>>0]=0|tr[e+3>>0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)tr[A>>0]=0|tr[e>>0],A=A+1|0,e=e+1|0;return 0|f}function wb(A,e,r){var i=0;if((0|(e|=0))<(0|(A|=0))&(0|A)<(e+(r|=0)|0)){for(e=e+r|0,A=(i=A)+r|0;0<(0|r);)e=e-1|0,r=r-1|0,tr[(A=A-1|0)>>0]=0|tr[e>>0];A=i}else hb(A,e,r);return 0|A}function vb(A,e,r){e|=0;var i,f=0,n=0,t=0;if(i=(A|=0)+(r|=0)|0,e&=255,67<=(0|r)){for(;3&A;)tr[A>>0]=e,A=A+1|0;for(n=(f=-4&i|0)-64|0,t=e|e<<8|e<<16|e<<24;(0|A)<=(0|n);)ar[A>>2]=t,ar[A+4>>2]=t,ar[A+8>>2]=t,ar[A+12>>2]=t,ar[A+16>>2]=t,ar[A+20>>2]=t,ar[A+24>>2]=t,ar[A+28>>2]=t,ar[A+32>>2]=t,ar[A+36>>2]=t,ar[A+40>>2]=t,ar[A+44>>2]=t,ar[A+48>>2]=t,ar[A+52>>2]=t,ar[A+56>>2]=t,ar[A+60>>2]=t,A=A+64|0;for(;(0|A)<(0|f);)ar[A>>2]=t,A=A+4|0}for(;(0|A)<(0|i);)tr[A>>0]=e,A=A+1|0;return i-r|0}function mb(A){return 0}function gb(A){return 0}function Zb(A){return 0}function pb(A){return 0<=(A=+A)?+v(A+.5):+m(A-.5)}function yb(A){var e,r;return 0<(0|(r=(A|=0)+15&-16|0))&(0|(A=(e=0|ar[b>>2])+r|0))<(0|e)|(0|A)<0?(B(),F(12),-1):(0|(ar[b>>2]=A))>(0|y())&&0==(0|p())?(ar[b>>2]=e,F(12),-1):0|e}function Bb(){return Z(0),0}function Eb(A){return Z(1),0}function Xb(A,e){return Z(2),0}function Wb(A,e,r){return Z(3),0}function Ib(A,e,r,i,f){return Z(5),0}function Cb(A,e,r,i,f){return Z(6),0}function Gb(A,e,r,i,f,n){return Z(7),0}function Vb(A,e,r,i,f,n){return Z(8),0}function Fb(A,e,r,i,f,n,t){return Z(9),0}function Rb(A,e,r,i,f,n,t,o){return Z(10),0}function Nb(){Z(11)}function _b(A){Z(12)}function Yb(A,e){Z(13)}function Qb(A,e,r){Z(14)}function Db(A,e,r,i){Z(15)}function Jb(A,e,r,i,f){Z(16)}function Mb(A,e,r,i,f,n){Z(17)}function Tb(A,e,r,i,f,n,t){Z(18)}function Ub(A,e,r,i,f,n,t,o){Z(19)}function Sb(A,e,r,i,f,n,t,o,a){Z(20)}function Ob(A,e,r,i,f,n,t,o,a,c){Z(21)}var zb=[Bb,function(){var A,e,r=0,i=0,f=0;for(i=34509,f=(r=61161)+22|0;tr[r>>0]=0|tr[i>>0],i=i+1|0,(0|(r=r+1|0))<(0|f););if(80<=(10+(0|Vc(34542))|0)>>>0)return 61161;for(i=34531,f=(r=61161+(0|Vc(61161))|0)+11|0;tr[r>>0]=0|tr[i>>0],i=i+1|0,(0|(r=r+1|0))<(0|f););return A=61161,e=34542,e|=0,function(A,e){!function(A,e){A|=0;var r=0,i=0;r=e|=0;A:do{if(3&(r^A))i=8;else{if(3&r)do{if(r=0|tr[e>>0],!((tr[A>>0]=r)<<24>>24))break A;e=e+1|0,A=A+1|0}while(0!=(3&e|0));if(!((-2139062144&(r=0|ar[e>>2])^-2139062144)&r+-16843009))for(i=A;e=e+4|0,A=i+4|0,ar[i>>2]=r,!((-2139062144&(r=0|ar[e>>2])^-2139062144)&r+-16843009|0);)i=A;i=8}}while(0);if(8==(0|i)&&(i=0|tr[e>>0],(tr[A>>0]=i)<<24>>24))for(;A=A+1|0,i=0|tr[(e=e+1|0)>>0],(tr[A>>0]=i)<<24>>24!=0;);}(A|=0,e|=0)}((A|=0)+(0|Vc(A))|0,e),61161},function(){return 17432576},function(){var A,e,r,i,f,n;return A=0|hu(8),ar[A>>2]=0,r=(ar[(e=4+A|0)>>2]=0)|hu(92),ar[4+r>>2]=0,ar[8+r>>2]=0,ar[r>>2]=6336,f=i=12+r|0,ar[(f|=0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=30025,ar[f+20>>2]=0,ar[f+24>>2]=0,ar[f+16>>2]=f+20,ar[f+32>>2]=0,ar[f+36>>2]=0,ar[f+28>>2]=f+32,ar[(n=f+40|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[16+n>>2]=0,ar[20+n>>2]=0,ar[24+n>>2]=0,ar[f+68>>2]=4,ar[f+72>>2]=32768,ar[f+76>>2]=32768,function(A){A|=0;var e=0,r=0,i=0,f=0,n=0;if(n=0|hu(132),ar[n+4>>2]=0,ar[n+8>>2]=0,ar[n>>2]=6364,co(e=n+12|0),ar[(r=A+60|0)>>2]=e,i=0|ar[(f=A+64|0)>>2],ar[f>>2]=n,i&&(du(i),e=0|ar[r>>2]),function(A){var e,r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0;if(ur=(w=ur)+64|0,f=w+48|0,t=w+40|0,o=w+32|0,a=w+24|0,l=w+16|0,b=w+8|0,h=(d=w)+56|0,v=(ar[(A|=0)>>2]=0)|ar[(N=A+4|0)>>2],(ar[N>>2]=0)|v&&du(v),g=0|ar[(k=A+8|0)>>2],(0|(v=0|ar[(N=A+12|0)>>2]))!=(0|g))for(;m=v+-8|0,ar[N>>2]=m,(0|(v=(v=0|ar[v+-4>>2])?(du(v),0|ar[N>>2]):m))!=(0|g););R=0|hu(96),ar[R+4>>2]=0,ar[R+8>>2]=0,ar[R>>2]=4600,Mt(F=R+16|0),ar[R+60>>2]=0,ar[R+64>>2]=0,ar[R+68>>2]=0,ar[F>>2]=4436,ar[(V=R+72|0)>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=0,ar[V+12>>2]=0,ar[V+16>>2]=0,ar[R+36>>2]=1718909296,tr[R+52>>0]=0,ar[(V=A+20|0)>>2]=F,v=0|ar[(F=A+24|0)>>2],ar[F>>2]=R,0|v&&du(v),R=0|hu(104),ar[R+4>>2]=0,ar[R+8>>2]=0,ar[R>>2]=4656,Mt(g=R+16|0),ar[R+60>>2]=0,ar[R+64>>2]=0,ar[R+68>>2]=0,ar[g>>2]=4684,ar[R+72>>2]=0,ar[R+76>>2]=1885954932,ar[(m=R+80|0)>>2]=0,ar[m+4>>2]=0,ar[m+8>>2]=0,ar[m+12>>2]=0,ar[m+16>>2]=0,ar[m+20>>2]=0,ar[R+36>>2]=1751411826,tr[R+52>>0]=1,ar[(m=A+28|0)>>2]=g,v=0|ar[(g=A+32|0)>>2],ar[g>>2]=R,0|v&&du(v),G=0|hu(72),ar[G+4>>2]=0,ar[G+8>>2]=0,ar[G>>2]=4628,Mt(R=G+16|0),ar[G+60>>2]=0,ar[G+64>>2]=0,ar[G+68>>2]=0,ar[R>>2]=4468,ar[G+36>>2]=1835365473,tr[G+52>>0]=1,ar[(s=A+36|0)>>2]=R,v=0|ar[(R=A+40|0)>>2],ar[R>>2]=G,0|v&&du(v),G=0|hu(72),ar[G+4>>2]=0,ar[G+8>>2]=0,ar[G>>2]=5016,Mt(I=G+16|0),ar[G+60>>2]=0,ar[G+64>>2]=0,ar[G+68>>2]=0,ar[I>>2]=5044,ar[G+36>>2]=1768973167,tr[G+52>>0]=0,ar[(c=A+44|0)>>2]=I,v=0|ar[(I=A+48|0)>>2],ar[I>>2]=G,0|v&&du(v),C=0|hu(88),ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C>>2]=5076,Mt(G=C+16|0),ar[C+60>>2]=0,ar[C+64>>2]=0,ar[C+68>>2]=0,ar[G>>2]=5104,ar[C+72>>2]=0,ar[C+76>>2]=0,ar[C+80>>2]=0,ar[C+36>>2]=1768975713,tr[C+52>>0]=1,ar[(u=A+52|0)>>2]=G,v=0|ar[(G=A+56|0)>>2],ar[G>>2]=C,0|v&&du(v),C=0|hu(104),ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C>>2]=4776,Mt(E=C+16|0),ar[C+60>>2]=0,ar[C+64>>2]=0,ar[C+68>>2]=0,ar[E>>2]=4804,B=C+72|0,ar[C+96>>2]=0,ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,tr[B+20>>0]=0,ar[C+36>>2]=1768714083,tr[C+52>>0]=1,ar[(B=A+60|0)>>2]=E,v=0|ar[(E=A+64|0)>>2],ar[E>>2]=C,0|v&&du(v),C=0|hu(72),ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C>>2]=4836,Mt(X=C+16|0),ar[C+60>>2]=0,ar[C+64>>2]=0,ar[C+68>>2]=0,ar[X>>2]=4864,ar[C+36>>2]=1768517222,tr[C+52>>0]=1,ar[(n=A+92|0)>>2]=X,v=0|ar[(X=A+96|0)>>2],ar[X>>2]=C,0|v&&du(v),y=0|hu(72),ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y>>2]=4956,Mt(W=y+16|0),ar[y+60>>2]=0,ar[y+64>>2]=0,ar[y+68>>2]=0,ar[W>>2]=4984,ar[y+36>>2]=1768977008,tr[y+52>>0]=0,ar[(C=A+100|0)>>2]=W,v=0|ar[(W=A+104|0)>>2],ar[W>>2]=y,0|v&&du(v),p=0|hu(80),ar[p+4>>2]=0,ar[p+8>>2]=0,ar[p>>2]=4716,Mt(y=p+16|0),ar[p+60>>2]=0,ar[p+64>>2]=0,ar[p+68>>2]=0,ar[y>>2]=4744,ar[p+72>>2]=0,ar[p+36>>2]=1885959277,tr[p+52>>0]=1,ar[(i=A+84|0)>>2]=y,v=0|ar[(y=A+88|0)>>2],ar[y>>2]=p,0|v&&du(v),r=0|ar[s>>2],Z=0|ar[m>>2],ar[f>>2]=Z,p=4+f|0,m=0|ar[g>>2],(g=0==(0|(ar[p>>2]=m)))||bu(m),(0|(v=0|ar[(e=48+r|0)>>2]))==(0|ar[52+r>>2])?Ut(44+r|0,f):(ar[v>>2]=Z,ar[v+4>>2]=m,g||(bu(m),v=0|ar[e>>2]),ar[e>>2]=v+8),0|(v=0|ar[p>>2])&&du(v),m=0|ar[s>>2],ar[t>>2]=ar[i>>2],Z=4+t|0,v=0|ar[y>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,t):(ar[v>>2]=ar[t>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[s>>2],ar[o>>2]=ar[B>>2],Z=4+o|0,v=0|ar[E>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,o):(ar[v>>2]=ar[o>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[s>>2],ar[a>>2]=ar[n>>2],Z=4+a|0,v=0|ar[X>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,a):(ar[v>>2]=ar[a>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[s>>2],ar[l>>2]=ar[C>>2],Z=4+l|0,v=0|ar[W>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,l):(ar[v>>2]=ar[l>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[C>>2],ar[b>>2]=ar[c>>2],Z=4+b|0,v=0|ar[I>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,b):(ar[v>>2]=ar[b>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[C>>2],ar[d>>2]=ar[u>>2],Z=d+4|0,v=0|ar[G>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,d):(ar[v>>2]=ar[d>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),uo(v=A+108|0,0|ar[(m=A+112|0)>>2]),ar[A+116>>2]=0,ar[v>>2]=m,ar[m>>2]=0,ar[h>>2]=ar[V>>2],m=4+h|0,v=0|ar[F>>2],0|(ar[m>>2]=v)&&bu(v),v=0|ar[N>>2],g=A+16|0;do{if(v>>>0<(0|ar[g>>2])>>>0)ar[v>>2]=ar[h>>2],ar[v+4>>2]=ar[m>>2],ar[h>>2]=0,ar[m>>2]=0,ar[N>>2]=v+8;else{if(ee(k,h),!(v=0|ar[m>>2]))break;du(v)}}while(0);if(ar[h>>2]=ar[s>>2],m=4+h|0,v=0|ar[R>>2],0|(ar[m>>2]=v)&&bu(v),(v=0|ar[N>>2])>>>0<(0|ar[g>>2])>>>0)return ar[v>>2]=ar[h>>2],ar[v+4>>2]=ar[m>>2],ar[h>>2]=0,ar[m>>2]=0,ar[N>>2]=v+8,ur=w;ee(k,h),(v=0|ar[m>>2])&&du(v),ur=w}(e),vl(f=A+28|0,0|ar[(i=A+32|0)>>2]),ar[A+36>>2]=0,ar[f>>2]=i,ar[i>>2]=0,i=0|ar[A+40>>2],(0|(e=0|ar[(f=A+44|0)>>2]))!=(0|i))for(;r=e+-8|0,ar[f>>2]=r,(0|(e=(e=0|ar[e+-4>>2])?(du(e),0|ar[f>>2]):r))!=(0|i););ar[A+52>>2]=0,e=0|ar[(n=A+56|0)>>2],ar[n>>2]=0,e&&du(e)}(f),ar[A>>2]=i,ar[e>>2]=r,0|A},function(){var A;return A=0|hu(12),ar[A>>2]=0,ar[4+A>>2]=0,(ar[8+A>>2]=0)|A},Bb,Bb,Bb],jb=[Eb,function(A){return D=0|ar[(A=(A|=0)+16|0)+4>>2],0|ar[A>>2]},function(A){return 0},function(A){return 0},function(A){var e=0,r=0,i=0;return(i=0|ar[(e=(A|=0)+44|0)>>2])>>>0<(r=0|ar[A+24>>2])>>>0&&(i=ar[e>>2]=r),8&ar[A+48>>2]?((r=0|ar[(e=A+16|0)>>2])>>>0>>0&&(r=ar[e>>2]=i),r>>>0<=(e=0|ar[A+12>>2])>>>0?0|(A=-1):0|(A=0|cr[e>>0])):0|(A=-1)},function(A){var e=0;return 0|(A=-1==(0|(e=0|jb[127&ar[36+(0|ar[(A|=0)>>2])>>2]](A)))?-1:(A=0|ar[(e=A+12|0)>>2],ar[e>>2]=A+1,0|hf(0|tr[A>>0])))},function(A){return 1852009592},function(A){return 0|ar[(A|=0)+4>>2]},function(A){return 0|(1==(0|(A|=0))?100:0)},function(A){var e,r,i;return r=ur=(e=ur)+31&-32,ur=ur+16|0,A=0|(i=0|ar[(A|=0)+60>>2],0|(i|=0)),ar[r>>2]=A,A=0|Ic(0|J(6,0|r)),ur=e,0|A},function(A){return-1},function(A){return 0},function(A){return 0},function(A){return-1},function(A){var e=0;return 0|(A=-1==(0|(e=0|jb[127&ar[36+(0|ar[(A|=0)>>2])>>2]](A)))?-1:(A=0|ar[(e=A+12|0)>>2],ar[e>>2]=A+4,0|gf(0|ar[A>>2])))},function(A){var e,r,i,f,n,t,o,a,c=0,l=0;i=ur=(a=ur)+31&-32,ur=ur+16|0,f=(A|=0)+36|0,n=A+40|0,t=8+(r=8+i|0)|0,o=r,e=A+32|0;A:for(;;){if(A=0|ar[f>>2],A=0|Kb[31&ar[20+(0|ar[A>>2])>>2]](A,0|ar[n>>2],r,t,i),(0|Ui(r,1,l=(0|ar[i>>2])-o|0,0|ar[e>>2]))!=(0|l)){A=-1;break}switch(0|A){case 1:break;case 2:A=-1;break A;default:c=4;break A}}return 4==(0|c)&&(A=(0!=(0|Oi(0|ar[e>>2])))<<31>>31),ur=a,0|A},function(A){var e,r,i,f,n,t,o,a,c=0,l=0;i=ur=(a=ur)+31&-32,ur=ur+16|0,f=(A|=0)+36|0,n=A+40|0,t=8+(r=8+i|0)|0,o=r,e=A+32|0;A:for(;;){if(A=0|ar[f>>2],A=0|Kb[31&ar[20+(0|ar[A>>2])>>2]](A,0|ar[n>>2],r,t,i),(0|Ui(r,1,l=(0|ar[i>>2])-o|0,0|ar[e>>2]))!=(0|l)){A=-1;break}switch(0|A){case 1:break;case 2:A=-1;break A;default:c=4;break A}}return 4==(0|c)&&(A=(0!=(0|Oi(0|ar[e>>2])))<<31>>31),ur=a,0|A},function(A){return 0|fn(A|=0,0)},function(A){return 0|fn(A|=0,1)},function(A){return 0|tn(A|=0,0)},function(A){return 0|tn(A|=0,1)},function(A){return 2},function(A){return 0==(0|tr[56696])&&0|ib(56696)&&(function(){var A=0,e=0;if(0==(0|tr[56704])&&0|ib(56704)){e=59936;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60104!=(0|e))}Gu(59936,54302),Gu(59948,54309),Gu(59960,54316),Gu(59972,54324),Gu(59984,54334),Gu(59996,54343),Gu(60008,54350),Gu(60020,54359),Gu(60032,54363),Gu(60044,54367),Gu(60056,54371),Gu(60068,54375),Gu(60080,54379),Gu(60092,54383)}(),ar[15026]=59936),0|ar[15026]},function(A){return 0==(0|tr[56680])&&0|ib(56680)&&(function(){var A=0,e=0;if(0==(0|tr[56688])&&0|ib(56688)){e=59644;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(59932!=(0|e))}Gu(59644,54172),Gu(59656,54180),Gu(59668,54189),Gu(59680,54195),Gu(59692,54201),Gu(59704,54205),Gu(59716,54210),Gu(59728,54215),Gu(59740,54222),Gu(59752,54232),Gu(59764,54240),Gu(59776,54249),Gu(59788,54258),Gu(59800,54262),Gu(59812,54266),Gu(59824,54270),Gu(59836,54201),Gu(59848,54274),Gu(59860,54278),Gu(59872,54282),Gu(59884,54286),Gu(59896,54290),Gu(59908,54294),Gu(59920,54298)}(),ar[14983]=59644),0|ar[14983]},function(A){return 0==(0|tr[56664])&&0|ib(56664)&&(function(){var A=0,e=0;if(0==(0|tr[56672])&&0|ib(56672)){e=59352;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(59640!=(0|e))}Gu(59352,54166),Gu(59364,54169)}(),ar[14910]=59352),0|ar[14910]},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56656])&&0|ib(56656)&&(ar[14835]=0,ar[14836]=0,4294967279<(i=(ar[14837]=0)|Yf(54145))>>>0&&pu(),i>>>0<11?(tr[59351]=i,A=59340):(A=0|hu(f=i+16&-16),ar[14835]=A,ar[14837]=-2147483648|f,ar[14836]=i),wf(A,54145,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59340},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56648])&&0|ib(56648)&&(ar[14832]=0,ar[14833]=0,4294967279<(i=(ar[14834]=0)|Yf(54133))>>>0&&pu(),i>>>0<11?(tr[59339]=i,A=59328):(A=0|hu(f=i+16&-16),ar[14832]=A,ar[14834]=-2147483648|f,ar[14833]=i),wf(A,54133,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59328},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56640])&&0|ib(56640)&&(ar[14829]=0,ar[14830]=0,4294967279<(i=(ar[14831]=0)|Yf(54124))>>>0&&pu(),i>>>0<11?(tr[59327]=i,A=59316):(A=0|hu(f=i+16&-16),ar[14829]=A,ar[14831]=-2147483648|f,ar[14830]=i),wf(A,54124,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59316},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56632])&&0|ib(56632)&&(ar[14826]=0,ar[14827]=0,4294967279<(i=(ar[14828]=0)|Yf(54115))>>>0&&pu(),i>>>0<11?(tr[59315]=i,A=59304):(A=0|hu(f=i+16&-16),ar[14826]=A,ar[14828]=-2147483648|f,ar[14827]=i),wf(A,54115,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59304},function(A){return 2},function(A){return 0==(0|tr[56776])&&0|ib(56776)&&(function(){var A=0,e=0;if(0==(0|tr[56784])&&0|ib(56784)){e=60748;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60916!=(0|e))}Tu(60748,15904),Tu(60760,15932),Tu(60772,15960),Tu(60784,15992),Tu(60796,16032),Tu(60808,16068),Tu(60820,16096),Tu(60832,16132),Tu(60844,16148),Tu(60856,16164),Tu(60868,16180),Tu(60880,16196),Tu(60892,16212),Tu(60904,16228)}(),ar[15229]=60748),0|ar[15229]},function(A){return 0==(0|tr[56760])&&0|ib(56760)&&(function(){var A=0,e=0;if(0==(0|tr[56768])&&0|ib(56768)){e=60456;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60744!=(0|e))}Tu(60456,15384),Tu(60468,15416),Tu(60480,15452),Tu(60492,15476),Tu(60504,15500),Tu(60516,15516),Tu(60528,15536),Tu(60540,15556),Tu(60552,15584),Tu(60564,15624),Tu(60576,15656),Tu(60588,15692),Tu(60600,15728),Tu(60612,15744),Tu(60624,15760),Tu(60636,15776),Tu(60648,15500),Tu(60660,15792),Tu(60672,15808),Tu(60684,15824),Tu(60696,15840),Tu(60708,15856),Tu(60720,15872),Tu(60732,15888)}(),ar[15186]=60456),0|ar[15186]},function(A){return 0==(0|tr[56744])&&0|ib(56744)&&(function(){var A=0,e=0;if(0==(0|tr[56752])&&0|ib(56752)){e=60164;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60452!=(0|e))}Tu(60164,15360),Tu(60176,15372)}(),ar[15113]=60164),0|ar[15113]},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56736])&&0|ib(56736)){ar[15038]=0,ar[15039]=0,1073741807<(i=(ar[15040]=0)|Mr(15276))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15038]=f,ar[15040]=-2147483648|r,ar[15039]=i;break}lA()}else tr[60163]=i,f=60152}while(0);Zf(f,15276,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60152},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56728])&&0|ib(56728)){ar[15035]=0,ar[15036]=0,1073741807<(i=(ar[15037]=0)|Mr(15228))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15035]=f,ar[15037]=-2147483648|r,ar[15036]=i;break}lA()}else tr[60151]=i,f=60140}while(0);Zf(f,15228,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60140},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56720])&&0|ib(56720)){ar[15032]=0,ar[15033]=0,1073741807<(i=(ar[15034]=0)|Mr(15192))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15032]=f,ar[15034]=-2147483648|r,ar[15033]=i;break}lA()}else tr[60139]=i,f=60128}while(0);Zf(f,15192,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60128},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56712])&&0|ib(56712)){ar[15029]=0,ar[15030]=0,1073741807<(i=(ar[15031]=0)|Mr(15156))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15029]=f,ar[15031]=-2147483648|r,ar[15030]=i;break}lA()}else tr[60127]=i,f=60116}while(0);Zf(f,15156,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60116},function(A){return 127},function(A){return 127},function(A){return 0},function(A){return 127},function(A){return 127},function(A){return 0},function(A){return 2147483647},function(A){return 2147483647},function(A){return 0},function(A){return 2147483647},function(A){return 2147483647},function(A){return 0},function(A){return 0},function(A){return 0},function(A){return 4},function(A){var e,r=0;if(r=0|rf(0|ar[(A=(A|=0)+8|0)>>2]),e=0|function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,n=0,t=0;f=ur=(i=ur)+31&-32,ur=ur+16|0;A:do{if(e){do{if(0|r){if(t=0==(0|A)?f:A,-1<(A=0|tr[e>>0])<<24>>24){ar[t>>2]=255&A,A=A<<24>>24!=0&1;break A}if(n=10488,A=0|tr[e>>0],!(0|ar[ar[n>>2]>>2])){ar[t>>2]=A<<24>>24&57343,A=1;break A}if((A=(255&A)-194|0)>>>0<=50){if(f=e+1|0,n=0|ar[9896+(A<<2)>>2],r>>>0<4&&n&-2147483648>>>((6*r|0)-6|0)|0)break;if(((r=(A=0|cr[f>>0])>>>3)+-16|r+(n>>26))>>>0<=7){if(0<=(0|(A=A+-128|n<<6))){ar[t>>2]=A,A=2;break A}if((f=(0|cr[e+2>>0])-128|0)>>>0<=63){if(0<=(0|(f|=A<<6))){ar[t>>2]=f,A=3;break A}if((A=(0|cr[e+3>>0])-128|0)>>>0<=63){ar[t>>2]=A|f<<6,A=4;break A}}}}}}while(0);ar[(A=10364)>>2]=84,A=-1}else A=0}while(0);return ur=i,0|A}(0,0,4),0|r&&rf(r),e)A=-1;else{if(A=0|ar[A>>2])return r=0|rf(A),A=0|yi(),0|r&&rf(r),1==(0|A)|0;A=1}return 0|A},function(A){return 0},function(A){var e=0;return(A=0|ar[(A|=0)+8>>2])?(e=0|rf(A),A=0|yi(),e&&rf(e)):A=1,0|A},function(A){return 0|tr[(A|=0)+8>>0]},function(A){return 0|tr[(A|=0)+9>>0]},function(A){return 0|ar[(A|=0)+8>>2]},function(A){return 0|ar[(A|=0)+12>>2]},function(A){return 1},function(A){return 1},function(A){return 1},function(A){return 0},function(A){return 0},function(A){return 4},function(A){return 55847},function(A){return 0|(e=(A|=0)+4|0,0|ar[(e|=0)>>2]);var e},function(A){var e,r,i,f,n=0;return ur=(r=ur)+16|0,f=r,is[511&(A|=0)](f),A=0|yc((n=(i=(n=0|tr[f+11>>0])<<24>>24<0)?0|ar[f+4>>2]:255&n)+4|0),ar[A>>2]=n,e=0|ar[f>>2],hb(A+4|0,0|(i?e:f),0|n),ur=(i&&vu(e),r),0|A},function(A){return 0|zb[7&(A|=0)]()},function(A){return 0|zb[7&(A|=0)]()},function(A){var e,r,i,f,n,t=0;if(ur=(n=ur)+16|0,sl(i=n,40+(0|ar[(A|=0)>>2])|0),f=(t=0|ar[(r=i+4|0)>>2])-(A=0|ar[i>>2])>>3,!(e=A))return ur=n,0|f;if((0|t)!=(0|e)){for(;A=t+-8|0,ar[r>>2]=A,(t=0|ar[t+-4>>2])&&(du(t),A=0|ar[r>>2]),(0|A)!=(0|e);)t=A;A=0|ar[i>>2]}return vu(A),ur=n,0|f},function(A){return 1272},function(A){return 1312},function(A){return 1352},Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb],Hb=[Xb,function(A,e){e|=0;var r,i=0,f=0,n=0;if((i=0|ar[(f=(A|=0)+44|0)>>2])>>>0<(n=0|ar[A+24>>2])>>>0&&(i=ar[f>>2]=n),f=0|ar[(r=A+12|0)>>2],(0|ar[A+8>>2])>>>0>=f>>>0)return 0|(e=-1);if(-1==(0|e))return ar[r>>2]=f+-1,ar[A+16>>2]=i,(e=0)|e;if(16&ar[A+48>>2])n=255&e,f=f+-1|0;else if((n=255&e)<<24>>24!=(0|tr[(f=f+-1|0)>>0]))return 0|(e=-1);return ar[r>>2]=f,ar[A+16>>2]=i,tr[f>>0]=n,0|e},function(A,e){var r,i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(o=ur)+16|0,i=o,-1==(0|(e|=0)))return ur=o,(w=0)|w;if(n=(A|=0)+8|0,t=(0|ar[(f=A+12|0)>>2])-(0|ar[n>>2])|0,(0|(d=0|ar[(w=A+24|0)>>2]))==(0|(a=0|ar[(r=A+28|0)>>2]))){if(!(16&ar[(s=A+48|0)>>2]))return ur=o,0|(w=-1);b=0|ar[(u=A+20|0)>>2],k=(0|ar[(h=A+44|0)>>2])-b|0,_u(l=A+32|0,0),Vu(l,c=(0|tr[(a=l+11|0)>>0])<0?(2147483647&ar[A+40>>2])-1|0:10,0),(a=0|tr[a>>0])<<24>>24<0?(c=0|ar[l>>2],a=0|ar[A+36>>2]):(c=l,a&=255),a=c+a|0,ar[u>>2]=c,ar[r>>2]=a,d=c+(d-b)|0,ar[w>>2]=d,c=c+k|0,ar[h>>2]=c,l=k=h,b=a}else s=A+48|0,c=0|ar[(l=k=c=A+44|0)>>2],b=a;return u=d+1|0,ar[i>>2]=u,c=0|ar[(u>>>0>>0?l:i)>>2],ar[k>>2]=c,8&ar[s>>2]|0&&((0|tr[(a=A+32|0)+11>>0])<0&&(a=0|ar[a>>2]),ar[n>>2]=a,ar[f>>2]=a+t,ar[A+16>>2]=c),(0|d)==(0|b)?(w=0|Hb[31&ar[52+(0|ar[A>>2])>>2]](A,255&e),ur=o,0|w):(ar[w>>2]=u,tr[d>>0]=e,ur=o,0|(w=255&e))},function(A,e){return 0},function(A,e){e|=0;var r=0;return r=0|ar[(A|=0)+376156>>2],(0|ar[A+376160>>2])-r>>2>>>0<=e>>>0?(r=0)|r:0|(r=0|ar[r+(e<<2)>>2])},function(A,e){return(0|(e|=0))<=-1?(e=0)|e:0|(e=((0|ar[(A|=0)+376160>>2])-(0|ar[A+376156>>2])>>2|0)>(0|e))},function(A,e){return-1},function(A,e){return-1},function(A,e){return-1},function(A,e){return-1},function(A,e){A|=0,e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;f=ur=(n=ur)+31&-32,ur=ur+32|0,r=16+f|0,o=8+f|0,i=4+f|0;do{if(0|Uf(e,-1))t=15;else{if(s=0|pf(e),ar[o>>2]=s,s=A+32|0,0|tr[A+44>>0]){if(1==(0|Ui(o,4,1,0|ar[s>>2]))){t=15;break}A=-1;break}for(u=o+4|0,b=A+36|0,a=A+40|0,c=8+(ar[i>>2]=r)|0,l=r,A=o;;){if(t=0|ar[b>>2],o=1==(0|(t=0|es[15&ar[12+(0|ar[t>>2])>>2]](t,0|ar[a>>2],A,u,f,r,c,i))),(0|ar[f>>2])==(0|A)){t=14;break}if(3==(0|t)){if(1!=(0|Ui(A,1,1,0|ar[s>>2]))){t=14;break}}else{if(1!=(1|t)){t=14;break}if((0|Ui(r,1,t=(0|ar[i>>2])-l|0,0|ar[s>>2]))!=(0|t)){t=14;break}A=o?0|ar[f>>2]:A}if(!o){t=13;break}}if(13==(0|t)){t=15;break}if(14==(0|t)){A=-1;break}}}while(0);return 15==(0|t)&&(A=0|function(A){0|Uf(A|=0,-1)&&(A=0);return 0|A}(e)),ur=n,0|A},function(A,e){A|=0,e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;f=ur=(n=ur)+31&-32,ur=ur+32|0,r=16+f|0,o=8+f|0,i=4+f|0;do{if(0|Mf(e,-1))t=15;else{if(s=0|vf(e),tr[o>>0]=s,s=A+32|0,0|tr[A+44>>0]){if(1==(0|Ui(o,1,1,0|ar[s>>2]))){t=15;break}A=-1;break}for(u=o+1|0,b=A+36|0,a=A+40|0,c=8+(ar[i>>2]=r)|0,l=r,A=o;;){if(t=0|ar[b>>2],o=1==(0|(t=0|es[15&ar[12+(0|ar[t>>2])>>2]](t,0|ar[a>>2],A,u,f,r,c,i))),(0|ar[f>>2])==(0|A)){t=14;break}if(3==(0|t)){if(1!=(0|Ui(A,1,1,0|ar[s>>2]))){t=14;break}}else{if(1!=(1|t)){t=14;break}if((0|Ui(r,1,t=(0|ar[i>>2])-l|0,0|ar[s>>2]))!=(0|t)){t=14;break}A=o?0|ar[f>>2]:A}if(!o){t=13;break}}if(13==(0|t)){t=15;break}if(14==(0|t)){A=-1;break}}}while(0);return 15==(0|t)&&(A=0|function(A){0|Mf(A|=0,-1)&&(A=0);return 0|A}(e)),ur=n,0|A},function(A,e){var r,i,f,n,t,o=0,a=0,c=0,l=0;c=ur=(t=ur)+31&-32,ur=ur+32|0,r=c+16|0,i=c+8|0,a=c+4|0,l=0|Uf(e|=0,-1),o=0!=(0|tr[(n=(A|=0)+52|0)>>0]),f=A+48|0;do{if(l)o?o=e:(l=1&(1^(0|Uf(o=0|ar[f>>2],-1))),tr[n>>0]=l);else{if(o){switch(l=0|pf(0|ar[f>>2]),ar[a>>2]=l,l=0|ar[A+36>>2],0|es[15&ar[12+(0|ar[l>>2])>>2]](l,0|ar[A+40>>2],a,a+4|0,c,r,8+r|0,i)){case 1:case 2:c=10;break;case 3:tr[r>>0]=ar[f>>2],ar[i>>2]=1+r,c=7;break;default:c=7}A:do{if(7==(0|c))for(o=A+32|0;;){if((a=0|ar[i>>2])>>>0<=r>>>0){a=1,o=0;break A}if(l=a+-1|0,ar[i>>2]=l,-1==(0|uf(0|tr[l>>0],0|ar[o>>2]))){c=10;break}}}while(0);if(10==(0|c)&&(a=0,o=-1),!a)break}ar[f>>2]=e,tr[n>>0]=1,o=e}}while(0);return ur=t,0|o},function(A,e){var r,i,f,n,t,o=0,a=0,c=0,l=0;c=ur=(t=ur)+31&-32,ur=ur+32|0,r=c+16|0,i=c+4|0,a=c+8|0,l=0|Mf(e|=0,-1),o=0!=(0|tr[(n=(A|=0)+52|0)>>0]),f=A+48|0;do{if(l)o?o=e:(l=1&(1^(0|Mf(o=0|ar[f>>2],-1))),tr[n>>0]=l);else{if(o){switch(l=0|vf(0|ar[f>>2]),tr[a>>0]=l,l=0|ar[A+36>>2],0|es[15&ar[12+(0|ar[l>>2])>>2]](l,0|ar[A+40>>2],a,a+1|0,c,r,8+r|0,i)){case 1:case 2:c=10;break;case 3:tr[r>>0]=ar[f>>2],ar[i>>2]=1+r,c=7;break;default:c=7}A:do{if(7==(0|c))for(o=A+32|0;;){if((a=0|ar[i>>2])>>>0<=r>>>0){a=1,o=0;break A}if(l=a+-1|0,ar[i>>2]=l,-1==(0|uf(0|tr[l>>0],0|ar[o>>2]))){c=10;break}}}while(0);if(10==(0|c)&&(a=0,o=-1),!a)break}ar[f>>2]=e,tr[n>>0]=1,o=e}}while(0);return ur=t,0|o},function(A,e){return-1<(e|=0)<<24>>24&&(e=(0|Tl())+((255&e)<<2)|0,e=255&ar[e>>2]),0|e},function(A,e){return-1<(e|=0)<<24>>24&&(e=(0|Ml())+(e<<24>>24<<2)|0,e=255&ar[e>>2]),0|e},function(A,e){return 0|(e|=0)},function(A,e){return(e|=0)>>>0<128&&(e=(0|Tl())+(e<<2)|0,e=0|ar[e>>2]),0|e},function(A,e){return(e|=0)>>>0<128&&(e=(0|Ml())+(e<<2)|0,e=0|ar[e>>2]),0|e},function(A,e){return(e|=0)<<24>>24|0},function(A,e){return e|=0,0|jb[127&(A|=0)](e)},function(A,e){var r,i;return e|=0,ur=(r=ur)+16|0,i=r,fs[63&(A|=0)](i,e),fA(0|ar[i>>2]),e=0|ar[i>>2],iA(0|e),ur=r,0|e},function(A,e){return 0|ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]},function(A,e){return 0|ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]},Xb,Xb,Xb,Xb,Xb,Xb,Xb,Xb],xb=[Wb,function(A,e,r){var i;return e|=0,r|=0,0|((0|(i=0|ar[(A=(A|=0)+8|0)+4>>2]))<(0|r)|((0|i)==(0|r)?(0|ar[A>>2])>>>0>>0:0)?2:0)},function(A,e,r){e|=0,r|=0;var i,f,n,t=0,o=0,a=0;return t=0|tb(0|(f=0|ar[(t=i=(A|=0)+16|0)>>2]),0|ar[t+4>>2],0|r,0),a=D,(0|(o=0|ar[4+(n=A+8|0)>>2]))<(0|a)|((0|a)==(0|o)?t>>>0>(0|ar[n>>2])>>>0:0)?(a=0)|a:(hb(0|e,(0|ar[A+4>>2])+f|0,0|r),o=0|tb(0|ar[(o=i)>>2],0|ar[o+4>>2],0|r,0),ar[(a=i)>>2]=o,ar[a+4>>2]=D,0|(a=1))},function(A,e,r){e|=0;var i,f=0;return(0|(r|=0))<0|((0|(f=0|ar[4+(i=(A|=0)+8|0)>>2]))<(0|r)|((0|f)==(0|r)?(0|ar[i>>2])>>>0>>0:0))?(f=0)|f:(ar[(f=A+16|0)>>2]=e,ar[f+4>>2]=r,0|(f=1))},function(A,e,r){return 0|(A|=0)},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+12|0,f=A+16|0,o=0;!((0|r)<=(0|o));)if((n=0|ar[i>>2])>>>0<(t=0|ar[f>>2])>>>0)wf(e,n,t=(0|(a=r-o|0))<(0|(t=t-n|0))?a:t),ar[i>>2]=(0|ar[i>>2])+t,e=e+t|0,o=t+o|0;else{if(-1==(0|(n=0|jb[127&ar[40+(0|ar[A>>2])>>2]](A))))break;a=0|vf(n),tr[e>>0]=a,e=e+1|0,o=o+1|0}return 0|o},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+24|0,f=A+28|0,n=0;!((0|r)<=(0|n));)if((t=0|ar[i>>2])>>>0<(o=0|ar[f>>2])>>>0)wf(t,e,o=(0|(a=r-n|0))<(0|(o=o-t|0))?a:o),ar[i>>2]=(0|ar[i>>2])+o,e=e+o|0,n=o+n|0;else{if(o=0|ar[52+(0|ar[A>>2])>>2],a=0|hf(0|tr[e>>0]),-1==(0|Hb[31&o](A,a)))break;e=e+1|0,n=n+1|0}return 0|n},function(A,e,r){e|=0,r|=0;var i,f,n=0;return n=ur=(f=ur)+31&-32,ur=ur+32|0,i=n,ar[(A|=0)+36>>2]=10,0==(64&ar[A>>2]|0)&&(ar[i>>2]=ar[A+60>>2],ar[i+4>>2]=21523,ar[i+8>>2]=n+16,0|Y(54,0|i))&&(tr[A+75>>0]=-1),n=0|Gc(A,e,r),ur=f,0|n},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0;return n=ur=(i=ur)+31&-32,ur=ur+32|0,n=(f=n)+20|0,ar[f>>2]=ar[A+60>>2],ar[f+4>>2]=0,ar[f+8>>2]=e,ar[f+12>>2]=n,ar[f+16>>2]=r,A=(0|Ic(0|R(140,0|f)))<0?ar[n>>2]=-1:0|ar[n>>2],ur=i,0|A},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t=0,o=0,a=0,c=0;return c=ur=(f=ur)+31&-32,ur=ur+32|0,ar[(c=(t=c)+16|0)>>2]=e,o=c+4|0,n=0|ar[(i=A+48|0)>>2],ar[o>>2]=r-(0!=(0|n)&1),a=A+44|0,ar[c+8>>2]=ar[a>>2],ar[c+12>>2]=n,ar[t>>2]=ar[A+60>>2],ar[t+4>>2]=c,ar[t+8>>2]=2,1<=(0|(t=0|Ic(0|N(145,0|t))))?(c=0|ar[o>>2])>>>0>>0&&(o=0|ar[a>>2],ar[(a=A+4|0)>>2]=o,ar[A+8>>2]=o+(t-c),t=(0|ar[i>>2]&&(ar[a>>2]=o+1,tr[e+(r+-1)>>0]=0|tr[o>>0]),r)):ar[A>>2]=ar[A>>2]|48&t^16,ur=f,0|t},Gc,function(A,e,r){var i,f;return e|=0,r|=0,hb(0|(f=0|ar[(i=(A|=0)+20|0)>>2]),0|e,0|(A=r>>>0<(A=(0|ar[A+16>>2])-f|0)>>>0?r:A)),ar[i>>2]=(0|ar[i>>2])+A,0|r},function(A,e,r){return 0|(A|=0)},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+12|0,f=A+16|0,o=0;!((0|r)<=(0|o));)if((n=0|ar[i>>2])>>>0<(t=0|ar[f>>2])>>>0)Zf(e,n,t=(0|(a=r-o|0))<(0|(t=t-n>>2))?a:t),ar[i>>2]=(0|ar[i>>2])+(t<<2),e=e+(t<<2)|0,o=t+o|0;else{if(-1==(0|(n=0|jb[127&ar[40+(0|ar[A>>2])>>2]](A))))break;a=0|pf(n),ar[e>>2]=a,e=e+4|0,o=o+1|0}return 0|o},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+24|0,f=A+28|0,n=0;!((0|r)<=(0|n));)if((t=0|ar[i>>2])>>>0<(o=0|ar[f>>2])>>>0)Zf(t,e,o=(0|(a=r-n|0))<(0|(o=o-t>>2))?a:o),ar[i>>2]=(0|ar[i>>2])+(o<<2),e=e+(o<<2)|0,n=o+n|0;else{if(o=0|ar[52+(0|ar[A>>2])>>2],a=0|gf(0|ar[e>>2]),-1==(0|Hb[31&o](A,a)))break;e=e+4|0,n=n+1|0}return 0|n},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0;A:do{if(0|tr[A+44>>0])i=0|Ui(e,4,r,0|ar[A+32>>2]);else for(i=0;;){if((0|r)<=(0|i))break A;if(n=0|ar[52+(0|ar[A>>2])>>2],f=0|gf(0|ar[e>>2]),-1==(0|(f=0|Hb[31&n](A,f))))break A;i=i+1|0,e=e+4|0}}while(0);return 0|i},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0;A:do{if(0|tr[A+44>>0])i=0|Ui(e,1,r,0|ar[A+32>>2]);else for(i=0;;){if((0|r)<=(0|i))break A;if(n=0|ar[52+(0|ar[A>>2])>>2],f=0|hf(0|tr[e>>0]),-1==(0|(f=0|Hb[31&n](A,f))))break A;i=i+1|0,e=e+1|0}}while(0);return 0|i},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;for(A=0;(0|e)!=(0|r);)A=((f=-268435456&(i=(0|tr[e>>0])+(A<<4)|0))>>>24|f)^i,e=e+1|0;return 0|A},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;for(A=0;(0|e)!=(0|r);)A=((f=-268435456&(i=(0|ar[e>>2])+(A<<4)|0))>>>24|f)^i,e=e+4|0;return 0|A},function(A,e,r){return r|=0,(r=0|cf((0|tr[(e|=0)+11>>0])<0&&ar[e>>2]))>>>(-1!=(0|r)&1)|0},function(A,e,r){return r|=0,(r=0|cf((0|tr[(e|=0)+11>>0])<0&&ar[e>>2]))>>>(-1!=(0|r)&1)|0},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)-1<(A=0|tr[e>>0])<<24>>24&&(A=0|Tl(),A=255&ar[A+(tr[e>>0]<<2)>>2]),tr[e>>0]=A,e=e+1|0;return 0|r},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)-1<(A=0|tr[e>>0])<<24>>24&&(A=0|Ml(),A=255&ar[A+(tr[e>>0]<<2)>>2]),tr[e>>0]=A,e=e+1|0;return 0|r},function(A,e,r){return r|=0,0|(-1<(e|=0)<<24>>24?e:r)},function(A,e,r){return A|=0,e|=0,0|(A=(r|=0)>>>0<128?(A=(0|Ul())+(r<<1)|0,(or[A>>1]&e)<<16>>16!=0):0)},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)(A=0|ar[e>>2])>>>0<128&&(A=0|Tl(),A=0|ar[A+(ar[e>>2]<<2)>>2]),ar[e>>2]=A,e=e+4|0;return 0|r},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)(A=0|ar[e>>2])>>>0<128&&(A=0|Ml(),A=0|ar[A+(ar[e>>2]<<2)>>2]),ar[e>>2]=A,e=e+4|0;return 0|r},function(A,e,r){return r|=0,0|((e|=0)>>>0<128?255&e:r)},function(A,e,r){r|=0;var i,f,n=0,t=0;if(i=ur=(f=ur)+31&-32,ur=ur+64|0,0|xu(A|=0,e|=0))e=1;else if(0!=(0|e)&&0!=(0|(t=0|qu(e,3960,3944,0)))){for(n=(e=4+i|0)+52|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|n););ar[i>>2]=t,ar[8+i>>2]=A,ar[12+i>>2]=-1,ar[48+i>>2]=1,ts[31&ar[28+(0|ar[t>>2])>>2]](t,i,0|ar[r>>2],1),e=1==(0|ar[24+i>>2])?(ar[r>>2]=ar[16+i>>2],1):0}else e=0;return ur=f,0|e},function(A,e,r){return 0|xu(A|=0,e|=0)},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0;if(i=ur=(f=ur)+31&-32,ur=ur+64|0,ar[(r|=0)>>2]=ar[ar[r>>2]>>2],0|function(A,e){A=0|xu(A|=0,e|=0)?1:0|xu(e,4088);return 0|A}(A,e))A=1;else if(0!=(0|e)&&0!=(0|(n=0|qu(e,3960,4048,0)))&&0==(ar[n+8>>2]&~ar[A+8>>2]|0))if(e=n+12|0,0|xu(0|ar[(A=A+12|0)>>2],0|ar[e>>2])||0|xu(0|ar[A>>2],4080))A=1;else if(0!=(0|(A=0|ar[A>>2]))&&0!=(0|(o=0|qu(A,3960,3944,0)))&&0!=(0|(t=0|ar[e>>2]))&&0!=(0|(a=0|qu(t,3960,3944,0)))){for(e=(A=4+i|0)+52|0;(0|(A=A+4|(ar[A>>2]=0)))<(0|e););ar[i>>2]=a,ar[8+i>>2]=o,ar[12+i>>2]=-1,ar[48+i>>2]=1,ts[31&ar[28+(0|ar[a>>2])>>2]](a,i,0|ar[r>>2],1),A=1==(0|ar[24+i>>2])?(ar[r>>2]=ar[16+i>>2],1):0}else A=0;else A=0;return ur=f,0|A},function(A,e,r){return 0|xu(A|=0,e|=0)},function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a=0;return ur=(o=ur)+32|0,n=o+12|0,t=o,i=(r|=0)+4|0,f=0|ar[r>>2],ar[t>>2]=0,ar[t+4>>2]=0,4294967279>>(ar[t+8>>2]=0)&&pu(),f>>>0<11?(tr[t+11>>0]=f)?(r=t,a=6):r=t:(r=0|hu(a=16+f&-16),ar[t>>2]=r,ar[t+8>>2]=-2147483648|a,ar[t+4>>2]=f,a=6),6==(0|a)&&hb(0|r,0|i,0|f),tr[r+f>>0]=0,ns[127&A](n,e,t),r=0|hu(12),ar[r>>2]=ar[n>>2],ar[r+4>>2]=ar[4+n>>2],ar[r+8>>2]=ar[8+n>>2],ur=(0<=(0|tr[t+11>>0])||vu(0|ar[t>>2]),o),0|r},function(A,e,r){var i,f;return e|=0,r|=0,ur=(i=ur)+16|0,f=i,ns[127&(A|=0)](f,e,r),fA(0|ar[f>>2]),r=0|ar[f>>2],iA(0|r),ur=i,0|r},function(A,e,r){return 0|function(A,e,r){e|=0,r|=0;var i,f,n,t=0;return f=0|ar[(i=(A=A|0)+84|0)>>2],t=0|Rc(f,0,n=r+256|0),hb(0|e,0|f,0|(r=(t=0==(0|t)?n:t-f|0)>>>0>>0?t:r)),ar[A+4>>2]=f+r,e=f+t|0,ar[A+8>>2]=e,ar[i>>2]=e,0|r}(A|=0,e|=0,r|=0)},Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb],Pb=[function(A,e,r,i){return Z(4),0},function(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0;if(A=0|ar[(e|=0)+4>>2],a=(0|(i=0|ar[e+8>>2]))/(0|ar[r+5784>>2])|0,c=(c=A+-1+(e=0|ar[e+12>>2])|0)-((0|c)%(0|e)|0)|0,e=(A=((0|A)/(0|ar[r+5780>>2])|0)-1+e|0)-((0|A)%(0|e)|0)|0,9<=((A=0|ar[r+5760>>2])+-8|0)>>>0&&sr(36609,36663,115,36672),9<=((o=0|ar[r+5768>>2])+-8|0)>>>0&&sr(36695,36663,116,36672),n=0==(0|(f=0|Wc(16,0|br(0|br(c,i),(A+7|0)/8|0)))),t=f,0|ar[r+20>>2]){if(0==(0|(i=o=0|Wc(16,a=0|br(0|br(e,a),(o+7|0)/8|0))))|0==(0|(A=a=0|Wc(16,a)))|n)return n||Bc(f),0|o&&Bc(o),a&&Bc(a),(r=0)|r}else{if(n)return(r=0)|r;A=i=e=0}return ar[r+4>>2]=t,ar[r+10492>>2]=0,ar[r+40>>2]=c,ar[r+8>>2]=i,ar[r+10496>>2]=0,ar[r+12>>2]=A,ar[r+10500>>2]=0,ar[r+44>>2]=e,0|(r=1)},function(A,e,r,i){for(e|=0,r|=0,i|=0;(0|e)!=(0|r);)tr[i>>0]=0|tr[e>>0],i=i+1|0,e=e+1|0;return 0|r},function(A,e,r,i){for(A|=0,e|=0,r|=0,i|=0;(0|e)!=(0|r);)A=(0|ar[e>>2])>>>0<128?(A=0|Ul(),0|lr[A+(ar[e>>2]<<1)>>1]):0,or[i>>1]=A,i=i+2|0,e=e+4|0;return 0|r},function(A,e,r,i){for(A|=0,e|=0,r|=0,i|=0;;){if((0|r)==(0|i)){r=i;break}if((0|ar[r>>2])>>>0<128&&(A=0|Ul(),(or[A+(ar[r>>2]<<1)>>1]&e)<<16>>16))break;r=r+4|0}return 0|r},function(A,e,r,i){for(A|=0,e|=0,r|=0,i|=0;;){if((0|r)==(0|i)){r=i;break}if(128<=(0|ar[r>>2])>>>0)break;if(A=0|Ul(),!((or[A+(ar[r>>2]<<1)>>1]&e)<<16>>16))break;r=r+4|0}return 0|r},function(A,e,r,i){for(e|=0,r|=0,i|=0;(0|e)!=(0|r);)ar[i>>2]=tr[e>>0],i=i+4|0,e=e+1|0;return 0|r},function(A,e,r,i){var f,n;return e|=0,r|=0,i|=0,ur=(f=ur)+16|0,n=f,ts[31&(A|=0)](n,e,r,i),fA(0|ar[n>>2]),i=0|ar[n>>2],iA(0|i),ur=f,0|i}],Lb=[Ib,function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;return m=ur=(d=ur)+31&-32,ur=ur+176|0,u=m+72|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+134|0,a=m+68|0,l=m+76|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,79659,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,y=p=A):gu()):(v=A,y=(p=0)|ar[a>>2]),h=0|nr(y,k=y+v|0,r),(0|y)!=(0|c)?(A=0|yc(v<<1))?Z=g=A:gu():(g=l,Z=0),Tf(u,r),hr(y,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],e=0|ar[s>>2],y=0|ar[b>>2],ar[u>>2]=ar[m>>2],y=0|PA(u,g,e,y,r,i),Bc(Z),Bc(p),ur=d,0|y},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;return m=ur=(d=ur)+31&-32,ur=ur+176|0,u=m+72|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+134|0,a=m+68|0,l=m+76|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,53897,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,y=p=A):gu()):(v=A,y=(p=0)|ar[a>>2]),h=0|nr(y,k=y+v|0,r),(0|y)!=(0|c)?(A=0|yc(v<<1))?Z=g=A:gu():(g=l,Z=0),Tf(u,r),hr(y,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],e=0|ar[s>>2],y=0|ar[b>>2],ar[u>>2]=ar[m>>2],y=0|PA(u,g,e,y,r,i),Bc(Z),Bc(p),ur=d,0|y},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;m=ur=(d=ur)+31&-32,ur=ur+336|0,u=m+300|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+304|0,a=m+296|0,l=m+68|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,79659,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,Z=y=A):gu()):(v=A,Z=(y=0)|ar[a>>2]),h=0|nr(Z,k=Z+v|0,r);do{if((0|Z)!=(0|c)){if(A=0|yc(v<<3)){p=0,B=g=A;break}gu()}else g=l,p=1,B=0}while(0);return Tf(u,r),Zr(Z,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],Z=0|ar[s>>2],A=0|ar[b>>2],ar[u>>2]=ar[m>>2],A=0|mr(u,g,Z,A,r,i),ar[e>>2]=A,p||Bc(B),Bc(y),ur=d,0|A},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;m=ur=(d=ur)+31&-32,ur=ur+336|0,u=m+300|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+304|0,a=m+296|0,l=m+68|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,53897,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,Z=y=A):gu()):(v=A,Z=(y=0)|ar[a>>2]),h=0|nr(Z,k=Z+v|0,r);do{if((0|Z)!=(0|c)){if(A=0|yc(v<<3)){p=0,B=g=A;break}gu()}else g=l,p=1,B=0}while(0);return Tf(u,r),Zr(Z,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],Z=0|ar[s>>2],A=0|ar[b>>2],ar[u>>2]=ar[m>>2],A=0|mr(u,g,Z,A,r,i),ar[e>>2]=A,p||Bc(B),Bc(y),ur=d,0|A},Ib,Ib,Ib],Kb=[Cb,function(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0;for(A=e|=0;;){if((0|i)==(0|f)){t=7;break}if((0|A)==(0|r)){A=-1;break}if((e=0|tr[A>>0])<<24>>24<(n=0|tr[i>>0])<<24>>24){A=-1;break}if(n<<24>>24>24){A=1;break}i=i+1|0,A=A+1|0}return 7==(0|t)&&(A=(0|A)!=(0|r)&1),0|A},function(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0;for(A=e|=0;;){if((0|i)==(0|f)){t=7;break}if((0|A)==(0|r)){A=-1;break}if((0|(e=0|ar[A>>2]))<(0|(n=0|ar[i>>2]))){A=-1;break}if((0|n)<(0|e)){A=1;break}i=i+4|0,A=A+4|0}return 7==(0|t)&&(A=(0|A)!=(0|r)&1),0|A},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0;if(o=ur=(t=ur)+31&-32,ur=ur+16|0,n=o+4|0,1&ar[(r|=0)+4>>2]){for(Tf(n,r),A=0|un(n,59248),bn(n),r=0|ar[A>>2],f?fs[63&ar[r+24>>2]](n,A):fs[63&ar[r+28>>2]](n,A),(A=0|tr[(a=11+n|0)>>0])<<24>>24<0?(r=A,A=0|ar[n>>2],c=8):f=n;8==(0|c)&&(f=A,A=r),(0|f)!=(((c=A<<24>>24<0)?0|ar[n>>2]:n)+(c?0|ar[4+n>>2]:255&A)|0);)A=0|tr[f>>0],0|(r=0|ar[e>>2])&&0|Mf(A=(0|(o=0|ar[(i=r+24|0)>>2]))==(0|ar[r+28>>2])?(c=0|ar[52+(0|ar[r>>2])>>2],A=0|hf(A),0|Hb[31&c](r,A)):(ar[i>>2]=o+1,0|hf(tr[o>>0]=A)),-1)&&(ar[e>>2]=0),r=0|tr[a>>0],A=f+1|0,c=8;A=0|ar[e>>2],Bu(n)}else c=0|ar[24+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[n>>2]=ar[o>>2],A=0|Kb[31&c](A,n,r,i,1&f);return ur=t,0|A},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+64|0,b=(t=u)+52|0,c=u+39|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,1,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,13,l,b,t))|0,r),Tf(t,r),vr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|PA(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+64|0,b=(t=u)+52|0,c=u+40|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,0,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,12,l,b,t))|0,r),Tf(t,r),vr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|PA(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;return u=ur=(A=ur)+31&-32,ur=ur+80|0,l=(o=u)+68|0,n=u+48|0,t=u+8|0,u=u+4|0,tr[l>>0]=0|tr[53891],tr[l+1>>0]=0|tr[53892],tr[l+2>>0]=0|tr[53893],tr[l+3>>0]=0|tr[53894],tr[l+4>>0]=0|tr[53895],tr[l+5>>0]=0|tr[53896],c=0|dn(),ar[o>>2]=f,c=0|nr(n,l=n+(f=0|fr(n,20,c,l,o))|0,r),Tf(o,r),a=0|un(o,59232),bn(o),Pb[7&ar[32+(0|ar[a>>2])>>2]](a,n,l,t),f=t+f|0,ar[u>>2]=ar[e>>2],ar[o>>2]=ar[u>>2],f=0|PA(o,t,(0|c)==(0|l)?f:c-n+t|0,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0;if(o=ur=(t=ur)+31&-32,ur=ur+16|0,n=o+4|0,1&ar[(r|=0)+4>>2]){for(Tf(n,r),A=0|un(n,59272),bn(n),r=0|ar[A>>2],f?fs[63&ar[r+24>>2]](n,A):fs[63&ar[r+28>>2]](n,A),A=0|tr[(a=8+n+3|0)>>0],r=0|ar[n>>2],c=4+n|0,f=A<<24>>24<0?r:n;(0|f)!=(((o=A<<24>>24<0)?r:n)+((o?0|ar[c>>2]:255&A)<<2)|0);)A=0|ar[f>>2],0|(r=0|ar[e>>2])&&0|Uf(A=(0|(o=0|ar[(i=r+24|0)>>2]))==(0|ar[r+28>>2])?(o=0|ar[52+(0|ar[r>>2])>>2],A=0|gf(A),0|Hb[31&o](r,A)):(ar[i>>2]=o+4,0|gf(ar[o>>2]=A)),-1)&&(ar[e>>2]=0),f=f+4|0,A=0|tr[a>>0],r=0|ar[n>>2];A=0|ar[e>>2],Qu(n)}else c=0|ar[24+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[n>>2]=ar[o>>2],A=0|Kb[31&c](A,n,r,i,1&f);return ur=t,0|A},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+128|0,b=(t=u)+122|0,c=u+108|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,1,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,13,l,b,t))|0,r),Tf(t,r),pr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|mr(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+128|0,b=(t=u)+112|0,c=u+100|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,0,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,12,l,b,t))|0,r),Tf(t,r),pr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|mr(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;return u=ur=(A=ur)+31&-32,ur=ur+192|0,l=(o=u)+176|0,n=u+156|0,t=u+4|0,u=u+152|0,tr[l>>0]=0|tr[53891],tr[l+1>>0]=0|tr[53892],tr[l+2>>0]=0|tr[53893],tr[l+3>>0]=0|tr[53894],tr[l+4>>0]=0|tr[53895],tr[l+5>>0]=0|tr[53896],c=0|dn(),ar[o>>2]=f,c=0|nr(n,l=n+(f=0|fr(n,20,c,l,o))|0,r),Tf(o,r),a=0|un(o,59264),bn(o),Pb[7&ar[48+(0|ar[a>>2])>>2]](a,n,l,t),f=t+(f<<2)|0,ar[u>>2]=ar[e>>2],ar[o>>2]=ar[u>>2],f=0|mr(o,t,(0|c)==(0|l)?f:t+(c-n<<2)|0,f,r,i),ur=A,0|f},function(A,e,r,i,f){return r|=0,ar[(f|=0)>>2]=r,3},function(A,e,r,i,f){return 0|function(A,e,r,i,f){r|=0,i|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;2<((n=e|=0)-(t=A|=0)|0)&0!=(4&(f|=0)|0)&&-17==(0|tr[A>>0])&&-69==(0|tr[A+1>>0])?A=-65==((s=0)|tr[A+2>>0])?A+3|0:A:s=0;A:for(;;){if(!(s>>>0>>0&A>>>0>>0)){0;break}l=0|tr[A>>0],b=255&l,o=A+1|0;do{if(-1>24){if(i>>>0>>0){0;break A}A=o}else{if((255&l)<194){0;break A}if(a=A+2|0,f=n-(u=A)|0,(255&l)<224){if((0|f)<2){0;break A}if(128!=(192&(f=0|cr[o>>0])|0)){0;break A}if(i>>>0<(63&f|b<<6&1984)>>>0){0;break A}A=a;break}if(c=A+3|0,(255&l)<240){if((0|f)<3){0;break A}switch(a=0|tr[a>>0],o=0|cr[o>>0],f=224&o,l<<24>>24){case-32:if(160==(0|f))break;A=u;break A;case-19:if(128==(0|f))break;A=u;break A;default:if(128!=(192&o|0)){A=u;break A}}if(128!=(192&(f=255&a)|0)){0;break A}if(i>>>0<(o<<6&4032|b<<12&61440|63&f)>>>0){0;break A}A=c;break}if((0|f)<4|244<(255&l)){0;break A}switch(o=0|tr[o>>0],f=0|tr[a>>0],a=0|tr[c>>0],c=255&o,l<<24>>24){case-16:if(48<=(o+112&255)){A=u;break A}break;case-12:if(128==(240&c|0))break;A=u;break A;default:if(128!=(192&c|0)){A=u;break A}}if(128!=(192&(o=255&f)|0)){0;break A}if(128!=(192&(f=255&a)|0)){0;break A}if(i>>>0<(c<<12&258048|b<<18&1835008|o<<6&4032|63&f)>>>0){0;break A}A=A+4|0}}while(0);s=s+1|0}return A-t|0}(r|=0,i|=0,f|=0,1114111,0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0;var n,t=0;t=ur=(n=ur)+31&-32,ur=ur+16|0,ar[(f|=0)>>2]=r,r=0|rf(0|ar[A+8>>2]),A=0|$c(t,0),0|r&&rf(r);A:do{switch(0|A){case 0:case-1:A=2;break;default:if((A=A+-1|0)>>>0>(i-(0|ar[f>>2])|0)>>>0)A=1;else for(;;){if(!A){A=0;break A}e=0|tr[t>>0],i=0|ar[f>>2],ar[f>>2]=i+1,tr[i>>0]=e,t=t+1|0,A=A+-1|0}}}while(0);return ur=n,0|A},function(A,e,r,i,f){e|=0,r|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0;t=i|=0,n=(A|=0)+8|0,b=u=0;A:for(;!((0|r)==(0|i)|f>>>0<=u>>>0);){switch(l=0|rf(0|ar[n>>2]),A=0|(a=t-(o=r)|0,c=e,0|Gi(0,o|=0,a|=0,0|(c|=0)?c:58156)),0|l&&rf(l),0|A){case-2:case-1:break A;case 0:A=1}u=u+1|0,b=A+b|0,r=r+A|0}return 0|b},function(A,e,r,i,f){for(A|=0,e|=0,r|=0,i|=0,f|=0;(0|e)!=(0|r);)A=0|tr[e>>0],tr[f>>0]=-1>24?A:i,f=f+1|0,e=e+1|0;return 0|r},function(A,e,r,i,f){A|=0,i|=0;var n,t=0;for(n=((r|=0)-(e|=0)|0)>>>2,A=f|=0,f=e;(0|f)!=(0|r);)t=0|ar[f>>2],tr[A>>0]=t>>>0<128?255&t:i,A=A+1|0,f=f+4|0;return e+(n<<2)|0},function(A,e,r,i,f){return r|=0,ar[(f|=0)>>2]=r,3},function(A,e,r,i,f){return 0|((i=(i|=0)-(r|=0)|0)>>>0<(f|=0)>>>0?i:f)},function(A,e,r,i,f){return r|=0,ar[(f|=0)>>2]=r,3},function(A,e,r,i,f){return 0|function(A,e,r,i,f){r|=0,i|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;2<((n=e|=0)-(t=A|=0)|0)&0!=(4&(f|=0)|0)&&-17==(0|tr[A>>0])&&-69==(0|tr[A+1>>0])?A=-65==((d=0)|tr[A+2>>0])?A+3|0:A:d=0;A:for(;;){if(!(d>>>0>>0&A>>>0>>0)){0;break}if(l=0|tr[A>>0],i>>>0<(s=255&l)>>>0){0;break}a=A+1|0;do{if(l<<24>>24<=-1){if((255&l)<194){0;break A}if(c=A+2|0,f=n-(u=A)|0,(255&l)<224){if((0|f)<2){0;break A}if(128!=(192&(f=0|cr[a>>0])|0)){0;break A}if(i>>>0<(63&f|s<<6&1984)>>>0){0;break A}f=d,A=c;break}if(b=A+3|0,(255&l)<240){if((0|f)<3){0;break A}switch(o=0|tr[c>>0],a=0|cr[a>>0],f=224&a,l<<24>>24){case-32:if(160==(0|f))break;A=u;break A;case-19:if(128==(0|f))break;A=u;break A;default:if(128!=(192&a|0)){A=u;break A}}if(128!=(192&(f=255&o)|0)){0;break A}if(i>>>0<(a<<6&4032|s<<12&61440|63&f)>>>0){0;break A}f=d,A=b;break}if(245<=(255&l)){0;break A}if((r-d|0)>>>0<2|(0|f)<4){0;break A}switch(o=0|tr[a>>0],f=0|tr[c>>0],a=0|tr[b>>0],c=255&o,l<<24>>24){case-16:if(48<=(o+112&255)){A=u;break A}break;case-12:if(128==(240&c|0))break;A=u;break A;default:if(128!=(192&c|0)){A=u;break A}}if(128!=(192&(o=255&f)|0)){0;break A}if(128!=(192&(f=255&a)|0)){0;break A}if(i>>>0<(c<<12&258048|s<<18&1835008|o<<6&4032|63&f)>>>0){0;break A}f=d+1|0,A=A+4|0}else f=d,A=a}while(0);d=f+1|0}return A-t|0}(r|=0,i|=0,f|=0,1114111,0)},Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb],qb=[Gb,function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n=+n;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;for(B=ur=(m=ur)+31&-32,ur=ur+384|0,c=B+8|0,A=(Z=B)+284|0,p=B+72|0,g=B+184|0,v=B+68|0,l=B+180|0,u=B+177|0,b=B+176|0,k=B+56|0,h=B+44|0,w=B+32|0,o=B+28|0,a=B+76|0,s=B+24|0,d=B+16|0,B=B+20|0,ar[p>>2]=A,Q[c>>3]=n,99<(A=0|_c(A,100,55168,c))>>>0?(A=0|dn(),Q[Z>>3]=n,A=0|kr(p,A,55168,Z),(g=0|ar[p>>2])||gu(),(Z=0|yc(A))?(W=A,C=E=Z,G=g):gu()):(E=g,W=A,G=C=0),Tf(v,i),t=0|un(v,59232),y=0|ar[p>>2],Pb[7&ar[32+(0|ar[t>>2])>>2]](t,y,y+W|0,E),y=W?45==(0|tr[ar[p>>2]>>0]):0,ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);for(ar[h>>2]=0,ar[4+h>>2]=0,A=ar[8+h>>2]=0;3!=(0|A);)A=A+1|(ar[h+(A<<2)>>2]=0);for(ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);return ki(r,y,v,l,u,b,k,h,w,o),100<(A=(Z=(0|(p=0|ar[o>>2]))<(0|W)?(g=0|tr[11+w>>0],Z=0|tr[11+h>>0],A=1,g=(g<<24>>24<0?0|ar[4+w>>2]:255&g)+(W-p<<1)|0,Z<<24>>24<0?0|ar[4+h>>2]:255&Z):(Z=0|tr[11+w>>0],A=2,g=(g=0|tr[11+h>>0])<<24>>24<0?0|ar[4+h>>2]:255&g,Z<<24>>24<0?0|ar[4+w>>2]:255&Z))+p+g+A|0)>>>0?(A=0|yc(A))?I=X=A:gu():(X=a,I=0),hi(X,s,d,0|ar[i+4>>2],E,E+W|0,t,y,l,0|tr[u>>0],0|tr[b>>0],k,h,w,p),ar[B>>2]=ar[e>>2],e=0|ar[s>>2],A=0|ar[d>>2],ar[c>>2]=ar[B>>2],A=0|PA(c,X,e,A,i,f),0|I&&Bc(I),Bu(w),Bu(h),Bu(k),bn(v),0|C&&Bc(C),0|G&&Bc(G),ur=m,0|A},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n=+n;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;for(B=ur=(m=ur)+31&-32,ur=ur+1008|0,c=B+8|0,A=(Z=B)+896|0,p=B+888|0,g=B+488|0,v=B+480|0,l=B+892|0,u=B+476|0,b=B+472|0,k=B+460|0,h=B+448|0,w=B+436|0,o=B+432|0,a=B+32|0,s=B+24|0,d=B+16|0,B=B+20|0,ar[p>>2]=A,Q[c>>3]=n,99<(A=0|_c(A,100,55168,c))>>>0?(A=0|dn(),Q[Z>>3]=n,A=0|kr(p,A,55168,Z),(g=0|ar[p>>2])||gu(),(Z=0|yc(A<<2))?(W=A,C=E=Z,G=g):gu()):(E=g,W=A,G=C=0),Tf(v,i),t=0|un(v,59264),y=0|ar[p>>2],Pb[7&ar[48+(0|ar[t>>2])>>2]](t,y,y+W|0,E),y=W?45==(0|tr[ar[p>>2]>>0]):0,ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);for(ar[h>>2]=0,ar[4+h>>2]=0,A=ar[8+h>>2]=0;3!=(0|A);)A=A+1|(ar[h+(A<<2)>>2]=0);for(ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);return _l(r,y,v,l,u,b,k,h,w,o),100<(A=(Z=(0|(p=0|ar[o>>2]))<(0|W)?(g=0|tr[8+w+3>>0],Z=0|tr[8+h+3>>0],A=1,g=(g<<24>>24<0?0|ar[4+w>>2]:255&g)+(W-p<<1)|0,Z<<24>>24<0?0|ar[4+h>>2]:255&Z):(Z=0|tr[8+w+3>>0],A=2,g=(g=0|tr[8+h+3>>0])<<24>>24<0?0|ar[4+h>>2]:255&g,Z<<24>>24<0?0|ar[4+w>>2]:255&Z))+p+g+A|0)>>>0?(A=0|yc(A<<2))?I=X=A:gu():(X=a,I=0),Yl(X,s,d,0|ar[i+4>>2],E,E+(W<<2)|0,t,y,l,0|ar[u>>2],0|ar[b>>2],k,h,w,p),ar[B>>2]=ar[e>>2],e=0|ar[s>>2],A=0|ar[d>>2],ar[c>>2]=ar[B>>2],A=0|mr(c,X,e,A,i,f),0|I&&Bc(I),Qu(w),Qu(h),Bu(k),bn(v),0|C&&Bc(C),0|G&&Bc(G),ur=m,0|A},Gb],$b=[Vb,function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0;if(u=ur=(a=ur)+31&-32,ur=ur+48|0,c=u+40|0,b=u+16|0,t=u+8|0,o=u+12|0,l=u+4|0,1&ar[(i|=0)+4>>2])for(Tf(c,i),l=0|un(c,59232),bn(c),Tf(c,i),A=0|un(c,59248),bn(c),fs[63&ar[24+(0|ar[A>>2])>>2]](b,A),fs[63&ar[28+(0|ar[A>>2])>>2]](b+12|0,A),ar[u>>2]=ar[r>>2],A=b+24|0,ar[c>>2]=ar[u>>2],c=(0|Vn(e,c,b,A,l,f,1))==(0|b)&1,tr[n>>0]=c,c=0|ar[e>>2];Bu(A=A+-12|0),(0|A)!=(0|b););else{switch(ar[t>>2]=-1,u=0|ar[16+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],ar[b>>2]=ar[o>>2],ar[c>>2]=ar[l>>2],b=0|$b[63&u](A,b,c,i,f,t),ar[e>>2]=b,0|ar[t>>2]){case 0:tr[n>>0]=0;break;case 1:tr[n>>0]=1;break;default:tr[n>>0]=1,ar[f>>2]=4}c=0|ar[e>>2]}return ur=a,0|c},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Gn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Cn(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|In(A,0|ar[l>>2],f,s),or[n>>1]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Wn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Xn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|En(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+240|0,c=B+200|0,l=B+199|0,E=B+198|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+197|0,B=B+196|0,wn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|vn(255&(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|hf(0|tr[i>>0])),X,B,A,u,0|tr[l>>0],0|tr[E>>0],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+1,hf(0|tr[i>>0]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+pn(A,0|ar[u>>2],f),gA[n>>2]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+240|0,c=B+200|0,l=B+199|0,E=B+198|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+197|0,B=B+196|0,wn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|vn(255&(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|hf(0|tr[i>>0])),X,B,A,u,0|tr[l>>0],0|tr[E>>0],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+1,hf(0|tr[i>>0]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+Zn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+240|0,c=B+200|0,l=B+199|0,E=B+198|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+197|0,B=B+196|0,wn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|vn(255&(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|hf(0|tr[i>>0])),X,B,A,u,0|tr[l>>0],0|tr[E>>0],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+1,hf(0|tr[i>>0]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+mn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;for(g=ur=(d=ur)+31&-32,ur=ur+240|0,Z=(u=g)+204|0,b=g+192|0,s=g+180|0,p=g+176|0,c=g+16|0,l=g+8|0,g=g+4|0,ar[b>>2]=0,ar[4+b>>2]=0,A=ar[8+b>>2]=0;3!=(0|A);)A=A+1|(ar[b+(A<<2)>>2]=0);for(Tf(s,i),A=0|un(s,59232),Pb[7&ar[32+(0|ar[A>>2])>>2]](A,53648,53674,Z),bn(s),ar[s>>2]=0,ar[4+s>>2]=0,A=ar[8+s>>2]=0;3!=(0|A);)A=A+1|(ar[s+(A<<2)>>2]=0);o=8+s|0,Vu(s,A=(0|tr[(a=11+s|0)>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A,ar[l>>2]=c,t=4+s|(ar[g>>2]=0),k=h=0|ar[e>>2];A:for(;;){w=k?0|Mf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[i>>0]),-1)?(h=m=ar[e>>2]=0,1):(m=k,0):(h=m=0,1),k=0|ar[r>>2];do{if(k){if(0|Mf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,y=22;break}if(w)break;break A}y=22}while(0);if(22==(0|y)){if(y=0,w){k=0;break}k=0}if(i=(i=0|tr[a>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[p>>2])==(A+i|0)&&(Vu(s,i<<1,0),Vu(s,A=(0|tr[a>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(w=m+12|0)>>2]))==(0|ar[(v=m+16|0)>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0])),16,A,p,g,0,b,c,l,Z))break;(0|(i=0|ar[w>>2]))!=(0|ar[v>>2])?(ar[w>>2]=i+1,hf(0|tr[i>>0]),k=m):(jb[127&ar[40+(0|ar[m>>2])>>2]](m),k=m)}Vu(s,(0|ar[p>>2])-A|0,0),Z=(0|tr[a>>0])<0?0|ar[s>>2]:s,p=0|dn(),ar[u>>2]=n,1!=(0|kn(Z,p,53681,u))&&(ar[f>>2]=4),i=m?0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[h>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)?(ar[e>>2]=0,1):0:1;do{if(k){if(0|Mf(A=(0|(A=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,y=49;break}if(i)break;y=51;break}y=49}while(0);return 49==(0|y)&&i&&(y=51),51==(0|y)&&(ar[f>>2]=2|ar[f>>2]),y=0|ar[e>>2],Bu(s),Bu(b),ur=d,0|y},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0;if(u=ur=(a=ur)+31&-32,ur=ur+48|0,c=u+40|0,b=u+16|0,t=u+8|0,o=u+12|0,l=u+4|0,1&ar[(i|=0)+4>>2])for(Tf(c,i),l=0|un(c,59264),bn(c),Tf(c,i),A=0|un(c,59272),bn(c),fs[63&ar[24+(0|ar[A>>2])>>2]](b,A),fs[63&ar[28+(0|ar[A>>2])>>2]](b+12|0,A),ar[u>>2]=ar[r>>2],A=b+24|0,ar[c>>2]=ar[u>>2],c=(0|ir(e,c,b,A,l,f,1))==(0|b)&1,tr[n>>0]=c,c=0|ar[e>>2];Qu(A=A+-12|0),(0|A)!=(0|b););else{switch(ar[t>>2]=-1,u=0|ar[16+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],ar[b>>2]=ar[o>>2],ar[c>>2]=ar[l>>2],b=0|$b[63&u](A,b,c,i,f,t),ar[e>>2]=b,0|ar[t>>2]){case 0:tr[n>>0]=0;break;case 1:tr[n>>0]=1;break;default:tr[n>>0]=1,ar[f>>2]=4}c=0|ar[e>>2]}return ur=a,0|c},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;for(y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);a=8+k|0,Vu(k,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,t=4+k|(ar[y>>2]=0),w=v=0|ar[e>>2];A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(v=Z=ar[e>>2]=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),Vu(k,A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y),B=0|Gn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?0|Uf(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);return 47==(0|E)&&i&&(E=49),49==(0|E)&&(ar[f>>2]=2|ar[f>>2]),E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;for(y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);a=8+k|0,Vu(k,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,t=4+k|(ar[y>>2]=0),w=v=0|ar[e>>2];A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(v=Z=ar[e>>2]=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),Vu(k,A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y),B=0|Cn(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?0|Uf(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);return 47==(0|E)&&i&&(E=49),49==(0|E)&&(ar[f>>2]=2|ar[f>>2]),E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;for(y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);a=8+k|0,Vu(k,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,t=4+k|(ar[y>>2]=0),w=v=0|ar[e>>2];A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(v=Z=ar[e>>2]=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),Vu(k,A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y),B=0|In(A,0|ar[l>>2],f,s),or[n>>1]=B,gn(d,u,0|ar[b>>2],f),i=Z?0|Uf(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);return 47==(0|E)&&i&&(E=49),49==(0|E)&&(ar[f>>2]=2|ar[f>>2]),E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Wn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Xn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|En(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+352|0,c=B+208|0,l=B+200|0,E=B+196|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+337|0,B=B+336|0,Rn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|Nn(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|gf(0|ar[i>>2]),X,B,A,u,0|ar[l>>2],0|ar[E>>2],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+4,gf(0|ar[i>>2]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+pn(A,0|ar[u>>2],f),gA[n>>2]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+352|0,c=B+208|0,l=B+200|0,E=B+196|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+337|0,B=B+336|0,Rn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|Nn(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|gf(0|ar[i>>2]),X,B,A,u,0|ar[l>>2],0|ar[E>>2],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+4,gf(0|ar[i>>2]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+Zn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+352|0,c=B+208|0,l=B+200|0,E=B+196|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+337|0,B=B+336|0,Rn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|Nn(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|gf(0|ar[i>>2]),X,B,A,u,0|ar[l>>2],0|ar[E>>2],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+4,gf(0|ar[i>>2]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+mn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;for(g=ur=(d=ur)+31&-32,ur=ur+320|0,Z=(u=g)+208|0,b=g+192|0,s=g+180|0,p=g+176|0,c=g+16|0,l=g+8|0,g=g+4|0,ar[b>>2]=0,ar[4+b>>2]=0,A=ar[8+b>>2]=0;3!=(0|A);)A=A+1|(ar[b+(A<<2)>>2]=0);for(Tf(s,i),A=0|un(s,59264),Pb[7&ar[48+(0|ar[A>>2])>>2]](A,53648,53674,Z),bn(s),ar[s>>2]=0,ar[4+s>>2]=0,A=ar[8+s>>2]=0;3!=(0|A);)A=A+1|(ar[s+(A<<2)>>2]=0);o=8+s|0,Vu(s,A=(0|tr[(a=11+s|0)>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A,ar[l>>2]=c,t=4+s|(ar[g>>2]=0),k=h=0|ar[e>>2];A:for(;;){w=k?0|Uf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|gf(0|ar[i>>2]),-1)?(h=m=ar[e>>2]=0,1):(m=k,0):(h=m=0,1),k=0|ar[r>>2];do{if(k){if(0|Uf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,y=22;break}if(w)break;break A}y=22}while(0);if(22==(0|y)){if(y=0,w){k=0;break}k=0}if(i=(i=0|tr[a>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[p>>2])==(A+i|0)&&(Vu(s,i<<1,0),Vu(s,A=(0|tr[a>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A+i),0|Fn(i=(0|(i=0|ar[(w=m+12|0)>>2]))==(0|ar[(v=m+16|0)>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),16,A,p,g,0,b,c,l,Z))break;(0|(i=0|ar[w>>2]))!=(0|ar[v>>2])?(ar[w>>2]=i+4,gf(0|ar[i>>2]),k=m):(jb[127&ar[40+(0|ar[m>>2])>>2]](m),k=m)}Vu(s,(0|ar[p>>2])-A|0,0),Z=(0|tr[a>>0])<0?0|ar[s>>2]:s,p=0|dn(),ar[u>>2]=n,1!=(0|kn(Z,p,53681,u))&&(ar[f>>2]=4),i=m?0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[h>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(k){if(0|Uf(A=(0|(A=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,y=49;break}if(i)break;y=51;break}y=49}while(0);return 49==(0|y)&&i&&(y=51),51==(0|y)&&(ar[f>>2]=2|ar[f>>2]),y=0|ar[e>>2],Bu(s),Bu(b),ur=d,0|y},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+96|0,o=s+8|0,l=(u=s)+71|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,1,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),vr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|PA(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+96|0,o=s+8|0,l=(u=s)+71|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,0,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),vr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|PA(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+224|0,o=s+8|0,l=(u=s)+200|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,1,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),pr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|mr(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+224|0,o=s+8|0,l=(u=s)+200|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,0,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),pr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|mr(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Er(A,a,o,i,f,n,54427,54435),ur=t,0|n},function(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b=0;return c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,l=4+c|0,b=0|jb[127&ar[20+(0|ar[(b=(A|=0)+8|0)>>2])>>2]](b),ar[l>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],r=(e=(u=(r=0|tr[b+11>>0])<<24>>24<0)?0|ar[b>>2]:b)+(u?0|ar[b+4>>2]:255&r)|0,ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Er(A,a,o,i,f,n,e,r),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59232),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],yr(A,n+24|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59232),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Br(A,n+16|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59232),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Yr(A,n+20|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Sr(A,a,o,i,f,n,16404,16436),ur=t,0|n},function(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b=0;return c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,l=4+c|0,b=0|jb[127&ar[20+(0|ar[(b=(A|=0)+8|0)>>2])>>2]](b),ar[l>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],r=(e=(u=(r=0|tr[b+8+3>>0])<<24>>24<0)?0|ar[b>>2]:b)+((u?0|ar[b+4>>2]:255&r)<<2)|0,ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Sr(A,a,o,i,f,n,e,r),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59264),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Tr(A,n+24|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59264),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Ur(A,n+16|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59264),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Ai(A,n+20|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0;for(b=ur=(Z=ur)+31&-32,ur=ur+176|0,c=56+b|0,d=164+b|0,k=161+b|0,h=160+b|0,w=40+b|0,v=28+b|0,m=16+b|0,t=12+b|0,a=60+b|0,l=8+b|0,u=4+b|0,Tf(g=52+b|0,i|=0),s=0|un(g,59232),y=n+4|0,E=0|((A=(E=0|tr[(p=n+11|0)>>0])<<24>>24<0)?0|ar[y>>2]:255&E)?(E=0|tr[(A?0|ar[n>>2]:n)>>0])<<24>>24==(0|Hb[31&ar[28+(0|ar[s>>2])>>2]](s,45))<<24>>24:0,ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);for(ar[v>>2]=0,ar[4+v>>2]=0,A=ar[8+v>>2]=0;3!=(0|A);)A=A+1|(ar[v+(A<<2)>>2]=0);for(ar[m>>2]=0,ar[4+m>>2]=0,A=ar[8+m>>2]=0;3!=(0|A);)A=A+1|(ar[m+(A<<2)>>2]=0);return ki(r,E,g,d,k,h,w,v,m,t),B=(o=(B=0|tr[p>>0])<<24>>24<0)?0|ar[y>>2]:255&B,100<(A=(r=(0|(y=0|ar[t>>2]))<(0|B)?(p=0|tr[11+m>>0],r=0|tr[11+v>>0],A=1,p=(p<<24>>24<0?0|ar[4+m>>2]:255&p)+(B-y<<1)|0,r<<24>>24<0?0|ar[4+v>>2]:255&r):(r=0|tr[11+m>>0],A=2,p=(p=0|tr[11+v>>0])<<24>>24<0?0|ar[4+v>>2]:255&p,r<<24>>24<0?0|ar[4+m>>2]:255&r))+y+p+A|0)>>>0?(A=0|yc(A))?W=X=A:gu():(X=a,W=0),n=o?0|ar[n>>2]:n,hi(X,l,u,0|ar[i+4>>2],n,n+B|0,s,E,d,0|tr[k>>0],0|tr[h>>0],w,v,m,y),ar[b>>2]=ar[e>>2],n=0|ar[l>>2],A=0|ar[u>>2],ar[c>>2]=ar[b>>2],A=0|PA(c,X,n,A,i,f),0|W&&Bc(W),Bu(m),Bu(v),Bu(w),bn(g),ur=Z,0|A},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0;for(b=ur=(Z=ur)+31&-32,ur=ur+480|0,c=468+b|0,d=472+b|0,k=460+b|0,h=456+b|0,w=444+b|0,v=432+b|0,m=420+b|0,t=416+b|0,a=16+b|0,l=8+b|0,u=4+b|0,Tf(g=464+b|0,i|=0),s=0|un(g,59264),y=n+4|0,E=0|((A=(E=0|tr[(p=n+8+3|0)>>0])<<24>>24<0)?0|ar[y>>2]:255&E)?(0|(E=0|ar[(A?0|ar[n>>2]:n)>>2]))==(0|Hb[31&ar[44+(0|ar[s>>2])>>2]](s,45)):0,ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);for(ar[v>>2]=0,ar[4+v>>2]=0,A=ar[8+v>>2]=0;3!=(0|A);)A=A+1|(ar[v+(A<<2)>>2]=0);for(ar[m>>2]=0,ar[4+m>>2]=0,A=ar[8+m>>2]=0;3!=(0|A);)A=A+1|(ar[m+(A<<2)>>2]=0);return _l(r,E,g,d,k,h,w,v,m,t),B=(o=(B=0|tr[p>>0])<<24>>24<0)?0|ar[y>>2]:255&B,100<(A=(r=(0|(y=0|ar[t>>2]))<(0|B)?(p=0|tr[8+m+3>>0],r=0|tr[8+v+3>>0],A=1,p=(p<<24>>24<0?0|ar[4+m>>2]:255&p)+(B-y<<1)|0,r<<24>>24<0?0|ar[4+v>>2]:255&r):(r=0|tr[8+m+3>>0],A=2,p=(p=0|tr[8+v+3>>0])<<24>>24<0?0|ar[4+v>>2]:255&p,r<<24>>24<0?0|ar[4+m>>2]:255&r))+y+p+A|0)>>>0?(A=0|yc(A<<2))?W=X=A:gu():(X=a,W=0),n=o?0|ar[n>>2]:n,Yl(X,l,u,0|ar[i+4>>2],n,n+(B<<2)|0,s,E,d,0|ar[k>>2],0|ar[h>>2],w,v,m,y),ar[b>>2]=ar[e>>2],n=0|ar[l>>2],A=0|ar[u>>2],ar[c>>2]=ar[b>>2],A=0|mr(c,X,n,A,i,f),0|W&&Bc(W),Qu(m),Qu(v),Bu(w),bn(g),ur=Z,0|A},Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb],As=[Fb,function(A,e,r,i,f,n,t){var o;for(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,i=ur=(o=ur)+31&-32,ur=ur+112|0,r=i+4|0,ar[i>>2]=r+100,fi(A+8|0,r,i,f,n,t),t=0|ar[i>>2],n=r,r=0|ar[e>>2];(0|n)!=(0|t);)i=0|tr[n>>0],r=!r||(e=0|Mf(i=(0|(f=0|ar[(A=r+24|0)>>2]))==(0|ar[r+28>>2])?(e=0|ar[52+(0|ar[r>>2])>>2],i=0|hf(i),0|Hb[31&e](r,i)):(ar[A>>2]=f+1,0|hf(tr[f>>0]=i)),-1))?0:r,n=n+1|0;return ur=o,0|r},function(A,e,r,i,f,n,t){var o;for(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,i=ur=(o=ur)+31&-32,ur=ur+416|0,r=i+8|0,ar[i>>2]=r+400,function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l=0;l=ur=(t=ur)+31&-32,ur=ur+128|0,a=l+16|0,c=l+12|0,l=(o=l)+8|0,ar[c>>2]=100+a,fi(A,a,c,i,f,n),ar[(i=o)>>2]=0,ar[i+4>>2]=0,ar[l>>2]=a,i=0|function(A,e){return(e|=0)-(A|=0)>>2|0}(e,0|ar[r>>2]),A=0|rf(0|ar[A>>2]),i=0|Xi(e,l,i,o),0|A&&rf(A);{if(-1!=(0|i))return ar[r>>2]=e+(i<<2),ur=t;ti()}}(A+8|0,r,i,f,n,t),t=0|ar[i>>2],n=r,r=0|ar[e>>2];(0|n)!=(0|t);)i=0|ar[n>>2],r=!r||(e=0|Uf(i=(0|(f=0|ar[(A=r+24|0)>>2]))==(0|ar[r+28>>2])?(e=0|ar[52+(0|ar[r>>2])>>2],i=0|gf(i),0|Hb[31&e](r,i)):(ar[A>>2]=f+4,0|gf(ar[f>>2]=i)),-1))?0:r,n=n+4|0;return ur=o,0|r},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(m=ur=(s=ur)+31&-32,ur=ur+240|0,o=m+24|0,v=(c=m)+140|0,b=m+16|0,a=m+12|0,l=m+8|0,k=m+136|0,d=m+4|0,m=m+36|0,ar[b>>2]=v,ar[(u=4+b|0)>>2]=444,Tf(l,f),A=0|un(l,59232),tr[k>>0]=0,ar[d>>2]=ar[r>>2],w=0|ar[f+4>>2],ar[o>>2]=ar[d>>2],0|ai(e,o,i,l,w,n,k,A,b,a,v+100|0)){for(Pb[7&ar[32+(0|ar[A>>2])>>2]](A,54952,54962,o),98<(0|(A=(w=0|ar[a>>2])-(i=0|ar[b>>2])|0))?(A=0|yc(A+2|0))?g=h=A:gu():(h=m,g=0),A=0|tr[k>>0]?(tr[h>>0]=45,h+1|0):h,h=10+o|0,v=o,k=i,f=A,A=w;!(A>>>0<=k>>>0);){for(i=0|tr[k>>0],A=o;;){if((0|A)==(0|h)){A=h;break}if((0|tr[A>>0])==i<<24>>24)break;A=A+1|0}tr[f>>0]=0|tr[A-v+54952>>0],k=k+1|0,f=f+1|0,A=0|ar[a>>2]}tr[f>>0]=0,ar[c>>2]=t,1!=(0|ji(m,54963,c))&&ti(),0|g&&Bc(g)}A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[i>>0]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);A=0|ar[r>>2];do{if(A){if(0|Mf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,Z=32;break}if(f)break;Z=34;break}Z=32}while(0);return 32==(0|Z)&&f&&(Z=34),34==(0|Z)&&(ar[n>>2]=2|ar[n>>2]),i=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|i},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d=0,k=0,h=0,w=0;if(h=ur=(s=ur)+31&-32,ur=ur+144|0,d=h+24|0,A=h+32|0,b=h+16|0,a=h+8|0,k=(l=h)+28|0,h=h+4|0,ar[b>>2]=A,ar[(u=4+b|0)>>2]=444,Tf(l,f),o=0|un(l,59232),c=(tr[k>>0]=0)|ar[r>>2],ar[h>>2]=c,f=0|ar[f+4>>2],ar[d>>2]=ar[h>>2],h=c,0|ai(e,d,i,l,f,n,k,o,b,a,A+100|0)){for((0|tr[(A=t+11|0)>>0])<0?(i=0|ar[t>>2],tr[d>>0]=0,Qf(i,d),ar[t+4>>2]=0):(tr[d>>0]=0,Qf(t,d),tr[A>>0]=0),0|tr[k>>0]&&_u(t,0|Hb[31&ar[28+(0|ar[o>>2])>>2]](o,45)),k=0|Hb[31&ar[28+(0|ar[o>>2])>>2]](o,48),d=(f=0|ar[a>>2])+-1|0,A=0|ar[b>>2];!(d>>>0<=A>>>0)&&(0|tr[A>>0])==k<<24>>24;)A=A+1|0;!function(A,e,r){r|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;c=ur=(n=ur)+31&-32,ur=ur+16|0,i=e|=0,s=c+12|0,o=0|tr[(b=11+(A|=0)|0)>>0],l=(t=o<<24>>24<0)?(u=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(u=255&o,10);f=r-i|0;do{if(0|f){if(t?(o=0|ar[A>>2],a=o,t=0|ar[A+4>>2]):(t=255&o,o=a=A),0|ci(e,o,a+t|0)){for(ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,4294967279>>0&&pu(),f>>>0<11?(tr[c+11>>0]=f,o=c):(o=0|hu(b=16+f&-16),ar[c>>2]=o,ar[c+8>>2]=-2147483648|b,ar[c+4>>2]=f),t=o;(0|e)!=(0|r);)Qf(t,e),e=e+1|0,t=t+1|0;tr[s>>0]=0,Qf(o+f|0,s),s=0|tr[c+11>>0],Nu(A,(r=s<<24>>24<0)?0|ar[c>>2]:c,r?0|ar[c+4>>2]:255&s),Bu(c);break}for(c=u+f|0,(l-u|0)>>>0>>0&&Ru(A,l,c-l|0,u,u,0,0),a=(0|tr[b>>0])<0?0|ar[A>>2]:A,o=r+(u-i)|0,t=a+u|0;(0|e)!=(0|r);)Qf(t,e),t=t+1|0,e=e+1|0;if(tr[s>>0]=0,Qf(a+o|0,s),(0|tr[b>>0])<0){ar[A+4>>2]=c;break}tr[b>>0]=c;break}}while(0);ur=n}(t,A,f)}A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);do{if(c){if(0|Mf(A=(0|(A=0|ar[h+12>>2]))==(0|ar[h+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](h):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,w=25;break}if(f)break;w=27;break}w=25}while(0);return 25==(0|w)&&f&&(w=27),27==(0|w)&&(ar[n>>2]=2|ar[n>>2]),f=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|f},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(m=ur=(s=ur)+31&-32,ur=ur+576|0,o=m+424|0,v=(c=m)+24|0,b=m+16|0,a=m+12|0,l=m+8|0,k=m+564|0,d=m+4|0,m=m+464|0,ar[b>>2]=v,ar[(u=4+b|0)>>2]=444,Tf(l,f),A=0|un(l,59264),tr[k>>0]=0,ar[d>>2]=ar[r>>2],w=0|ar[f+4>>2],ar[o>>2]=ar[d>>2],0|bi(e,o,i,l,w,n,k,A,b,a,v+400|0)){for(Pb[7&ar[48+(0|ar[A>>2])>>2]](A,55062,55072,o),392<(0|(A=(w=0|ar[a>>2])-(i=0|ar[b>>2])|0))?(A=0|yc(2+(A>>>2)|0))?g=h=A:gu():(h=m,g=0),A=0|tr[k>>0]?(tr[h>>0]=45,h+1|0):h,h=40+o|0,v=o,k=i,f=A,A=w;!(A>>>0<=k>>>0);){for(i=0|ar[k>>2],A=o;;){if((0|A)==(0|h)){A=h;break}if((0|ar[A>>2])==(0|i))break;A=A+4|0}tr[f>>0]=0|tr[55062+(A-v>>2)>>0],k=k+4|0,f=f+1|0,A=0|ar[a>>2]}tr[f>>0]=0,ar[c>>2]=t,1!=(0|ji(m,54963,c))&&ti(),0|g&&Bc(g)}A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[i>>2]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);A=0|ar[r>>2];do{if(A){if(0|Uf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,Z=32;break}if(f)break;Z=34;break}Z=32}while(0);return 32==(0|Z)&&f&&(Z=34),34==(0|Z)&&(ar[n>>2]=2|ar[n>>2]),i=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|i},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d=0,k=0,h=0,w=0;if(h=ur=(s=ur)+31&-32,ur=ur+432|0,d=h+424|0,A=h+24|0,b=h+16|0,a=h+8|0,k=(l=h)+428|0,h=h+4|0,ar[b>>2]=A,ar[(u=4+b|0)>>2]=444,Tf(l,f),o=0|un(l,59264),c=(tr[k>>0]=0)|ar[r>>2],ar[h>>2]=c,f=0|ar[f+4>>2],ar[d>>2]=ar[h>>2],h=c,0|bi(e,d,i,l,f,n,k,o,b,a,A+400|0)){for((0|tr[(A=t+8+3|0)>>0])<0?(i=0|ar[t>>2],ar[d>>2]=0,ln(i,d),ar[t+4>>2]=0):(ar[d>>2]=0,ln(t,d),tr[A>>0]=0),0|tr[k>>0]&&Ou(t,0|Hb[31&ar[44+(0|ar[o>>2])>>2]](o,45)),k=0|Hb[31&ar[44+(0|ar[o>>2])>>2]](o,48),d=(f=0|ar[a>>2])+-4|0,A=0|ar[b>>2];!(d>>>0<=A>>>0)&&(0|ar[A>>2])==(0|k);)A=A+4|0;!function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;n=ur=(o=ur)+31&-32,ur=ur+16|0,k=12+n|0,i=0|tr[(t=3+(a=8+(A|=0)|0)|0)>>0],u=(c=i<<24>>24<0)?(d=0|ar[A+4>>2],(2147483647&ar[a>>2])-1|0):(d=255&i,1);f=r-e>>2;do{if(0|f){if(c?(c=0|ar[A>>2],l=c,a=0|ar[A+4>>2]):(a=255&i,c=l=A),0|si(e,c,l+(a<<2)|0)){ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,1073741807>>0&&pu();do{if(2<=f>>>0){if(!(1073741823<(a=4+f&-4)>>>0)){s=0|hu(a<<2),ar[n>>2]=s,ar[8+n>>2]=-2147483648|a,ar[4+n>>2]=f,b=e;break}lA()}else tr[8+n+3>>0]=f,b=e,s=n}while(0);for(;(0|b)!=(0|r);)ln(s,b),b=b+4|0,s=s+4|0;ar[k>>2]=0,ln(s,k),k=0|tr[8+n+3>>0],Su(A,(r=k<<24>>24<0)?0|ar[n>>2]:n,r?0|ar[4+n>>2]:255&k),Qu(n);break}for(c=d+f|0,(u-d|0)>>>0>>0&&Uu(A,u,c-u|0,d,d,0,0),a=(a=(0|tr[t>>0])<0?0|ar[A>>2]:A)+(d<<2)|0;(0|e)!=(0|r);)ln(a,e),a=a+4|0,e=e+4|0;if(ar[k>>2]=0,ln(a,k),(0|tr[t>>0])<0){ar[A+4>>2]=c;break}tr[t>>0]=c;break}}while(0);ur=o}(t,A,f)}A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[f>>2]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);do{if(c){if(0|Uf(A=(0|(A=0|ar[h+12>>2]))==(0|ar[h+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](h):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,w=25;break}if(f)break;w=27;break}w=25}while(0);return 25==(0|w)&&f&&(w=27),27==(0|w)&&(ar[n>>2]=2|ar[n>>2]),f=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|f},Fb],es=[Rb,function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j=0,H=0;switch(Q=ur=(z=ur)+31&-32,ur=ur+144|0,a=128+Q|0,o=112+Q|0,O=124+Q|0,j=120+Q|0,c=116+Q|0,l=108+Q|0,u=104+Q|0,b=100+Q|0,s=96+Q|0,d=92+Q|0,k=88+Q|0,h=84+Q|0,w=80+Q|0,v=76+Q|0,m=72+Q|0,g=68+Q|0,Z=64+Q|0,p=60+Q|0,y=56+Q|0,B=52+Q|0,E=48+Q|0,X=44+Q|0,W=40+Q|0,I=36+Q|0,C=32+Q|0,G=28+Q|0,V=24+Q|0,F=20+Q|0,R=16+Q|0,N=12+Q|0,_=8+Q|0,Y=4+Q|0,ar[(f|=0)>>2]=0,Tf(a,i),D=0|un(a,59232),bn(a),J=n+8|0,M=n+20|0,T=n+16|0,U=n+24|0,S=A+8|0,t<<24>>24|0){case 65:case 97:ar[O>>2]=ar[r>>2],ar[a>>2]=ar[O>>2],yr(A,U,e,a,f,D),H=26;break;case 104:case 66:case 98:ar[j>>2]=ar[r>>2],ar[a>>2]=ar[j>>2],Br(A,T,e,a,f,D),H=26;break;case 99:j=0|jb[127&ar[12+(0|ar[S>>2])>>2]](S),ar[c>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+11>>0])<<24>>24<0)?0|ar[j>>2]:j)+(r?0|ar[j+4>>2]:255&H)|0,ar[o>>2]=ar[c>>2],ar[a>>2]=ar[l>>2],H=0|Er(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 101:case 100:ar[u>>2]=ar[r>>2],ar[a>>2]=ar[u>>2],Xr(A,n+12|0,e,a,f,D),H=26;break;case 68:ar[b>>2]=ar[e>>2],ar[s>>2]=ar[r>>2],ar[o>>2]=ar[b>>2],ar[a>>2]=ar[s>>2],H=0|Er(A,o,a,i,f,n,54387,54395),ar[e>>2]=H,H=26;break;case 70:ar[d>>2]=ar[e>>2],ar[k>>2]=ar[r>>2],ar[o>>2]=ar[d>>2],ar[a>>2]=ar[k>>2],H=0|Er(A,o,a,i,f,n,54395,54403),ar[e>>2]=H,H=26;break;case 72:ar[h>>2]=ar[r>>2],ar[a>>2]=ar[h>>2],Wr(A,J,e,a,f,D),H=26;break;case 73:ar[w>>2]=ar[r>>2],ar[a>>2]=ar[w>>2],Ir(A,J,e,a,f,D),H=26;break;case 106:ar[v>>2]=ar[r>>2],ar[a>>2]=ar[v>>2],Cr(A,n+28|0,e,a,f,D),H=26;break;case 109:ar[m>>2]=ar[r>>2],ar[a>>2]=ar[m>>2],Gr(A,T,e,a,f,D),H=26;break;case 77:ar[g>>2]=ar[r>>2],ar[a>>2]=ar[g>>2],Vr(A,n+4|0,e,a,f,D),H=26;break;case 116:case 110:ar[Z>>2]=ar[r>>2],ar[a>>2]=ar[Z>>2],Fr(A,e,a,f,D),H=26;break;case 112:ar[p>>2]=ar[r>>2],ar[a>>2]=ar[p>>2],Rr(A,J,e,a,f,D),H=26;break;case 114:ar[y>>2]=ar[e>>2],ar[B>>2]=ar[r>>2],ar[o>>2]=ar[y>>2],ar[a>>2]=ar[B>>2],H=0|Er(A,o,a,i,f,n,54403,54414),ar[e>>2]=H,H=26;break;case 82:ar[E>>2]=ar[e>>2],ar[X>>2]=ar[r>>2],ar[o>>2]=ar[E>>2],ar[a>>2]=ar[X>>2],H=0|Er(A,o,a,i,f,n,54414,54419),ar[e>>2]=H,H=26;break;case 83:ar[W>>2]=ar[r>>2],ar[a>>2]=ar[W>>2],Nr(A,n,e,a,f,D),H=26;break;case 84:ar[I>>2]=ar[e>>2],ar[C>>2]=ar[r>>2],ar[o>>2]=ar[I>>2],ar[a>>2]=ar[C>>2],H=0|Er(A,o,a,i,f,n,54419,54427),ar[e>>2]=H,H=26;break;case 119:ar[G>>2]=ar[r>>2],ar[a>>2]=ar[G>>2],_r(A,U,e,a,f,D),H=26;break;case 120:t=0|ar[20+(0|ar[A>>2])>>2],ar[V>>2]=ar[e>>2],ar[F>>2]=ar[r>>2],ar[o>>2]=ar[V>>2],ar[a>>2]=ar[F>>2],o=0|$b[63&t](A,o,a,i,f,n);break;case 88:j=0|jb[127&ar[24+(0|ar[S>>2])>>2]](S),ar[R>>2]=ar[e>>2],ar[N>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+11>>0])<<24>>24<0)?0|ar[j>>2]:j)+(r?0|ar[j+4>>2]:255&H)|0,ar[o>>2]=ar[R>>2],ar[a>>2]=ar[N>>2],H=0|Er(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 121:ar[_>>2]=ar[r>>2],ar[a>>2]=ar[_>>2],Yr(A,M,e,a,f,D),H=26;break;case 89:ar[Y>>2]=ar[r>>2],ar[a>>2]=ar[Y>>2],Qr(A,M,e,a,f,D),H=26;break;case 37:ar[Q>>2]=ar[r>>2],ar[a>>2]=ar[Q>>2],Dr(A,e,a,f,D),H=26;break;default:ar[f>>2]=4|ar[f>>2],H=26}return 26==(0|H)&&(o=0|ar[e>>2]),ur=z,0|o},function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j=0,H=0;switch(Q=ur=(z=ur)+31&-32,ur=ur+144|0,a=128+Q|0,o=112+Q|0,O=124+Q|0,j=120+Q|0,c=116+Q|0,l=108+Q|0,u=104+Q|0,b=100+Q|0,s=96+Q|0,d=92+Q|0,k=88+Q|0,h=84+Q|0,w=80+Q|0,v=76+Q|0,m=72+Q|0,g=68+Q|0,Z=64+Q|0,p=60+Q|0,y=56+Q|0,B=52+Q|0,E=48+Q|0,X=44+Q|0,W=40+Q|0,I=36+Q|0,C=32+Q|0,G=28+Q|0,V=24+Q|0,F=20+Q|0,R=16+Q|0,N=12+Q|0,_=8+Q|0,Y=4+Q|0,ar[(f|=0)>>2]=0,Tf(a,i),D=0|un(a,59264),bn(a),J=n+8|0,M=n+20|0,T=n+16|0,U=n+24|0,S=A+8|0,t<<24>>24|0){case 65:case 97:ar[O>>2]=ar[r>>2],ar[a>>2]=ar[O>>2],Tr(A,U,e,a,f,D),H=26;break;case 104:case 66:case 98:ar[j>>2]=ar[r>>2],ar[a>>2]=ar[j>>2],Ur(A,T,e,a,f,D),H=26;break;case 99:j=0|jb[127&ar[12+(0|ar[S>>2])>>2]](S),ar[c>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+8+3>>0])<<24>>24<0)?0|ar[j>>2]:j)+((r?0|ar[j+4>>2]:255&H)<<2)|0,ar[o>>2]=ar[c>>2],ar[a>>2]=ar[l>>2],H=0|Sr(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 101:case 100:ar[u>>2]=ar[r>>2],ar[a>>2]=ar[u>>2],Or(A,n+12|0,e,a,f,D),H=26;break;case 68:ar[b>>2]=ar[e>>2],ar[s>>2]=ar[r>>2],ar[o>>2]=ar[b>>2],ar[a>>2]=ar[s>>2],H=0|Sr(A,o,a,i,f,n,16244,16276),ar[e>>2]=H,H=26;break;case 70:ar[d>>2]=ar[e>>2],ar[k>>2]=ar[r>>2],ar[o>>2]=ar[d>>2],ar[a>>2]=ar[k>>2],H=0|Sr(A,o,a,i,f,n,16276,16308),ar[e>>2]=H,H=26;break;case 72:ar[h>>2]=ar[r>>2],ar[a>>2]=ar[h>>2],zr(A,J,e,a,f,D),H=26;break;case 73:ar[w>>2]=ar[r>>2],ar[a>>2]=ar[w>>2],jr(A,J,e,a,f,D),H=26;break;case 106:ar[v>>2]=ar[r>>2],ar[a>>2]=ar[v>>2],Hr(A,n+28|0,e,a,f,D),H=26;break;case 109:ar[m>>2]=ar[r>>2],ar[a>>2]=ar[m>>2],xr(A,T,e,a,f,D),H=26;break;case 77:ar[g>>2]=ar[r>>2],ar[a>>2]=ar[g>>2],Pr(A,n+4|0,e,a,f,D),H=26;break;case 116:case 110:ar[Z>>2]=ar[r>>2],ar[a>>2]=ar[Z>>2],Lr(A,e,a,f,D),H=26;break;case 112:ar[p>>2]=ar[r>>2],ar[a>>2]=ar[p>>2],Kr(A,J,e,a,f,D),H=26;break;case 114:ar[y>>2]=ar[e>>2],ar[B>>2]=ar[r>>2],ar[o>>2]=ar[y>>2],ar[a>>2]=ar[B>>2],H=0|Sr(A,o,a,i,f,n,16308,16352),ar[e>>2]=H,H=26;break;case 82:ar[E>>2]=ar[e>>2],ar[X>>2]=ar[r>>2],ar[o>>2]=ar[E>>2],ar[a>>2]=ar[X>>2],H=0|Sr(A,o,a,i,f,n,16352,16372),ar[e>>2]=H,H=26;break;case 83:ar[W>>2]=ar[r>>2],ar[a>>2]=ar[W>>2],qr(A,n,e,a,f,D),H=26;break;case 84:ar[I>>2]=ar[e>>2],ar[C>>2]=ar[r>>2],ar[o>>2]=ar[I>>2],ar[a>>2]=ar[C>>2],H=0|Sr(A,o,a,i,f,n,16372,16404),ar[e>>2]=H,H=26;break;case 119:ar[G>>2]=ar[r>>2],ar[a>>2]=ar[G>>2],$r(A,U,e,a,f,D),H=26;break;case 120:t=0|ar[20+(0|ar[A>>2])>>2],ar[V>>2]=ar[e>>2],ar[F>>2]=ar[r>>2],ar[o>>2]=ar[V>>2],ar[a>>2]=ar[F>>2],o=0|$b[63&t](A,o,a,i,f,n);break;case 88:j=0|jb[127&ar[24+(0|ar[S>>2])>>2]](S),ar[R>>2]=ar[e>>2],ar[N>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+8+3>>0])<<24>>24<0)?0|ar[j>>2]:j)+((r?0|ar[j+4>>2]:255&H)<<2)|0,ar[o>>2]=ar[R>>2],ar[a>>2]=ar[N>>2],H=0|Sr(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 121:ar[_>>2]=ar[r>>2],ar[a>>2]=ar[_>>2],Ai(A,M,e,a,f,D),H=26;break;case 89:ar[Y>>2]=ar[r>>2],ar[a>>2]=ar[Y>>2],ei(A,M,e,a,f,D),H=26;break;case 37:ar[Q>>2]=ar[r>>2],ar[a>>2]=ar[Q>>2],ri(A,e,a,f,D),H=26;break;default:ar[f>>2]=4|ar[f>>2],H=26}return 26==(0|H)&&(o=0|ar[e>>2]),ur=z,0|o},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a=0,c=0,l=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,2&o?(f-i|0)<3?A=1:(ar[n>>2]=i+1,tr[i>>0]=-17,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-69,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-65,a=4):a=4;A:do{if(4==(0|a))for(A=0|ar[r>>2];;){if(e>>>0<=A>>>0){A=0;break A}if(l=0|ar[A>>2],t>>>0>>0|55296==(-2048&l|0)){A=2;break A}do{if(128<=l>>>0){if(c=255&(63&l|128),l>>>0<2048){if(A=0|ar[n>>2],(f-A|0)<2){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=l>>>6|192,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c;break}if(A=0|ar[n>>2],i=f-A|0,o=A+1|0,a=255&(l>>>6&63|128),l>>>0<65536){if((0|i)<3){A=1;break A}ar[n>>2]=o,tr[A>>0]=l>>>12|224,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=a,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c;break}if((0|i)<4){A=1;break A}ar[n>>2]=o,tr[A>>0]=l>>>18|240,o=0|ar[n>>2],ar[n>>2]=o+1,tr[o>>0]=l>>>12&63|128,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=a,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c;break}if(A=0|ar[n>>2],(f-A|0)<1){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=l}while(0);A=4+(0|ar[r>>2])|0,ar[r>>2]=A}}while(0);return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c=0,l=0,u=0,b=0,s=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,a=e,4&o|0&&(c=0|ar[r>>2],2<(a-c|0))&&-17==(0|tr[c>>0])&&-69==(0|tr[c+1>>0])&&-65==(0|tr[c+2>>0])&&(ar[r>>2]=c+3);A:for(;;){if(l=0|ar[r>>2],e>>>0<=l>>>0){A=0;break}if(s=0|ar[n>>2],f>>>0<=s>>>0){A=1;break}u=0|tr[l>>0],b=255&u,A=l+1|0;do{if(-1>24){if(t>>>0>>0){A=2;break A}ar[s>>2]=b}else{if((255&u)<194){A=2;break A}if(c=l+2|0,i=a-l|0,(255&u)<224){if((0|i)<2){A=1;break A}if(128!=(192&(A=0|cr[A>>0])|0)){A=2;break A}if(t>>>0<(A=63&A|b<<6&1984)>>>0){A=2;break A}ar[s>>2]=A,A=c;break}if(o=l+3|0,(255&u)<240){if((0|i)<3){A=1;break A}switch(i=0|tr[c>>0],c=0|cr[A>>0],A=224&c,u<<24>>24){case-32:if(160==(0|A))break;A=2;break A;case-19:if(128==(0|A))break;A=2;break A;default:if(128!=(192&c|0)){A=2;break A}}if(128!=(192&(A=255&i)|0)){A=2;break A}if(t>>>0<(A=c<<6&4032|b<<12&61440|63&A)>>>0){A=2;break A}ar[s>>2]=A,A=o;break}if(245<=(255&u)){A=2;break A}if((0|i)<4){A=1;break A}switch(i=0|tr[A>>0],A=0|tr[c>>0],c=0|tr[o>>0],o=255&i,u<<24>>24){case-16:if(48<=(i+112&255)){A=2;break A}break;case-12:if(128==(240&o|0))break;A=2;break A;default:if(128!=(192&o|0)){A=2;break A}}if(128!=(192&(i=255&A)|0)){A=2;break A}if(128!=(192&(A=255&c)|0)){A=2;break A}if(t>>>0<(A=o<<12&258048|b<<18&1835008|i<<6&4032|63&A)>>>0){A=2;break A}ar[s>>2]=A,A=l+4|0}}while(0);ar[r>>2]=A,ar[n>>2]=4+(0|ar[n>>2])}return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b=0,s=0,d=0,k=0;for(d=ur=(u=ur)+31&-32,ur=ur+16|0,d=(l=d)+8|0,b=r|=0;;){if((0|b)==(0|i)){b=i;break}if(!(0|ar[b>>2]))break;b=b+4|0}ar[o>>2]=n,ar[f>>2]=r,a=t,c=A+8|0;A:for(;;){if((0|n)==(0|t)|(0|r)==(0|i)){b=35;break}switch(s=0|ar[(k=e)+4>>2],ar[(A=l)>>2]=ar[k>>2],ar[A+4>>2]=s,A=0|rf(0|ar[c>>2]),s=0|Fi(n,f,b-r>>2,a-n|0,e),0|A&&rf(A),0|s){case-1:b=10;break A;case 0:r=1,b=32;break A}if(n=(0|ar[o>>2])+s|0,(0|(ar[o>>2]=n))==(0|t)){b=33;break}if((0|b)==(0|i))b=i,r=0|ar[f>>2];else{if(n=0|rf(0|ar[c>>2]),r=0|$c(d,0),0|n&&rf(n),-1==(0|r)){r=2,b=31;break}if(r>>>0>(a-(0|ar[o>>2])|0)>>>0){r=1,b=31;break}for(n=d;r;)s=0|tr[n>>0],k=0|ar[o>>2],ar[o>>2]=k+1,tr[k>>0]=s,n=n+1|0,r=r+-1|0;for(r=4+(0|ar[f>>2])|0,b=ar[f>>2]=r;;){if((0|b)==(0|i)){b=i;break}if(!(0|ar[b>>2]))break;b=b+4|0}n=0|ar[o>>2]}}if(10==(0|b)){for(ar[o>>2]=n;(0|r)!=(0|ar[f>>2])&&(k=0|ar[r>>2],b=0|rf(0|ar[c>>2]),n=0|$c(n,k),0|b&&rf(b),-1!=(0|n));)n=(0|ar[o>>2])+n|0,ar[o>>2]=n,r=r+4|0;ar[f>>2]=r,r=2,b=32}else 31==(0|b)?b=32:33==(0|b)&&(r=0|ar[f>>2],b=35);return 32!=(0|b)&&35==(0|b)&&(r=(0|r)!=(0|i)&1),ur=u,0|r},function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b=0,s=0,d=0;for(l=ur=(u=ur)+31&-32,ur=ur+16|0,b=r|=0;;){if((0|b)==(0|i)){b=i;break}if(!(0|tr[b>>0]))break;b=b+1|0}for(ar[o>>2]=n,ar[f>>2]=r,a=t,c=A+8|0,A=n;;){if((0|A)==(0|t)|(0|r)==(0|i)){A=32;break}if(n=0|ar[(s=e)+4>>2],ar[(d=l)>>2]=ar[s>>2],ar[d+4>>2]=n,d=b,n=0|rf(0|ar[c>>2]),s=0|Vi(A,f,d-r|0,a-A>>2,e),0|n&&rf(n),-1==(0|s)){b=A,A=10;break}if(A=(0|ar[o>>2])+(s<<2)|0,(0|(ar[o>>2]=A))==(0|t)){A=29;break}if(r=0|ar[f>>2],(0|b)==(0|i))b=i;else{if(b=0|rf(0|ar[c>>2]),r=0|Gi(A,r,1,e),0|b&&rf(b),0|r){r=2,A=28;break}for(ar[o>>2]=4+(0|ar[o>>2]),r=1+(0|ar[f>>2])|0,b=ar[f>>2]=r;;){if((0|b)==(0|i)){b=i;break}if(!(0|tr[b>>0]))break;b=b+1|0}A=0|ar[o>>2]}}do{if(10==(0|A)){A:for(;;){if(ar[o>>2]=b,(0|r)==(0|ar[f>>2])){A=18;break}switch(A=0|rf(0|ar[c>>2]),b=0|Gi(b,r,d-r|0,l),0|A&&rf(A),0|b){case-1:A=15;break A;case-2:A=16;break A;case 0:b=1}r=r+b|0,b=4+(0|ar[o>>2])|0,A=10}if(15==(0|A)){ar[f>>2]=r,r=2,A=28;break}if(16==(0|A)){ar[f>>2]=r,r=1,A=28;break}if(18==(0|A)){r=(0|(ar[f>>2]=r))!=(0|i)&1,A=28;break}}else 29==(0|A)&&(r=0|ar[f>>2],A=32)}while(0);return 28!=(0|A)&&32==(0|A)&&(r=(0|r)!=(0|i)&1),ur=u,0|r},function(A,e,r,i,f,n,t,o){return r|=0,n|=0,o|=0,ar[(f|=0)>>2]=r,ar[o>>2]=n,3},function(A,e,r,i,f,n,t,o){return r|=0,n|=0,o|=0,ar[(f|=0)>>2]=r,ar[o>>2]=n,3},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a=0,c=0,l=0,u=0,b=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,2&o?(f-i|0)<3?A=1:(ar[n>>2]=i+1,tr[i>>0]=-17,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-69,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-65,a=4):a=4;A:do{if(4==(0|a))for(b=e,A=0|ar[r>>2];;){if(e>>>0<=A>>>0){A=0;break A}if(i=0|or[A>>1],t>>>0<(u=65535&i)>>>0){A=2;break A}do{if((65535&i)<128){if(A=0|ar[n>>2],(f-A|0)<1){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=i}else{if(l=255&(128|(c=63&u)),(65535&i)<2048){if(A=0|ar[n>>2],(f-A|0)<2){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=u>>>6|192,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=l;break}if(o=255&(u>>>12|224),a=255&(u>>>6&63|128),(65535&i)<55296){if(A=0|ar[n>>2],(f-A|0)<3){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=o,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=a,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=l;break}if(56320<=(65535&i)){if((65535&i)<57344){A=2;break A}if(A=0|ar[n>>2],(f-A|0)<3){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=o,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=a,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=l;break}if((b-A|0)<4){A=1;break A}if(56320!=(64512&(i=0|lr[(A=A+2|0)>>1])|0)){A=2;break A}if((f-(0|ar[n>>2])|0)<4){A=1;break A}if(t>>>0<(65536+((o=960&u)<<10)|c<<10|1023&i)>>>0){A=2;break A}ar[r>>2]=A,c=1+(o>>>6)|0,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c>>>2|240,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=u>>>2&15|c<<4&48|128,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=u<<4&48|i>>>6&15|128,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=63&i|128}}while(0);A=2+(0|ar[r>>2])|0,ar[r>>2]=A}}while(0);return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l=0,u=0,b=0,s=0,d=0,k=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,c=e,4&o|0&&(l=0|ar[r>>2],2<(c-l|0))&&-17==(0|tr[l>>0])&&-69==(0|tr[l+1>>0])&&-65==(0|tr[l+2>>0])&&(ar[r>>2]=l+3);a=f;A:for(;;){if(i=0|ar[r>>2],!(A=i>>>0>>0)){k=40;break}if(d=0|ar[n>>2],f>>>0<=d>>>0){k=40;break}if(b=0|tr[i>>0],t>>>0<(s=255&b)>>>0){A=2;break}A=i+1|0;do{if(-1>24)or[d>>1]=255&b;else{if((255&b)<194){A=2;break A}if(l=c-i|0,o=i+2|0,(255&b)<224){if((0|l)<2){A=1;break A}if(128!=(192&(A=0|cr[A>>0])|0)){A=2;break A}if(t>>>0<(A=63&A|s<<6&1984)>>>0){A=2;break A}or[d>>1]=A,A=o;break}if(u=i+3|0,(255&b)<240){if((0|l)<3){A=1;break A}switch(i=0|tr[o>>0],l=0|cr[A>>0],A=224&l,b<<24>>24){case-32:if(160==(0|A))break;A=2;break A;case-19:if(128==(0|A))break;A=2;break A;default:if(128!=(192&l|0)){A=2;break A}}if(128!=(192&(A=255&i)|0)){A=2;break A}if(t>>>0<(65535&(A=l<<6&4032|s<<12|63&A))>>>0){A=2;break A}or[d>>1]=A,A=u;break}if(245<=(255&b)){A=2;break A}if((0|l)<4){A=1;break A}switch(l=0|tr[A>>0],A=0|tr[o>>0],i=0|tr[u>>0],u=255&l,b<<24>>24){case-16:if(48<=(l+112&255)){A=2;break A}break;case-12:if(128==(240&u|0))break;A=2;break A;default:if(128!=(192&u|0)){A=2;break A}}if(128!=(192&(o=255&A)|0)){A=2;break A}if(128!=(192&(A=255&i)|0)){A=2;break A}if((a-d|0)<4){A=1;break A}if(t>>>0<(u<<12&258048|(i=7&s)<<18|4032&(l=o<<6)|(A&=63))>>>0){A=2;break A}or[d>>1]=u<<2&60|o>>>4&3|16320+((u>>>4&3|i<<2)<<6)|55296,d=d+2|0,ar[n>>2]=d,or[d>>1]=A|960&l|56320,A=4+(0|ar[r>>2])|0}}while(0);ar[r>>2]=A,ar[n>>2]=2+(0|ar[n>>2])}40==(0|k)&&(A&=1);return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},Rb,Rb,Rb,Rb,Rb],rs=[Nb,function(){!function(){var A=0;if(A=0|ar[14154],ar[14154]=A+1,1<(A+1|0))return A=0;if(Ya(),0|Ka())return A=0;ar[14154]=(0|ar[14154])-1,A=11}()},function(){!function(){var A=0;if(A=0|ar[14154],ar[14154]=A-1,(0|(A=A+-1|0))<0)return ar[14154]=1+(0|ar[14154]),A=12;if(0|A)return A=0;qa(),A=0}()},function(){W()},function(){var A,e,r,i=0,f=0,n=0,t=0,o=0;t=ur=ur+31&-32,ur=ur+48|0,r=t+32|0,A=t+24|0,o=t+16|0,t=(e=t)+36|0,0|(i=0|zu())&&0|(n=0|ar[i>>2])&&(1126902528==(-256&(f=0|ar[(i=n+48|0)>>2])|0)&1129074247==(0|(i=0|ar[i+4>>2]))||(ar[A>>2]=56019,ju(55969,A)),i=1126902529==(0|f)&1129074247==(0|i)?0|ar[n+44>>2]:n+80|0,ar[t>>2]=i,n=0|ar[n>>2],i=0|ar[n+4>>2],0|xb[63&ar[16+(0|ar[984])>>2]](3936,n,t)?(o=0|ar[t>>2],o=0|jb[127&ar[8+(0|ar[o>>2])>>2]](o),ar[e>>2]=56019,ar[e+4>>2]=i,ar[e+8>>2]=o,ju(55883,e)):(ar[o>>2]=56019,ar[o+4>>2]=i,ju(55928,o))),ju(56007,r)},function(){var A,e;e=ur=(A=ur)+31&-32,ur=ur+16|0,0|mA(61152,446)?ju(56207,e):ur=A},Nb,Nb],is=[_b,XA,function(A){var e;ar[(A|=0)>>2]=4232,(e=0|ar[A+24>>2])&&mu(e),vu(A)},function(A){var e;ar[(A|=0)>>2]=4264,(e=0|ar[A+24>>2])&&((0|ar[(A=A+28|0)>>2])!=(0|e)&&(ar[A>>2]=e),vu(e))},function(A){var e,r;ar[(A|=0)>>2]=4264,(e=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),vu(A)},function(A){var e,r,i;ar[(A|=0)>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e)},function(A){var e,r,i;ar[(A|=0)>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e),vu(A)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e),vu(A)},function(A){var e;ar[(A|=0)>>2]=4340,(0|tr[11+(e=A+32|0)>>0])<0&&vu(0|ar[e>>2]),kf(A)},function(A){var e;ar[(A|=0)>>2]=4340,(0|tr[11+(e=A+32|0)>>0])<0&&vu(0|ar[e>>2]),kf(A),vu(A)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){tr[(A|=0)+37>>0]=0},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4436,0|(r=0|ar[A+64>>2])&&((0|(f=0|ar[(i=A+68|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4436,0|(r=0|ar[A+64>>2])&&((0|(f=0|ar[(i=A+68|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i;ar[(A|=0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e)},function(A){var e,r,i;ar[(A|=0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e),vu(A)},function(A){var e,r,i;ar[(A=(A|=0)+-8|0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e)},function(A){var e,r,i;ar[(A=(A|=0)+-8|0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e),vu(A)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e),vu(A)},yf,Bf,function(A){yf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Bf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},Rf,Nf,function(A){Rf((A|=0)+-8|0)},function(A){Nf((A|=0)+-8|0)},function(A){Rf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Nf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},If,Cf,function(A){If((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Cf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4600,ar[(r=A+16|0)>>2]=4436,0|(i=0|ar[A+80>>2])&&((0|(n=0|ar[(f=A+84|0)>>2]))!=(0|i)&&(ar[f>>2]=n+(~((n+-4-i|0)>>>2)<<2)),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4600,ar[(r=A+16|0)>>2]=4436,0|(i=0|ar[A+80>>2])&&((0|(n=0|ar[(f=A+84|0)>>2]))!=(0|i)&&(ar[f>>2]=n+(~((n+-4-i|0)>>>2)<<2)),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4628,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4628,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4656,ar[(r=A+16|0)>>2]=4684,(0|tr[(i=A+92|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4656,ar[(r=A+16|0)>>2]=4684,(0|tr[(i=A+92|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4684,(0|tr[(r=A+76|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4684,(0|tr[(r=A+76|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4716,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4716,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){tr[(A|=0)+37>>0]=65535<(0|ar[A+56>>2])>>>0&1},function(A){ar[(A|=0)>>2]=4776,Yt(A+16|0),tu()},function(A){ar[(A|=0)>>2]=4776,Yt(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},Yt,function(A){Yt(A|=0),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0,o=0;if(i=0|cr[(A|=0)+72>>0],i=!(65535<(n=0|ar[A+60>>2])-(f=0|ar[A+56>>2])>>5>>>0)||2>>0?i:2,r=A+74|0,t=A+75|0,o=A+76|0,tr[(e=A+73|0)>>0]=0,tr[1+e>>0]=0,tr[2+e>>0]=0,((tr[3+e>>0]=0)|f)==(0|n))return n=i,tr[e>>0]=4,tr[r>>0]=4,tr[t>>0]=4,tr[o>>0]=0,t=255&n,void(tr[(o=A+37|0)>>0]=t);for(;i=!(65535<(0|ar[f>>2])>>>0)||2<(0|i)?i:2,i=0==(0|tr[f+4>>0])|1<(0|i)?i:1,(0|(f=f+32|0))!=(0|n););tr[e>>0]=4,tr[r>>0]=4,tr[t>>0]=4,tr[o>>0]=0,t=255&i,tr[(o=A+37|0)>>0]=t},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4836,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4836,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){tr[(A|=0)+37>>0]=65535<(0|ar[A+48>>2])-(0|ar[A+44>>2])>>3>>>0&1},function(A){ar[(A|=0)>>2]=4896,_t(A+16|0),tu()},function(A){ar[(A|=0)>>2]=4896,_t(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},_t,function(A){_t(A|=0),vu(A)},function(A){var e,r=0,i=0,f=0;if(r=(e=65535<(0|ar[(A|=0)+56>>2])>>>0)?3:0==(0|tr[A+124>>0])?0:2,0==(0|((f=0|tr[(i=A+64|0)+11>>0])<<24>>24<0?0|ar[A+68>>2]:255&f))&&(f=0==(0|Yu(i,0,-1,79659,0))))return i=r,i&=255,void(tr[(f=A+37|0)>>0]=i);i=r=e?3:2,i&=255,tr[(f=A+37|0)>>0]=i},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4956,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4956,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5016,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5016,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){ar[(A|=0)>>2]=5076,Ft(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5076,Ft(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},Ft,function(A){Ft(A|=0),vu(A)},function(A){var e=0,r=0,i=0,f=0,n=0,t=0;if((0|(r=0|ar[(A|=0)+56>>2]))==(0|(t=0|ar[A+60>>2])))return tr[(t=A+37|(n=f=0))>>0]=f,n&=1,void(ar[(t=A+40|0)>>2]=n);n=e=0;do{if(n=65535<(0|ar[r>>2])>>>0?1:n,(0|(i=0|ar[r+4>>2]))!=(0|(f=0|ar[r+8>>2])))for(;e|=127<(0|lr[i+2>>1]),(0|(i=i+4|0))!=(0|f););r=r+16|0}while((0|r)!=(0|t));f=255&n,n=e,tr[(t=A+37|0)>>0]=f,n&=1,ar[(t=A+40|0)>>2]=n},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5136,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5136,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},Vt,function(A){Vt(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5224,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5224,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5256,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5256,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5316,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5316,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5376,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5376,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){ar[(A|=0)>>2]=5436,be(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5436,be(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},be,function(A){be(A|=0),vu(A)},function(A){var e=0,r=0,i=0,f=0,n=0,t=0;if((0|(r=0|ar[(A|=0)+56>>2]))!=(0|(n=0|ar[A+60>>2]))){for(e=0;;){if(65535<(0|ar[r+48>>2])>>>0){e=1,r=6;break}if((0|(i=0|ar[r+52>>2]))!=(0|(f=0|ar[r+56>>2])))for(;e=(t=65535<(0|ar[i>>2])>>>0)?1:e,!(t|(0|(i=i+4|0))==(0|f)););if((0|(r=r+64|0))==(0|n)){r=6;break}}6!=(0|r)||(tr[(t=A+37|0)>>0]=e)}else tr[(A=A+37|(n=0))>>0]=n},function(A){ar[(A|=0)>>2]=5496,ce(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5496,ce(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},ce,function(A){ce(A|=0),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5556,ar[(r=A+16|0)>>2]=5584,0|(i=0|ar[A+84>>2])&&((0|ar[(f=A+88|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5556,ar[(r=A+16|0)>>2]=5584,0|(i=0|ar[A+84>>2])&&((0|ar[(f=A+88|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5584,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5584,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5616,ar[(r=A+16|0)>>2]=5644,0|(i=0|ar[A+88>>2])&&((0|ar[(f=A+92|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5616,ar[(r=A+16|0)>>2]=5644,0|(i=0|ar[A+88>>2])&&((0|ar[(f=A+92|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5644,0|(r=0|ar[A+72>>2])&&((0|ar[(i=A+76|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5644,0|(r=0|ar[A+72>>2])&&((0|ar[(i=A+76|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){ar[(A|=0)>>2]=5676,te(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5676,te(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},te,function(A){te(A|=0),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5736,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5736,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5796,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5796,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5856,ar[(r=A+16|0)>>2]=5884,(0|tr[(i=A+72|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5856,ar[(r=A+16|0)>>2]=5884,(0|tr[(i=A+72|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5884,(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5884,(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5916,ar[(r=A+16|0)>>2]=5944,0|(i=0|ar[A+76>>2])&&du(i),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5916,ar[(r=A+16|0)>>2]=5944,0|(i=0|ar[A+76>>2])&&du(i),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5944,0|(r=0|ar[A+60>>2])&&du(r),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5944,0|(r=0|ar[A+60>>2])&&du(r),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5976,ar[(r=A+16|0)>>2]=6004,0|(i=0|ar[A+72>>2])&&((0|ar[(f=A+76|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5976,ar[(r=A+16|0)>>2]=6004,0|(i=0|ar[A+72>>2])&&((0|ar[(f=A+76|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=6004,0|(r=0|ar[A+56>>2])&&((0|ar[(i=A+60|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=6004,0|(r=0|ar[A+56>>2])&&((0|ar[(i=A+60|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=6036,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=6036,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){var e,r;ar[(A|=0)>>2]=6120,ar[A+12>>2]=6148,(e=0|ar[A+20>>2])&&((0|ar[(r=A+24|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),tu()},function(A){var e,r;if(ar[(A|=0)>>2]=6120,ar[A+12>>2]=6148,!(e=0|ar[A+20>>2]))return tu(),void vu(A);(0|ar[(r=A+24|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e;ar[(A|=0)>>2]=6148,(e=0|ar[A+8>>2])&&((0|ar[(A=A+12|0)>>2])!=(0|e)&&(ar[A>>2]=e),vu(e))},function(A){var e,r;ar[(A|=0)>>2]=6148,(e=0|ar[A+8>>2])&&((0|ar[(r=A+12|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),vu(A)},function(A){ar[(A|=0)>>2]=6180,XA(A+16|0),tu()},function(A){ar[(A|=0)>>2]=6180,XA(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6208,po(A+12|0),tu()},function(A){ar[(A|=0)>>2]=6208,po(A+12|0),tu(),vu(A)},function(A){po((A|=0)+12|0)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6336,gl(A+12|0),tu()},function(A){ar[(A|=0)>>2]=6336,gl(A+12|0),tu(),vu(A)},function(A){gl((A|=0)+12|0)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6364,lo(A+12|0),tu()},function(A){ar[(A|=0)>>2]=6364,lo(A+12|0),tu(),vu(A)},function(A){lo((A|=0)+12|0)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6392,El(A+16|0),tu()},function(A){ar[(A|=0)>>2]=6392,El(A+16|0),tu(),vu(A)},function(A){El((A|=0)+16|0)},function(A){vu(A|=0)},function(A){var e=0,r=0;ar[(A|=0)>>2]=6420,0|(e=0|ar[A+40>>2])&&((0|ar[(r=A+44|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),(0|tr[(e=A+28|0)+11>>0])<0&&vu(0|ar[e>>2]),0<=(0|tr[(e=A+16|0)+11>>0])||vu(0|ar[e>>2]),tu()},function(A){var e=0,r=0;if(ar[(A|=0)>>2]=6420,0|(e=0|ar[A+40>>2])&&((0|ar[(r=A+44|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),(0|tr[(e=A+28|0)+11>>0])<0&&vu(0|ar[e>>2]),0<=(0|tr[(e=A+16|0)+11>>0]))return tu(),void vu(A);vu(0|ar[e>>2]),tu(),vu(A)},function(A){var e=0,r=0;0|(e=0|ar[(A|=0)+40>>2])&&((0|ar[(r=A+44|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),(0|tr[(e=A+28|0)+11>>0])<0&&vu(0|ar[e>>2]),0<=(0|tr[(e=A+16|0)+11>>0])||vu(0|ar[e>>2])},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){(function(A){(function(A){if((0|ar[375892+(A|=0)>>2])<=0)return;!function(A){var e,r,i,f=0;{if(gb(e=420+(A|=0)|0),tr[A>>0]=1,Zb(),mb(r=A+448|0),!(0<(0|ar[(i=A+156|0)>>2])))return ZA(0|e),sA(0|r);f=0}for(;vA(0|ar[A+28+(f<<2)>>2],0),f=f+1|0,(0|f)<(0|ar[i>>2]););ZA(0|e),sA(0|r)}(A+375396|0)})(A|=0),0|A&&is[511&ar[4+(0|ar[A>>2])>>2]](A);if(A=0|ar[14154],ar[14154]=A-1,(0|(A=A+-1|0))<0)return ar[14154]=1+(0|ar[14154]),A=12;if(0|A)return A=0;qa(),A=0})(0|ar[(A|=0)>>2]),A&&vu(A)},Me,function(A){Me(A|=0),vu(A)},function(A){0},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;ar[(t=(A|=0)+4|0)>>2]=1,la(0|ar[(n=A+12|0)>>2],A),o=0|ar[n>>2],u=(w=0|ar[o+5820>>2])+-1|0,i=1<<(b=0|ar[o+5804>>2]),l=A+24|0,ba(o,A,u,0|ar[(f=A+8|0)>>2],0|ar[l>>2]),0<(0|(o=0|ar[f>>2]))&&(ba(0|ar[n>>2],A,u,o+-1|0,0|ar[l>>2]),o=0|ar[f>>2]),a=o+1|0,c=0|ar[n>>2],(0|a)<(0|ar[c+5828>>2])&&(ba(c,A,u,a,0|ar[l>>2]),o=0|ar[f>>2]),r=A+16|0,function(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(c=(0|(c=0|ar[(e|=0)+28>>2]))<(0|i)?c:i,1&r|0&&sr(36765,36663,535,36780),1&c|0&&sr(36796,36663,536,36780),n=(7+(0|ar[A+5760>>2])|0)/8|0,s=(7+(0|ar[A+5768>>2])|0)/8|0,(0|(i=0|ar[(t=e+40|0)>>2]))!=(0|(f=0|ar[(o=A+40|0)>>2]))){if((0|r)<(0|c)&&(l=A+4|0,u=e+4|0,b=e+24|0,a=0|br(n,r),hb(0|(f=(0|ar[l>>2])+(0|br(a,f))|0),0|(a=(0|ar[u>>2])+(0|br(a,i))|0),0|br(0|ar[b>>2],n)),(0|(a=r+1|0))<(0|c)))for(i=a;a=0|br(i,n),hb(0|(f=(0|ar[l>>2])+(0|br(a,0|ar[o>>2]))|0),0|(a=(0|ar[u>>2])+(0|br(a,0|ar[t>>2]))|0),0|br(0|ar[b>>2],n)),(0|(i=i+1|0))<(0|c););}else hb(0|(b=(0|ar[A+4>>2])+(0|br(0|br(n,r),i))|0),(0|ar[e+4>>2])+(0|br(0|br(i,r),n))|0,0|br(0|br(n,c-r|0),i));if(i=(0|r)/(0|(a=0|ar[e+5784>>2]))|0,a=(0|c)/(0|a)|0,0|ar[e+20>>2]){if((0|(f=0|ar[(c=e+44|0)>>2]))==(0|(n=0|ar[(r=A+44|0)>>2])))return u=0|br(i,s),l=0|br(u,f),b=0|br(a-i|0,s),hb((0|ar[A+8>>2])+l|0,(0|ar[e+8>>2])+l|0,0|br(b,f)),s=0|ar[r>>2],u=0|br(u,s),hb((0|ar[A+12>>2])+u|0,(0|ar[e+12>>2])+u|0,0|br(b,s));if(!((0|a)<=(0|i)))for(l=A+8|0,u=e+8|0,b=e+32|0,o=A+12|0,t=e+12|0;e=0|br(i,s),hb(0|(n=(0|ar[l>>2])+(0|br(e,n))|0),0|(A=(0|ar[u>>2])+(0|br(e,f))|0),0|br(0|ar[b>>2],s)),hb(0|(A=(0|ar[o>>2])+(0|br(e,0|ar[r>>2]))|0),0|(e=(0|ar[t>>2])+(0|br(e,0|ar[c>>2]))|0),0|br(0|ar[b>>2],s)),(0|(i=i+1|0))!=(0|a);)n=0|ar[r>>2],f=0|ar[c>>2]}}(0|ar[(e=A+20|0)>>2],0|ar[r>>2],o<>2];A:do{if(0<(0|ar[o+5820>>2])){h=0;do{if(b=0|ar[f>>2],a=(0|br(0|ar[o+10352>>2],b))+h|0,a=0|lr[(0|ar[o+10340>>2])+(24*a|0)+2>>1],c=0|ar[o+48>>2],a>>>0>=(0|ar[o+52>>2])-c>>2>>>0)break A;if(!(k=0|ar[c+(a<<2)>>2]))break A;do{if(0|tr[k+325>>0]){if(a=0|ar[r>>2],l=0|ar[a+4>>2],a=0|ar[a+40>>2],c=0|ar[e>>2],u=0|ar[c+4>>2],c=0|ar[c+40>>2],8<(0|ar[o+5760>>2])){Ra(o,h,b,k,0,i,i,l,a,u,c);break}Na(o,h,b,k,0,i,i,l,a,u,c);break}}while(0);do{if(0|tr[k+326>>0]){if(c=0|ar[n>>2],s=(0|i)/(0|ar[c+5780>>2])|0,d=(0|i)/(0|ar[c+5784>>2])|0,l=0|ar[f>>2],a=0|ar[r>>2],u=0|ar[a+8>>2],a=0|ar[a+44>>2],o=0|ar[e>>2],b=0|ar[o+8>>2],o=0|ar[o+44>>2],(8<(0|ar[c+5768>>2])?Ra:Na)(c,h,l,k,1,s,d,u,a,b,o),u=0|ar[n>>2],b=0|ar[f>>2],a=0|ar[r>>2],c=0|ar[a+12>>2],a=0|ar[a+44>>2],o=0|ar[e>>2],l=0|ar[o+12>>2],o=0|ar[o+44>>2],8<(0|ar[u+5768>>2])){Ra(u,h,b,k,2,s,d,c,a,l,o);break}Na(u,h,b,k,2,s,d,c,a,l,o);break}}while(0);h=h+1|0,o=0|ar[n>>2]}while((0|h)<(0|ar[o+5820>>2]))}}while(0);if(!(0<(0|w)))return w=o,ar[t>>2]=3,void ua(w,A);for(a=0;Tn((0|ar[o+10524>>2])+(80*((0|br(0|ar[f>>2],0|ar[o+5820>>2]))+a|0)|0)|0,4),a=a+1|0,o=0|ar[n>>2],(0|a)!=(0|w););ar[t>>2]=3,ua(o,A)},function(A){vu(A|=0)},function(A){var e,r,i,f=0,n=0,t=0,o=0;e=0|ar[(A|=0)+20>>2],r=0|ar[(n=18596+e|0)>>2],ar[(i=A+4|0)>>2]=1,la(r,A),n=0|ar[n>>2],t=0|ar[4+e>>2],f=0|ar[n+5836>>2],o=0|ar[n+5820>>2],(0|t)<(0|f)&&(f=0|ar[(0|ar[n+10284>>2])+(t<<2)>>2]),ar[e>>2]=f,ar[8+e>>2]=(0|f)%(0|o)|0,ar[12+e>>2]=(0|f)/(0|o)|0,f=A+8|0;do{if(0|tr[f>>0]){if(!(0|Da(e)))return ar[i>>2]=3,Un(44+(0|ar[18608+e>>2])|0,1),void ua(r,A)}else{if(n=0|ar[18600+e>>2],(t=0|ar[n+796>>2])>>>0<3){ht(18580+e|0,t,0|ar[n+792>>2]),tr[(o=18588+e|0)>>0]=0,tr[o+1>>0]=0,tr[o+2>>0]=0,tr[o+3>>0]=0;break}sr(39211,39242,1508,39251)}}while(0);tt(18556+e|0),Ja(e,0,0!=(0|tr[f>>0])),ar[i>>2]=3,Un(44+(0|ar[18608+e>>2])|0,1),ua(r,A)},function(A){vu(A|=0)},function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(f=0|ar[(A|=0)+16>>2],n=0|ar[(l=18596+f|0)>>2],r=0|ar[(i=5820+n|0)>>2],ar[(t=A+4|0)>>2]=1,la(n,A),l=0|ar[l>>2],c=0|ar[4+f>>2],a=0|ar[l+5836>>2],u=0|ar[l+5820>>2],(0|c)<(0|a)&&(a=0|ar[(0|ar[l+10284>>2])+(c<<2)>>2]),ar[f>>2]=a,ar[(c=8+f|0)>>2]=(0|a)%(0|u)|0,ar[(l=12+f|0)>>2]=(0|a)/(0|u)|0,e=(0|a)/(0|r)|0,0|tr[(a=A+8|0)>>0]&&!(0|Da(f))){if(0<(0|r))for(c=10524+n|0,a=0|br(e,r),o=0;Tn((0|ar[c>>2])+(80*(o+a|0)|0)|0,1),(0|(o=o+1|0))!=(0|r););return ar[t>>2]=3,Un(44+(0|ar[18608+f>>2])|0,1),void ua(n,A)}tt(18556+f|0),Ja(f,1,a=0|tr[a>>0]?0==(0|tr[12+(0|ar[18600+f>>2])>>0]):0);A:do{if((0|ar[l>>2])==(0|e)&&(b=0|ar[i>>2],o=0|ar[c>>2],(0|o)<(0|b)))for(u=5828+n|0,c=0|br(e,r),l=10524+n|0,a=b;;){if((0|o)<(0|a)&&(0|e)<(0|ar[u>>2])&&Tn((0|ar[l>>2])+(80*(o+c|0)|0)|0,1),(0|(o=o+1|0))==(0|b))break A;a=0|ar[i>>2]}}while(0);ar[t>>2]=3,Un(44+(0|ar[18608+f>>2])|0,1),ua(n,A)},function(A){vu(A|=0)},function(A){var e,r,i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0;ar[(a=(A|=0)+4|0)>>2]=1,la(0|ar[(t=A+8|0)>>2],A),e=0|ar[t>>2],i=0|ar[10472+e>>2],d=(0|ar[5812+e>>2])/4|0,c=0|ar[(n=A+12|0)>>2],r=0|br(c,d),d=0|br(l=c+1|0,d),d=(0|(s=0|ar[10476+e>>2]))<(0|d)?s:d,f=(k=0!=(0|tr[(s=A+16|0)>>0]))?2:3,u=(o=0|ar[5820+e>>2])-1|0,k?ba(e,A,u,(0|(k=(0|ar[5828+e>>2])-1|0))<(0|l)?k:l,1):(0<(0|c)?(ba(e,A,u,c+-1|0,2),l=0|ar[t>>2],c=0|ar[n>>2]):l=e,ba(l,A,u,c,2),c=1+(0|ar[n>>2])|0,l=0|ar[t>>2],(0|c)<(0|ar[l+5828>>2])&&ba(l,A,u,c,2)),c=0|ar[t>>2],l=0|ar[n>>2],0|tr[s>>0]?(k=0|Zt(c,l),c=0|ar[t>>2],u=0|br(0|ar[c+10352>>2],0|ar[n>>2]),tr[(0|ar[c+10340>>2])+(24*u|0)+21>>0]=1&k,k&&(l=0!=(0|tr[s>>0]),b=11)):(k=0|br(0|ar[c+10352>>2],l),0|tr[(0|ar[c+10340>>2])+(24*k|0)+21>>0]&&(l=0,b=11));do{if(11==(0|b)&&(pt(c,l,r,d,0,i),c=0|ar[t>>2],l=0!=(0|tr[s>>0]),(8<(0|ar[c+5760>>2])?yt:Bt)(c,l,r,d,0,i),l=0|ar[t>>2],0|ar[l+5776>>2])){if(c=0!=(0|tr[s>>0]),8<(0|ar[l+5768>>2])){Et(l,c,r,d,0,i);break}Xt(l,c,r,d,0,i);break}}while(0);if(c=0|ar[t>>2],!(0<(0|o)))return k=c,ar[a>>2]=3,void ua(k,A);for(l=0;Tn((0|ar[c+10524>>2])+(80*((0|br(0|ar[n>>2],0|ar[c+5820>>2]))+l|0)|0)|0,f),l=l+1|0,c=0|ar[t>>2],(0|l)!=(0|o););ar[a>>2]=3,ua(c,A)},sf,function(A){sf(A|=0),vu(A)},kf,function(A){kf(A|=0),vu(A)},mf,function(A){mf(A|=0),vu(A)},Xf,Wf,function(A){Xf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Wf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},Vf,Ff,function(A){Vf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Ff((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},An,function(A){An(A|=0),vu(A)},en,function(A){en(A|=0),vu(A)},rn,function(A){rn(A|=0),vu(A)},nn,function(A){nn(A|=0),vu(A)},on,function(A){on(A|=0),vu(A)},function(A){0|(A|=0)&&is[511&ar[4+(0|ar[A>>2])>>2]](A)},cn,function(A){cn(),vu(A|=0)},function(A){an()},function(A){an(),vu(A|=0)},function(A){an()},function(A){an(),vu(A|=0)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){ni((A|=0)+8|0),an()},function(A){ni((A|=0)+8|0),an(),vu(A)},function(A){ni((A|=0)+8|0),an()},function(A){ni((A|=0)+8|0),an(),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an()},function(A){an(),vu(A|=0)},function(A){an()},function(A){an(),vu(A|=0)},an,function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},Ql,function(A){Ql(A|=0),vu(A)},Dl,function(A){Dl(A|=0),vu(A)},Jl,function(A){Jl(A|=0),vu(A)},Sl,function(A){Sl(A|=0),vu(A)},Ol,function(A){Ol(A|=0),vu(A)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},ou,function(A){ou(),vu(A|=0)},Hu,function(A){Hu(),vu(A|=0)},function(A){0},function(A){0},function(A){Hu(),vu(A|=0)},$u,function(A){$u(A|=0),vu(A)},function(A){$u(A|=0),vu(A)},function(A){Hu(),vu(A|=0)},function(A){Hu(),vu(A|=0)},function(A){Hu(),vu(A|=0)},function(A){Hu(),vu(A|=0)},function(A){ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,tr[A+11>>0]=6,tr[A>>0]=0|tr[30018],tr[A+1>>0]=0|tr[30019],tr[A+2>>0]=0|tr[30020],tr[A+3>>0]=0|tr[30021],tr[A+4>>0]=0|tr[30022],tr[A+5>>0]=0|tr[30023],tr[A+6>>0]=0},function(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e=0;(A|=0)&&(0|(e=0|ar[A+12>>2])&&du(e),0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e=0;(A|=0)&&(0|(e=0|ar[A+12>>2])&&du(e),0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){(A|=0)&&vu(A)},function(A){var e;A|=0,e=0|ar[14811],ar[14811]=1+e,ar[A+4>>2]=1+e},function(A){!function(A){var e,r,i;e=0|ar[4+(A|=0)>>2],i=0|ar[A+8>>2],r=(0|ar[A>>2])+(i>>1)|0,A=1&i?0|ar[(0|ar[r>>2])+e>>2]:e;is[511&A](r)}(0|ar[ar[(A|=0)>>2]>>2])},function(A){0},Bc,function(A){var e,r;r=ur=(e=ur)+31&-32,ur=ur+16|0,Bc(A|=0),0|BA(0|ar[15288],0)?ju(56257,r):ur=e},_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b],fs=[Yb,function(A,e){},function(A,e){var r,i;A|=0,e|=0,r=0|hu(4),ar[r>>2]=0,ar[A>>2]=ar[1904],ar[A+4>>2]=ar[1905],ar[A+8>>2]=ar[1906],A=0|(i=(i=0)|ar[14154],ar[14154]=i+1,!((i+1|0)<=1)||(Ya(),0|Ka())?(function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0;for(ar[84+(A|=0)>>2]=0,ar[A+168>>2]=0,ar[A>>2]=7720,function(A){ar[(A|=0)>>2]=1,ar[A+4>>2]=9,ar[A+8>>2]=1,ar[A+12>>2]=1,ar[A+16>>2]=1,ar[A+20>>2]=2,ar[A+24>>2]=1,ar[A+28>>2]=1,ar[A+32>>2]=2,ar[A+36>>2]=2,ar[A+40>>2]=2,ar[A+44>>2]=2,ar[A+48>>2]=3,ar[A+52>>2]=4,ar[A+56>>2]=5,ar[A+60>>2]=6,ar[A+64>>2]=7,ar[A+68>>2]=8,ar[A+72>>2]=9,ar[A+76>>2]=10,ar[A+80>>2]=11,ar[A+84>>2]=12,ar[A+88>>2]=13,ar[A+92>>2]=14,ar[A+96>>2]=15,ar[A+100>>2]=16,ar[A+104>>2]=17,ar[A+108>>2]=18,ar[A+112>>2]=3,ar[A+116>>2]=4,ar[A+120>>2]=4,ar[A+124>>2]=4,ar[A+128>>2]=2,ar[A+132>>2]=3,ar[A+136>>2]=4,ar[A+140>>2]=5,ar[A+144>>2]=6,ar[A+148>>2]=7,ar[A+152>>2]=8,ar[A+156>>2]=9,ar[A+160>>2]=10,ar[A+164>>2]=11,ar[A+168>>2]=12,ar[A+172>>2]=13,ar[A+176>>2]=14,ar[A+180>>2]=15,ar[A+184>>2]=16,ar[A+188>>2]=17,ar[A+204>>2]=81,ar[A+212>>2]=11,ar[A+208>>2]=12,ar[A+192>>2]=82,ar[A+200>>2]=83,ar[A+196>>2]=84,ar[A+216>>2]=85,ar[A+220>>2]=86,ar[A+224>>2]=87,ar[A+228>>2]=88,ar[A+232>>2]=89,ar[A+236>>2]=13,ar[A+240>>2]=14,ar[A+244>>2]=15,ar[A+248>>2]=16,ar[A+252>>2]=17,ar[A+256>>2]=18,ar[A+260>>2]=47,ar[A+284>>2]=44,ar[A+288>>2]=45,ar[A+296>>2]=46,ar[A+292>>2]=47,ar[A+300>>2]=48,ar[A+264>>2]=19,ar[A+268>>2]=20,ar[A+272>>2]=21,ar[A+276>>2]=22,ar[A+280>>2]=23,ar[A+304>>2]=90,ar[A+308>>2]=91,ar[A+312>>2]=92,ar[A+316>>2]=93,ar[A+320>>2]=94,ar[A+324>>2]=95,ar[A+328>>2]=96,ar[A+332>>2]=97,ar[A+336>>2]=98}(A+172|0),ar[A>>2]=7696,function(A){var e;for(tr[(A|=0)>>0]=0,tr[A+1>>0]=0,e=48+(A=A+4|0)|0;((ar[A>>2]=0)|(A=A+4|0))<(0|e););}(A+548|0),ar[A+1192>>2]=0,ar[A+1196>>2]=0,ar[A+1200>>2]=0,ar[(e=A+1228|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+1848>>2]=0,ar[A+1852>>2]=0,ar[A+1856>>2]=0,ar[(e=A+1884|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+2504>>2]=0,ar[A+2508>>2]=0,ar[A+2512>>2]=0,ar[(e=A+2540|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+3160>>2]=0,ar[A+3164>>2]=0,ar[A+3168>>2]=0,ar[(e=A+3196|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+3816>>2]=0,ar[A+3820>>2]=0,ar[A+3824>>2]=0,ar[(e=A+3852|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+4472>>2]=0,ar[A+4476>>2]=0,ar[A+4480>>2]=0,ar[(e=A+4508|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+5128>>2]=0,ar[A+5132>>2]=0,ar[A+5136>>2]=0,ar[(e=A+5164|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+5784>>2]=0,ar[A+5788>>2]=0,ar[A+5792>>2]=0,ar[(e=A+5820|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+6440>>2]=0,ar[A+6444>>2]=0,ar[A+6448>>2]=0,ar[(e=A+6476|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+7096>>2]=0,ar[A+7100>>2]=0,ar[A+7104>>2]=0,ar[(e=A+7132|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+7752>>2]=0,ar[A+7756>>2]=0,ar[A+7760>>2]=0,ar[(e=A+7788|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+8408>>2]=0,ar[A+8412>>2]=0,ar[A+8416>>2]=0,ar[(e=A+8444|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+9064>>2]=0,ar[A+9068>>2]=0,ar[A+9072>>2]=0,ar[(e=A+9100|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+9720>>2]=0,ar[A+9724>>2]=0,ar[A+9728>>2]=0,ar[(e=A+9756|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+10376>>2]=0,ar[A+10380>>2]=0,ar[A+10384>>2]=0,ar[(e=A+10412|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+11032>>2]=0,ar[A+11036>>2]=0,ar[A+11040>>2]=0,ar[(e=A+11068|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,$a(A+11096|0),$a(A+16264|0),$a(A+21432|0),$a(A+26600|0),$a(A+31768|0),$a(A+36936|0),$a(A+42104|0),$a(A+47272|0),$a(A+52440|0),$a(A+57608|0),$a(A+62776|0),$a(A+67944|0),$a(A+73112|0),$a(A+78280|0),$a(A+83448|0),$a(A+88616|0),e=0;Ia(A+93784+(4400*e|0)|0),64!=(0|(e=e+1|0)););for(ar[(n=A+375400|0)>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,ar[n+12>>2]=0,ar[n+16>>2]=0,ar[n+20>>2]=0,function(A){var e,r=0;for(e=48+(r=8+(A|=0)|0)|0;((ar[r>>2]=0)|(r=r+4|0))<(0|e););ar[A>>2]=30,ar[A+4>>2]=30}(A+376148|0),ar[A+377216>>2]=0,ar[A+377220>>2]=0,ar[A+377224>>2]=0,tr[A+512>>0]=0,tr[A+513>>0]=1,tr[A+514>>0]=0,tr[A+532>>0]=0,tr[A+533>>0]=0,ar[(n=A+516|0)>>2]=-1,ar[n+4>>2]=-1,ar[n+8>>2]=-1,ar[n+12>>2]=-1,e=0|ar[4+(n=7736)>>2],ar[(t=A+536|0)>>2]=ar[n>>2],ar[t+4>>2]=e,ar[A+544>>2]=0,ar[A+375384>>2]=0,ar[A+375388>>2]=0,ar[A+375392>>2]=0,ar[A+375892>>2]=0,ar[(t=A+375896|0)>>2]=6,ar[A+375900>>2]=100,ar[A+375904>>2]=6,ar[A+375912>>2]=6,ar[A+375908>>2]=100,e=6;;){if((0|(i=(0|(n=100*e|0))/7|0))<=(0|(n=(n+100|0)/7|0)))for(f=n-i|0,r=i;a=0|ar[t>>2],e=(o=(0|a)<(0|e))?a:e,tr[A+375916+(r<<1)>>0]=e,tr[A+375916+(r<<1)+1>>0]=o?100:255&((100*(r-i|0)|0)/(0|f)|0),(0|r)<(0|n);)r=r+1|0;if(ar[A+376120+(e<<2)>>2]=n,!(0<(0|e)))break;e=e+-1|0}ar[(a=A+376204|0)>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a+12>>2]=0,ar[a+16>>2]=0,ar[a+20>>2]=0,tr[A+376208>>0]=1,ar[a>>2]=-1}(i=0|hu(377232)),0|i):(ar[14154]=(0|ar[14154])-1,(i=0)|i)),Ne(ar[r>>2]=A,7,1),Ne(A,8,1),ar[e>>2]=r},function(A,e){A|=0,e|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+4|0,ar[f>>2]=ar[e+8>>2],Bi(r,39045,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(f=(f=A)+e|0)>>0]=0,void(ur=i)}else f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){A|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+8|0,n=0|ar[(e|=0)+16>>2],ar[f>>2]=ar[e+12>>2],ar[f+4>>2]=n,Bi(r,39191,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(n=(n=A)+e|0)>>0]=0,void(ur=i)}else n=0|hu(f=e+16&-16),ar[A>>2]=n,ar[A+8>>2]=-2147483648|f,ar[A+4>>2]=e,A=n;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){A|=0,e|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+4|0,ar[f>>2]=ar[e+12>>2],Bi(r,39665,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(f=(f=A)+e|0)>>0]=0,void(ur=i)}else f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){A|=0,e|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+4|0,ar[f>>2]=ar[e+12>>2],Bi(r,48089,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(f=(f=A)+e|0)>>0]=0,void(ur=i)}else f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){},function(A,e){e|=0,jb[127&ar[24+(0|ar[(A|=0)>>2])>>2]](A),e=0|un(e,61032),ar[A+36>>2]=e,e=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=e},function(A,e){e|=0,jb[127&ar[24+(0|ar[(A|=0)>>2])>>2]](A),e=0|un(e,61024),ar[A+36>>2]=e,e=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=e},function(A,e){A|=0;var r=0,i=0;i=0|un(e|=0,61032),ar[(r=A+36|0)>>2]=i,i=0|jb[127&ar[24+(0|ar[i>>2])>>2]](i),ar[(e=A+44|0)>>2]=i,r=0|ar[r>>2],r=1&(0|jb[127&ar[28+(0|ar[r>>2])>>2]](r)),tr[A+53>>0]=r,8<(0|ar[e>>2])&&ti()},function(A,e){A|=0;var r=0,i=0;i=0|un(e|=0,61024),ar[(r=A+36|0)>>2]=i,i=0|jb[127&ar[24+(0|ar[i>>2])>>2]](i),ar[(e=A+44|0)>>2]=i,r=0|ar[r>>2],r=1&(0|jb[127&ar[28+(0|ar[r>>2])>>2]](r)),tr[A+53>>0]=r,8<(0|ar[e>>2])&&ti()},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,oi(A,tr[A+11>>0]=1,45),Qf(A+1|(tr[r>>0]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,oi(A,tr[A+11>>0]=1,45),Qf(A+1|(tr[r>>0]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,gr(A,tr[A+8+3>>0]=1,45),ln(A+4|(ar[r>>2]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,gr(A,tr[A+8+3>>0]=1,45),ln(A+4|(ar[r>>2]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){},function(A,e){},function(A,e){yu(A|=0,(e|=0)+12|0)},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,4294967279<(i=(ar[A+8>>2]=0)|Yf(55745))>>>0&&pu(),i>>>0<11?(tr[A+11>>0]=i,e=A):(e=0|hu(n=16+i&-16),ar[A>>2]=e,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=i),wf(e,55745,i),Qf(e+i|(tr[r>>0]=0),r),ur=f},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,4294967279<(i=(ar[A+8>>2]=0)|Yf(55739))>>>0&&pu(),i>>>0<11?(tr[A+11>>0]=i,e=A):(e=0|hu(n=16+i&-16),ar[A>>2]=e,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=i),wf(e,55739,i),Qf(e+i|(tr[r>>0]=0),r),ur=f},function(A,e){yu(A|=0,(e|=0)+16|0)},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,1073741807<(i=(ar[A+8>>2]=0)|Mr(17204))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(e=4+i&-4)>>>0)){n=0|hu(e<<2),ar[A>>2]=n,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=i;break}lA()}else tr[A+8+3>>0]=i,n=A}while(0);Zf(n,17204,i),ln(n+(i<<2)|(ar[r>>2]=0),r),ur=f},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,1073741807<(i=(ar[A+8>>2]=0)|Mr(17180))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(e=4+i&-4)>>>0)){n=0|hu(e<<2),ar[A>>2]=n,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=i;break}lA()}else tr[A+8+3>>0]=i,n=A}while(0);Zf(n,17180,i),ln(n+(i<<2)|(ar[r>>2]=0),r),ur=f},function(A,e){e|=0,is[511&(A|=0)](e)},function(A,e){A|=0,e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(ur=(r=ur)+16|0,u=(l=r)+12|0,i=0|nA(),ar[u>>2]=i,!e)return ar[A>>2]=i,ar[u>>2]=0,iA((u=0)|u),void(ur=r);if(sl(l,40+(0|ar[e>>2])|0),a=(o=(f=0|ar[(t=l+4|0)>>2])-(i=0|ar[l>>2])|0)>>3,0|(n=i)){if((0|f)!=(0|n)){for(;i=f+-8|0,ar[t>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[t>>2]),(0|i)!=(0|n);)f=i;i=0|ar[l>>2]}vu(i)}if((0|o)<8)return ar[A>>2]=ar[u>>2],ar[u>>2]=0,iA((u=0)|u),void(ur=r);if(!(c=0|yc(o>>>1)))return c=0|hu(12),ar[c>>2]=6,ar[c+4>>2]=1e3,ar[l>>2]=c,l=0|cA(1392,0|l),ar[A>>2]=l,u=0|ar[u>>2],iA(0|u),void(ur=r);if(sl(l,40+(0|ar[e>>2])|0),f=0|ar[(o=l+4|0)>>2],t=i=0|ar[l>>2],e=0<(0|(a=(0|(e=f-i>>3))<(0|a)?e:a)))for(n=0;ar[c+(n<<2)>>2]=ar[20+(0|ar[t+(n<<3)>>2])>>2],(0|(n=n+1|0))<(0|a););if(0|i){if((0|f)!=(0|t)){for(;i=f+-8|0,ar[o>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[o>>2]),(0|i)!=(0|t);)f=i;i=0|ar[l>>2]}vu(i)}if(!a)return Bc(c),ar[A>>2]=ar[u>>2],ar[u>>2]=0,iA((u=0)|u),void(ur=r);if(ar[l>>2]=0,e)for(i=0;dl(u,l,c+(i<<2)|0),i=1+(0|ar[l>>2])|0,(0|(ar[l>>2]=i))<(0|a););Bc(c),ar[A>>2]=ar[u>>2],ar[u>>2]=0,iA((u=0)|u),ur=r},function(A,e){e|=0,is[511&(A|=0)](e)},function(A,e){A|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(r=(0|(e|=0))/2|0,!((0|e)<=1)){i=e+-1|0,f=0;do{for(t=0|br(f,e),o=i+(0|br(i-f|0,e))|0,n=0;a=A+(o-n<<1)|0,c=0|or[(l=A+(n+t<<1)|0)>>1],or[l>>1]=0|or[a>>1],or[a>>1]=c,(0|(n=n+1|0))!=(0|e););f=f+1|0}while((0|f)<(0|r))}},Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb],ns=[Qb,HA,LA,function(A,e,r){A|=0,e|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0;ur=(t=ur)+32|0,f=t,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),a=0|ar[e+44>>2],i=0|ar[e+48>>2];A:do{if((0|a)==(0|i))o=A+8|0,l=8;else for(c=(o=A+8|0)+11|0;;){if(u=0|ar[a>>2],ns[127&ar[12+(0|ar[u>>2])>>2]](A,u,r),0|ar[A>>2])break A;if((0|tr[c>>0])<0&&vu(0|ar[o>>2]),(0|(a=a+8|0))==(0|i)){l=8;break}}}while(0);8==(0|l)&&(l=0|ar[(c=56592)+4>>2],ar[(u=A)>>2]=ar[c>>2],ar[u+4>>2]=l,yu(o,56600)),KA(f,e,r,n),ur=(0<=(0|tr[(o=f+8|0)+11>>0])||vu(0|ar[o>>2]),t)},function(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;ur=(f=ur)+32|0,i=f+12|0,o=f,t=0|ar[(n=c=(e|=0)+8|0)>>2],n=0|ar[n+4>>2];do{if(0==(0|t)&0==(0|n))for(e=r;(ar[(b=e+16|0)>>2]=0)!=(0|(e=(ar[b+4>>2]=0)|ar[e+8>>2])););else if(0|CA(r,e=0|ob(0|t,0|n,0|ar[(a=e+16|0)>>2],0),n=D)){if(0>>0|0==(0|n)&2147483647>>0)return ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,oo(A,2,101,o),0<=(0|tr[o+11>>0])||vu(0|ar[o>>2]),void(ur=f);if(e=0|ar[r>>2],(t=0==(0|(n=0|ar[r+4>>2])))||bu(n),b=0|ar[(u=c)>>2],u=0|ar[u+4>>2],l=0|ar[a>>2],o=0|ar[e>>2],a=0|ar[o+20>>2],o=0|jb[127&ar[o+8>>2]](e),c=D,c=0|tb(0|(l=0|ob(0|b,0|u,0|l,0)),0|D,0|o,0|c),xb[63&a](e,c,D),t)break;du(n);break}}while(0);0|tr[r+24>>0]?(ar[i>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,oo(A,2,100,i),(0|tr[11+i>>0])<0&&vu(0|ar[i>>2])):(u=0|ar[(l=56592)+4>>2],ar[(b=A)>>2]=ar[l>>2],ar[b+4>>2]=u,yu(A+8|0,56600)),ur=f},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),HA(f,e,r),We(n,(s=(d=0|tr[(k=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,s?0|ar[4+f>>2]:255&d),(0|tr[k>>0])<0&&vu(0|ar[f>>2]),0<(0|ar[r>>2]))for(c=0;We(n,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(n,19206,13),k=0|ar[e+56>>2],ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[(u=11+f|0)>>0]=4,tr[4+f>>0]=0,tr[f>>0]=k>>>24,tr[1+f>>0]=k>>>16,tr[2+f>>0]=k>>>8,tr[3+f>>0]=k,l=0|We(0|We(l,f,4),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(l,19220,15),l=0|We(0|Lf(l,0|ar[e+60>>2]),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(We(l,19236,19),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),(0|(c=0|ar[e+64>>2]))!=(0|(r=0|ar[e+68>>2])))for(e=11+f|0,b=4+f|0,s=1+f|0,d=2+f|0,k=3+f|0,u=1;l=0|ar[c>>2],u||(tr[f>>0]=44,We(n,f,1)),ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[e>>0]=4,tr[b>>0]=0,tr[f>>0]=l>>>24,tr[s>>0]=l>>>16,tr[d>>0]=l>>>8,tr[k>>0]=l,We(n,f,4),(0|tr[e>>0])<0&&vu(0|ar[f>>2]),(0|(c=c+4|0))!=(0|r);)u=0;if(We(n,30086,1),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+32|0,t=f,o=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),(0|(n=0|ar[e+64>>2]))!=(0|(i=0|ar[e+68>>2])))for(;UA(r,0|ar[n>>2]),(0|(n=n+4|0))!=(0|i););KA(t,e,r,o),(0|tr[(n=t+8|0)+11>>0])<0&&vu(0|ar[n>>2]),t=0|ar[(r=56592)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=f},function(A,e,r){A|=0,e|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(n=ur)+32|0,s=n+12|0,c=n,o=0|FA(r|=0),ar[e+56>>2]=o,o=0|FA(r),ar[e+60>>2]=o,t=0|ar[(o=e+8|0)>>2],!(0<(o=0|ar[o+4>>2])>>>0|0==(0|o)&((a=0|ar[e+16>>2])+8|0)>>>0>>0)){for(t=0|hu(48),ar[c>>2]=t,ar[c+8>>2]=-2147483600,a=19167,e=(o=t)+(ar[c+4>>2]=38)|0;tr[o>>0]=0|tr[a>>0],a=a+1|0,(0|(o=o+1|0))<(0|e););return(tr[t+38>>0]=0,oo(A,2,101,c),0<=(0|tr[c+11>>0]))?void(ur=n):(vu(0|ar[c>>2]),void(ur=n))}l=0|sb(0|(l=0|ob(0|(l=0|tb(0|t,0|o,-8,-1)),0|D,0|a,0)),0|D,2),i=D,f=r+24|0;A:do{if(!(0==(0|l)&0==(0|i))){u=e+68|0,b=e+72|0,t=e+64|0,c=e=0;do{if(0|tr[f>>0])break A;o=0|FA(r),ar[s>>2]=o,(a=0|ar[u>>2])>>>0<(0|ar[b>>2])>>>0?(ar[a>>2]=o,ar[u>>2]=a+4):Ce(t,s),e=0|tb(0|e,0|c,1,0),c=D}while(c>>>0>>0|(0|c)==(0|i)&e>>>0>>0)}}while(0);0|tr[f>>0]?(ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,oo(A,2,100,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2])):(r=0|ar[(b=56592)+4>>2],ar[(s=A)>>2]=ar[b>>2],ar[s+4>>2]=r,yu(A+8|0,56600)),ur=n},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0;var i,f=0;ur=(i=ur)+32|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),$A(A,e,r,-1),ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(l=(u=0|tr[(b=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,l?0|ar[4+f>>2]:255&u),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),0<(0|ar[r>>2]))for(l=0;We(n,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(n,23170,13),u=0|We(0|Lf(u,0|ar[e+56>>2]),30086,1),0<(0|ar[r>>2]))for(l=0;We(u,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(b=0|We(u,23184,14),l=0|ar[e+60>>2],ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[(u=11+f|0)>>0]=4,tr[4+f>>0]=0,tr[f>>0]=l>>>24,tr[1+f>>0]=l>>>16,tr[2+f>>0]=l>>>8,tr[3+f>>0]=l,b=0|We(0|We(b,f,4),30086,1),0<(0|ar[r>>2]))for(l=0;We(b,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(c=0|We(b,23199,6),We(0|We(c,(b=(r=0|tr[(l=e+76|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,b?0|ar[e+80>>2]:255&r),30086,1),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),UA(r,0|ar[e+64>>2]),UA(r,0|ar[e+68>>2]),UA(r,0|ar[e+72>>2]),OA(r,e+76|0),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f,n=0,t=0;if(ur=(f=ur)+32|0,t=f+20|0,qA(n=f,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),n=0|FA(r),ar[e+56>>2]=n,n=0|FA(r),ar[e+60>>2]=n,n=0|FA(r),ar[e+64>>2]=n,n=0|FA(r),ar[e+68>>2]=n,n=0|FA(r),ar[e+72>>2]=n,RA(t,r),(0|tr[(i=(n=e+76|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+80>>2]=0):(tr[n>>0]=0,tr[i>>0]=0),Cu(n,0),ar[n>>2]=ar[t>>2],ar[n+4>>2]=ar[t+4>>2],ar[n+8>>2]=ar[t+8>>2],!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(t=A)>>2]=ar[e>>2],ar[t+4>>2]=r,yu(A+8|0,56600),void(ur=f);ar[t>>2]=0,ar[t+4>>2]=0,ar[t+8>>2]=0,oo(A,2,100,t),ur=(0<=(0|tr[t+11>>0])||vu(0|ar[t>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(u=(c=0|tr[(a=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,22462,9),We(0|Lf(u,0|ar[e+56>>2]),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0;ur=(f=ur)+32|0,n=f,t=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),i=0|ar[e+56>>2];do{if(0|tr[e+37>>0])UA(r,i);else{if(i>>>0<65536){MA(r,65535&i);break}sr(23065,19104,891,19563)}}while(0);KA(n,e,r,t),(0|tr[(e=n+8|0)+11>>0])<0&&vu(0|ar[e>>2]),n=0|ar[(r=56592)+4>>2],ar[(t=A)>>2]=ar[r>>2],ar[t+4>>2]=n,yu(A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f=0,n=0;if(ur=(i=ur)+32|0,n=i+20|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),f=0|tr[e+37>>0]?0|FA(r):65535&(0|VA(r)),ar[e+56>>2]=f,!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(n=A)>>2]=ar[e>>2],ar[n+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,100,n),ur=(0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(c=0|tr[(l=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&c),(0|tr[l>>0])<0&&vu(0|ar[a>>2]),(0|(a=0|ar[e+56>>2]))!=(0|(l=0|ar[e+60>>2]))){c=a;do{if(0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(e=0|We(f,22885,9),e=0|We(0|Lf(e,0|ar[c>>2]),30086,1),0<(0|ar[r>>2]))for(a=0;We(e,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(e=0|We(e,22895,23),e=0|We(0|Pf(e,0|cr[c+4>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(e,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(u=(e=0|We(e,22919,24))+(0|ar[(0|ar[e>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|8,u=(e=0|xf(e,0|or[c+6>>1]))+(0|ar[(0|ar[e>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|2,e=0|We(e,30086,1),0<(0|ar[r>>2]))for(a=0;We(e,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(e=0|We(e,22944,15),We(0|Kf(e,0|ar[(u=c+8|0)>>2],0|ar[u+4>>2]),30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(f,22960,11),(0|(a=0|ar[c+16>>2]))!=(0|(e=0|ar[c+20>>2])))for(;b=0|We(0|Kf(f,0|ar[(b=a+8|0)>>2],0|ar[b+4>>2]),19588,1),Kf(b,0|ar[(u=a+16|0)>>2],0|ar[u+4>>2]),0==(0|ar[(u=a)>>2])&0==(0|ar[u+4>>2])||Kf(u=0|We(f,22972,7),0|ar[(b=a)>>2],0|ar[b+4>>2]),We(f,20449,1),(0|(a=a+40|0))!=(0|e););We(f,30086,1),c=c+32|0}while((0|c)!=(0|l))}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(ur=(f=ur)+32|0,p=f,(0|(o=0|ar[(k=(e|=0)+56|0)>>2]))!=(0|(u=0|ar[(h=e+60|0)>>2]))){n=0;do{if(1==(0|tr[o+4>>0])&&(0|(c=0|ar[o+16>>2]))!=(0|(l=0|ar[o+20>>2])))for(a=c;n=(0|ar[a+28>>2])+n-(0|ar[a+24>>2])|0,(0|(a=a+40|0))!=(0|l););o=o+32|0}while((0|o)!=(0|u));if(0|n&&(UA(r,n+8|0),UA(r,1768186228),(0|(t=0|ar[k>>2]))!=(0|(b=0|ar[h>>2]))))do{if(1==(0|tr[t+4>>0])&&(0|(s=0|ar[t+16>>2]))!=(0|(d=0|ar[t+20>>2])))for(n=s;zA(r,n+24|0),(0|(n=n+40|0))!=(0|d););t=t+32|0}while((0|t)!=(0|b))}if(Z=0|ar[(a=r+12|0)>>2],jA(r,0|tr[e+36>>0]?12:8),ar[e+68>>2]=ar[a>>2],n=(t=(255&(a=0|tr[e+37>>0]))<2)?4:6,(0|(o=0|ar[k>>2]))!=(0|(i=0|ar[h>>2]))){w=e+73|0,v=e+74|0,m=e+76|0,g=(d=t?2:4)+(k=a<<24>>24?2:0)+(h=0|cr[e+75>>0])+4|0,t=a;do{l=n+4+h+d+k|0,c=a=0|ar[o+16>>2],s=0|ar[o+20>>2];do{if((0|a)==(0|s))n=l;else{if(u=0|cr[w>>0],b=0|cr[v>>0],!(t<<24>>24)){n=g+n+(0|br(((s+-40-c|0)>>>0)/40|0,u+b|0))+u+b|0,t=0;break}for(c=0|cr[m>>0],n=l;n=u+(c+n)+b|0,(0|(a=a+40|0))!=(0|s););}}while(0);o=o+32|0}while((0|o)!=(0|i))}if(jA(r,n),KA(p,e,r,Z),0<=(0|tr[(n=p+8|0)+11>>0]))return Z=0|ar[(Z=r=56592)>>2],r=0|ar[(r=r+4|0)>>2],ar[(e=p=A)>>2]=Z,ar[(p=p+4|0)>>2]=r,yu(A=A+8|0,56600),void(ur=f);vu(0|ar[n>>2]),Z=0|ar[(Z=r=56592)>>2],r=0|ar[(r=r+4|0)>>2],ar[(e=p=A)>>2]=Z,ar[(p=p+4|0)>>2]=r,yu(A=A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0;if(ur=(t=ur)+384|0,q=t+144|0,l=($=t)+340|0,f=t+184|0,n=t+328|0,qA(o=t+352|0,e|=0,r|=0),(0|tr[(o=o+8|0)+11>>0])<0&&vu(0|ar[o>>2]),a=0|VA(r),o=1<(255&(K=0|tr[(i=e+37|0)>>0]))?15&a:0,2e4<(0|(K=(255&K)<2?65535&(0|VA(r)):0|FA(r))))return e=$+64|0,ar[(c=$+8|0)>>2]=4524,a=$+12|0,ar[$>>2]=188,ar[e>>2]=208,Jf($+64|(ar[$+4>>2]=0),a),ar[$+136>>2]=0,ar[$+140>>2]=-1,ar[$>>2]=4504,ar[e>>2]=4544,ar[c>>2]=4524,Sf(a),ar[a>>2]=4340,ar[(c=$+44|0)>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c+12>>2]=0,ar[$+60>>2]=24,ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,Xe(a,q),(0|tr[q+11>>0])<0&&vu(0|ar[q>>2]),We(0|Pf(0|We(0|Pf(0|We(o=$+8|0,22754,18),K),22773,44),2e4),22818,7),Ie(l,a),oo(A,6,1e3,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),ar[$>>2]=4504,ar[e>>2]=4544,ar[o>>2]=4524,ar[a>>2]=4340,(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),kf(a),bf(e),void(ur=t);A:do{if(0<(0|K)){W=$+4|0,I=$+6|0,C=$+8|0,x=(65535&a)>>>4&255,F=12+f|0,R=4+f|0,N=G=64+f|0,_=136+f|0,Y=140+f|0,D=60+f|0,J=q+11|0,M=V=8+f|0,T=11+n|0,U=(Q=44+f|0)+11|0,O=$+20|0,z=r+24|0,j=e+60|0,H=e+64|0,B=e+56|0,E=S=$+16|0,X=0!=(0|o),y=255&o,g=q+8|0,p=(65535&a)>>>12&255,Z=q+16|0,m=(65535&a)>>>8&255,k=$+24|0,w=q+28|0,v=h=q+24|0,d=0;e:for(;;){for(ar[$>>2]=0,e=(o=I)+22|(tr[W>>0]=0);(0|(o=o+2|(or[o>>1]=0)))<(0|e););switch(o=(0|cr[i>>0])<2?65535&(0|VA(r)):0|FA(r),ar[$>>2]=o,0|tr[i>>0]&&(s=15&(0|VA(r)),tr[W>>0]=s),s=0|VA(r),or[I>>1]=s,ar[(s=C)>>2]=0,ar[s+4>>2]=0,15&x){case 4:o=0|FA(r),e=0,L=26;break;case 8:o=0|FA(r),ar[(e=C)>>2]=0,ar[e+4>>2]=o,e=C,o=0|FA(r)|ar[e>>2],e=0|ar[e+4>>2],L=26}26==(0|L)&&(L=0,ar[(s=C)>>2]=o,ar[s+4>>2]=e),s=65535&(o=0|VA(r));do{if((65535&o)<=32){r:do{if(o<<16>>16)for(b=0;;){for(e=(o=q)+36|0;(0|(o=o+4|(ar[o>>2]=0)))<(0|e););i:do{if(X&1<(0|cr[i>>0]))switch(15&y){case 4:l=0|FA(r),ar[(u=q)>>2]=l,ar[u+4>>2]=0;break i;case 8:a=0|FA(r),ar[(c=q)>>2]=0,ar[c+4>>2]=a,c=0|FA(r),l=0|ar[(a=q)+4>>2],ar[(u=q)>>2]=ar[a>>2]|c,ar[u+4>>2]=l;break i;default:break i}}while(0);switch(ar[(u=g)>>2]=0,ar[u+4>>2]=0,15&p){case 4:o=0|FA(r),e=0,L=44;break;case 8:o=0|FA(r),ar[(e=g)>>2]=0,ar[e+4>>2]=o,e=g,o=0|FA(r)|ar[e>>2],e=0|ar[e+4>>2],L=44}switch(44==(0|L)&&(L=0,ar[(u=g)>>2]=o,ar[u+4>>2]=e),ar[(u=Z)>>2]=0,ar[u+4>>2]=0,15&m){case 4:o=0|FA(r),e=0,L=48;break;case 8:o=0|FA(r),ar[(e=Z)>>2]=0,ar[e+4>>2]=o,e=Z,o=0|FA(r)|ar[e>>2],e=0|ar[e+4>>2],L=48}if(48==(0|L)&&(L=0,ar[(u=Z)>>2]=o,ar[u+4>>2]=e),(0|(e=0|ar[O>>2]))==(0|ar[k>>2]))Qt(E,q),o=0|ar[h>>2];else{if(ar[e>>2]=ar[q>>2],ar[e+4>>2]=ar[q+4>>2],ar[e+8>>2]=ar[q+8>>2],ar[e+12>>2]=ar[q+12>>2],ar[e+16>>2]=ar[q+16>>2],ar[e+20>>2]=ar[q+20>>2],ar[(a=e+24|0)>>2]=0,ar[(u=e+28|0)>>2]=0,o=(ar[e+32>>2]=0)|ar[v>>2],c=(0|ar[w>>2])-o|0){if((0|c)<0){L=52;break e}l=0|hu(c),ar[u>>2]=l,ar[a>>2]=l,ar[e+32>>2]=l+c,o=0|ar[v>>2],0<(0|(e=(0|ar[w>>2])-o|0))&&(hb(0|l,0|o,0|e),ar[u>>2]=l+e)}ar[O>>2]=40+(0|ar[O>>2])}if(0|o&&((0|ar[w>>2])!=(0|o)&&(ar[w>>2]=o),vu(o)),(0|s)<=(0|(b=b+1|0)))break r}}while(0);if(!(0|tr[z>>0])){if((0|(o=0|ar[j>>2]))==(0|ar[H>>2])){Jt(B,$),l=0;break}ar[o>>2]=ar[$>>2],ar[o+4>>2]=ar[$+4>>2],ar[o+8>>2]=ar[$+8>>2],ar[o+12>>2]=ar[$+12>>2],Dt(o+16|0,E),ar[j>>2]=32+(0|ar[j>>2]),l=0;break}l=0}else ar[V>>2]=4524,ar[f>>2]=188,ar[G>>2]=208,ar[R>>2]=0,Jf(N,F),ar[_>>2]=0,ar[Y>>2]=-1,ar[f>>2]=4504,ar[G>>2]=4544,ar[V>>2]=4524,Sf(F),ar[F>>2]=4340,ar[Q>>2]=0,ar[Q+4>>2]=0,ar[Q+8>>2]=0,ar[Q+12>>2]=0,ar[D>>2]=24,ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,Xe(F,q),(0|tr[J>>0])<0&&vu(0|ar[q>>2]),We(0|Pf(0|We(0|Pf(0|We(M,22826,31),s),22858,26),32),18904,2),Ie(n,F),oo(A,6,1e3,n),(0|tr[T>>0])<0&&vu(0|ar[n>>2]),ar[f>>2]=4504,ar[G>>2]=4544,ar[M>>2]=4524,ar[F>>2]=4340,(0|tr[U>>0])<0&&vu(0|ar[Q>>2]),kf(F),bf(G),l=1}while(0);if(0|(o=0|ar[S>>2])){if((0|(e=0|ar[O>>2]))!=(0|o)){for(;a=e+-40|0,ar[O>>2]=a,(0|(e=(c=0|ar[e+-16>>2])?((0|ar[(e=e+-12|0)>>2])!=(0|c)&&(ar[e>>2]=c),vu(c),0|ar[O>>2]):a))!=(0|o););o=0|ar[S>>2]}vu(o)}if(d=d+1|0,0|l){L=80;break}if((0|K)<=(0|d)){P=z;break A}}if(52==(0|L))zl();else if(80==(0|L))return void(ur=t)}else P=r+24|0}while(0);0|tr[P>>0]?(ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,oo(A,2,100,q),(0|tr[q+11>>0])<0&&vu(0|ar[q>>2])):(q=0|ar[(K=56592)+4>>2],ar[($=A)>>2]=ar[K>>2],ar[$+4>>2]=q,yu(A+8|0,56600)),ur=t},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0;ur=(n=ur)+32|0,i=n,f=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),a=e+48|0,SA(r,0|tr[e+37>>0]?4:2,(0|ar[a>>2])-(0|ar[e+44>>2])>>3,0),o=0|ar[e+44>>2],a=0|ar[a>>2];A:do{if((0|o)==(0|a))t=A+8|0,l=8;else for(c=(t=A+8|0)+11|0;;){if(u=0|ar[o>>2],ns[127&ar[12+(0|ar[u>>2])>>2]](A,u,r),0|ar[A>>2])break A;if((0|tr[c>>0])<0&&vu(0|ar[t>>2]),(0|(o=o+8|0))==(0|a)){l=8;break}}}while(0);8==(0|l)&&(l=0|ar[(c=56592)+4>>2],ar[(u=A)>>2]=ar[c>>2],ar[u+4>>2]=l,yu(t,56600)),KA(i,e,r,f),ur=(0<=(0|tr[(t=i+8|0)+11>>0])||vu(0|ar[t>>2]),n)},function(A,e,r){A|=0;var i,f=0;return ur=(i=ur)+32|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),(f=0|tr[e+37>>0]?0|FA(r):65535&(0|VA(r)))?$A(A,e,r,-1):(e=0|ar[(f=56592)+4>>2],ar[(r=A)>>2]=ar[f>>2],ar[r+4>>2]=e,yu(A+8|0,56600)),void(ur=i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,22462,9),c=0|We(0|Lf(c,0|ar[e+56>>2]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,22472,23),c=0|We(0|xf(c,0|or[e+60>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22496,11),c=0|We(0|We(a,(u=(c=0|tr[(l=e+64|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+68>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22508,11),c=0|We(0|We(a,(u=(c=0|tr[(l=e+76|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+80>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22520,14),c=0|We(0|We(a,(u=(c=0|tr[(l=e+88|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+92>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22535,18),c=0|We(0|We(a,(u=(c=0|tr[(l=e+100|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+104>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22554,15),c=0|We(0|We(a,(u=(c=0|tr[(l=e+112|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+116>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(l=(u=0|We(c,22570,13))+(0|ar[(0|ar[u>>2])-12>>2])+4|0,ar[l>>2]=1|ar[l>>2],We(0|Hf(u,0!=(0|tr[e+124>>0])),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;ur=(i=ur)+32|0,c=i,l=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),(255&(f=0|tr[(n=e+37|0)>>0]))<2?(MA(r,65535&ar[e+56>>2]),MA(r,0|or[e+60>>1]),OA(r,e+76|0),OA(r,e+88|0),OA(r,e+100|0),1<(255&(f=0|tr[n>>0]))&&(t=3)):t=3;A:do{if(3==(0|t)){switch(f<<24>>24){case 2:MA(r,65535&ar[e+56>>2]);break;case 3:UA(r,0|ar[e+56>>2])}MA(r,0|or[e+60>>1]),(n=(f=0|tr[(o=(a=e+64|0)+11|0)>>0])<<24>>24<0)?f=0|ar[e+68>>2]:f&=255,f?(f=n?0|ar[a>>2]:a,UA(r,tr[f+1>>0]<<16|cr[f>>0]<<24|tr[f+2>>0]<<8|tr[f+3>>0])):UA(r,0),OA(r,e+76|0),n=0|tr[o>>0],f=0|ar[(t=e+68|0)>>2];do{if(4==(0|(n<<24>>24<0?f:255&n))){if(0|Yu(a,0,-1,22452,4)){n=0|tr[o>>0],f=0|ar[t>>2];break}OA(r,e+88|0),OA(r,e+100|0);break A}}while(0);4==(0|(n<<24>>24<0?f:255&n))&&0==(0|Yu(a,0,-1,22457,4))&&OA(r,e+112|0)}}while(0);if(KA(c,e,r,l),0<=(0|tr[(f=c+8|0)+11>>0]))return e=0|ar[(e=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=e,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),void(ur=i);vu(0|ar[f>>2]),e=0|ar[(e=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=e,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f=0,n=0,t=0,o=0,a=0;ur=(i=ur)+32|0,a=i+20|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),(255&(f=0|tr[(t=e+37|0)>>0]))<2?(f=65535&(0|VA(r)),ar[e+56>>2]=f,f=0|VA(r),or[e+60>>1]=f,RA(a,r),(0|tr[(n=(f=e+76|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+80>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],RA(a,r),(0|tr[(n=(f=e+88|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+92>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],RA(a,r),(0|tr[(n=(f=e+100|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+104>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],1<(255&(f=0|tr[t>>0]))&&(o=14)):o=14;A:do{if(14==(0|o)){if(tr[e+124>>0]=1&ar[e+40>>2],f=f<<24>>24==2?65535&(0|VA(r)):0|FA(r),ar[e+56>>2]=f,o=0|VA(r),or[e+60>>1]=o,0|(o=0|FA(r))&&(tr[a>>0]=0,tr[a+1>>0]=0,tr[a+2>>0]=0,tr[a+3>>0]=0,tr[a+4>>0]=0,f=(tr[a+5>>0]=0)|kb(0|o),(0|tr[(t=(n=e+64|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+68>>2]=0):(tr[n>>0]=0,tr[t>>0]=0),Cu(n,0),ar[e+64>>2]=f,tr[e+68>>0]=0,tr[(t=e+69|0)>>0]=0|tr[a>>0],tr[t+1>>0]=0|tr[a+1>>0],tr[t+2>>0]=0|tr[a+2>>0],tr[t+3>>0]=0|tr[a+3>>0],tr[t+4>>0]=0|tr[a+4>>0],tr[t+5>>0]=0|tr[a+5>>0],tr[e+75>>0]=4),RA(a,r),(0|tr[(n=(f=e+76|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+80>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],1970432288<=(0|o)){switch(0|o){case 1970432288:break;default:break A}RA(a,r),(0|tr[(n=(f=e+112|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+116>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2];break}switch(0|o){case 1835625829:break;default:break A}RA(a,r),(0|tr[(n=(f=e+88|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+92>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],RA(a,r),(0|tr[(n=(f=e+100|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+104>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2]}}while(0);if(!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(a=A)>>2]=ar[e>>2],ar[a+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,oo(A,2,100,a),ur=(0<=(0|tr[a+11>>0])||vu(0|ar[a>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){$A(A|=0,e|=0,r|=0,-1)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){$A(A|=0,e|=0,r|=0,-1)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(c=(l=0|tr[(u=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,c?0|ar[a+4>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[a>>2]),(0|(a=0|ar[e+56>>2]))!=(0|(u=0|ar[e+60>>2]))){l=a,a=0|ar[r>>2];do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(f,22139,26),We(0|Lf(a,0|ar[l>>2]),30086,1),a=1+(0|ar[r>>2])|0,ar[r>>2]=a,(0|(e=0|ar[l+4>>2]))!=(0|(c=0|ar[l+8>>2])))do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););a=0|We(f,22166,16),b=(a=0|We(0|xf(a,0|or[e+2>>1]),22183,13))+(0|ar[(0|ar[a>>2])-12>>2])+4|0,ar[b>>2]=1|ar[b>>2],We(0|Hf(a,0!=(0|tr[e>>0])),18904,2),e=e+4|0,a=0|ar[r>>2]}while((0|e)!=(0|c));a=(0|a)<1?0:a+-1|0,ar[r>>2]=a,l=l+16|0}while((0|l)!=(0|u))}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(i=ur)+32|0,b=i,s=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),f=e+56|0,UA(r,(0|ar[(c=e+60|0)>>2])-(0|ar[f>>2])>>4),(0|(f=0|ar[f>>2]))!=(0|(c=0|ar[c>>2]))){l=e+37|0,u=e+40|0;do{if(n=0|ar[f>>2],0|tr[l>>0]?UA(r,n):MA(r,65535&n),n=f+4|0,JA(r,((0|ar[(a=f+8|0)>>2])-(0|ar[n>>2])|0)>>>2&255),(0|(n=0|ar[n>>2]))!=(0|(a=0|ar[a>>2])))for(;t=0!=(0|tr[n>>0]),o=0|lr[n+2>>1],1&ar[u>>2]?MA(r,65535&(32767&o|(t?32768:0))):JA(r,255&(127&o|(t?128:0))),(0|(n=n+4|0))!=(0|a););f=f+16|0}while((0|f)!=(0|c))}if(KA(b,e,r,s),0<=(0|tr[(f=b+8|0)+11>>0]))return r=0|ar[(r=b=56592)>>2],b=0|ar[(b=b+4|0)>>2],ar[(u=s=A)>>2]=r,ar[(s=s+4|0)>>2]=b,yu(A=A+8|0,56600),void(ur=i);vu(0|ar[f>>2]),r=0|ar[(r=b=56592)>>2],b=0|ar[(b=b+4|0)>>2],ar[(u=s=A)>>2]=r,ar[(s=s+4|0)>>2]=b,yu(A=A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0;ur=(n=ur)+48|0,E=n+24|0,qA(t=(X=n)+4|0,e|=0,r|=0),(0|tr[(t=t+8|0)+11>>0])<0&&vu(0|ar[t>>2]),i=0|FA(r),f=r+24|0;A:do{if(0<(0|i)){for(h=r+16|0,v=E+8|0,g=e+37|0,Z=e+60|0,p=e+64|0,y=e+56|0,B=w=E+4|0,s=e+40|0,d=X+2|0,k=m=E+12|0,b=0;;){if(0|tr[f>>0])break A;if(0==(0|ar[(u=h)>>2])&0==(0|ar[u+4>>2]))break A;if(ar[w>>2]=0,ar[v>>2]=0,t=(ar[m>>2]=0)|tr[g>>0]?0|FA(r):65535&(0|VA(r)),ar[E>>2]=t,c=255&(u=0|IA(r)),u<<24>>24)for(a=0;1&ar[s>>2]?(t=(65535&(o=0|VA(r)))>>>15&255,e=32767):(t=(255&(o=0|IA(r)))>>>7,e=127,o&=255),tr[X>>0]=t,or[d>>1]=65535&o&e,(0|(t=0|ar[v>>2]))==(0|ar[k>>2])?Nt(B,X):(u=0|ar[X>>2],or[t>>1]=u,or[t+2>>1]=u>>>16,ar[v>>2]=4+(0|ar[v>>2])),(0|(a=a+1|0))<(0|c););if((0|(o=0|ar[Z>>2]))==(0|ar[p>>2]))Rt(y,E),t=0|ar[w>>2];else{if(ar[o>>2]=ar[E>>2],ar[(a=o+4|0)>>2]=0,ar[(u=o+8|0)>>2]=0,t=(ar[o+12>>2]=0)|ar[B>>2],c=(e=(0|ar[v>>2])-t|0)>>2){if(1073741823>>0)break;l=0|hu(e),ar[u>>2]=l,ar[a>>2]=l,ar[o+12>>2]=l+(c<<2),t=0|ar[B>>2],0<(0|(e=(0|ar[v>>2])-t|0))&&(hb(0|l,0|t,0|e),ar[u>>2]=l+(e>>>2<<2))}ar[Z>>2]=16+(0|ar[Z>>2])}if(0|t&&((0|(e=0|ar[v>>2]))!=(0|t)&&(ar[v>>2]=e+(~((e+-4-t|0)>>>2)<<2)),vu(t)),(0|i)<=(0|(b=b+1|0)))break A}zl()}}while(0);if(!(0|tr[f>>0]))return E=0|ar[(r=56592)+4>>2],ar[(X=A)>>2]=ar[r>>2],ar[X+4>>2]=E,yu(A+8|0,56600),void(ur=n);ar[E>>2]=0,ar[E+4>>2]=0,ar[E+8>>2]=0,oo(A,2,100,E),ur=(0<=(0|tr[E+11>>0])||vu(0|ar[E>>2]),n)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(o=ur)+160|0,c=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,Xe(t,c),(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),LA(c,e,r),We(f,(u=(a=0|tr[(l=c+11|0)>>0])<<24>>24<0)?0|ar[c>>2]:c,u?0|ar[c+4>>2]:255&a),(0|tr[l>>0])<0&&vu(0|ar[c>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(f,22025,13),l=0|We(0|Lf(l,0|ar[e+56>>2]),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(u=0|We(l,22039,14),We(0|Lf(u,0|ar[e+60>>2]),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f=0,n=0;if(ur=(i=ur)+32|0,f=i+20|0,qA(n=i,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),n=0|FA(r),ar[e+56>>2]=n,n=0|FA(r),ar[e+60>>2]=n,!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(f,21914,10),c=0|We(0|We(a,(u=(c=0|tr[(l=e+56|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+60>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(c,21925,14),(0|(a=0|ar[e+68>>2]))!=(0|(c=0|ar[e+72>>2])))for(;u=0|tr[a>>0],l=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[l>>2]=-75&ar[l>>2]|8,ar[f+(0|ar[(0|ar[f>>2])-12>>2])+12>>2]=2,ar[f+(0|ar[(0|ar[f>>2])-12>>2])+76>>2]=48,We(0|Pf(f,255&u),20449,1),(0|(a=a+1|0))!=(0|c););if(We(f,30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+32|0,t=f,o=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),OA(r,e+56|0),(0|(n=0|ar[e+68>>2]))!=(0|(i=0|ar[e+72>>2])))for(;JA(r,0|tr[n>>0]),(0|(n=n+1|0))!=(0|i););KA(t,e,r,o),(0|tr[(n=t+8|0)+11>>0])<0&&vu(0|ar[n>>2]),t=0|ar[(r=56592)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;ur=(f=ur)+32|0,k=f+20|0,qA(n=f,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),RA(k,r),(0|tr[(t=(n=e+56|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+60>>2]=0):(tr[n>>0]=0,tr[t>>0]=0),Cu(n,0),ar[n>>2]=ar[k>>2],ar[n+4>>2]=ar[k+4>>2],ar[n+8>>2]=ar[k+8>>2],d=i=r+16|0;A:do{if(!(0==(0|ar[d>>2])&0==(0|ar[d+4>>2]))){for(s=e+68|0,d=e+72|0,u=e+76|0;;){if(a=0|IA(r),n=0|ar[d>>2],(t=b=0|ar[u>>2])>>>0<=n>>>0){if(l=b=0|ar[s>>2],(0|(n=(c=n-b|0)+1|0))<0)break;t=(o=t-b|0)<<1,o=(t=o>>>0<1073741823?t>>>0>>0?n:t:2147483647)?0|hu(t):0,tr[(e=o+c|0)>>0]=a,n=e+(0-c)|0,0<(0|c)&&hb(0|n,0|l,0|c),ar[s>>2]=n,ar[d>>2]=e+1,ar[u>>2]=o+t,0|b&&vu(l)}else tr[n>>0]=a,ar[d>>2]=1+(0|ar[d>>2]);if(0==(0|ar[(b=i)>>2])&0==(0|ar[b+4>>2]))break A}zl()}}while(0);if(!(0|tr[r+24>>0]))return r=0|ar[(d=56592)+4>>2],ar[(k=A)>>2]=ar[d>>2],ar[k+4>>2]=r,yu(A+8|0,56600),void(ur=f);ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,oo(A,2,100,k),ur=(0<=(0|tr[k+11>>0])||vu(0|ar[k>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(u=(c=0|tr[(a=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,21802,10),We(0|Pf(u,0|ar[e+56>>2]),21813,15),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+16|0,f=i,n=90*(3&(0|IA(r|=0)))|0,ar[e+56>>2]=n,!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l,u=0;if(ur=(o=ur)+160|0,u=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,Xe(t,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2]),LA(u,e,r),We(f,(l=(c=0|tr[(a=u+11|0)>>0])<<24>>24<0)?0|ar[u>>2]:u,l?0|ar[u+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[u>>2]),0<(0|ar[r>>2]))for(u=0;We(f,18862,2),(0|(u=u+1|0))<(0|ar[r>>2]););switch(We(f,21681,13),0|tr[e+56>>0]){case 0:We(f,21695,9);break;case 1:We(f,21705,11)}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+16|0,f=i,n=1&(0|IA(r|=0)),tr[e+56>>0]=n,!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(u=(c=0|tr[(a=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,21560,16),u=0|We(0|Pf(u,0|ar[e+56>>2]),21577,1),u=0|We(0|Pf(u,0|ar[e+60>>2]),21579,3),u=0|We(0|Pf(u,0|ar[e+64>>2]),21577,1),We(0|Pf(u,0|ar[e+68>>2]),30086,1),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,21583,8),u=0|We(0|Pf(u,0|ar[e+72>>2]),21577,1),u=0|We(0|Pf(u,0|ar[e+76>>2]),21592,3),u=0|We(0|Pf(u,0|ar[e+80>>2]),21577,1),We(0|Pf(u,0|ar[e+84>>2]),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),UA(r,0|ar[e+64>>2]),UA(r,0|ar[e+68>>2]),UA(r,0|ar[e+72>>2]),UA(r,0|ar[e+76>>2]),UA(r,0|ar[e+80>>2]),UA(r,0|ar[e+84>>2]),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(i=ur)+32|0,b=i+12|0,s=i,l=0|FA(r|=0),u=0|FA(r),a=0|FA(r),c=0|FA(r),t=0|FA(r),o=0|FA(r),n=0|FA(r),f=0|FA(r),131072<(u+65536|0)>>>0)for(;l=(0|l)/2|0,131072<((u=(0|u)/2|0)+65536|0)>>>0;);if(131072<(l+65536|0)>>>0)for(;u=(0|u)/2|0,131072<((l=(0|l)/2|0)+65536|0)>>>0;);if(ar[(d=e+56|0)>>2]=l,ar[d+4>>2]=u,131072<(c+65536|0)>>>0)for(;a=(0|a)/2|0,131072<((c=(0|c)/2|0)+65536|0)>>>0;);if(131072<(a+65536|0)>>>0)for(;c=(0|c)/2|0,131072<((a=(0|a)/2|0)+65536|0)>>>0;);if(ar[(d=e+64|0)>>2]=a,ar[d+4>>2]=c,131072<(o+65536|0)>>>0)for(;t=(0|t)/2|0,131072<((o=(0|o)/2|0)+65536|0)>>>0;);if(131072<(t+65536|0)>>>0)for(;o=(0|o)/2|0,131072<((t=(0|t)/2|0)+65536|0)>>>0;);if(ar[(d=e+72|0)>>2]=t,ar[d+4>>2]=o,131072<(f+65536|0)>>>0)for(;n=(0|n)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if(131072<(n+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((n=(0|n)/2|0)+65536|0)>>>0;);if(ar[(d=e+80|0)>>2]=n,0==(0|u)|0==(0|c)|0==(0|o)|0==(0|(ar[d+4>>2]=f)))return ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,oo(A,2,128,s),0<=(0|tr[s+11>>0])||vu(0|ar[s>>2]),void(ur=i);0|tr[r+24>>0]?(ar[b>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,oo(A,2,100,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2])):(s=0|ar[(b=56592)+4>>2],ar[(d=A)>>2]=ar[b>>2],ar[d+4>>2]=s,yu(A+8|0,56600)),ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(b=0|tr[(s=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&b),(0|tr[s>>0])<0&&vu(0|ar[f>>2]),(0|(c=0|ar[e+56>>2]))!=(0|(u=0|ar[e+60>>2]))){b=11+f|0,s=4+f|0;do{if(0<(0|ar[r>>2]))for(e=0;We(n,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(d=0|We(n,21430,21),xA(f,c),l=0|We(0|We(0|We(d,(e=(l=0|tr[b>>0])<<24>>24<0)?0|ar[f>>2]:f,e?0|ar[s>>2]:255&l),21452,1),21454,10),We(0|Lf(l,0|ar[c+48>>2]),21465,9),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),(0|(e=0|ar[c+52>>2]))!=(0|(l=0|ar[c+56>>2])))for(;We(0|Lf(n,0|ar[e>>2]),20449,1),(0|(e=e+4|0))!=(0|l););We(n,30086,1),c=c+64|0}while((0|c)!=(0|u))}if(Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0;if(ur=(f=ur)+32|0,c=f,l=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),i=0==(0|tr[e+37>>0])?2:4,(0|(n=0|ar[e+56>>2]))!=(0|(a=0|ar[e+60>>2])))do{if(t=n+52|0,UA(r,10+(0|br(1+((0|ar[(o=n+56|0)>>2])-(0|ar[t>>2])>>2)|0,i))|0),UA(r,0|ar[n+20>>2]),SA(r,i,0|ar[n+48>>2],0),MA(r,((0|ar[o>>2])-(0|ar[t>>2])|0)>>>2&65535),(0|(t=0|ar[t>>2]))!=(0|(o=0|ar[o>>2])))for(;SA(r,i,0|ar[t>>2],0),(0|(t=t+4|0))!=(0|o););n=n+64|0}while((0|n)!=(0|a));if(KA(c,e,r,l),0<=(0|tr[(n=c+8|0)+11>>0]))return a=0|ar[(a=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=a,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),void(ur=f);vu(0|ar[n>>2]),a=0|ar[(a=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=a,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0;for(ur=(g=ur)+96|0,E=(B=g)+64|0,qA(Z=g+68|0,e|=0,r|=0),(0|tr[(Z=Z+8|0)+11>>0])<0&&vu(0|ar[Z>>2]),a=r+16|0,c=B+8|0,l=B+40|0,b=B+56|0,d=e+37|0,k=B+48|0,h=s=B+60|0,w=u=B+52|0,v=e+60|0,m=e+64|0,i=e+56|0,n=11+(f=A+8|0)|0,t=B+24|0,o=B+28|0;!(0==(0|ar[(y=a)>>2])&0==(0|ar[y+4>>2]));){if(ar[B>>2]=4264,ar[l>>2]=0,ar[c>>2]=0,ar[4+c>>2]=0,ar[8+c>>2]=0,ar[12+c>>2]=0,ar[16+c>>2]=0,ar[20+c>>2]=0,ar[24+c>>2]=0,or[28+c>>1]=0,ar[u>>2]=0,ar[b>>2]=0,ar[s>>2]=0,re(A,B,r),(0|ar[A>>2])==(0|ar[14148])){if(0|tr[d>>0]){if(y=0|FA(r),ar[k>>2]=y,e=65535&(y=0|VA(r)),y<<16>>16)for(Z=0;p=0|FA(r),ar[E>>2]=p,(y=0|ar[b>>2])>>>0<(0|ar[h>>2])>>>0?(ar[y>>2]=p,ar[b>>2]=y+4):Ce(w,E),Z=Z+1|0,(0!=(0|ar[(y=a)>>2])|0!=(0|ar[y+4>>2]))&(0|Z)<(0|e););}else if(y=65535&(0|VA(r)),ar[k>>2]=y,e=65535&(y=0|VA(r)),y<<16>>16)for(Z=0;p=65535&(0|VA(r)),ar[E>>2]=p,(y=0|ar[b>>2])>>>0<(0|ar[h>>2])>>>0?(ar[y>>2]=p,ar[b>>2]=y+4):Ce(w,E),Z=Z+1|0,(0!=(0|ar[(y=a)>>2])|0!=(0|ar[y+4>>2]))&(0|Z)<(0|e););(0|(Z=0|ar[v>>2]))==(0|ar[m>>2])?de(i,B):(se(Z,B),ar[v>>2]=64+(0|ar[v>>2])),p=((0|tr[n>>0])<0&&vu(0|ar[f>>2]),0)}else p=1;if(0|(Z=0|ar[u>>2])&&((0|(e=0|ar[b>>2]))!=(0|Z)&&(ar[b>>2]=e+(~((e+-4-Z|0)>>>2)<<2)),vu(Z)),ar[B>>2]=4264,0|(Z=0|ar[t>>2])&&((0|ar[o>>2])!=(0|Z)&&(ar[o>>2]=Z),vu(Z)),1==(0|p)){X=36;break}}ur=(36!=(0|X)&&(0|tr[r+24>>0]?(ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,oo(A,2,100,B),(0|tr[B+11>>0])<0&&vu(0|ar[B>>2])):(E=0|ar[(B=56592)+4>>2],ar[(X=A)>>2]=ar[B>>2],ar[X+4>>2]=E,yu(f,56600))),g)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(c=(u=0|tr[(b=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,c?0|ar[l+4>>2]:255&u),(0|tr[b>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,20916,23),c=0|We(0|Pf(c,0|cr[e+56>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20940,23),c=0|We(0|Pf(c,0|cr[e+57>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20964,19),c=0|We(0|Hf(c,0!=(0|tr[e+58>>0])),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(b=0|We(c,20984,21),We(0|Pf(b,0|cr[e+59>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););for(We(f,21006,37),c=e+60|0,a=0;Lf(f,(0|ar[c>>2])>>>(31-a|0)&1),7!=((0|a)%8|0)?3==((0|a)%4|0)&&(tr[l>>0]=46,We(f,l,1)):(tr[l>>0]=32,We(f,l,1)),(0|(a=a+1|0))<32;);if(We(f,30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););for(We(f,21044,36),a=0;Pf(f,0!=(ar[e+64+(a>>>5<<2)>>2]&1<<(31&a)|0)&1),7&(a=a+1|0)||(tr[l>>0]=32,We(f,l,1)),(0|a)<48;);if(We(f,30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,21081,19),c=0|We(0|Pf(c,0|cr[e+72>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21101,30),c=0|We(0|xf(c,0|or[e+74>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21132,18),c=0|We(0|Pf(c,0|cr[e+76>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21151,15),c=0|We(0|Pf(c,0|cr[e+77>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21167,16),c=0|We(0|Pf(c,0|cr[e+78>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21184,18),c=0|We(0|Pf(c,0|cr[e+79>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21203,16),c=0|We(0|xf(c,0|or[e+80>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21220,21),c=0|We(0|Pf(c,0|cr[e+82>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21242,21),c=0|We(0|Pf(c,0|cr[e+83>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21264,20),c=0|We(0|Pf(c,0|cr[e+84>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,21285,13),We(0|Pf(a,0|cr[e+88>>0]),30086,1),(0|(a=0|ar[e+92>>2]))!=(0|(b=0|ar[e+96>>2]))){u=a,a=0|ar[r>>2];do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(f,21299,8),e=0|ar[r>>2],ar[r>>2]=e+1,-1<(0|e))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,21308,20),c=0|We(0|Pf(c,0|cr[u>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21329,15),We(0|Pf(c,0|cr[u+1>>0]),30086,1),c=0|ar[u+4>>2],e=0|ar[u+8>>2],a=0|ar[r>>2],(0|c)!=(0|e))do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if((0|(a=0|ar[c>>2]))!=(0|(l=0|ar[c+4>>2])))for(;s=0|tr[a>>0],ar[f+(0|ar[(0|ar[f>>2])-12>>2])+76>>2]=48,ar[f+(0|ar[(0|ar[f>>2])-12>>2])+12>>2]=2,d=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[d>>2]=-75&ar[d>>2]|8,We(0|Pf(f,255&s),20449,1),(0|(a=a+1|0))!=(0|l););We(f,30086,1),a=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[a>>2]=-75&ar[a>>2]|2,c=c+12|0,a=0|ar[r>>2]}while((0|c)!=(0|e));a=(0|a)<1?0:a+-1|0,ar[r>>2]=a,u=u+16|0}while((0|u)!=(0|b))}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0;for(ur=(i=ur)+32|0,a=i,c=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),JA(r,0|tr[e+56>>0]),JA(r,tr[e+58>>0]<<5&255|tr[e+57>>0]<<6&255|31&tr[e+59>>0]),UA(r,0|ar[e+60>>2]),f=0;o=f<<3,JA(r,(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|7)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|6)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|5)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|4)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|3)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|2)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|1)|0)&1)<<1)<<1)<<1&14)<<1&30)<<1&62)<<1&126)<<1&255),6!=(0|(f=f+1|0)););if(JA(r,0|tr[e+72>>0]),MA(r,-4096|or[e+74>>1]),JA(r,-4|tr[e+76>>0]),JA(r,-4|tr[e+77>>0]),JA(r,-8|tr[e+78>>0]),JA(r,-8|tr[e+79>>0]),MA(r,0|or[e+80>>1]),JA(r,255&(255&(tr[e+83>>0]<<3&56|tr[e+82>>0]<<6&255|tr[e+84>>0]<<2&4)|3+(0|cr[e+88>>0])&3)),f=e+92|0,JA(r,((0|ar[(o=e+96|0)>>2])-(0|ar[f>>2])|0)>>>4&255),(0|(f=0|ar[f>>2]))!=(0|(o=0|ar[o>>2])))do{if(JA(r,tr[f>>0]<<6&64|63&tr[f+1>>0]),n=f+4|0,MA(r,65535&(((0|ar[(t=f+8|0)>>2])-(0|ar[n>>2])|0)/12|0)),(0|(n=0|ar[n>>2]))!=(0|(t=0|ar[t>>2])))for(;MA(r,(0|ar[n+4>>2])-(0|ar[n>>2])&65535),zA(r,n),(0|(n=n+12|0))!=(0|t););f=f+16|0}while((0|f)!=(0|o));if(KA(a,e,r,c),0<=(0|tr[(f=a+8|0)+11>>0]))return e=0|ar[(e=a=56592)>>2],a=0|ar[(a=a+4|0)>>2],ar[(r=c=A)>>2]=e,ar[(c=c+4|0)>>2]=a,yu(A=A+8|0,56600),void(ur=i);vu(0|ar[f>>2]),e=0|ar[(e=a=56592)>>2],a=0|ar[(a=a+4|0)>>2],ar[(r=c=A)>>2]=e,ar[(c=c+4|0)>>2]=a,yu(A=A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;for(ur=(i=ur)+32|0,I=i+16|0,W=i,n=0|IA(r|=0),tr[e+56>>0]=n,f=255&(n=0|IA(r)),tr[e+57>>0]=(255&n)>>>6,tr[e+58>>0]=f>>>5&1,tr[e+59>>0]=31&f,f=0|FA(r),ar[e+60>>2]=f,n=(f=0)|IA(r);p=255&n,y=1<<(24&(B=f<<3)),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=128&p|0?Z|y:Z&~y,y=1<<(24&B|1),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=64&p|0?Z|y:Z&~y,y=1<<(24&B|2),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=32&p|0?Z|y:Z&~y,y=1<<(24&B|3),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=16&p|0?Z|y:Z&~y,y=1<<(24&B|4),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=8&p|0?Z|y:Z&~y,y=1<<(24&B|5),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=4&p|0?Z|y:Z&~y,y=1<<(24&B|6),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=2&p|0?Z|y:Z&~y,B=1<<(24&B|7),y=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=1&p|0?y|B:y&~B,f=f+1|0,n=0|IA(r),6!=(0|f););tr[e+72>>0]=n,k=4095&(0|VA(r)),or[e+74>>1]=k,k=3&(0|IA(r)),tr[e+76>>0]=k,k=3&(0|IA(r)),tr[e+77>>0]=k,k=7&(0|IA(r))|8,tr[e+78>>0]=k,k=7&(0|IA(r))|8,tr[e+79>>0]=k,k=0|VA(r),or[e+80>>1]=k,E=255&(k=0|IA(r)),tr[e+82>>0]=(255&k)>>>6,tr[e+83>>0]=E>>>3&7,tr[e+84>>0]=E>>>2&1,tr[e+88>>0]=1+(3&E),k=255&(E=0|IA(r));A:do{if(E<<24>>24){h=r+24|0,v=I+8|0,g=I+1|0,Z=e+96|0,p=e+100|0,B=m=I+12|0,E=y=w=I+4|0,l=e+92|0,u=W+4|0,s=r+4|0,d=b=W+8|0,c=0;do{if(0|tr[h>>0])break A;o=0|IA(r),ar[w>>2]=0,ar[v>>2]=0,ar[m>>2]=0,o&=255,tr[I>>0]=o>>>6&1,tr[g>>0]=63&o,a=65535&(o=0|VA(r));e:do{if(o<<16>>16){o=0;do{if(0|tr[h>>0])break e;ar[W>>2]=0,ar[u>>2]=0,t=65535&(f=(ar[b>>2]=0)|VA(r));do{if(f<<16>>16){do{if(0|CA(r,65535&f,0)){if(t>>>0<=(f=(e=0|ar[u>>2])-(n=0|ar[W>>2])|0)>>>0?t>>>0>>0&&(0|e)!=(0|(X=n+t|0))&&(ar[u>>2]=X):TA(W,t-f|0),f=0|ar[r>>2],n=0|ar[s>>2]){bu(n),xb[63&ar[16+(0|ar[f>>2])>>2]](f,0|ar[W>>2],t),du(n);break}xb[63&ar[16+(0|ar[f>>2])>>2]](f,0|ar[W>>2],t);break}}while(0);if((f=0|ar[v>>2])>>>0<(0|ar[B>>2])>>>0){ar[f>>2]=0,ar[(t=f+4|0)>>2]=0,ar[f+8>>2]=0,ar[f>>2]=ar[W>>2],ar[t>>2]=ar[u>>2],ar[f+8>>2]=ar[d>>2],ar[d>>2]=0,ar[u>>2]=0,ar[W>>2]=0,ar[v>>2]=12+(0|ar[v>>2]);break}ue(y,W);break}}while(0);0|(f=0|ar[W>>2])&&((0|ar[u>>2])!=(0|f)&&(ar[u>>2]=f),vu(f)),o=o+1|0}while((0|o)<(0|a))}}while(0);if((f=0|ar[Z>>2])>>>0>=(0|ar[p>>2])>>>0){if(le(l,I),0|(f=0|ar[E>>2])){if((0|(n=0|ar[v>>2]))!=(0|f)){for(;e=n+-12|0,ar[v>>2]=e,(0|(n=(t=0|ar[e>>2])?((0|ar[(n=n+-8|0)>>2])!=(0|t)&&(ar[n>>2]=t),vu(t),0|ar[v>>2]):e))!=(0|f););f=0|ar[E>>2]}vu(f)}}else or[f>>1]=0|or[I>>1],ar[(o=f+4|0)>>2]=0,ar[(a=f+8|0)>>2]=0,ar[f+12>>2]=0,ar[o>>2]=ar[y>>2],ar[a>>2]=ar[v>>2],ar[f+12>>2]=ar[B>>2],ar[B>>2]=0,ar[v>>2]=0,ar[y>>2]=0,ar[Z>>2]=16+(0|ar[Z>>2]);c=c+1|0}while((0|c)<(0|k))}}while(0);if(n=0|ar[(f=t=r+16|0)>>2],0<(0|(f=0|ar[f+4>>2]))|0==(0|f)&0>>0&&((e=0|ar[r+8>>2])&&(_A(e,n,f),n=0|ar[(f=t)>>2],f=0|ar[f+4>>2]),X=0|ar[r>>2],W=0|ar[X>>2],E=0|ar[W+20>>2],W=0|tb(0|(W=0|jb[127&ar[W+8>>2]](X)),0|D,0|n,0|f),xb[63&E](X,W,D),ar[(W=t)>>2]=0,ar[W+4>>2]=0),!(0|tr[r+24>>0]))return r=0|ar[(W=56592)+4>>2],ar[(I=A)>>2]=ar[W>>2],ar[I+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[I>>2]=0,ar[I+4>>2]=0,ar[I+8>>2]=0,oo(A,2,100,I),ur=(0<=(0|tr[I+11>>0])||vu(0|ar[I>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,18907,9),c=0|We(0|Pf(c,0|cr[e+56>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20644,13),c=0|We(0|Pf(c,0|cr[e+57>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20658,17),c=0|We(0|Pf(c,0|cr[e+58>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20676,15),c=0|We(0|Pf(c,0|cr[e+60>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20692,12),c=0|We(0|Pf(c,0|cr[e+61>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20705,22),c=0|We(0|Pf(c,0|cr[e+63>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20728,22),c=0|We(0|Pf(c,0|cr[e+64>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20751,24),c=0|We(0|Pf(c,0|cr[e+65>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(c,20776,28),0|tr[e+66>>0]?We(0|Pf(f,1+(0|cr[e+67>>0])|0),30086,1):We(f,20805,12),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(f,20818,12),r=e+68|0,(0|ar[(c=e+72|0)>>2])!=(0|ar[r>>2]))for(a=0;l=(u=0|We(f,20449,1))+(0|ar[(0|ar[u>>2])-12>>2])+4|0,ar[l>>2]=-75&ar[l>>2]|8,ar[u+(0|ar[(0|ar[u>>2])-12>>2])+76>>2]=48,ar[u+(0|ar[(0|ar[u>>2])-12>>2])+12>>2]=2,Pf(u,0|cr[(0|ar[r>>2])+a>>0]),(a=a+1|0)>>>0<((0|ar[c>>2])-(0|ar[r>>2])|0)>>>0;);if(u=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|2,We(f,30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),JA(r,-128|tr[e+56>>0]),JA(r,31&tr[e+58>>0]|tr[e+57>>0]<<5&255),JA(r,255&((0|tr[e+60>>0]?64:0)|(0|tr[e+59>>0]?128:0)|(0|tr[e+61>>0]?32:0)|(0|tr[e+62>>0]?16:0)|(0|tr[e+63>>0]?8:0)|(0|tr[e+64>>0]?4:0)|3&tr[e+65>>0])),JA(r,0),KA(f,e,r,n),0<=(0|tr[(e=f+8|0)+11>>0]))return e=0|ar[(e=f=56592)>>2],f=0|ar[(f=f+4|0)>>2],ar[(r=n=A)>>2]=e,ar[(n=n+4|0)>>2]=f,yu(n=A+8|0,56600),void(ur=i);vu(0|ar[e>>2]),e=0|ar[(e=f=56592)>>2],f=0|ar[(f=f+4|0)>>2],ar[(r=n=A)>>2]=e,ar[(n=n+4|0)>>2]=f,yu(n=A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0;if(ur=(o=ur)+16|0,w=o,k=127&(0|IA(r|=0)),tr[e+56>>0]=k,k=0|IA(r),tr[e+57>>0]=(255&k)>>>5,tr[e+58>>0]=31&k,d=255&(k=0|IA(r)),tr[e+59>>0]=(255&k)>>>7,tr[e+60>>0]=d>>>6&1,tr[e+61>>0]=d>>>5&1,tr[e+62>>0]=d>>>4&1,tr[e+63>>0]=d>>>3&1,tr[e+64>>0]=d>>>2&1,tr[e+65>>0]=3&d,k=(d=255&(0|IA(r)))>>>4&1,(tr[e+66>>0]=k)<<24>>24&&(tr[e+67>>0]=15&d),t=0|ar[(k=r+16|0)>>2],k=0|ar[k+4>>2],n=e+68|0,t>>>0<=(i=(f=0|ar[(e=e+72|0)>>2])-(d=0|ar[n>>2])|0)>>>0?t>>>0>>0&&(0|f)!=(0|(h=d+t|0))&&(ar[e>>2]=h):(TA(n,t-i|0),d=0|ar[n>>2]),a=r,c=d,l=t,u=k,c|=0,a=0|CA(a|=0,l|=0,u|=0)?(u=0|ar[a>>2],(s=0==(0|(b=0|ar[a+4>>2])))||bu(b),(u=0|xb[63&ar[16+(0|ar[u>>2])>>2]](u,c,l))||GA(a),s||du(b),u):0,!(0|tr[r+24>>0]))return r=0|ar[(h=56592)+4>>2],ar[(w=A)>>2]=ar[h>>2],ar[w+4>>2]=r,yu(A+8|0,56600),void(ur=o);ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,oo(A,2,100,w),ur=(0<=(0|tr[w+11>>0])||vu(0|ar[w>>2]),o)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(o=ur)+160|0,c=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,Xe(t,c),(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),LA(c,e,r),We(f,(u=(l=0|tr[(a=c+11|0)>>0])<<24>>24<0)?0|ar[c>>2]:c,u?0|ar[c+4>>2]:255&l),(0|tr[a>>0])<0&&vu(0|ar[c>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(f,20536,22),We(0|Kf(l,u=0|ob(0|ar[(u=e+8|0)>>2],0|ar[u+4>>2],0|ar[e+16>>2],0),D),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),zA(r,e+72|0),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+16|0,i=f,n=0|ar[(r|=0)>>2],(t=0|ar[r+4>>2])?(bu(t),o=0|jb[127&ar[8+(0|ar[n>>2])>>2]](n),ar[(n=e+56|0)>>2]=0,ar[n+4>>2]=0,ar[(n=e+64|0)>>2]=o,ar[n+4>>2]=D,du(t)):(n=0|jb[127&ar[8+(0|ar[n>>2])>>2]](n),ar[(t=e+56|0)>>2]=0,ar[t+4>>2]=0,ar[(t=e+64|0)>>2]=n,ar[t+4>>2]=D),!(0|tr[r+24>>0]))return t=0|ar[(n=56592)+4>>2],ar[(o=A)>>2]=ar[n>>2],ar[o+4>>2]=t,yu(A+8|0,56600),void(ur=f);ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,oo(A,2,100,i),ur=(0<=(0|tr[i+11>>0])||vu(0|ar[i>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(b=0|tr[(s=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&b),(0|tr[s>>0])<0&&vu(0|ar[f>>2]),(0|(c=0|ar[e+56>>2]))!=(0|(u=0|ar[e+60>>2]))){b=11+f|0,s=4+f|0;do{if(0<(0|ar[r>>2]))for(e=0;We(n,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(d=0|We(n,20408,12),xA(f,c),l=0|We(0|We(d,(e=(l=0|tr[b>>0])<<24>>24<0)?0|ar[f>>2]:f,e?0|ar[s>>2]:255&l),30086,1),0<(0|ar[r>>2]))for(e=0;We(l,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(l=0|We(l,20421,12),l=0|We(0|Lf(l,0|ar[c+48>>2]),30086,1),0<(0|ar[r>>2]))for(e=0;We(l,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(We(l,20434,14),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),(0|(e=0|ar[c+52>>2]))!=(0|(l=0|ar[c+56>>2])))for(;We(0|Lf(n,0|ar[e>>2]),20449,1),(0|(e=e+4|0))!=(0|l););We(n,30086,1),c=c+64|0}while((0|c)!=(0|u))}if(Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0;for(ur=(Z=ur)+96|0,v=(r|=0)+16|0,m=8+(h=Z+24|0)|0,g=40+h|0,X=56+h|0,l=(w=Z)+8|0,u=11+(c=(A|=0)+8|0)|0,b=A+12|0,s=48+h|0,d=(e|=0)+60|0,k=e+64|0,i=e+56|0,f=a=60+h|0,n=E=52+h|0,t=24+h|0,o=28+h|0;!(0==(0|ar[(B=v)>>2])&0==(0|ar[B+4>>2]));){if(ar[h>>2]=4264,ar[g>>2]=0,ar[m>>2]=0,ar[4+m>>2]=0,ar[8+m>>2]=0,ar[12+m>>2]=0,ar[16+m>>2]=0,ar[20+m>>2]=0,ar[24+m>>2]=0,or[28+m>>1]=0,ar[E>>2]=0,ar[X>>2]=0,ar[a>>2]=0,re(A,h,r),(0|ar[A>>2])==(0|ar[14148]))if(qA(w,h,r),y=0|ar[(p=w)+4>>2],ar[(B=A)>>2]=ar[p>>2],ar[B+4>>2]=y,(0|tr[u>>0])<0?(tr[ar[c>>2]>>0]=0,ar[b>>2]=0):(tr[c>>0]=0,tr[u>>0]=0),Cu(c,0),ar[c>>2]=ar[l>>2],ar[4+c>>2]=ar[4+l>>2],ar[8+c>>2]=ar[8+l>>2],(0|ar[A>>2])==(0|ar[14148])){p=0|FA(r),ar[s>>2]=p,p=0|FA(r);A:do{if(0<(0|p)){e=0;do{if(0==(0|ar[(B=v)>>2])&0==(0|ar[B+4>>2]))break A;y=0|FA(r),ar[w>>2]=y,(B=0|ar[X>>2])>>>0<(0|ar[f>>2])>>>0?(ar[B>>2]=y,ar[X>>2]=B+4):Ce(n,w),e=e+1|0}while((0|e)<(0|p))}}while(0);(0|(e=0|ar[d>>2]))==(0|ar[k>>2])?ae(i,h):(oe(e,h),ar[d>>2]=64+(0|ar[d>>2])),y=((0|tr[u>>0])<0&&vu(0|ar[c>>2]),0)}else y=1;else y=1;if(0|(e=0|ar[E>>2])&&((0|(p=0|ar[X>>2]))!=(0|e)&&(ar[X>>2]=p+(~((p+-4-e|0)>>>2)<<2)),vu(e)),ar[h>>2]=4264,0|(e=0|ar[t>>2])&&((0|ar[o>>2])!=(0|e)&&(ar[o>>2]=e),vu(e)),1==(0|y)){W=33;break}}ur=(33!=(0|W)&&(0|tr[r+24>>0]?(ar[h>>2]=0,ar[4+h>>2]=0,ar[8+h>>2]=0,oo(A,2,100,h),(0|tr[11+h>>0])<0&&vu(0|ar[h>>2])):(X=0|ar[(E=56592)+4>>2],ar[(W=A)>>2]=ar[E>>2],ar[W+4>>2]=X,yu(c,56600))),Z)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){$A(A|=0,e|=0,r|=0,-1)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0;var i,f=0;ur=(i=ur)+32|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),$A(A,e,r,0|FA(r)),ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(r=0|We(f,20144,10),We(0|We(r,(l=(u=0|tr[(c=e+56|0)+11>>0])<<24>>24<0)?0|ar[c>>2]:c,l?0|ar[e+60>>2]:255&u),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0;var i,f,n=0,t=0;if(ur=(f=ur)+32|0,t=f+20|0,qA(n=f,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),RA(t,r),(0|tr[(i=(n=e+56|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+60>>2]=0):(tr[n>>0]=0,tr[i>>0]=0),Cu(n,0),ar[n>>2]=ar[t>>2],ar[n+4>>2]=ar[t+4>>2],ar[n+8>>2]=ar[t+8>>2],!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(t=A)>>2]=ar[e>>2],ar[t+4>>2]=r,yu(A+8|0,56600),void(ur=f);ar[t>>2]=0,ar[t+4>>2]=0,ar[t+8>>2]=0,oo(A,2,100,t),ur=(0<=(0|tr[t+11>>0])||vu(0|ar[t>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),0<(0|ar[r>>2]))for(c=0;We(n,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(n,20027,13),e=0|ar[(c=e+56|0)>>2],e=0|jb[127&ar[8+(0|ar[e>>2])>>2]](e),ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[(u=11+f|0)>>0]=4,tr[4+f>>0]=0,tr[f>>0]=e>>>24,tr[1+f>>0]=e>>>16,tr[2+f>>0]=e>>>8,tr[3+f>>0]=e,We(0|We(l,f,4),30086,1),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),(c=0|ar[c>>2])?(ns[127&ar[12+(0|ar[c>>2])>>2]](f,c,r),We(n,(r=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,r?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2])):We(n,20041,17),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0;if(ur=(f=ur)+48|0,t=(a=f)+20|0,o=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),(n=0|ar[(i=e+56|0)>>2])||sr(20011,19104,1857,19563),UA(r,0|jb[127&ar[8+(0|ar[n>>2])>>2]](n)),n=0|ar[i>>2],ns[127&ar[16+(0|ar[n>>2])>>2]](a,n,r),0|ar[a>>2])return t=0|ar[(r=a)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,a=a+8|0,ar[(A=A+8|0)>>2]=ar[a>>2],ar[A+4>>2]=ar[a+4>>2],ar[A+8>>2]=ar[a+8>>2],ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,void(ur=f);KA(t,e,r,o),(0|tr[(e=t+8|0)+11>>0])<0&&vu(0|ar[e>>2]),t=0|ar[(r=56592)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=(0<=(0|tr[a+8+11>>0])||vu(0|ar[a+8>>2]),f)},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;ur=(f=ur)+64|0,b=f+40|0,l=f+36|0,o=f+24|0,i=f+16|0,n=f,t=0|FA(r|=0),ar[l>>2]=t;A:do{if(1886547814<=(0|t)){if((0|t)<1917403971)switch(0|t){case 1886547814:break;default:s=26;break A}else switch(0|t){case 1917403971:break;default:s=26;break A}if(0|NA(r,a=0|tb(0|(a=0|ob(0|ar[(a=e+8|0)>>2],0|ar[a+4>>2],0|ar[e+16>>2],0)),0|D,-4,-1),c=D))return ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,oo(A,2,100,o),0<=(0|tr[o+11>>0])||vu(0|ar[o>>2]),void(ur=f);if(ar[b>>2]=0,ar[(o=b+4|0)>>2]=0,(ar[b+8>>2]=0)|a)for((0|a)<0&&zl(),t=0|hu(a),ar[o>>2]=t,ar[b>>2]=t,ar[b+8>>2]=t+a,n=a;t=1+((tr[t>>0]=0)|ar[o>>2])|0,ar[o>>2]=t,0!=(0|(n=n+-1|0)););if(!(0==(0|a)&0==(0|c)))for(n=0;t=0|IA(r),tr[(0|ar[b>>2])+n>>0]=t,0>>0|0==(0|c)&(n=n+1|0)>>>0>>0;);fe(i,l,b),n=0|ar[i>>2],l=0|ar[(t=4+i|0)>>2],ar[i>>2]=0,ar[t>>2]=0,ar[e+56>>2]=n,n=0|ar[(e=e+60|0)>>2],ar[e>>2]=l,0|n&&(du(n),0|(u=0|ar[t>>2]))&&du(u),0|(n=0|ar[b>>2])&&((0|ar[o>>2])!=(0|n)&&(ar[o>>2]=n),vu(n))}else{switch(0|t){case 1852009592:break;default:s=26;break A}if(o=0|hu(24),ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o>>2]=6064,ar[(t=o+12|0)>>2]=6092,or[o+16>>1]=2,or[o+18>>1]=2,or[o+20>>1]=6,tr[o+22>>0]=1,bu(o),ar[e+56>>2]=t,n=0|ar[(e=e+60|0)>>2],ar[e>>2]=o,0|n&&du(n),ie(A,t,r),0|ar[A>>2])return du(o),void(ur=f);(0|tr[(n=A+8|0)+11>>0])<0&&vu(0|ar[n>>2]),du(o)}}while(0);if(26==(0|s))return ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,126,n),0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),void(ur=f);0|tr[r+24>>0]?(ar[b>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,oo(A,2,100,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2])):(b=0|ar[(r=56592)+4>>2],ar[(s=A)>>2]=ar[r>>2],ar[s+4>>2]=b,yu(A+8|0,56600)),ur=f},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(c=(a=0|tr[(u=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,c?0|ar[l+4>>2]:255&a),(0|tr[u>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(We(f,19569,18),u=e+56|0,e=e+60|0,l=0|ar[u>>2],(0|ar[e>>2])!=(0|l))for(r=0;r&&(We(f,19588,1),l=0|ar[u>>2]),Pf(f,0|cr[l+r>>0]),r=r+1|0,l=0|ar[u>>2],r>>>0<((0|ar[e>>2])-l|0)>>>0;);if(We(f,30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f,n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+32|0,c=t,l=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),f=e+56|0,255<(i=(o=0|ar[(n=e+60|0)>>2])-(a=0|ar[f>>2])|0)>>>0&&sr(55739,19104,1919,19563),(0|a)==(0|o)&&sr(55739,19104,1919,19563),JA(r,255&i),o=0|ar[f>>2],(0|ar[n>>2])!=(0|o))for(a=0;JA(r,0|tr[o+a>>0]),a=a+1|0,o=0|ar[f>>2],a>>>0<((0|ar[n>>2])-o|0)>>>0;);KA(c,e,r,l),(0|tr[(o=c+8|0)+11>>0])<0&&vu(0|ar[o>>2]),c=0|ar[(r=56592)+4>>2],ar[(l=A)>>2]=ar[r>>2],ar[l+4>>2]=c,yu(A+8|0,56600),ur=t},function(A,e,r){A|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+48|0,u=o+32|0,qA(a=(c=o)+12|0,e|=0,r|=0),(0|tr[(a=a+8|0)+11>>0])<0&&vu(0|ar[a>>2]),0|NA(r,255&(f=0|IA(r)),0))return ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,oo(A,2,100,c),0<=(0|tr[c+11>>0])||vu(0|ar[c>>2]),void(ur=o);if(n=e+56|0,(t=255&f)>>>0<=(c=(i=0|ar[(a=e+60|0)>>2])-(e=0|ar[n>>2])|0)>>>0?t>>>0>>0&&(0|i)!=(0|(l=e+t|0))&&(ar[a>>2]=l):TA(n,t-c|0),f<<24>>24)for(a=0;l=0|IA(r),tr[(0|ar[n>>2])+a>>0]=l,(0|(a=a+1|0))!=(0|t););0|tr[r+24>>0]?(ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,oo(A,2,100,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2])):(r=0|ar[(l=56592)+4>>2],ar[(u=A)>>2]=ar[l>>2],ar[u+4>>2]=r,yu(A+8|0,56600)),ur=o},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,19818,18),c=0|We(0|xf(c,0|or[e+4>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,19837,26),c=0|We(0|xf(c,0|or[e+6>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,19864,21),c=0|We(0|xf(c,0|or[e+8>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(r=0|We(c,19886,17),We(0|Hf(r,0!=(0|tr[e+10>>0])),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,MA(r|=0,0|or[(e|=0)+4>>1]),MA(r,0|or[e+6>>1]),MA(r,0|or[e+8>>1]),JA(r,0|tr[e+10>>0]?-128:0),e=0|ar[14149],ar[(r=A)>>2]=ar[14148],ar[r+4>>2]=e,yu(A+8|0,56600)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(r=0|We(f,19675,14),We(0|Lf(r,(0|ar[e+12>>2])-(0|ar[e+8>>2])|0),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,zA(r|=0,(e|=0)+8|0),e=0|ar[14149],ar[(r=A)>>2]=ar[14148],ar[r+4>>2]=e,yu(A+8|0,56600)},function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;for(ur=(o=ur)+32|0,i=o+20|0,f=o+16|0,n=o+12|0,t=o,ar[(A|=0)>>2]=ar[1904],ar[A+4>>2]=ar[1905],ar[A+8>>2]=ar[1906],a=0|ar[e>>2],Wa(a=548+(a|=0)|0),Wa(a),tr[a>>0]=1,ar[r>>2]=0;;){if((ar[n>>2]=0)|Ee(0|ar[e>>2],n)){l=28;break}if(0|(m=0|Fe(0|ar[e>>2]))){for(0|(c=0|ar[r>>2])&&hl(c),l=0==(0|De(m)),Z=0|hu(80),ar[Z+4>>2]=0,ar[Z+8>>2]=0,ar[Z>>2]=6208,ar[(v=Z+12|0)>>2]=0,ar[v+4>>2]=0,ar[v+8>>2]=0,ar[v+12>>2]=0,ar[v+16>>2]=0,ar[Z+32>>2]=34395,ar[Z+36>>2]=0,ar[Z+40>>2]=0,ar[Z+44>>2]=99,ar[Z+48>>2]=99,w=Z+52|0,ar[(g=Z+72|0)>>2]=0,ar[Z+76>>2]=0,ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,ar[w+12>>2]=0,ar[Z+68>>2]=g,g=v,w=Z+16|0,bu(p=Z),su(Z),c=0|ar[w>>2],ar[v>>2]=g,ar[w>>2]=p,0|c&&ku(c),du(Z),yo(v,d=0|_e(m,0),s=0|Ye(m,0),l?2:0,w=0|De(m)),s=l?1:3,d=((w=0|Qe(m,0))+7|0)/8|0,b=0;;){if((0|Qe(m,b))!=(0|w)){l=10;break}if(k=0|Je(m,b,i),(0|(l=0|_e(m,b)))<1|(0|(h=0|Ye(m,b)))<1){l=12;break}if(!(0|Bo(v,c=0|ar[7628+(b<<2)>>2],l,h,w))){l=14;break}if(u=0|Fo(v,c,f),0<(0|h))for(l=0|br(l,d),c=0;hb(0|(y=u+(0|br(0|ar[f>>2],c))|0),k+(0|br(0|ar[i>>2],c))|0,0|l),(0|(c=c+1|0))!=(0|h););if((0|s)<=(0|(b=b+1|0))){l=20;break}}if(10==(0|l)?(l=0,ar[t>>2]=ar[1910],ar[t+4>>2]=ar[1911],ar[t+8>>2]=ar[1912]):12==(0|l)?(ar[t>>2]=ar[1913],ar[t+4>>2]=ar[1914],ar[t+8>>2]=ar[1915],l=18):14==(0|l)?(ar[t>>2]=ar[1916],ar[t+4>>2]=ar[1917],ar[t+8>>2]=ar[1918],l=18):20==(0|l)&&(c=(l=0)|hu(8),ar[c>>2]=0,ar[(y=c+4|0)>>2]=0,ar[r>>2]=c,bu(Z),ar[c>>2]=g,c=0|ar[y>>2],ar[y>>2]=p,0|c&&du(c),ar[t>>2]=ar[1904],ar[t+4>>2]=ar[1905],ar[t+8>>2]=ar[1906]),du(Z),ar[A>>2]=ar[t>>2],ar[A+4>>2]=ar[t+4>>2],ar[A+8>>2]=ar[t+8>>2],0|ar[A>>2]){l=28;break}c=0|hu(24),ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c>>2]=6064,ar[(l=c+12|0)>>2]=6092,or[c+16>>1]=0,or[c+18>>1]=0,or[c+20>>1]=0,tr[c+22>>0]=1,jt(l),y=0|ar[ar[r>>2]>>2],bu(c),bu(c),ar[y+40>>2]=l,l=0|ar[(y=y+44|0)>>2],ar[y>>2]=c,0|l&&du(l),du(c),Re(0|ar[e>>2]),du(c)}if(!(0|ar[n>>2])){l=28;break}}28!=(0|l)||(ur=o)},function(A,e,r){A|=0,0|(A=0|ar[(e|=0)+4>>2])&&Bc(A),0|(A=0|ar[e+8>>2])&&Bc(A),(A=0|ar[e+12>>2])&&Bc(A)},function(A,e,r){var i,f,n,t;A|=0,e|=0,ur=(i=ur)+32|0,f=i,t=(n=0|tr[(r|=0)+11>>0])<<24>>24<0,function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;ur=(a=ur)+32|0,o=a,u=0|hu(132),ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u>>2]=6364,co(c=u+12|0),ar[(n=e+60|0)>>2]=c,t=0|ar[(l=e+64|0)>>2],ar[l>>2]=u,t&&(du(t),c=0|ar[n>>2]);if(ko(o,c,r,i,f),0|ar[o>>2])return u=0|ar[(f=o)+4>>2],ar[(l=A)>>2]=ar[f>>2],ar[l+4>>2]=u,u=o+8|0,ar[(l=A+8|0)>>2]=ar[u>>2],ar[l+4>>2]=ar[u+4>>2],ar[l+8>>2]=ar[u+8>>2],ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ur=a;if(function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0,sA=0,dA=0,kA=0,hA=0,wA=0,vA=0,mA=0,gA=0,ZA=0,pA=0,yA=0,BA=0,EA=0,XA=0,WA=0,IA=0,CA=0,GA=0,VA=0,FA=0,RA=0,NA=0,_A=0,YA=0,QA=0,DA=0,JA=0,MA=0,TA=0,UA=0,SA=0,OA=0,zA=0,jA=0,HA=0,xA=0,PA=0,LA=0,KA=0,qA=0,$A=0,Ae=0,ee=0,re=0,ie=0,fe=0,ne=0,te=0,oe=0,ae=0,ce=0,le=0,ue=0,be=0,se=0,de=0,ke=0,he=0,we=0,ve=0,me=0,ge=0,Ze=0,pe=0,ye=0,Be=0,Ee=0;if(ur=(C=ur)+656|0,y=C+640|0,I=C+616|0,q=C+628|0,ye=C+604|0,Be=C+144|0,lA=(Ee=C)+592|0,uA=C+584|0,r=C+572|0,i=C+560|0,f=C+548|0,n=C+536|0,t=C+384|0,p=C+392|0,o=C+372|0,a=C+348|0,c=C+360|0,l=C+328|0,u=C+316|0,b=C+304|0,s=C+292|0,d=C+280|0,k=C+268|0,h=C+256|0,w=C+248|0,de=C+240|0,v=C+232|0,m=C+216|0,Ze=C+208|0,pe=C+200|0,B=C+188|0,E=C+176|0,X=C+168|0,vl(ge=28+(e|=0)|0,0|ar[(W=e+32|0)>>2]),ar[(P=e+36|0)>>2]=0,ar[ge>>2]=W,ar[W>>2]=0,F=0|ar[(L=e+40|0)>>2],(0|(G=0|ar[(K=e+44|0)>>2]))!=(0|F))for(;V=G+-8|0,ar[K>>2]=V,G=(G=0|ar[G+-4>>2])?(du(G),0|ar[K>>2]):V,(0|G)!=(0|F););ar[(H=e+52|0)>>2]=0,G=0|ar[(x=e+56|0)>>2],ar[x>>2]=0,0|G&&du(G);if(function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0;if(ur=(t=ur)+16|0,f=t,ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,((ar[A+8>>2]=0)|(o=0|ar[e+108>>2]))!=(0|(r=e+112|0))){for(i=A+8|0,c=o,a=o=0;;){if(e=0|ar[56+(0|ar[c+20>>2])>>2],ar[f>>2]=e,o>>>0>>0?(ar[o>>2]=e,ar[n>>2]=o+4):Ce(A,f),e=0|ar[c+4>>2])for(;o=0|ar[e>>2];)e=o;else if(e=0|ar[(o=c+8|0)>>2],(0|ar[e>>2])!=(0|c))for(;c=0|ar[o>>2],e=0|ar[(o=c+8|0)>>2],(0|ar[e>>2])!=(0|c););if((0|e)==(0|r))break;c=e,o=0|ar[n>>2],a=0|ar[i>>2]}ur=t}else ur=t}(I,0|ar[(g=e+60|0)>>2]),G=0|ar[I>>2],M=0|ar[(Z=4+I|0)>>2],(0|G)!=(0|M)){T=11+y|0,O=U=4+y|0,z=(S=e)+32|0,j=e+48|0;do{J=0|ar[G>>2],N=112+(0|ar[g>>2])|0,F=0|ar[N>>2];do{if(0|F){V=N;A:for(;;){for(R=F;!((0|ar[R+16>>2])>>>0>=J>>>0);){if(!(F=0|ar[R+4>>2]))break A;R=F}if(!(F=0|ar[R>>2])){V=R;break}V=R}if((0|V)!=(0|N)&&(0|ar[V+16>>2])>>>0<=J>>>0){if(F=0|ar[V+20>>2],V=0|ar[V+24>>2],D=V?(bu(V),V):0,!(Q=F)){if(!D)break;du(D);break}yu(y,Q+64|0),F=0|tr[T>>0],V=0|ar[U>>2],4==(0|(F<<24>>24<0?V:255&F))?0|Yu(y,0,-1,30298,4)?(F=0|tr[T>>0],V=0|ar[U>>2],me=23):V=1:me=23;do{if(23==(0|me)){if(4==((me=0)|(F<<24>>24<0?V:255&F))){if(!(0|Yu(y,0,-1,30303,4))){V=1;break}F=0|tr[T>>0],V=0|ar[U>>2]}if(4==(0|(F<<24>>24<0?V:255&F))){if(!(0|Yu(y,0,-1,30308,4))){V=1;break}F=0|tr[T>>0],V=0|ar[U>>2]}if(4==(0|(F<<24>>24<0?V:255&F))){if(!(0|Yu(y,0,-1,30313,4))){V=1;break}F=0|tr[T>>0],V=0|ar[U>>2]}V=4==(0|(F<<24>>24<0?V:255&F))?0==(0|Yu(y,0,-1,30318,4)):0}}while(0);if((0|tr[T>>0])<0&&vu(0|ar[y>>2]),V){for(Y=0|hu(232),ar[Y+4>>2]=0,ar[Y+8>>2]=0,ar[Y>>2]=6392,ar[(V=Y+16|0)>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=0,ar[Y+28>>2]=30025,ar[Y+32>>2]=S,ar[Y+36>>2]=J,ve=Y+60|0,rA=Y+80|0,iA=Y+96|0,F=Y+176|0,R=Y+112|0,ar[(we=Y+40|0)>>2]=0,ar[we+4>>2]=0,ar[we+8>>2]=0,ar[we+12>>2]=0,or[we+16>>1]=0,ar[ve>>2]=0,ar[ve+4>>2]=0,ar[ve+8>>2]=0,ar[ve+12>>2]=0,or[ve+16>>1]=0,ar[rA>>2]=0,ar[rA+4>>2]=0,ar[rA+8>>2]=0,tr[rA+12>>0]=0,ar[iA>>2]=0,ar[iA+4>>2]=0,ar[iA+8>>2]=0,tr[iA+12>>0]=0,rA=(iA=R)+60|0;((ar[iA>>2]=0)|(iA=iA+4|0))<(0|rA););for(tr[R+60>>0]=0,rA=(iA=F)+52|0;((ar[iA>>2]=0)|(iA=iA+4|0))<(0|rA););ar[y>>2]=V,ar[O>>2]=Y,N=V,bu(_=Y),V=0|ar[W>>2];do{if(V){for(R=z;;)if(F=0|ar[V+16>>2],J>>>0>>0){if(!(F=0|ar[V>>2])){me=41;break}R=V,V=F}else{if(J>>>0<=F>>>0){me=45;break}if(!(F=0|ar[(R=V+4|0)>>2])){me=44;break}V=F}if(41==(0|me)){me=0,R=F=V;break}if(44==(0|me)){me=0,F=V;break}if(45==(0|me)){me=0,F=V;break}}else R=F=W}while(0);0|ar[R>>2]?du(Y):(V=0|hu(28),ar[V+16>>2]=J,ar[V+20>>2]=N,ar[V+24>>2]=_,ar[V>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=F,ar[R>>2]=V,(F=0|ar[ar[ge>>2]>>2])&&(ar[ge>>2]=F,V=0|ar[R>>2]),so(0|ar[z>>2],V),ar[P>>2]=1+(0|ar[P>>2]));do{if(!(0|tr[Q+124>>0])){do{if((0|J)==(0|ar[56+(0|ar[84+(0|ar[g>>2])>>2])>>2])){if(V=0|ar[y>>2],tr[V+40>>0]=1,0|(F=0|ar[O>>2])&&bu(F),ar[H>>2]=V,V=0|ar[x>>2],ar[x>>2]=F,!V)break;du(V)}}while(0);if((0|(V=0|ar[K>>2]))==(0|ar[j>>2])){kl(L,y);break}ar[V>>2]=ar[y>>2],F=0|ar[O>>2],(ar[V+4>>2]=F)&&(bu(F),V=0|ar[K>>2]),ar[K>>2]=V+8}}while(0);0|(V=0|ar[O>>2])&&du(V)}0|D&&du(D)}}}while(0);G=G+4|0}while((0|G)!=(0|M))}A:do{if(0|ar[H>>2]){if((0|(G=0|ar[ge>>2]))!=(0|W))for(M=ye+4|0,T=ye+8|0,U=uA+4|0,S=e+72|0,j=Ee+12|0,H=Ee+4|0,x=O=Ee+64|0,P=Ee+136|0,L=Ee+140|0,q=Ee+60|0,$=11+y|0,AA=z=Ee+8|0,eA=e+76|0,rA=lA+11|0,iA=(K=Ee+44|0)+11|0,nA=(fA=Be+8|0)+11|0,tA=A+8|0,J=G;;){if(Q=J+20|0,ar[ye>>2]=0,ar[M>>2]=0,ar[T>>2]=0,vo(Be,0|ar[g>>2],0|ar[J+16>>2],ye),0|ar[Be>>2])ve=0|ar[(we=Be)+4>>2],ar[(G=A)>>2]=ar[we>>2],ar[G+4>>2]=ve,ar[tA>>2]=ar[fA>>2],ar[tA+4>>2]=ar[fA+4>>2],ar[tA+8>>2]=ar[fA+8>>2],ar[fA>>2]=0,ar[fA+4>>2]=0,ar[fA+8>>2]=0,G=1;else{G=0|ar[ye>>2],D=0|ar[M>>2];e:do{if((0|G)==(0|D))G=6;else for(N=0;;){V=0|ar[(_=G+4|0)>>2];do{if(0!=(0|V)&&0!=(0|(oA=0|qu(V,128,872,0)))){if((V=0|ar[G+8>>2])?bu(V):V=0,F=0|ar[oA+56>>2],R=0|ar[oA+60>>2],F>>>0<=(0|ar[S>>2])>>>0&&R>>>0<=(0|ar[eA>>2])>>>0){Y=0|ar[Q>>2],ar[Y+24>>2]=F,ar[Y+28>>2]=R,ar[Y+32>>2]=F,ar[Y+36>>2]=R,Y=V,me=94;break}ar[z>>2]=4524,ar[Ee>>2]=188,ar[O>>2]=208,ar[H>>2]=0,Jf(x,j),ar[P>>2]=0,ar[L>>2]=-1,ar[Ee>>2]=4504,ar[O>>2]=4544,ar[z>>2]=4524,Sf(j),ar[j>>2]=4340,ar[K>>2]=0,ar[K+4>>2]=0,ar[K+8>>2]=0,ar[K+12>>2]=0,ar[q>>2]=24,ar[y>>2]=0,ar[4+y>>2]=0,ar[8+y>>2]=0,Xe(j,y),(0|tr[$>>0])<0&&vu(0|ar[y>>2]),ve=0|We(0|Lf(0|We(0|Lf(0|We(AA,30366,11),F),30170,1),R),30378,32),ve=0|We(0|Lf(ve,0|ar[S>>2]),30170,1),We(0|Lf(ve,0|ar[eA>>2]),30086,1),Ie(lA,j),oo(A,6,1e3,lA),(0|tr[rA>>0])<0&&vu(0|ar[lA>>2]),ar[Ee>>2]=4504,ar[O>>2]=4544,ar[AA>>2]=4524,ar[j>>2]=4340,(0|tr[iA>>0])<0&&vu(0|ar[K>>2]),kf(j),bf(O),R=1,F=N}else me=83}while(0);if(83==(0|me)&&(me=N?(Y=0,94):(Y=F=0,109)),94==(0|me))if(V=(me=0)|ar[_>>2]){F=(F=0|qu(V,128,744,0))?((V=0|ar[G+8>>2])?bu(V):V=0,me=0|ar[Q>>2],ve=0|eo(F),F=0|ro(F),ar[me+24>>2]=ve,ar[me+28>>2]=F,V):0,V=0|ar[_>>2];do{if(0|V&&0|(aA=0|qu(V,128,808,0))){switch((V=0|ar[G+8>>2])?bu(V):V=0,0|ar[aA+56>>2]){case 270:case 90:we=0|ar[Q>>2],me=we+28|0,ve=0|ar[(we=we+24|0)>>2],ar[we>>2]=ar[me>>2],ar[me>>2]=ve}if(!V)break;du(V)}}while(0);me=(F=(F&&du(F),1),109)}else R=0,F=1,V=Y;do{if(109==(0|me))if((me=0)!=(0|(V=0|ar[_>>2]))&&0!=(0|(cA=0|qu(V,128,384,0)))){if((V=0|ar[G+8>>2])?bu(V):V=0,R=0|ar[cA+56>>2],N=0|ar[cA+60>>2],Zl(R=((_=0==(0|N))?(ve=0|ar[Q>>2],ar[uA>>2]=R,ar[U>>2]=0):(bu(N),ve=0|ar[Q>>2],ar[uA>>2]=R,bu(ar[U>>2]=N)),ve),uA),0|(R=0|ar[U>>2])&&du(R),_||du(N),!V){R=0,V=Y;break}du(V),R=0,V=Y}else R=0,V=Y}while(0);if(0|V&&du(V),G=G+12|0,0|R){G=1;break e}if((0|G)==(0|D)){G=6;break}N=F}}while(0);G=6==(0|G)?0:G,(0|tr[nA>>0])<0&&vu(0|ar[fA>>2])}if(0|(V=0|ar[ye>>2])){if((0|(F=0|ar[M>>2]))!=(0|V)){for(;R=F+-12|0,ar[M>>2]=R,(0|(F=(F=0|ar[F+-4>>2])?(du(F),0|ar[M>>2]):R))!=(0|V););V=0|ar[ye>>2]}vu(V)}if(0|G)break A;if(G=0|ar[J+4>>2])for(;V=0|ar[G>>2];)G=V;else if(G=0|ar[(V=J+8|0)>>2],(0|ar[G>>2])!=(0|J))for(;ve=0|ar[V>>2],G=0|ar[(V=ve+8|0)>>2],(0|ar[G>>2])!=(0|ve););if((0|G)==(0|W))break;J=G}we=0|ar[g>>2],ke=0|ar[we+76>>2],we=0|ar[we+80>>2],(ve=0==(0|we))||bu(we),he=0!=(0|ke);e:do{if(he&&(bA=0|ar[ge>>2],(0|bA)!=(0|W))){S=ye+4|0,z=8+i|0,j=4+i|0,H=11+i|0,x=8+n|0,P=4+n|0,L=11+n|0,K=4+t|0,q=8+f|0,$=4+f|0,AA=11+f|0,fA=8+r|0,nA=4+r|0,tA=11+r|0,oA=Be+4|0,aA=Be+8|0,uA=12+p|0,dA=cA=64+p|0,kA=136+p|0,hA=140+p|0,vA=60+p|0,mA=11+y|0,ZA=11+o|0,pA=(wA=44+p|0)+11|0,yA=O=4+y|0,XA=8+u|0,WA=4+u|0,IA=11+u|0,CA=8+b|0,GA=4+b|0,VA=11+b|0,NA=8+s|0,_A=4+s|0,YA=11+s|0,QA=8+d|0,DA=4+d|0,JA=11+d|0,MA=RA=EA=sA=4+p|0,SA=8+c|0,zA=(OA=8+l|0)+11|0,jA=TA=gA=lA=8+p|0,HA=FA=BA=11+p|0,xA=8+k|0,PA=4+k|0,LA=11+k|0,KA=8+h|0,qA=4+h|0,$A=11+h|0,Ae=4+w|0,ee=de+4|0,fe=re=11+c|0,ne=ie=UA=4+c|0,te=11+l|0,oe=4+l|0,ae=8+a|0,ce=4+a|0,le=11+a|0,be=(ue=Ee+8|0)+11|0,se=A+8|0;r:for(;;){if(io(ye,ke,0|ar[20+(0|ar[(M=bA+20|0)>>2])>>2]),V=0|ar[ye>>2],T=0|ar[S>>2],(0|V)==(0|T))G=10;else{U=bA+24|0;i:for(;;){G=0|ar[V+20>>2];f:do{if((0|G)<1953000802){switch(0|G){case 1635088492:break;default:break f}if(ar[Be>>2]=0,ar[oA>>2]=0,ar[aA>>2]=0,vo(Ee,0|ar[g>>2],0|ar[20+(0|ar[M>>2])>>2],Be),0|ar[Ee>>2])iA=0|ar[(rA=Ee)+4>>2],ar[(G=A)>>2]=ar[rA>>2],ar[G+4>>2]=iA,ar[se>>2]=ar[ue>>2],ar[se+4>>2]=ar[ue+4>>2],ar[se+8>>2]=ar[ue+8>>2],ar[ue>>2]=0,ar[ue+4>>2]=0,ar[ue+8>>2]=0,G=1;else{G=0|ar[Be>>2],Q=0|ar[oA>>2];do{if((0|G)==(0|Q))F=0,me=197;else{for(F=Y=0;;){R=0|ar[G+4>>2];do{if(R){if(!(_=0|qu(R,128,840,0))){R=Y;break}R=_,(N=0|ar[G+8>>2])?bu(N):N=0;do{if(_){if(0|(_=N)&&bu(N),!F){F=_;break}du(F),F=_}else R=Y}while(0);if(!N)break;du(N)}else R=Y}while(0);if((0|(G=G+12|0))==(0|Q))break;Y=R}if(!(D=R)){me=197;break}Ge(y,V+52|0);n:do{if(4==((0|ar[yA>>2])-(0|ar[y>>2])|0)){yu(p,J=D+56|0),25==(0|((iA=0|tr[BA>>0])<<24>>24<0?0|ar[EA>>2]:255&iA))&&0==(0|Yu(p,0,-1,30621,25))?G=1:(yu(c,J),26==(0|((iA=0|tr[fe>>0])<<24>>24<0?0|ar[ne>>2]:255&iA))&&0==(0|Yu(c,0,-1,30647,26))?G=1:(yu(l,J),43==(0|((R=0|tr[te>>0])<<24>>24<0?0|ar[oe>>2]:255&R))?(G=0==(0|Yu(l,0,-1,30674,43)),R=0|tr[te>>0]):G=0,R<<24>>24<0&&vu(0|ar[l>>2])),(0|tr[fe>>0])<0&&vu(0|ar[c>>2])),(0|tr[BA>>0])<0&&vu(0|ar[p>>2]);t:do{if(G){R=0|ar[W>>2];do{if(0|R){_=0|ar[ar[y>>2]>>2],G=W;o:for(;;){for(N=R;!((0|ar[N+16>>2])>>>0>=_>>>0);){if(!(R=0|ar[N+4>>2]))break o;N=R}if(!(R=0|ar[N>>2])){G=N;break}G=N}if((0|G)==(0|W))break;if(_>>>0<(0|ar[G+16>>2])>>>0)break;_=0|ar[G+20>>2],Y=0|ar[G+24>>2],(Q=0==(0|Y))||bu(Y),G=0|ar[M>>2],R=G;do{if((0|G)==(0|_)){for(ar[b>>2]=0,ar[4+b>>2]=0,ar[8+b>>2]=0,G=0|hu(32),ar[b>>2]=G,ar[CA>>2]=-2147483616,ar[GA>>2]=30,eA=30754,rA=(iA=G)+30|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+30>>0]=0,oo(A,2,2e3,b),0<=(0|tr[VA>>0])){G=1;break}vu(0|ar[b>>2]),G=1}else{if((0|ar[G+24>>2])!=(0|ar[_+24>>2])){G=0;break}if((0|ar[G+28>>2])!=(0|ar[_+28>>2])){G=0;break}if(N=0|ar[ar[y>>2]>>2],tr[G+60>>0]=1,ar[G+64>>2]=N,tr[G+61>>0]=1,0|(N=0|ar[U>>2])&&bu(N),ar[_+68>>2]=R,G=0|ar[(iA=_+72|0)>>2],ar[iA>>2]=N,!G){G=0;break}du(G),G=0}}while(0);if(Q||du(Y),G){G=1;break n}break t}}while(0);for(ar[u>>2]=0,ar[4+u>>2]=0,ar[8+u>>2]=0,G=0|hu(48),ar[u>>2]=G,ar[XA>>2]=-2147483600,ar[WA>>2]=35,eA=30718,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,2e3,u),0<=(0|tr[IA>>0])){G=1;break n}vu(0|ar[u>>2]),G=1;break n}}while(0);yu(p,J),26==(0|((iA=0|tr[FA>>0])<<24>>24<0?0|ar[RA>>2]:255&iA))&&0==(0|Yu(p,0,-1,30785,26))?G=1:(yu(c,J),43==(0|((R=0|tr[re>>0])<<24>>24<0?0|ar[ie>>2]:255&R))?(G=0==(0|Yu(c,0,-1,30812,43)),R=0|tr[re>>0]):G=0,R<<24>>24<0&&vu(0|ar[c>>2])),(0|tr[FA>>0])<0&&vu(0|ar[p>>2]);t:do{if(G){Y=0|ar[M>>2],G=0|ar[y>>2],N=0|ar[G>>2],tr[Y+76>>0]=1,ar[Y+80>>2]=N,N=0|ar[W>>2],Q=Y;do{if(0|N){_=0|ar[G>>2],G=W;o:for(;;){for(R=N;!((0|ar[R+16>>2])>>>0>=_>>>0);)if(!(R=0|ar[R+4>>2]))break o;if(!(N=0|ar[R>>2])){G=R;break}G=R}if((0|G)==(0|W))break;if(_>>>0<(0|ar[G+16>>2])>>>0)break;if(G=0|ar[G+20>>2],(0|Y)==(0|G)){for(ar[d>>2]=0,ar[4+d>>2]=0,ar[8+d>>2]=0,G=0|hu(32),ar[d>>2]=G,ar[QA>>2]=-2147483616,ar[DA>>2]=30,eA=30892,rA=(iA=G)+30|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+30>>0]=0,oo(A,2,2e3,d),0<=(0|tr[JA>>0])){G=1;break n}vu(0|ar[d>>2]),G=1;break n}if(0|(R=0|ar[U>>2])&&bu(R),ar[G+84>>2]=Q,G=0|ar[(iA=G+88|0)>>2],ar[iA>>2]=R,0|G&&du(G),ar[p>>2]=0,ar[MA>>2]=0,ar[TA>>2]=0,R=0|ar[D+68>>2],0|(G=(0|ar[D+72>>2])-R|0)){if((0|G)<0)break r;rA=0|hu(G),ar[MA>>2]=rA,ar[p>>2]=rA,iA=rA+G|0,ar[jA>>2]=iA,hb(0|rA,0|R,0|G),ar[MA>>2]=iA}if(ar[c>>2]=0,ar[UA>>2]=0,ar[SA>>2]=0,Vl(l,p,c),G=0|ar[c>>2],_=0|ar[UA>>2],(0|G)!=(0|_))do{R=0|ar[G>>2];do{if(0|R){if(!(N=0|qu(R,1472,1480,0)))break;for((R=0|ar[G+4>>2])?bu(R):R=0,iA=0|ar[M>>2],tr[iA+92>>0]=1,eA=N+8|0,rA=(iA=iA+96|0)+56|0;ar[iA>>2]=ar[eA>>2],eA=eA+4|0,(0|(iA=iA+4|0))<(0|rA););if(!R)break;du(R)}}while(0);G=G+8|0}while((0|G)!=(0|_));if((0|tr[zA>>0])<0&&vu(0|ar[OA>>2]),0|(G=0|ar[c>>2])){if((0|(R=0|ar[UA>>2]))!=(0|G)){for(;N=R+-8|0,ar[UA>>2]=N,(0|(R=(R=0|ar[R+-4>>2])?(du(R),0|ar[UA>>2]):N))!=(0|G););G=0|ar[c>>2]}vu(G)}0|(G=0|ar[p>>2])&&((0|ar[MA>>2])!=(0|G)&&(ar[MA>>2]=G),vu(G));break t}}while(0);for(ar[s>>2]=0,ar[4+s>>2]=0,ar[8+s>>2]=0,G=0|hu(48),ar[s>>2]=G,ar[NA>>2]=-2147483600,ar[_A>>2]=35,eA=30856,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,2e3,s),0<=(0|tr[YA>>0])){G=1;break n}vu(0|ar[s>>2]),G=1;break n}}while(0);iA=0|ar[M>>2],rA=0|ar[ar[y>>2]>>2],yu(p,J),tr[iA+156>>0]=1,ar[iA+152>>2]=rA,Eu(iA+160|0,p),(0|tr[HA>>0])<0&&vu(0|ar[p>>2]),R=0|ar[W>>2];do{if(0|R){_=0|ar[ar[y>>2]>>2],G=W;t:for(;;){for(N=R;!((0|ar[N+16>>2])>>>0>=_>>>0);){if(!(R=0|ar[N+4>>2]))break t;N=R}if(!(R=0|ar[N>>2])){G=N;break}G=N}if((0|G)==(0|W))break;if(_>>>0<(0|ar[G+16>>2])>>>0)break;if(R=0|ar[M>>2],N=0|ar[G+20>>2],(0|R)==(0|N)){for(ar[h>>2]=0,ar[4+h>>2]=0,ar[8+h>>2]=0,G=0|hu(32),ar[h>>2]=G,ar[KA>>2]=-2147483616,ar[qA>>2]=28,eA=30957,rA=(iA=G)+28|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+28>>0]=0,oo(A,2,2e3,h),0<=(0|tr[$A>>0])){G=1;break n}vu(0|ar[h>>2]),G=1;break n}ar[w>>2]=R,G=0|ar[U>>2],0|(ar[Ae>>2]=G)&&bu(G),R=0|ar[(G=N+176|0)>>2];do{if(R>>>0<(0|ar[N+180>>2])>>>0)ar[R>>2]=ar[w>>2],ar[R+4>>2]=ar[Ae>>2],ar[w>>2]=0,ar[Ae>>2]=0,ar[G>>2]=R+8;else{if(yl(N+172|0,w),!(G=0|ar[Ae>>2]))break;du(G)}}while(0);if(ar[de>>2]=ar[M>>2],G=0|ar[U>>2],ar[ee>>2]=G){bu(G),pl(e,de),du(G),G=0;break n}pl(e,de),G=0;break n}}while(0);for(ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,G=0|hu(48),ar[k>>2]=G,ar[xA>>2]=-2147483600,ar[PA>>2]=33,eA=30923,rA=(iA=G)+33|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+33>>0]=0,oo(A,2,2e3,k),0<=(0|tr[LA>>0])){G=1;break}vu(0|ar[k>>2]),G=1}else{for(ar[a>>2]=0,ar[4+a>>2]=0,ar[8+a>>2]=0,G=0|hu(48),ar[a>>2]=G,ar[ae>>2]=-2147483600,ar[ce>>2]=35,eA=30585,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,0,a),0<=(0|tr[le>>0])){G=1;break}vu(0|ar[a>>2]),G=1}}while(0);0|(R=0|ar[y>>2])&&((0|(N=0|ar[yA>>2]))!=(0|R)&&(ar[yA>>2]=N+(~((N+-4-R|0)>>>2)<<2)),vu(R))}}while(0);197==(0|me)&&(me=0,ar[lA>>2]=4524,ar[p>>2]=188,ar[cA>>2]=208,ar[sA>>2]=0,Jf(dA,uA),ar[kA>>2]=0,ar[hA>>2]=-1,ar[p>>2]=4504,ar[cA>>2]=4544,ar[lA>>2]=4524,Sf(uA),ar[uA>>2]=4340,ar[wA>>2]=0,ar[wA+4>>2]=0,ar[wA+8>>2]=0,ar[wA+12>>2]=0,ar[vA>>2]=24,ar[y>>2]=0,ar[4+y>>2]=0,ar[8+y>>2]=0,Xe(uA,y),(0|tr[mA>>0])<0&&vu(0|ar[y>>2]),Lf(iA=0|We(gA,30557,27),0|ar[20+(0|ar[M>>2])>>2]),Ie(o,uA),oo(A,2,123,o),(0|tr[ZA>>0])<0&&vu(0|ar[o>>2]),ar[p>>2]=4504,ar[cA>>2]=4544,ar[gA>>2]=4524,ar[uA>>2]=4340,(0|tr[pA>>0])<0&&vu(0|ar[wA>>2]),kf(uA),bf(cA),G=1),F&&du(F)}if((0|tr[be>>0])<0&&vu(0|ar[ue>>2]),0|(F=0|ar[Be>>2])){if((0|(R=0|ar[oA>>2]))!=(0|F)){for(;N=R+-12|0,ar[oA>>2]=N,(0|(R=(R=0|ar[R+-4>>2])?(du(R),0|ar[oA>>2]):N))!=(0|F););F=0|ar[Be>>2]}vu(F)}if(0|G)break i}else{switch(0|G){case 1953000802:break;default:break f}Ge(y,V+52|0),iA=0|ar[y>>2],G=iA;n:do{if(4==((0|ar[O>>2])-iA|0)){_=0|ar[M>>2],R=0|ar[G>>2],tr[_+41>>0]=1,ar[_+44>>2]=R,R=0|ar[W>>2],Y=_;do{if(0|R){N=0|ar[G>>2],G=W;t:for(;;){for(F=R;!((0|ar[F+16>>2])>>>0>=N>>>0);)if(!(F=0|ar[F+4>>2]))break t;if(!(R=0|ar[F>>2])){G=F;break}G=F}if((0|G)==(0|W))break;if(N>>>0<(0|ar[G+16>>2])>>>0)break;if(F=0|ar[G+20>>2],0|tr[F+41>>0]){for(ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,G=0|hu(48),ar[f>>2]=G,ar[q>>2]=-2147483600,ar[$>>2]=38,eA=30483,rA=(iA=G)+38|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+38>>0]=0,oo(A,2,2e3,f),0<=(0|tr[AA>>0])){G=1;break n}vu(0|ar[f>>2]),G=1;break n}if((0|_)==(0|F)){for(ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,G=0|hu(48),ar[n>>2]=G,ar[x>>2]=-2147483600,ar[P>>2]=34,eA=30522,rA=(iA=G)+34|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+34>>0]=0,oo(A,2,2e3,n),0<=(0|tr[L>>0])){G=1;break n}vu(0|ar[n>>2]),G=1;break n}if((0|(G=0|ar[(R=F+52|0)>>2]))==(0|ar[F+56>>2])?kl(F+48|0,M):(ar[G>>2]=Y,F=0|ar[U>>2],(ar[G+4>>2]=F)&&(bu(F),G=0|ar[R>>2]),ar[R>>2]=G+8),ar[t>>2]=ar[M>>2],G=0|ar[U>>2],ar[K>>2]=G){bu(G),pl(e,t),du(G),G=0;break n}pl(e,t),G=0;break n}}while(0);for(ar[i>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,G=0|hu(48),ar[i>>2]=G,ar[z>>2]=-2147483600,ar[j>>2]=41,eA=30441,rA=(iA=G)+41|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););tr[G+41>>0]=0,oo(A,2,2e3,i),G=((0|tr[H>>0])<0&&vu(0|ar[i>>2]),1)}else{for(ar[r>>2]=0,ar[4+r>>2]=0,ar[8+r>>2]=0,G=0|hu(32),ar[r>>2]=G,ar[fA>>2]=-2147483616,ar[nA>>2]=29,eA=30411,rA=(iA=G)+29|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););tr[G+29>>0]=0,oo(A,2,0,r),G=((0|tr[tA>>0])<0&&vu(0|ar[r>>2]),1)}}while(0);if(0|(F=0|ar[y>>2])&&((0|(R=0|ar[O>>2]))!=(0|F)&&(ar[O>>2]=R+(~((R+-4-F|0)>>>2)<<2)),vu(F)),0|G){G=1;break i}}}while(0);if((0|(V=V+64|0))==(0|T)){G=10;break}}V=0|ar[ye>>2]}if(Y=10==(0|G)?0:G,0|V){if((0|(G=0|ar[S>>2]))==(0|V))G=V;else{for(;F=G+-64|0,ar[S>>2]=F,0|(R=0|ar[G+-12>>2])&&((0|(_=0|ar[(N=G+-8|0)>>2]))!=(0|R)&&(ar[N>>2]=_+(~((_+-4-R|0)>>>2)<<2)),vu(R)),ar[F>>2]=4264,0|(F=0|ar[G+-40>>2])&&((0|ar[(G=G+-36|0)>>2])!=(0|F)&&(ar[G>>2]=F),vu(F)),(0|(G=0|ar[S>>2]))!=(0|V););G=0|ar[ye>>2]}vu(G)}switch(0|Y){case 8:me=362;break e;case 0:break;default:break e}if(G=0|ar[bA+4>>2])for(;V=0|ar[G>>2];)G=V;else if(G=0|ar[(V=bA+8|0)>>2],(0|ar[G>>2])!=(0|bA))for(;bA=0|ar[V>>2],G=0|ar[(V=bA+8|0)>>2],(0|ar[G>>2])!=(0|bA););if((0|G)==(0|W)){me=362;break e}bA=G}zl()}else me=362}while(0);e:do{if(362==(0|me)){G=0|ar[ge>>2];r:do{if((0|G)!=(0|W)){for(Q=11+y|0,J=D=4+y|0,M=4+v|0,T=8+m|0,U=4+m|0,S=11+m|0,Y=G;;){if(R=0|ar[20+(0|ar[(_=Y+20|0)>>2])>>2],N=112+(0|ar[g>>2])|0,G=0|ar[N>>2]){V=N;i:for(;;){for(F=G;!((0|ar[F+16>>2])>>>0>=R>>>0);){if(!(G=0|ar[F+4>>2]))break i;F=G}if(!(G=0|ar[F>>2])){V=F;break}V=F}N=(0|V)!=(0|N)&&(0|ar[V+16>>2])>>>0<=R>>>0?(G=0|ar[V+20>>2],(V=0|ar[V+24>>2])?(bu(V),V):0):G=0}else N=G=0;if(yu(y,G+64|0),4==(0|((G=0|tr[Q>>0])<<24>>24<0?0|ar[D>>2]:255&G))?(V=0==(0|Yu(y,0,-1,30298,4)),G=0|tr[Q>>0]):V=0,G<<24>>24<0&&vu(0|ar[y>>2]),V){G=0|ar[g>>2],ar[y>>2]=ar[G+52>>2],V=0|ar[G+56>>2],(ar[J>>2]=V)&&(bu(V),G=0|ar[g>>2]),V=0|ar[G+44>>2],F=0|ar[G+48>>2],(R=0==(0|F))||bu(F),Lt(v,V,0|ar[20+(0|ar[_>>2])>>2],y,1752589123),G=0==(0|ar[v>>2]),0|(V=0|ar[M>>2])&&du(V);do{if(G){for(ar[m>>2]=0,ar[4+m>>2]=0,ar[8+m>>2]=0,G=0|hu(48),ar[m>>2]=G,ar[T>>2]=-2147483600,ar[U>>2]=35,eA=30986,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,106,m),0<=(0|tr[S>>0])){G=1;break}vu(0|ar[m>>2]),G=1}else G=0}while(0);R||du(F),0|(V=0|ar[J>>2])&&du(V),G||(me=392)}else me=392;if(392==(0|me)&&(G=me=0),0|N&&du(N),0|G)break e;G=0|ar[Y+4>>2];do{if(G)for(;V=0|ar[G>>2];)G=V;else{if(G=0|ar[(V=Y+8|0)>>2],(0|ar[G>>2])==(0|Y))break;for(;de=0|ar[V>>2],G=0|ar[(V=de+8|0)>>2],(0|ar[G>>2])!=(0|de););}}while(0);if((0|G)==(0|W))break;Y=G}if((0|(G=0|ar[ge>>2]))!=(0|W)){M=1^he,T=11+y|0,S=U=4+y|0,O=Ze+4|0,z=pe+4|0;do{if(D=G+20|0,_=0|ar[G+16>>2],N=112+(0|ar[g>>2])|0,0|(F=0|ar[N>>2])){V=N;i:for(;;){for(R=F;!((0|ar[R+16>>2])>>>0>=_>>>0);){if(!(F=0|ar[R+4>>2]))break i;R=F}if(!(F=0|ar[R>>2])){V=R;break}V=R}if((0|V)!=(0|N)&&(0|ar[V+16>>2])>>>0<=_>>>0){F=0|ar[V+20>>2],V=0|ar[V+24>>2],J=V?(bu(V),V):0,V=0==(0|F);do{if(V|M)V=V?19:18;else{if(yu(y,F+64|0),4==(0|((V=0|tr[T>>0])<<24>>24<0?0|ar[U>>2]:255&V))?(F=0==(0|Yu(y,0,-1,30303,4)),V=0|tr[T>>0]):F=0,V<<24>>24<0&&vu(0|ar[y>>2]),F){if(fo(y,ke,_,1684630887),(0|(F=0|ar[y>>2]))==(0|ar[S>>2]))V=19;else{N=0|ar[F>>2],F=0|ar[W>>2];do{if(F){V=W;i:for(;;){for(R=F;!((0|ar[R+16>>2])>>>0>=N>>>0);){if(!(F=0|ar[R+4>>2]))break i;R=F}if(!(F=0|ar[R>>2])){V=R;break}V=R}if((0|V)==(0|W)){V=19;break}if(N>>>0<(0|ar[V+16>>2])>>>0){V=19;break}_=0|ar[V+20>>2],Y=0|ar[V+24>>2],(Q=0==(0|Y))||bu(Y),R=0|ar[D>>2],V=0|ar[R+204>>2],R=0|ar[R+208>>2],(N=0==(0|R))||bu(R);do{if(!V){if(V=0|ar[(F=_)+204>>2],F=0|ar[F+208>>2]){bu(F),du(F),V=0!=(0|V);break}V=0!=(0|V);break}V=0}while(0);N||du(R);do{if(V){if(V=0|ar[D>>2],F=0|ar[(R=_)+204>>2],0|(R=0|ar[R+208>>2])&&bu(R),ar[Ze>>2]=F,ar[O>>2]=R,Zl(V,Ze),!(V=0|ar[O>>2]))break;du(V)}}while(0);R=0|ar[D>>2],V=0|ar[R+196>>2],R=0|ar[R+200>>2],(N=0==(0|R))||bu(R);do{if(!V){if(V=0|ar[(F=_)+196>>2],F=0|ar[F+200>>2]){bu(F),du(F),V=0!=(0|V);break}V=0!=(0|V);break}V=0}while(0);N||du(R);do{if(V){if(R=0|ar[D>>2],V=0|ar[(F=_)+196>>2],0|(F=0|ar[F+200>>2])&&bu(F),ar[pe>>2]=V,ar[z>>2]=F,Zl(R,pe),!(V=0|ar[z>>2]))break;du(V)}}while(0);if(Q){V=0;break}du(Y),V=0}else V=19}while(0);F=0|ar[y>>2]}if(0|F&&((0|(R=0|ar[S>>2]))!=(0|F)&&(ar[S>>2]=R+(~((R+-4-F|0)>>>2)<<2)),vu(F)),0|V)break}V=0}}while(0);switch(0|J&&du(J),0|V){case 19:case 0:break;default:break r}}}if(V=0|ar[G+4>>2])for(G=V;V=0|ar[G>>2];)G=V;else if(F=0|ar[(V=G+8|0)>>2],(0|ar[F>>2])==(0|G))G=F;else for(;ge=0|ar[V>>2],G=0|ar[(V=ge+8|0)>>2],(0|ar[G>>2])!=(0|ge););}while((0|G)!=(0|W))}}}while(0);if(V=0|ar[I>>2],T=0|ar[Z>>2],(0|V)==(0|T))G=A+8|0;else{U=Ee+4|0,S=4+p|0,O=8+E|0,z=4+E|0,j=11+E|0,H=4+X|0,x=8+B|0,P=4+B|0,L=11+B|0,q=(K=Be+8|0)+11|0,$=ye+11|0,AA=11+y|0,G=A+8|0;do{for(F=0|ar[V>>2],ho(y,0|ar[g>>2],F),wo(ye,0|ar[g>>2],F),M=0|hu(52),ar[M+4>>2]=0,ar[M+8>>2]=0,ar[M>>2]=6420,R=M+12|0,rA=(iA=M+16|0)+36|0;((ar[iA>>2]=0)|(iA=iA+4|0))<(0|rA););ar[(D=R)>>2]=F,Eu(M+16|0,y),Eu(M+28|0,ye),mo(Be,0|ar[g>>2],F,M+40|0);do{if(0|ar[Be>>2])pe=0|ar[(Ze=Be)+4>>2],ar[(F=A)>>2]=ar[Ze>>2],ar[F+4>>2]=pe,ar[G>>2]=ar[K>>2],ar[G+4>>2]=ar[K+4>>2],ar[G+8>>2]=ar[K+8>>2],ar[K>>2]=0,ar[K+4>>2]=0,ar[K+8>>2]=0,F=1;else{if(he){if(io(Ee,ke,F),R=0|ar[Ee>>2],Q=0|ar[U>>2],(0|R)==(0|Q))F=22;else{for(;;){if(1667527523==(0|ar[R+20>>2])){Ge(p,R+52|0),F=0|ar[p>>2];r:do{if(4==((0|ar[S>>2])-F|0)){Y=0|ar[F>>2],N=0|ar[W>>2];do{if(0|N){F=W;i:for(;;){for(_=N;!((0|ar[_+16>>2])>>>0>=Y>>>0);){if(!(N=0|ar[_+4>>2]))break i;_=N}if(!(N=0|ar[_>>2])){F=_;break}F=_}if((0|F)==(0|W))break;if(Y>>>0<(0|ar[F+16>>2])>>>0)break;if(F=0|ar[F+20>>2],ar[X>>2]=D,bu(ar[H>>2]=M),(_=0|ar[(N=F+188|0)>>2])>>>0<(0|ar[F+192>>2])>>>0){ar[_>>2]=ar[X>>2],ar[_+4>>2]=ar[H>>2],ar[X>>2]=0,ar[H>>2]=0,ar[N>>2]=_+8,F=0;break r}if(Bl(F+184|0,X),!(F=0|ar[H>>2])){F=0;break r}du(F),F=0;break r}}while(0);for(ar[E>>2]=0,ar[4+E>>2]=0,ar[8+E>>2]=0,F=0|hu(48),ar[E>>2]=F,ar[O>>2]=-2147483600,ar[z>>2]=39,eA=31063,rA=(iA=F)+39|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[F+39>>0]=0,oo(A,2,2e3,E),0<=(0|tr[j>>0])){F=1;break}vu(0|ar[E>>2]),F=1}else{for(ar[B>>2]=0,ar[4+B>>2]=0,ar[8+B>>2]=0,F=0|hu(48),ar[B>>2]=F,ar[x>>2]=-2147483600,ar[P>>2]=40,eA=31022,rA=(iA=F)+40|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[F+40>>0]=0,oo(A,2,0,B),0<=(0|tr[L>>0])){F=1;break}vu(0|ar[B>>2]),F=1}}while(0);if(0|(N=0|ar[p>>2])&&((0|(_=0|ar[S>>2]))!=(0|N)&&(ar[S>>2]=_+(~((_+-4-N|0)>>>2)<<2)),vu(N)),0|F){F=1;break}}if((0|(R=R+64|0))==(0|Q)){F=22;break}}R=0|ar[Ee>>2]}if(J=22==(0|F),0|R){if((0|(N=0|ar[U>>2]))!=(0|R)){for(;_=N+-64|0,ar[U>>2]=_,0|(Y=0|ar[N+-12>>2])&&((0|(D=0|ar[(Q=N+-8|0)>>2]))!=(0|Y)&&(ar[Q>>2]=D+(~((D+-4-Y|0)>>>2)<<2)),vu(Y)),ar[_>>2]=4264,0|(_=0|ar[N+-40>>2])&&((0|ar[(N=N+-36|0)>>2])!=(0|_)&&(ar[N>>2]=_),vu(_)),(0|(N=0|ar[U>>2]))!=(0|R););R=0|ar[Ee>>2]}vu(R)}if(!J)break}F=0}}while(0);if((0|tr[q>>0])<0&&vu(0|ar[K>>2]),du(M),(0|tr[$>>0])<0&&vu(0|ar[ye>>2]),(0|tr[AA>>0])<0&&vu(0|ar[y>>2]),V=V+4|0,0|F)break e}while((0|V)!=(0|T))}Be=0|ar[(ye=56592)+4>>2],ar[(Ee=A)>>2]=ar[ye>>2],ar[Ee+4>>2]=Be,yu(G,56600)}}while(0);ve||du(we)}else{for(ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,G=0|hu(48),ar[q>>2]=G,ar[q+8>>2]=-2147483600,ar[q+4>>2]=42,eA=30323,rA=(iA=G)+42|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););tr[G+42>>0]=0,oo(A,2,2e3,q),(0|tr[q+11>>0])<0&&vu(0|ar[q>>2])}}while(0);if(!(A=0|ar[I>>2]))return ur=C;(0|(G=0|ar[Z>>2]))!=(0|A)&&(ar[Z>>2]=G+(~((G+-4-A|0)>>>2)<<2));vu(A),ur=C}(A,e),0<=(0|tr[o+8+11>>0]))return ur=a;vu(0|ar[o+8>>2]),ur=a}(f,0|ar[e>>2],t?0|ar[r>>2]:r,t?0|ar[r+4>>2]:255&n,1),ao(A,f,0|ar[e>>2]),ur=(0<=(0|tr[(A=f+8|0)+11>>0])||vu(0|ar[A>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+32|0,n=(i=f)+20|0,t=f+8|0,o=0|oA(),!e)return ar[A>>2]=o,iA((o=0)|o),void(ur=f);!function(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(o=ur)+64|0,t=o+44|0,a=o+32|0,f=o+12|0,b=o,!(i|=0))return ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,oo(t,5,2001,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),ao(A,t,0|ar[e>>2]),(0|tr[(a=8+t|0)+11>>0])<0&&vu(0|ar[a>>2]),ur=o;sl(t,40+(0|ar[e>>2])|0),a=0|ar[t>>2],c=0|ar[(n=4+t|0)>>2];A:do{if((0|a)!=(0|c)){for(;l=0|ar[a>>2],(0|ar[l+20>>2])!=(0|r);)if((0|(a=a+8|0))==(0|c)){a=0,s=13;break A}u=l,c=0|ar[a+4>>2],0|(a=c)&&bu(c),l?(r=0|hu(16),ar[r>>2]=0,ar[r+4>>2]=0,ar[r+8>>2]=0,ar[r+12>>2]=0,ar[i>>2]=r,c?(bu(c),c=0|ar[(b=r+4|0)>>2],ar[r>>2]=u,ar[b>>2]=a,0|c&&du(c)):(ar[r>>2]=u,ar[r+4>>2]=a),c=0|ar[i>>2],r=0|ar[e>>2],0|(l=0|ar[e+4>>2])&&bu(l),ar[c+8>>2]=r,c=0|ar[(i=c+12|0)>>2],ar[i>>2]=l,0|c&&du(c),ao(A,56592,0|ar[e>>2])):s=13}else a=0,s=13}while(0);13==(0|s)&&(ar[b>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,oo(f,5,2e3,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),ao(A,f,0|ar[e>>2]),(0|tr[(c=8+f|0)+11>>0])<0&&vu(0|ar[c>>2]));0|a&&du(a);if(0|(a=0|ar[t>>2])){if((0|(c=0|ar[n>>2]))!=(0|a)){for(;r=c+-8|0,ar[n>>2]=r,(0|(c=(c=0|ar[c+-4>>2])?(du(c),0|ar[n>>2]):r))!=(0|a););a=0|ar[t>>2]}vu(a)}ur=o}(t,e,r,n),t=0|ar[t>>2]?(n=0|hu(12),ar[n>>2]=ar[t>>2],ar[n+4>>2]=ar[t+4>>2],ar[n+8>>2]=ar[t+8>>2],ar[i>>2]=n,0|cA(1392,0|i)):(ar[i>>2]=ar[n>>2],0|cA(1320,0|i)),ar[A>>2]=t,iA(0|o),ur=f},function(A,e,r){r|=0,ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]=r},function(A,e,r){r|=0,ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]=r},function(A,e,r){sr(44456,35137,51,35153)},function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0;if(0<(0|(r|=0))){f=0;do{for(n=0|br(f,r),i=0;ar[A+((t=i+n|0)<<2)>>2]=or[e+(t<<1)>>1],(0|(i=i+1|0))!=(0|r););f=f+1|0}while((0|f)!=(0|r))}},function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0;if(0<(0|(r|=0))){f=0;do{for(t=0|br(f,r),n=i=0;i=(0|or[e+((o=n+t|0)<<1)>>1])+i|0,ar[A+(o<<2)>>2]=i,(0|(n=n+1|0))!=(0|r););f=f+1|0}while((0|f)!=(0|r))}},function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0;if(0<(0|(r|=0))){f=0;do{for(n=i=0;t=(0|br(n,r))+f|0,i=(0|or[e+(t<<1)>>1])+i|0,ar[A+(t<<2)>>2]=i,(0|(n=n+1|0))!=(0|r););f=f+1|0}while((0|f)!=(0|r))}},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0;for(ur=(f=ur)+32|0,i=f,n=0;t=0|or[e+(n<<1)>>1],l=(74*(o=0|or[e+(n+4<<1)>>1])|0)+(29*t|0)+(84*(a=0|or[e+(n+8<<1)>>1])|0)+(55*(c=0|or[e+(n+12<<1)>>1])|0)+64>>7,or[i+(n<<1)>>1]=(0|l)<-32768?-32768:65535&((0|l)<32767?l:32767),l=(0|br(c,-84))+((0|br(a,-29))+((74*o|0)+(55*t|0)))+64>>7,or[i+8+(n<<1)>>1]=(0|l)<-32768?-32768:65535&((0|l)<32767?l:32767),l=(74*c|0)+((0|br(a,-74))+(74*t|0))+64>>7,or[i+16+(n<<1)>>1]=(0|l)<-32768?-32768:65535&((0|l)<32767?l:32767),t=(0|br(c,-29))+((55*a|0)+((0|br(o,-74))+(84*t|0)))+64>>7,or[i+24+(n<<1)>>1]=(0|t)<-32768?-32768:65535&((0|t)<32767?t:32767),4!=(0|(n=n+1|0)););for(n=0;l=0|br(n,r),c=0|or[i+(n<<3)>>1],u=(74*(a=0|or[i+(n<<3)+2>>1])|0)+(29*c|0)+(84*(o=0|or[i+(n<<3)+4>>1])|0)+(55*(t=0|or[i+(n<<3)+6>>1])|0)+2048>>12,u=(0|cr[(e=A+l|0)>>0])+((0|u)<-32768?-32768:(0|u)<32767?u:32767)|0,tr[e>>0]=(0|u)<0?0:255&((0|u)<255?u:255),e=(0|br(t,-84))+((0|br(o,-29))+((74*a|0)+(55*c|0)))+2048>>12,e=(0|cr[(u=A+(l+1)|0)>>0])+((0|e)<-32768?-32768:(0|e)<32767?e:32767)|0,tr[u>>0]=(0|e)<0?0:255&((0|e)<255?e:255),u=(74*t|0)+((0|br(o,-74))+(74*c|0))+2048>>12,u=(0|cr[(e=A+(l+2)|0)>>0])+((0|u)<-32768?-32768:(0|u)<32767?u:32767)|0,tr[e>>0]=(0|u)<0?0:255&((0|u)<255?u:255),c=(0|br(t,-29))+((55*o|0)+((0|br(a,-74))+(84*c|0)))+2048>>12,c=(0|cr[(l=A+(l+3)|0)>>0])+((0|c)<-32768?-32768:(0|c)<32767?c:32767)|0,tr[l>>0]=(0|c)<0?0:255&((0|c)<255?c:255),4!=(0|(n=n+1|0)););ur=f},function(A,e,r){Oo(A|=0,r|=0,4,e|=0,8)},function(A,e,r){Oo(A|=0,r|=0,8,e|=0,8)},function(A,e,r){Oo(A|=0,r|=0,16,e|=0,8)},function(A,e,r){Oo(A|=0,r|=0,32,e|=0,8)},function(A,e,r){A|=0,e|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;for(ur=(t=ur)+32|0,n=t,i=(r|=0)<<1,f=3*r|0,o=0;a=0|or[e+(o<<1)>>1],s=(55*(c=0|or[e+(o+r<<1)>>1])|0)+(29*a|0)+(74*(l=0|or[e+(i+o<<1)>>1])|0)+(84*(u=0|or[e+(f+o<<1)>>1])|0)+1>>1,or[n+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),b=(s=(0|br(u,-74))+(74*(c+a|0)|0)|0)>>1,or[n+(o+4<<1)>>1]=(0|s)<-65536?-32768:65535&((0|b)<32767?b:32767),b=(55*u|0)+((0|br(l,-74))+((0|br(c,-29))+(84*a|0)))+1>>1,or[n+(o+8<<1)>>1]=(0|b)<-32768?-32768:65535&((0|b)<32767?b:32767),a=(0|br(u,-29))+((74*l|0)+((0|br(c,-84))+(55*a|0)))+1>>1,or[n+(o+12<<1)>>1]=(0|a)<-32768?-32768:65535&((0|a)<32767?a:32767),4!=(0|(o=o+1|0)););for(o=0;b=0|or[n+((s=o<<2)<<1)>>1],u=0|or[n+((1|s)<<1)>>1],l=0|or[n+((2|s)<<1)>>1],c=0|or[n+((3|s)<<1)>>1],or[A+(s<<1)>>1]=((55*u|0)+(29*b|0)+(74*l|0)+(84*c|0)+128|0)>>>8,a=((0|br(c,-74))+(74*(u+b|0)|0)+128|0)>>>8&65535,or[A+((1|s)<<1)>>1]=a,a=((55*c|0)+((0|br(l,-74))+((0|br(u,-29))+(84*b|0)))+128|0)>>>8&65535,or[A+((2|s)<<1)>>1]=a,b=((0|br(c,-29))+((74*l|0)+((0|br(u,-84))+(55*b|0)))+128|0)>>>8&65535,or[A+((3|s)<<1)>>1]=b,4!=(0|(o=o+1|0)););ur=t},function(A,e,r){jo(A|=0,4,e|=0,r|=0)},function(A,e,r){jo(A|=0,8,e|=0,r|=0)},function(A,e,r){jo(A|=0,16,e|=0,r|=0)},function(A,e,r){jo(A|=0,32,e|=0,r|=0)},function(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;ur=(i=ur)+32|0,w=i,n=0|or[(e|=0)>>1],o=0|or[e+4>>1],c=0|or[e+2>>1],m=o+n<<16>>16,a=(f=0|or[e+6>>1])+c<<16>>16,or[w>>1]=a+m,or[(s=w+2|0)>>1]=m-a,o=n-o<<16>>16,f=c-f<<16>>16,or[(c=w+4|0)>>1]=f+o,or[(n=w+6|0)>>1]=o-f,f=0|or[e+(r<<1)>>1],o=0|or[e+(r+2<<1)>>1],a=0|or[e+(r+1<<1)>>1],t=o+f<<16>>16,g=(m=0|or[e+(r+3<<1)>>1])+a<<16>>16,or[(h=w+8|0)>>1]=g+t,or[(b=w+10|0)>>1]=t-g,o=f-o<<16>>16,m=a-m<<16>>16,or[(a=w+12|0)>>1]=m+o,or[(f=w+14|0)>>1]=o-m,o=0|or[e+((m=r<<1)<<1)>>1],g=0|or[e+(m+2<<1)>>1],t=0|or[e+((1|m)<<1)>>1],d=(l=(m=0|or[e+(m+3<<1)>>1])+t<<16>>16)+(v=g+o<<16>>16)|0,or[w+16>>1]=d,l=v-l|0,or[w+18>>1]=l,g=o-g<<16>>16,m=t-m<<16>>16,or[(t=w+20|0)>>1]=m+g,or[(o=w+22|0)>>1]=g-m,g=0|or[e+((m=3*r|0)<<1)>>1],v=0|or[e+(m+2<<1)>>1],r=0|or[e+(m+1<<1)>>1],k=(u=(m=0|or[e+(m+3<<1)>>1])+r<<16>>16)+(e=v+g<<16>>16)|0,or[w+24>>1]=k,u=e-u|0,or[w+26>>1]=u,e=(m=r-m<<16>>16)+(v=g-v<<16>>16)|0,or[w+28>>1]=e,or[(r=w+30|0)>>1]=v-m,m=(d=d<<16>>16)+(w=0|or[w>>1])<<16>>16,v=(k=k<<16>>16)+(h=0|or[h>>1])<<16>>16,or[A>>1]=v+m,or[A+8>>1]=m-v,d=w-d<<16>>16,k=h-k<<16>>16,or[A+16>>1]=k+d,or[A+24>>1]=d-k,k=(l=l<<16>>16)+(s=0|or[s>>1])<<16>>16,d=(u=u<<16>>16)+(b=0|or[b>>1])<<16>>16,or[A+2>>1]=d+k,or[A+10>>1]=k-d,l=s-l<<16>>16,u=b-u<<16>>16,or[A+18>>1]=u+l,or[A+26>>1]=l-u,c=0|or[c>>1],u=(t=0|or[t>>1])+c<<16>>16,l=(e=e<<16>>16)+(a=0|or[a>>1])<<16>>16,or[A+4>>1]=l+u,or[A+12>>1]=u-l,t=c-t<<16>>16,e=a-e<<16>>16,or[A+20>>1]=e+t,or[A+28>>1]=t-e,n=0|or[n>>1],e=0|or[o>>1],f=0|or[f>>1],o=e+n<<16>>16,t=(r=0|or[r>>1])+f<<16>>16,or[A+6>>1]=t+o,or[A+14>>1]=o-t,e=n-e<<16>>16,r=f-r<<16>>16,or[A+22>>1]=r+e,or[A+30>>1]=e-r,ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;for(ur=(f=ur)+128|0,i=f,n=0;o=0|br(n,r),w=0|or[e+(o<<1)>>1],l=0|or[e+(o+4<<1)>>1],k=0|or[e+(o+1<<1)>>1],c=0|or[e+(o+5<<1)>>1],t=0|or[e+(o+2<<1)>>1],a=0|or[e+(o+6<<1)>>1],h=0|or[e+(o+3<<1)>>1],d=l+w<<16>>16,u=a+t<<16>>16,s=c+k<<16>>16,b=(o=0|or[e+(o+7<<1)>>1])+h<<16>>16,l=w-l<<16>>16,a=t-a<<16>>16,c=k-c<<16>>16,o=h-o<<16>>16,h=u+d<<16>>16,k=b+s<<16>>16,or[i+((t=n<<3)<<1)>>1]=k+h,or[i+((1|t)<<1)>>1]=h-k,u=d-u<<16>>16,b=s-b<<16>>16,or[i+((2|t)<<1)>>1]=b+u,or[i+((3|t)<<1)>>1]=u-b,b=a+l<<16>>16,u=o+c<<16>>16,or[i+((4|t)<<1)>>1]=u+b,or[i+((5|t)<<1)>>1]=b-u,a=l-a<<16>>16,o=c-o<<16>>16,or[i+((6|t)<<1)>>1]=o+a,or[i+((7|t)<<1)>>1]=a-o,8!=(0|(n=n+1|0)););for(n=0;p=0|or[i+(n<<1)>>1],b=0|or[i+((a=n+32|0)<<1)>>1],m=0|or[i+((v=n+8|0)<<1)>>1],s=0|or[i+((u=n+40|0)<<1)>>1],Z=0|or[i+((t=n+16|0)<<1)>>1],k=0|or[i+((d=n+48|0)<<1)>>1],g=0|or[i+((c=n+24|0)<<1)>>1],e=b+p<<16>>16,o=k+Z<<16>>16,r=s+m<<16>>16,l=(h=0|or[i+((w=n+56|0)<<1)>>1])+g<<16>>16,b=p-b<<16>>16,k=Z-k<<16>>16,s=m-s<<16>>16,h=g-h<<16>>16,g=o+e<<16>>16,m=l+r<<16>>16,or[A+(n<<1)>>1]=m+g,or[A+(v<<1)>>1]=g-m,o=e-o<<16>>16,l=r-l<<16>>16,or[A+(t<<1)>>1]=l+o,or[A+(c<<1)>>1]=o-l,c=k+b<<16>>16,l=h+s<<16>>16,or[A+(a<<1)>>1]=l+c,or[A+(u<<1)>>1]=c-l,k=b-k<<16>>16,h=s-h<<16>>16,or[A+(d<<1)>>1]=h+k,or[A+(w<<1)>>1]=k-h,8!=(0|(n=n+1|0)););ur=f},function(A,e,r){Ho(A|=0,16,e|=0,r|=0)},function(A,e,r){Ho(A|=0,32,e|=0,r|=0)},Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb],ts=[Db,function(A,e,r,i){A|=0,i|=0,r=(r|=0)+8|0,as[15&ar[16+(0|ar[(e|=0)>>2])>>2]](A,e,0|ar[r>>2],0|ar[r+4>>2],0,i)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0;A:do{if(0|i){for(f=0;;){if((i-f|0)>>>0<4){f=4;break}if(n=(0|cr[r+(f+1)>>0])<<16|(0|cr[r+f>>0])<<24|(0|cr[r+(f+2)>>0])<<8|0|cr[r+(f+3)>>0],(i-(f=f+4|0)|0)>>>0>>0){f=7;break}if(Ve(0|ar[e>>2],r+f|0,n,0,0,0),i>>>0<=(f=n+f|0)>>>0)break A}if(4==(0|f))return ar[A>>2]=ar[1919],ar[A+4>>2]=ar[1920],void(ar[A+8>>2]=ar[1921]);if(7==(0|f))return ar[A>>2]=ar[1919],ar[A+4>>2]=ar[1920],void(ar[A+8>>2]=ar[1921])}}while(0);ar[A>>2]=ar[1904],ar[A+4>>2]=ar[1905],ar[A+8>>2]=ar[1906]},function(A,e,r,i){i|=0,ar[(i=A|=0)>>2]=0,ar[i+4>>2]=0,ar[(i=A+8|0)>>2]=-1,ar[i+4>>2]=-1},function(A,e,r,i){i|=0,ar[(i=A|=0)>>2]=0,ar[i+4>>2]=0,ar[(i=A+8|0)>>2]=-1,ar[i+4>>2]=-1},function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o=0;for(f=ur=(t=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,4294967279<(n=i-r|(ar[A+8>>2]=0))>>>0&&pu(),n>>>0<11?(tr[A+11>>0]=n,o=A):(o=0|hu(e=16+n&-16),ar[A>>2]=o,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=n),e=r,A=o;(0|e)!=(0|i);)Qf(A,e),e=e+1|0,A=A+1|0;Qf(o+n|(tr[f>>0]=0),f),ur=t},function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o=0,a=0;f=ur=(t=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,1073741807<(n=i-r>>2)>>>(ar[A+8>>2]=0)&&pu();do{if(2<=n>>>0){if(!(1073741823<(e=4+n&-4)>>>0)){a=0|hu(e<<2),ar[A>>2]=a,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=n,o=r;break}lA()}else tr[A+8+3>>0]=n,o=r,a=A}while(0);for(;(0|o)!=(0|i);)ln(a,o),o=o+4|0,a=a+4|0;ar[f>>2]=0,ln(a,f),ur=t},function(A,e,r,i){r|=0,i|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])&&Pu(0,e,r,i)},function(A,e,r,i){r|=0,i|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])?Pu(0,e,r,i):(A=0|ar[A+8>>2],ts[31&ar[28+(0|ar[A>>2])>>2]](A,e,r,i))},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0;A:do{if(0|xu(A,0|ar[e+8>>2]))Pu(0,e,r,i);else if(f=A+16+((n=0|ar[A+12>>2])<<3)|0,Ab(A+16|0,e,r,i),1<(0|n)){n=e+54|0,A=A+24|0;do{if(Ab(A,e,r,i),0|tr[n>>0])break A;A=A+8|0}while(A>>>0>>0)}}while(0)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(ur=(u=ur)+64|0,l=(o=u)+56|0,c=u+52|0,s=u+40|0,a=u+36|0,v=u+24|0,n=u+20|0,f=u+16|0,t=u+12|0,b=0|oA(),ar[l>>2]=b,!e)return ar[A>>2]=b,ar[l>>2]=0,iA((v=0)|v),void(ur=u);if(!function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c;ur=(c=ur)+32|0,ar[(t=(o=c)+24|0)>>2]=0,ar[(a=4+t|0)>>2]=0,function(A,e,r,i,f,n,t){A|=0,n|=0,t|=0;var o,a,c=0,l=0,u=0,b=0,s=0,d=0;ur=(a=ur)+48|0,b=(o=a)+40|0,u=a+32|0,d=a+20|0,Xl(o,e|=0,r|=0,i|=0,f|=0,0);do{if(0|ar[o>>2])i=0|ar[(s=o)+4>>2],ar[(d=A)>>2]=ar[s>>2],ar[d+4>>2]=i,i=o+8|0,ar[(d=A+8|0)>>2]=ar[i>>2],ar[d+4>>2]=ar[i+4>>2],ar[d+8>>2]=ar[i+8>>2],ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0;else{if(99==(0|f)&&(f=0|ar[32+(0|ar[i>>2])>>2]),c=0|ar[i>>2],l=0|ar[c+36>>2],r=99==(0|n)?l:n,e=t&&0|tr[t+20>>0]?8:0,!((0|r)==(0|l)&&(0|f)==(0|ar[c+32>>2])||(ar[u>>2]=0,ar[(c=u+4|0)>>2]=0,me(b,i,f,r,u,e),e=0|ar[b>>2],u=0|ar[(r=b+4|0)>>2],ar[b>>2]=0,ar[r>>2]=0,ar[i>>2]=e,e=0|ar[(b=i+4|0)>>2],ar[b>>2]=u,0|e&&(du(e),0|(s=0|ar[r>>2]))&&du(s),0|(e=0|ar[c>>2])&&du(e),0|ar[i>>2]))){if(ar[d>>2]=0,ar[d+4>>2]=0,ar[d+8>>2]=0,oo(A,4,3003,d),0<=(0|tr[d+11>>0]))break;vu(0|ar[d>>2]);break}d=0|ar[(s=56592)+4>>2],ar[(i=A)>>2]=ar[s>>2],ar[i+4>>2]=d,yu(A+8|0,56600)}}while(0);if(0<=(0|tr[11+(e=o+8|0)>>0]))return ur=a;vu(0|ar[e>>2]),ur=a}(o,0|ar[e+8>>2],0|ar[20+(0|ar[e>>2])>>2],t,i,f,n),0|ar[o>>2]?ao(A,o,0|ar[e>>2]):(n=0|hu(8),ar[r>>2]=n,i=0|ar[t>>2],f=0|ar[a>>2],ar[t>>2]=0,ar[a>>2]=0,ar[n>>2]=i,ar[n+4>>2]=f,ao(A,56592,0|ar[e>>2]));(0|tr[11+(A=o+8|0)>>0])<0&&vu(0|ar[A>>2]);(A=0|ar[a>>2])&&du(A),ur=c}(s,e,c,r,i,0),0|ar[s>>2])v=0|hu(12),ar[v>>2]=ar[s>>2],ar[v+4>>2]=ar[s+4>>2],ar[v+8>>2]=ar[s+8>>2],ar[o>>2]=v,v=0|cA(1392,0|o),ar[A>>2]=v;else{if(ar[o>>2]=cr[40+(0|ar[e>>2])>>0],bl(l,29636,o),sl(o,48+(0|ar[e>>2])|0),s=(b=0|ar[(i=o+4|0)>>2])-(e=0|ar[o>>2])>>3,0|(r=e)){if((0|b)!=(0|r)){for(;e=b+-8|0,ar[i>>2]=e,(b=0|ar[b+-4>>2])&&(du(b),e=0|ar[i>>2]),(0|e)!=(0|r);)b=e;e=0|ar[o>>2]}vu(e)}switch(ar[a>>2]=s,bl(l,29647,a),b=0|ar[c>>2],e=0|Xo(0|ar[b>>2],0),ar[o>>2]=e,function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(4144,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29658,o),e=0|Wo(0|ar[b>>2],0),ar[a>>2]=e,function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(4144,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29664,a),ar[v>>2]=0,ar[v+4>>2]=0,ar[v+8>>2]=0,ar[n>>2]=ar[36+(0|ar[b>>2])>>2],function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(1248,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29671,n),ar[n>>2]=ar[32+(0|ar[b>>2])>>2],function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(1256,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29678,n),e=0|ar[b>>2],0|ar[e+32>>2]){case 0:if(r=e?0|Fo(e,0,n):ar[n>>2]=0,h=(e=0|ar[b>>2])?0|Fo(e,1,f):ar[f>>2]=0,e=(e=0|ar[b>>2])?0|Fo(e,2,t):ar[t>>2]=0,w=0|ar[o>>2],d=0|ar[a>>2],Vu(v,(0|br(~~(.5*(0|w)+.5)<<1,~~(.5*(0|d)+.5)))+(0|br(d,w))|0,0),w=(0|tr[v+11>>0])<0?0|ar[v>>2]:v,d=0|ar[o>>2],k=0|ar[a>>2],(0|d)!=(0|(s=0|ar[n>>2]))){if(0<(0|k))for(i=w,b=r,r=0;hb(0|i,0|b,0|s),(0|(r=r+1|0))!=(0|k);)i=i+d|0,b=b+s|0}else hb(0|w,0|r,0|br(k,d));if(d=0|ar[o>>2],k=0|ar[a>>2],b=w+(0|br(k,d))|0,k=~~(.5*(0|k)+.5),(0|(d=~~(.5*(0|d)+.5)))!=(0|(s=0|ar[f>>2]))){if(0<(0|k))for(i=b,b=h,r=0;hb(0|i,0|b,0|s),(0|(r=r+1|0))!=(0|k);)i=i+d|0,b=b+s|0}else hb(0|b,0|h,0|br(k,d));if(r=0|ar[o>>2],i=0|ar[a>>2],b=0|br(d=~~(.5*(0|i)+.5),s=~~(.5*(0|r)+.5)),r=w+(0|br(i,r))+b|0,(0|s)!=(0|(i=0|ar[t>>2]))){if(0<(0|d))for(b=0;hb(0|r,0|e,0|i),(0|(b=b+1|0))!=(0|d);)r=r+s|0,e=e+i|0}else hb(0|r,0|e,0|b);break;case 1:if(10!=(0|ar[e+36>>2])&&sr(29689,29758,140,26426),e=0|Fo(e,10,n),Vu(v,0|br(3*(0|ar[o>>2])|0,0|ar[a>>2]),0),r=(0|tr[v+11>>0])<0?0|ar[v>>2]:v,d=3*(0|ar[o>>2])|0,s=0|ar[a>>2],(0|d)!=(0|(i=0|ar[n>>2]))){if(0<(0|s))for(b=0;hb(0|r,0|e,0|i),(0|(b=b+1|0))!=(0|s);)r=r+d|0,e=e+i|0}else hb(0|r,0|e,0|br(s,d));break;case 2:if(0|ar[e+36>>2]&&sr(29778,29758,151,26426),e=0|Fo(e,0,n),Vu(v,0|br(0|ar[a>>2],0|ar[o>>2]),0),r=(0|tr[v+11>>0])<0?0|ar[v>>2]:v,d=0|ar[o>>2],s=0|ar[a>>2],(0|d)!=(0|(i=0|ar[n>>2]))){if(0<(0|s))for(b=0;hb(0|r,0|e,0|i),(0|(b=b+1|0))!=(0|s);)r=r+d|0,e=e+i|0}else hb(0|r,0|e,0|br(s,d))}!function(A,e,r){e|=0,r|=0;var i,f,n,t,o=0;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),o=0|tr[r+11>>0],o=(t=o<<24>>24<0)?0|ar[r+4>>2]:255&o,n=0|yc(o+4|0),ar[n>>2]=o,hb(4+n|0,0|(t?0|ar[r>>2]:r),0|o),ar[f>>2]=n,r=0|cA(1408,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29840,v),0|(e=0|ar[c>>2])&&(0|(b=0|ar[e+4>>2])&&du(b),vu(e)),ar[A>>2]=ar[l>>2],((ar[l>>2]=0)|tr[v+11>>0])<0&&vu(0|ar[v>>2])}v=0|ar[l>>2],iA(0|v),ur=u},function(A,e,r,i){A|=0,e|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if(f=(r|=0)+5|0,n=1<>1]<>12)+o|0)+(0|cr[(u=A+(t+l)|0)>>0])|0,tr[u>>0]=(0|b)<0?0:255&((0|b)<255?b:255),(0|(t=t+1|0))<(0|n););a=a+1|0}while((0|a)<(0|n))}},function(A,e,r,i){A|=0,e|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0;if(f=(r|=0)+5|0,n=1<>1]<>12)+o|0,c=A+((0|br(t,i))+a)|0,l=o+(0|cr[c>>0])|0,tr[c>>0]=(0|l)<0?0:255&((0|l)<255?l:255),(0|(t=t+1|0))<(0|n););a=a+1|0}while((0|a)<(0|n))}},function(A,e,r,i){sr(44456,35137,68,35179)},function(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;for(ur=(t=ur)+32|0,f=t,a=(n=20-(i|=0)|0)-1|0,o=0;c=0|or[e+(o<<1)>>1],s=(74*(l=0|or[e+(o+4<<1)>>1])|0)+(29*c|0)+(84*(u=0|or[e+(o+8<<1)>>1])|0)+(55*(b=0|or[e+(o+12<<1)>>1])|0)+64>>7,or[f+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),s=(0|br(b,-84))+((0|br(u,-29))+((74*l|0)+(55*c|0)))+64>>7,or[f+8+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),s=(74*b|0)+((0|br(u,-74))+(74*c|0))+64>>7,or[f+16+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),c=(0|br(b,-29))+((55*u|0)+((0|br(l,-74))+(84*c|0)))+64>>7,or[f+24+(o<<1)>>1]=(0|c)<-32768?-32768:65535&((0|c)<32767?c:32767),4!=(0|(o=o+1|0)););for(c=1<>1],k=(74*(u=0|or[f+(o<<3)+2>>1])|0)+(29*b|0)+(84*(l=0|or[f+(o<<3)+4>>1])|0)+(55*(i=0|or[f+(o<<3)+6>>1])|0)+c>>n,k=(0|lr[(d=A+(s<<1)|0)>>1])+((0|k)<-32768?-32768:(0|k)<32767?k:32767)|0,or[d>>1]=(0|k)<0?0:65535&((0|k)<(0|e)?k:a),d=(0|br(i,-84))+((0|br(l,-29))+((74*u|0)+(55*b|0)))+c>>n,d=(0|lr[(k=A+(s+1<<1)|0)>>1])+((0|d)<-32768?-32768:(0|d)<32767?d:32767)|0,or[k>>1]=(0|d)<0?0:65535&((0|d)<(0|e)?d:a),k=(74*i|0)+((0|br(l,-74))+(74*b|0))+c>>n,k=(0|lr[(d=A+(s+2<<1)|0)>>1])+((0|k)<-32768?-32768:(0|k)<32767?k:32767)|0,or[d>>1]=(0|k)<0?0:65535&((0|k)<(0|e)?k:a),b=(0|br(i,-29))+((55*l|0)+((0|br(u,-74))+(84*b|0)))+c>>n,b=(0|lr[(s=A+(s+3<<1)|0)>>1])+((0|b)<-32768?-32768:(0|b)<32767?b:32767)|0,or[s>>1]=(0|b)<0?0:65535&((0|b)<(0|e)?b:a),4!=(0|(o=o+1|0)););ur=t},function(A,e,r,i){zo(A|=0,r|=0,4,e|=0,i|=0)},function(A,e,r,i){zo(A|=0,r|=0,8,e|=0,i|=0)},function(A,e,r,i){zo(A|=0,r|=0,16,e|=0,i|=0)},function(A,e,r,i){zo(A|=0,r|=0,32,e|=0,i|=0)},function(A,e,r,i){A|=0,e|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;for(ur=(o=ur)+32|0,t=o,c=(r|=0)+-1|0,f=(a=1<<(i|=0))+65535|0,n=0-a|0,i=0;l=0|or[e+(i<<1)>>1],d=(74*(u=0|or[e+(i+4<<1)>>1])|0)+(29*l|0)+(84*(b=0|or[e+(i+8<<1)>>1])|0)+(55*(s=0|or[e+(i+12<<1)>>1])|0)+64>>7,or[t+(i<<1)>>1]=(0|d)<(0|n)?n:(0|d)<(0|a)?d:f,d=(0|br(s,-84))+((0|br(b,-29))+((74*u|0)+(55*l|0)))+64>>7,or[t+8+(i<<1)>>1]=(0|d)<(0|n)?n:(0|d)<(0|a)?d:f,d=(74*s|0)+((0|br(b,-74))+(74*l|0))+64>>7,or[t+16+(i<<1)>>1]=(0|d)<(0|n)?n:(0|d)<(0|a)?d:f,l=(0|br(s,-29))+((55*b|0)+((0|br(u,-74))+(84*l|0)))+64>>7,or[t+24+(i<<1)>>1]=(0|l)<(0|n)?n:(0|l)<(0|a)?l:f,4!=(0|(i=i+1|0)););for(a=1<>1],c=74*(b=0|or[t+(i<<3)+2>>1])|0,u=0|or[t+(i<<3)+4>>1],l=0|or[t+(i<<3)+6>>1],ar[A+(d<<2)>>2]=(55*l|0)+((84*u|0)+(c+(29*s|0)))+a>>r,c=(0|br(l,-84))+((0|br(u,-29))+(c+(55*s|0)))+a>>r,ar[A+((1|d)<<2)>>2]=c,c=(74*l|0)+((0|br(u,-74))+(74*s|0))+a>>r,ar[A+((2|d)<<2)>>2]=c,s=(0|br(l,-29))+((55*u|0)+((0|br(b,-74))+(84*s|0)))+a>>r,ar[A+((3|d)<<2)>>2]=s,4!=(0|(i=i+1|0)););ur=o},function(A,e,r,i){So(A|=0,4,e|=0,r|=0,i|=0)},function(A,e,r,i){So(A|=0,8,e|=0,r|=0,i|=0)},function(A,e,r,i){So(A|=0,16,e|=0,r|=0,i|=0)},function(A,e,r,i){So(A|=0,32,e|=0,r|=0,i|=0)},Db,Db,Db,Db,Db,Db,Db,Db],os=[Jb,function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a=0,c=0,l=0,u=0,b=0;if(ur=(o=ur)+64|0,t=o+36|0,n=o+48|0,u=o,1==(0|ar[(r|=0)>>2])&&3==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2]))return ar[t>>2]=0,ar[(b=4+t|0)>>2]=0,a=(ar[8+t>>2]=0)==(0|tr[(f=r+8|0)>>0])&&0==(0|tr[i+8>>0])?.25:0,ar[u>>2]=1,ar[u+4>>2]=11,tr[u+8>>0]=1,tr[(e=u+9|0)>>0]=0|tr[n>>0],tr[e+1>>0]=0|tr[1+n>>0],tr[e+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[u+16>>2]=0,ar[(e=u+20|0)>>2]=0,gA[u+24>>2]=.10000000149011612,gA[u+28>>2]=0,gA[u+32>>2]=a,l=8+t|0,Nl(t,u),0|(e=0|ar[e>>2])&&du(e),0!=(0|tr[f>>0])&&0!=(0|tr[i+8>>0])?c=.10000000149011612:(c=.20000000298023224,a=0),ar[u>>2]=1,ar[u+4>>2]=10,tr[u+8>>0]=0,tr[(f=u+9|0)>>0]=0|tr[n>>0],tr[f+1>>0]=0|tr[1+n>>0],tr[f+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[(f=u+16|0)>>2]=0,ar[(r=u+20|0)>>2]=0,gA[u+24>>2]=c,gA[u+28>>2]=0,gA[u+32>>2]=a,(e=0|ar[b>>2])>>>0>=(0|ar[l>>2])>>>0?(Nl(t,u),0|(e=0|ar[r>>2])&&du(e)):(ar[e>>2]=ar[u>>2],ar[e+4>>2]=ar[u+4>>2],ar[e+8>>2]=ar[u+8>>2],ar[e+12>>2]=ar[u+12>>2],ar[e+16>>2]=ar[f>>2],ar[e+20>>2]=ar[r>>2],ar[f>>2]=0,u=u+24|(ar[r>>2]=0),ar[(i=e+24|0)>>2]=ar[u>>2],ar[i+4>>2]=ar[u+4>>2],ar[i+8>>2]=ar[u+8>>2],ar[b>>2]=e+36),ar[A>>2]=ar[t>>2],ar[A+4>>2]=ar[b>>2],ar[A+8>>2]=ar[l>>2],void(ur=o);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=o},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(ur=(b=ur)+32|0,o=b+16|0,a=b+12|0,c=b+8|0,l=b+4|0,u=b,t=0|Eo(0|ar[(r|=0)>>2],6),n=0!=(0|tr[i+8>>0]),(0|Vo(0|ar[r>>2],3))<<24>>24==8&&(0|Vo(0|ar[r>>2],4))<<24>>24==8&&(0|Vo(0|ar[r>>2],5))<<24>>24==8){if(t&&(0|Vo(0|ar[r>>2],6))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=b);f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(i=f+12|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,Z=f+52|0,ar[(g=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[Z>>2]=0,ar[Z+4>>2]=0,ar[Z+8>>2]=0,ar[Z+12>>2]=0,ar[f+68>>2]=g,g=i,m=(Z=f)+16|0,bu(f),su(f),e=0|ar[m>>2],ar[i>>2]=g,ar[m>>2]=Z,0|e&&ku(e),du(f),h=0|ar[r>>2],yo(i,k=0|ar[h+24>>2],h=0|ar[h+28>>2],1,n?11:10),Bo(i,10,k,h,8),ar[o>>2]=0,ar[a>>2]=0,ar[c>>2]=0,ar[l>>2]=0,w=(ar[u>>2]=0)|Ro(0|ar[r>>2],3,o),v=0|Ro(0|ar[r>>2],4,a),m=0|Ro(0|ar[r>>2],5,c),d=0|Fo(i,10,u),f=t?0|Ro(0|ar[r>>2],6,l):0;A:do{if(0<(0|h)){s=t&n,r=0<(0|k),i=0;e:for(;;){r:do{if(s){if(r)for(e=0;B=w+((0|br(0|ar[o>>2],i))+e)|0,p=e<<2,y=d+((0|br(0|ar[u>>2],i))+p)|0,tr[y>>0]=0|tr[B>>0],y=v+((0|br(0|ar[a>>2],i))+e)|0,B=d+((1|p)+(0|br(0|ar[u>>2],i)))|0,tr[B>>0]=0|tr[y>>0],B=m+((0|br(0|ar[c>>2],i))+e)|0,y=d+((2|p)+(0|br(0|ar[u>>2],i)))|0,tr[y>>0]=0|tr[B>>0],y=f+((0|br(0|ar[l>>2],i))+e)|0,p=d+((3|p)+(0|br(0|ar[u>>2],i)))|0,tr[p>>0]=0|tr[y>>0],(0|(e=e+1|0))!=(0|k););}else{if(!n){if(!r)break;for(e=0;;)if(y=w+((0|br(0|ar[o>>2],i))+e)|0,B=3*e|0,p=d+((0|br(0|ar[u>>2],i))+B)|0,tr[p>>0]=0|tr[y>>0],p=v+((0|br(0|ar[a>>2],i))+e)|0,y=d+(B+1+(0|br(0|ar[u>>2],i)))|0,tr[y>>0]=0|tr[p>>0],y=m+((0|br(0|ar[c>>2],i))+e)|0,B=d+(B+2+(0|br(0|ar[u>>2],i)))|0,tr[B>>0]=0|tr[y>>0],(0|(e=e+1|0))==(0|k))break r}if(t)break e;if(r)for(e=0;p=w+((0|br(0|ar[o>>2],i))+e)|0,B=e<<2,y=d+((0|br(0|ar[u>>2],i))+B)|0,tr[y>>0]=0|tr[p>>0],y=v+((0|br(0|ar[a>>2],i))+e)|0,p=d+((1|B)+(0|br(0|ar[u>>2],i)))|0,tr[p>>0]=0|tr[y>>0],p=m+((0|br(0|ar[c>>2],i))+e)|0,y=d+((2|B)+(0|br(0|ar[u>>2],i)))|0,tr[y>>0]=0|tr[p>>0],B=d+((3|B)+(0|br(0|ar[u>>2],i)))|0,tr[B>>0]=-1,(0|(e=e+1|0))!=(0|k););}}while(0);if((0|h)<=(0|(i=i+1|0)))break A}sr(32223,32248,281,32272)}}while(0);return ar[A>>2]=g,ar[A+4>>2]=Z,void(ur=b)}ar[A>>2]=0,ar[A+4>>2]=0,ur=b},function(A,e,r,i,f){var n,t;if(A|=0,e|=0,i|=0,f|=0,ur=(t=ur)+48|0,n=t+36|0,f=t,0==(0|ar[(r|=0)>>2])&&1==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2])&&0==(0|tr[r+8>>0])){if(0|(e=0|ar[r+16>>2])){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}if(!(0|tr[e+10>>0]))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}return ar[n>>2]=0,ar[(i=4+n|0)>>2]=0,ar[8+n>>2]=0,ar[f>>2]=1,ar[f+4>>2]=10,tr[f+8>>0]=0,ar[f+12>>2]=8,ar[f+16>>2]=0,ar[(e=f+20|0)>>2]=0,gA[f+24>>2]=.5,gA[f+28>>2]=0,gA[f+32>>2]=0,Nl(n,f),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[8+n>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(ur=(c=ur)+64|0,f=c+32|0,n=c+12|0,t=c+8|0,o=c+4|0,a=c,(0|Vo(0|ar[(r|=0)>>2],0))<<24>>24==8&&(0|Vo(0|ar[r>>2],1))<<24>>24==8&&(0|Vo(0|ar[r>>2],2))<<24>>24==8){if(i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(l=i+12|0)>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,ar[l+12>>2]=0,ar[l+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,p=i+52|0,ar[(Z=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[p>>2]=0,ar[p+4>>2]=0,ar[p+8>>2]=0,ar[p+12>>2]=0,ar[i+68>>2]=Z,Z=l,g=(p=i)+16|0,bu(i),su(i),e=0|ar[g>>2],ar[l>>2]=Z,ar[g>>2]=p,0|e&&ku(e),du(i),v=0|ar[r>>2],yo(l,w=0|ar[v+24>>2],v=0|ar[v+28>>2],1,10),Bo(l,10,w,v,8),m=0|ar[r>>2],e=0|ar[m+40>>2],(g=0==(0|(m=0|ar[m+44>>2])))||bu(m),Ze(f),0|e&&(pe(n,0|or[e+8>>1],0|or[e+4>>1]),ar[f>>2]=ar[n>>2],ar[f+4>>2]=ar[4+n>>2],ar[f+8>>2]=ar[8+n>>2],ar[f+12>>2]=ar[12+n>>2],ar[f+16>>2]=ar[16+n>>2]),d=0|ef(256*gA[f+4>>2]),k=0|ef(256*gA[f+12>>2]),h=0|ef(256*gA[f+8>>2]),u=0|ef(256*gA[f+16>>2]),ar[n>>2]=0,ar[t>>2]=0,ar[o>>2]=0,b=(ar[a>>2]=0)|Ro(0|ar[r>>2],0,n),s=0|Ro(0|ar[r>>2],1,t),r=0|Ro(0|ar[r>>2],2,o),f=0|Fo(l,10,a),0<(0|v)&0<(0|w)){i=0;do{for(l=(0|i)/2|0,e=0;B=b+((0|br(0|ar[n>>2],i))+e)|0,B=0|cr[B>>0],W=(0|e)/2|0,E=s+((0|br(0|ar[t>>2],l))+W)|0,E=(0|cr[E>>0])-128|0,W=r+((0|br(0|ar[o>>2],l))+W)|0,W=(0|cr[W>>0])-128|0,I=(128+(0|br(W,d))>>8)+B|0,y=3*e|0,X=f+((0|br(0|ar[a>>2],i))+y)|0,tr[X>>0]=(0|I)<0?0:255<(0|I)?-1:255&I,W=(128+(0|br(E,h))+(0|br(W,k))>>8)+B|0,X=f+(y+1+(0|br(0|ar[a>>2],i)))|0,tr[X>>0]=(0|W)<0?0:255<(0|W)?-1:255&W,B=(128+(0|br(E,u))>>8)+B|0,y=f+(y+2+(0|br(0|ar[a>>2],i)))|0,tr[y>>0]=(0|B)<0?0:255<(0|B)?-1:255&B,(0|(e=e+1|0))!=(0|w););i=i+1|0}while((0|i)!=(0|v))}return(ar[A>>2]=Z,ar[A+4>>2]=p,g)?void(ur=c):(du(m),void(ur=c))}ar[A>>2]=0,ar[A+4>>2]=0,ur=c},function(A,e,r,i,f){var n,t;if(A|=0,e|=0,i|=0,f|=0,ur=(t=ur)+48|0,n=t+36|0,f=t,0==(0|ar[(r|=0)>>2])&&1==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2])){if(0|(e=0|ar[r+16>>2])){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}if(!(0|tr[e+10>>0]))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}return ar[n>>2]=0,ar[(i=4+n|0)>>2]=0,ar[8+n>>2]=0,ar[f>>2]=1,ar[f+4>>2]=11,tr[f+8>>0]=1,ar[f+12>>2]=8,ar[f+16>>2]=0,ar[(e=f+20|0)>>2]=0,gA[f+24>>2]=.5,gA[f+28>>2]=0,gA[f+32>>2]=0,Nl(n,f),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[8+n>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0;if(ur=(l=ur)+64|0,f=l+36|0,t=l+16|0,o=l+12|0,a=l+8|0,c=l+4|0,n=l,(0|Vo(0|ar[(r|=0)>>2],0))<<24>>24==8&&(0|Vo(0|ar[r>>2],1))<<24>>24==8&&(0|Vo(0|ar[r>>2],2))<<24>>24==8){if(i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(u=i+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,X=i+52|0,ar[(E=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[X>>2]=0,ar[X+4>>2]=0,ar[X+8>>2]=0,ar[X+12>>2]=0,ar[i+68>>2]=E,E=u,B=(X=i)+16|0,bu(i),su(i),e=0|ar[B>>2],ar[u>>2]=E,ar[B>>2]=X,0|e&&ku(e),du(i),p=0|ar[r>>2],yo(u,Z=0|ar[p+24>>2],p=0|ar[p+28>>2],1,11),Bo(u,10,Z,p,8),y=0|ar[r>>2],e=0|ar[y+40>>2],(B=0==(0|(y=0|ar[y+44>>2])))||bu(y),Ze(f),0|e&&(pe(t,0|or[e+8>>1],0|or[e+4>>1]),ar[f>>2]=ar[t>>2],ar[f+4>>2]=ar[4+t>>2],ar[f+8>>2]=ar[8+t>>2],ar[f+12>>2]=ar[12+t>>2],ar[f+16>>2]=ar[16+t>>2]),v=0|ef(256*gA[f+4>>2]),m=0|ef(256*gA[f+12>>2]),g=0|ef(256*gA[f+8>>2]),s=0|ef(256*gA[f+16>>2]),d=0|Eo(0|ar[r>>2],6),ar[t>>2]=0,ar[o>>2]=0,ar[a>>2]=0,ar[c>>2]=0,k=(ar[n>>2]=0)|Ro(0|ar[r>>2],0,t),h=0|Ro(0|ar[r>>2],1,o),w=0|Ro(0|ar[r>>2],2,a),b=d?0|Ro(0|ar[r>>2],6,c):0,f=0|Fo(u,10,n),0<(0|p)){u=0<(0|Z),i=0;do{if(u)if(r=(0|i)/2|0,d)for(e=0;C=k+((0|br(0|ar[t>>2],i))+e)|0,C=0|cr[C>>0],V=(0|e)/2|0,W=h+((0|br(0|ar[o>>2],r))+V)|0,W=(0|cr[W>>0])-128|0,V=w+((0|br(0|ar[a>>2],r))+V)|0,V=(0|cr[V>>0])-128|0,F=(128+(0|br(V,v))>>8)+C|0,I=e<<2,G=f+((0|br(0|ar[n>>2],i))+I)|0,tr[G>>0]=(0|F)<0?0:255<(0|F)?-1:255&F,V=(128+(0|br(W,g))+(0|br(V,m))>>8)+C|0,G=f+((1|I)+(0|br(0|ar[n>>2],i)))|0,tr[G>>0]=(0|V)<0?0:255<(0|V)?-1:255&V,C=(128+(0|br(W,s))>>8)+C|0,W=f+((2|I)+(0|br(0|ar[n>>2],i)))|0,tr[W>>0]=(0|C)<0?0:255<(0|C)?-1:255&C,W=0|br(0|ar[n>>2],i),C=b+((0|br(0|ar[c>>2],i))+e)|0,tr[f+((3|I)+W)>>0]=0|tr[C>>0],(0|(e=e+1|0))!=(0|Z););else for(e=0;G=k+((0|br(0|ar[t>>2],i))+e)|0,G=0|cr[G>>0],I=(0|e)/2|0,V=h+((0|br(0|ar[o>>2],r))+I)|0,V=(0|cr[V>>0])-128|0,I=w+((0|br(0|ar[a>>2],r))+I)|0,I=(0|cr[I>>0])-128|0,W=(128+(0|br(I,v))>>8)+G|0,F=e<<2,C=f+((0|br(0|ar[n>>2],i))+F)|0,tr[C>>0]=(0|W)<0?0:255<(0|W)?-1:255&W,I=(128+(0|br(V,g))+(0|br(I,m))>>8)+G|0,C=f+((1|F)+(0|br(0|ar[n>>2],i)))|0,tr[C>>0]=(0|I)<0?0:255<(0|I)?-1:255&I,G=(128+(0|br(V,s))>>8)+G|0,V=f+((2|F)+(0|br(0|ar[n>>2],i)))|0,tr[V>>0]=(0|G)<0?0:255<(0|G)?-1:255&G,F=f+((3|F)+(0|br(0|ar[n>>2],i)))|0,tr[F>>0]=-1,(0|(e=e+1|0))!=(0|Z););i=i+1|0}while((0|i)!=(0|p))}return(ar[A>>2]=E,ar[A+4>>2]=X,B)?void(ur=l):(du(y),void(ur=l))}ar[A>>2]=0,ar[A+4>>2]=0,ur=l},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(ur=(t=ur)+64|0,n=t+36|0,c=t+48|0,u=t,1==(0|ar[(r|=0)>>2])&&3==(0|ar[r+4>>2])&&8!=(0|(o=0|ar[(a=r+12|0)>>2])))return ar[n>>2]=0,ar[(b=4+n|0)>>2]=0,(ar[8+n>>2]=0)|tr[r+8>>0]?(l=8+n|0,e=o,r=f=o=0):(ar[u>>2]=1,ar[u+4>>2]=12,tr[u+8>>0]=0,tr[(e=u+9|0)>>0]=0|tr[c>>0],tr[e+1>>0]=0|tr[c+1>>0],tr[e+2>>0]=0|tr[c+2>>0],ar[u+12>>2]=o,ar[u+16>>2]=0,ar[(e=u+20|0)>>2]=0,gA[u+24>>2]=.5,gA[u+28>>2]=0,i=8+n|(gA[u+32>>2]=0),Nl(n,u),0|(e=0|ar[e>>2])&&du(e),r=0|ar[b>>2],l=i,e=0|ar[a>>2],o=r,f=0|ar[i>>2]),ar[u>>2]=1,ar[u+4>>2]=13,tr[u+8>>0]=1,tr[(i=u+9|0)>>0]=0|tr[c>>0],tr[i+1>>0]=0|tr[c+1>>0],tr[i+2>>0]=0|tr[c+2>>0],ar[u+12>>2]=e,ar[(e=u+16|0)>>2]=0,ar[(i=u+20|0)>>2]=0,gA[u+24>>2]=.5,gA[u+28>>2]=0,f>>>(gA[u+32>>2]=0)<=o>>>0?(Nl(n,u),0|(e=0|ar[i>>2])&&du(e)):(ar[r>>2]=ar[u>>2],ar[r+4>>2]=ar[u+4>>2],ar[r+8>>2]=ar[u+8>>2],ar[r+12>>2]=ar[u+12>>2],ar[o+16>>2]=ar[e>>2],ar[o+20>>2]=ar[i>>2],ar[e>>2]=0,u=u+24|(ar[i>>2]=0),ar[(c=o+24|0)>>2]=ar[u>>2],ar[c+4>>2]=ar[u+4>>2],ar[c+8>>2]=ar[u+8>>2],ar[b>>2]=o+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[b>>2],ar[A+8>>2]=ar[l>>2],ar[l>>2]=0,void(ur=t);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;if(ur=(l=ur)+32|0,n=l+16|0,t=l+12|0,o=l+8|0,a=l+4|0,c=l,(0|Vo(0|ar[(r|=0)>>2],3))<<24>>24!=8&&(0|Vo(0|ar[r>>2],4))<<24>>24!=8&&(0|Vo(0|ar[r>>2],5))<<24>>24!=8){v=0|Eo(0|ar[r>>2],6);do{if(v){if((0|Vo(0|ar[r>>2],6))<<24>>24==8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=l);if((0|(g=0|Xo(0|ar[r>>2],6)))==(0|Xo(0|ar[r>>2],4))&&(0|(g=0|Wo(0|ar[r>>2],6)))==(0|Wo(0|ar[r>>2],4)))break;return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=l)}}while(0);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(u=f+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,g=f+52|0,ar[(m=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g+12>>2]=0,ar[f+68>>2]=m,m=u,w=(g=f)+16|0,bu(f),su(f),e=0|ar[w>>2],ar[u>>2]=m,ar[w>>2]=g,0|e&&ku(e),du(f),w=0|ar[r>>2],yo(u,h=0|ar[w+24>>2],w=0|ar[w+28>>2],1,0|tr[i+8>>0]?13:12),Bo(u,10,h,w,255&(0|Vo(0|ar[r>>2],3))),ar[n>>2]=0,ar[t>>2]=0,ar[o>>2]=0,ar[a>>2]=0,s=(ar[c>>2]=0)|Ro(0|ar[r>>2],3,n),d=0|Ro(0|ar[r>>2],4,t),k=0|Ro(0|ar[r>>2],5,o),b=0|Fo(u,10,c),e=v?(u=0|Ro(0|ar[r>>2],6,a),(0|ar[a>>2])/2|0):u=0,ar[n>>2]=(0|ar[n>>2])/2|0,ar[t>>2]=(0|ar[t>>2])/2|0,ar[o>>2]=(0|ar[o>>2])/2|0,ar[a>>2]=e,0<(0|w)){i=0<(0|h),f=0;do{if(v){if(i)for(e=0;E=s+((0|br(0|ar[n>>2],f))+e<<1)|0,E=0|or[E>>1],B=d+((0|br(0|ar[t>>2],f))+e<<1)|0,B=0|or[B>>1],y=k+((0|br(0|ar[o>>2],f))+e<<1)|0,y=0|or[y>>1],Z=u+((0|br(0|ar[a>>2],f))+e<<1)|0,Z=0|or[Z>>1],r=e<<3,p=b+((0|br(0|ar[c>>2],f))+r)|0,tr[p>>0]=(65535&E)>>>8,p=b+((1|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=E,p=b+((2|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=(65535&B)>>>8,p=b+((3|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=B,p=b+((4|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=(65535&y)>>>8,p=b+((5|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=y,p=b+((6|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=(65535&Z)>>>8,r=b+((7|r)+(0|br(0|ar[c>>2],f)))|0,tr[r>>0]=Z,(0|(e=e+1|0))!=(0|h););}else if(i)for(e=0;Z=s+((0|br(0|ar[n>>2],f))+e<<1)|0,Z=0|or[Z>>1],p=d+((0|br(0|ar[t>>2],f))+e<<1)|0,p=0|or[p>>1],B=k+((0|br(0|ar[o>>2],f))+e<<1)|0,B=0|or[B>>1],E=6*e|0,y=b+((0|br(0|ar[c>>2],f))+E)|0,tr[y>>0]=(65535&Z)>>>8,y=b+((1|E)+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=Z,y=b+(E+2+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=(65535&p)>>>8,y=b+(E+3+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=p,y=b+(E+4+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=(65535&B)>>>8,E=b+(E+5+(0|br(0|ar[c>>2],f)))|0,tr[E>>0]=B,(0|(e=e+1|0))!=(0|h););f=f+1|0}while((0|f)!=(0|w))}return ar[A>>2]=m,ar[A+4>>2]=g,void(ur=l)}ar[A>>2]=0,ar[A+4>>2]=0,ur=l},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;if(ur=(t=ur)+64|0,n=t+36|0,a=t+48|0,l=t,1==(0|ar[(r|=0)>>2])&&3==(0|ar[r+4>>2])&&8==(0|ar[(o=r+12|0)>>2]))return ar[n>>2]=0,ar[(u=4+n|0)>>2]=0,(ar[8+n>>2]=0)|tr[r+8>>0]?(c=8+n|0,e=8,r=f=o=0):(ar[l>>2]=1,ar[l+4>>2]=12,tr[l+8>>0]=0,tr[(e=l+9|0)>>0]=0|tr[a>>0],tr[e+1>>0]=0|tr[a+1>>0],tr[e+2>>0]=0|tr[a+2>>0],ar[l+12>>2]=8,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,i=8+n|(gA[l+32>>2]=0),Nl(n,l),0|(e=0|ar[e>>2])&&du(e),r=0|ar[u>>2],c=i,e=0|ar[o>>2],o=r,f=0|ar[i>>2]),ar[l>>2]=1,ar[l+4>>2]=13,tr[l+8>>0]=1,tr[(i=l+9|0)>>0]=0|tr[a>>0],tr[i+1>>0]=0|tr[a+1>>0],tr[i+2>>0]=0|tr[a+2>>0],ar[l+12>>2]=e,ar[(e=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,f>>>(gA[l+32>>2]=0)<=o>>>0?(Nl(n,l),0|(e=0|ar[i>>2])&&du(e)):(ar[r>>2]=ar[l>>2],ar[r+4>>2]=ar[l+4>>2],ar[r+8>>2]=ar[l+8>>2],ar[r+12>>2]=ar[l+12>>2],ar[o+16>>2]=ar[e>>2],ar[o+20>>2]=ar[i>>2],ar[e>>2]=0,l=l+24|(ar[i>>2]=0),ar[(a=o+24|0)>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],ar[u>>2]=o+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[c>>2],ar[c>>2]=0,void(ur=t);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(ur=(l=ur)+32|0,n=l+16|0,t=l+12|0,o=l+8|0,a=l+4|0,c=l,(0|Vo(0|ar[(r|=0)>>2],3))<<24>>24==8&&(0|Vo(0|ar[r>>2],4))<<24>>24==8&&(0|Vo(0|ar[r>>2],5))<<24>>24==8){if((v=0|Eo(0|ar[r>>2],6))&&(0|Vo(0|ar[r>>2],6))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=l);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(u=f+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,g=f+52|0,ar[(m=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g+12>>2]=0,ar[f+68>>2]=m,m=u,w=(g=f)+16|0,bu(f),su(f),e=0|ar[w>>2],ar[u>>2]=m,ar[w>>2]=g,0|e&&ku(e),du(f),w=0|ar[r>>2],yo(u,h=0|ar[w+24>>2],w=0|ar[w+28>>2],1,0|tr[i+8>>0]?13:12),Bo(u,10,h,w,255&(0|Vo(0|ar[r>>2],3))),ar[n>>2]=0,ar[t>>2]=0,ar[o>>2]=0,ar[a>>2]=0,s=(ar[c>>2]=0)|Ro(0|ar[r>>2],3,n),d=0|Ro(0|ar[r>>2],4,t),k=0|Ro(0|ar[r>>2],5,o),b=0|Fo(u,10,c),f=v?0|Ro(0|ar[r>>2],6,a):0,0<(0|w)){u=0<(0|h),i=0;do{if(v){if(u)for(e=0;r=e<<3,p=b+((0|br(0|ar[c>>2],i))+r)|0,p=s+(((tr[p>>0]=0)|br(0|ar[n>>2],i))+e)|0,Z=b+((1|r)+(0|br(0|ar[c>>2],i)))|0,tr[Z>>0]=0|tr[p>>0],Z=b+((2|r)+(0|br(0|ar[c>>2],i)))|0,Z=d+(((tr[Z>>0]=0)|br(0|ar[t>>2],i))+e)|0,p=b+((3|r)+(0|br(0|ar[c>>2],i)))|0,tr[p>>0]=0|tr[Z>>0],p=b+((4|r)+(0|br(0|ar[c>>2],i)))|0,p=k+(((tr[p>>0]=0)|br(0|ar[o>>2],i))+e)|0,Z=b+((5|r)+(0|br(0|ar[c>>2],i)))|0,tr[Z>>0]=0|tr[p>>0],Z=b+((6|r)+(0|br(0|ar[c>>2],i)))|0,Z=f+(((tr[Z>>0]=0)|br(0|ar[a>>2],i))+e)|0,r=b+((7|r)+(0|br(0|ar[c>>2],i)))|0,tr[r>>0]=0|tr[Z>>0],(0|(e=e+1|0))!=(0|h););}else if(u)for(e=0;p=e<<3,Z=b+((0|br(0|ar[c>>2],i))+p)|0,Z=s+(((tr[Z>>0]=0)|br(0|ar[n>>2],i))+e)|0,r=b+((1|p)+(0|br(0|ar[c>>2],i)))|0,tr[r>>0]=0|tr[Z>>0],r=b+((2|p)+(0|br(0|ar[c>>2],i)))|0,r=d+(((tr[r>>0]=0)|br(0|ar[t>>2],i))+e)|0,Z=b+((3|p)+(0|br(0|ar[c>>2],i)))|0,tr[Z>>0]=0|tr[r>>0],Z=b+((4|p)+(0|br(0|ar[c>>2],i)))|0,Z=k+(((tr[Z>>0]=0)|br(0|ar[o>>2],i))+e)|0,p=b+((5|p)+(0|br(0|ar[c>>2],i)))|0,tr[p>>0]=0|tr[Z>>0],(0|(e=e+1|0))!=(0|h););i=i+1|0}while((0|i)!=(0|w))}return ar[A>>2]=m,ar[A+4>>2]=g,void(ur=l)}ar[A>>2]=0,ar[A+4>>2]=0,ur=l},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t=0,o=0;if(ur=(n=ur)+48|0,f=n+36|0,e=n,1==(0|ar[(r|=0)>>2])&&12==(-2&(t=0|ar[r+4>>2])|0)&&8!=(0|(o=0|ar[r+12>>2])))return ar[f>>2]=0,ar[(i=f+4|0)>>2]=0,ar[f+8>>2]=0,ar[e>>2]=1,ar[e+4>>2]=3,tr[e+8>>0]=15==(2|t)&1,ar[e+12>>2]=o,ar[e+16>>2]=0,ar[(o=e+20|0)>>2]=0,gA[e+24>>2]=.20000000298023224,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(f,e),0|(e=0|ar[o>>2])&&du(e),ar[A>>2]=ar[f>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[f+8>>2],void(ur=n);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=n},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;if(ur=(k=ur)+32|0,d=k+16|0,h=k+12|0,w=k+8|0,v=k+4|0,m=k,s=15==(2|ar[36+(0|ar[(r|=0)>>2])>>2]),i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,e=i+52|0,ar[(y=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[i+68>>2]=y,ar[A>>2]=f,y=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[y>>2],ar[f>>2]=f,ar[y>>2]=i,0|e&&ku(e),du(i),p=0|ar[r>>2],yo(f,b=0|ar[p+24>>2],p=0|ar[p+28>>2],1,3),Bo(f,3,b,p,255&(0|Vo(0|ar[r>>2],10))),Bo(f,4,b,p,255&(0|Vo(0|ar[r>>2],10))),Bo(f,5,b,p,255&(0|Vo(0|ar[r>>2],10))),s&&Bo(f,6,b,p,255&(0|Vo(0|ar[r>>2],10))),ar[d>>2]=0,y=s?8:6,ar[h>>2]=0,ar[w>>2]=0,ar[v>>2]=0,a=(ar[m>>2]=0)|Ro(0|ar[r>>2],10,d),c=0|Fo(f,3,h),l=0|Fo(f,4,w),u=0|Fo(f,5,v),Z=s?(g=0|Fo(f,6,m),(0|ar[m>>2])/2|0):g=0,o=(0|ar[h>>2])/2|0,ar[h>>2]=o,t=(0|ar[w>>2])/2|0,ar[w>>2]=t,n=(0|ar[v>>2])/2|0,ar[v>>2]=n,ar[m>>2]=Z,(0|p)<=0)ur=k;else{A=0<(0|b),f=0;do{A:do{if(A){if(r=0|br(0|ar[d>>2],f),h=0|br(o,f),w=0|br(t,f),v=0|br(n,f),!s)for(e=0;;)if(B=r+(0|br(e,y))|0,i=65535&((0|cr[a+(B+2)>>0])<<8|0|cr[a+(B+3)>>0]),m=65535&((0|cr[a+(B+4)>>0])<<8|0|cr[a+(B+5)>>0]),or[c+(h+e<<1)>>1]=(0|cr[a+B>>0])<<8|0|cr[a+(B+1)>>0],or[l+(w+e<<1)>>1]=i,or[u+(v+e<<1)>>1]=m,(0|(e=e+1|0))==(0|b))break A;for(i=0|br(Z,f),e=0;E=r+(0|br(e,y))|0,m=65535&((0|cr[a+(E+2)>>0])<<8|0|cr[a+(E+3)>>0]),B=65535&((0|cr[a+(E+4)>>0])<<8|0|cr[a+(E+5)>>0]),or[c+(h+e<<1)>>1]=(0|cr[a+E>>0])<<8|0|cr[a+(E+1)>>0],or[l+(w+e<<1)>>1]=m,or[u+(v+e<<1)>>1]=B,B=r+(e<<3)|0,or[g+(i+e<<1)>>1]=(0|cr[a+(B+6)>>0])<<8|0|cr[a+(B+7)>>0],(0|(e=e+1|0))!=(0|b););}}while(0);f=f+1|0}while((0|f)!=(0|p));ur=k}},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+64|0,n=t+36|0,i=t+48|0,c=t,1==(0|ar[(r|=0)>>2])&&12==(-4&(o=0|ar[(a=r+4|0)>>2])|0)){switch(ar[n>>2]=0,ar[(l=4+n|0)>>2]=0,(ar[8+n>>2]=0)|o){case 12:case 14:e=0|ar[r+12>>2],ar[c>>2]=1,ar[c+4>>2]=14==(0|o)?12:14,tr[c+8>>0]=0,tr[(o=c+9|0)>>0]=0|tr[i>>0],tr[o+1>>0]=0|tr[i+1>>0],tr[o+2>>0]=0|tr[i+2>>0],ar[c+12>>2]=e,ar[c+16>>2]=0,ar[(e=c+20|0)>>2]=0,gA[c+24>>2]=.10000000149011612,gA[c+28>>2]=0,gA[c+32>>2]=0,Nl(n,c),0|(e=0|ar[e>>2])&&du(e),e=0|ar[a>>2];break;default:e=o}switch(0|e){case 13:case 15:f=0|ar[r+12>>2],ar[c>>2]=1,ar[c+4>>2]=15==(0|e)?13:15,tr[c+8>>0]=1,tr[(o=c+9|0)>>0]=0|tr[i>>0],tr[o+1>>0]=0|tr[i+1>>0],tr[o+2>>0]=0|tr[i+2>>0],ar[c+12>>2]=f,ar[(i=c+16|0)>>2]=0,ar[(f=c+20|0)>>2]=0,gA[c+24>>2]=.10000000149011612,gA[c+28>>2]=0,(o=(gA[c+32>>2]=0)|ar[l>>2])>>>0>=(0|ar[(e=8+n|0)>>2])>>>0?(Nl(n,c),0|(i=0|ar[f>>2])&&du(i)):(ar[o>>2]=ar[c>>2],ar[o+4>>2]=ar[c+4>>2],ar[o+8>>2]=ar[c+8>>2],ar[o+12>>2]=ar[c+12>>2],ar[o+16>>2]=ar[i>>2],ar[o+20>>2]=ar[f>>2],ar[i>>2]=0,c=c+24|(ar[f>>2]=0),ar[(r=o+24|0)>>2]=ar[c>>2],ar[r+4>>2]=ar[c+4>>2],ar[r+8>>2]=ar[c+8>>2],ar[l>>2]=o+36);break;default:e=8+n|0}return ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[l>>2],ar[A+8>>2]=ar[e>>2],ar[e>>2]=0,void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;switch(ur=(o=ur)+16|0,n=o+4|0,t=o,a=0|hu(80),ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a>>2]=6208,ar[(i=a+12|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,ar[a+32>>2]=32215,ar[a+36>>2]=0,ar[a+40>>2]=0,ar[a+44>>2]=99,ar[a+48>>2]=99,u=a+52|0,ar[(l=a+72|0)>>2]=0,ar[a+76>>2]=0,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[a+68>>2]=l,l=i,c=(u=a)+16|0,bu(a),su(a),e=0|ar[c>>2],ar[i>>2]=l,ar[c>>2]=u,0|e&&ku(e),du(a),e=0|ar[r>>2],f=0|ar[e+24>>2],c=0|ar[e+28>>2],0|ar[e+36>>2]){case 14:yo(i,f,c,1,12),e=i;break;case 12:yo(i,f,c,1,14),e=i;break;case 15:yo(i,f,c,1,13),e=i;break;case 13:yo(i,f,c,1,15),e=i;break;default:return ar[A>>2]=0,ar[A+4>>2]=0,du(a),void(ur=o)}if(Bo(e,10,f,c,255&(0|Vo(0|ar[r>>2],10))),ar[n>>2]=0,r=(ar[t>>2]=0)|Ro(0|ar[r>>2],10,n),f=0|Fo(e,10,t),0<(0|c)&0<(0|(a=(0|(i=0|ar[t>>2]))<(0|(a=0|ar[n>>2]))?i:a))){i=0;do{for(e=0;d=r+((b=1|e)+(0|br(0|ar[n>>2],i)))|0,s=f+((0|br(0|ar[t>>2],i))+e)|0,tr[s>>0]=0|tr[d>>0],s=r+((0|br(0|ar[n>>2],i))+e)|0,b=f+(b+(0|br(0|ar[t>>2],i)))|0,tr[b>>0]=0|tr[s>>0],(0|(e=e+2|0))<(0|a););i=i+1|0}while((0|i)!=(0|c))}ar[A>>2]=l,ar[A+4>>2]=u,ur=o},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t=0;if(ur=(n=ur)+48|0,f=n+36|0,e=n,2==(0|ar[(r|=0)>>2])&&0==(0|ar[r+4>>2]))return ar[f>>2]=0,ar[(i=f+4|0)>>2]=0,t=(ar[f+8>>2]=0)|tr[r+8>>0],r=0|ar[r+12>>2],ar[e>>2]=0,ar[e+4>>2]=1,tr[e+8>>0]=t,ar[e+12>>2]=r,ar[e+16>>2]=0,ar[(r=e+20|0)>>2]=0,gA[e+24>>2]=.10000000149011612,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(f,e),0|(e=0|ar[r>>2])&&du(e),ar[A>>2]=ar[f>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[f+8>>2],void(ur=n);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=n},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(ur=(s=ur)+16|0,u=s+12|0,b=s+8|0,a=s+4|0,c=s,i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(l=i+12|0)>>2]=0,ar[4+l>>2]=0,ar[8+l>>2]=0,ar[12+l>>2]=0,ar[16+l>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,e=i+52|0,ar[(B=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[i+68>>2]=B,ar[A>>2]=l,B=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[B>>2],ar[l>>2]=l,ar[B>>2]=i,0|e&&ku(e),du(i),B=0|ar[r>>2],yo(l,o=0|ar[B+24>>2],B=0|ar[B+28>>2],0,1),n=(1+o|0)/2|0,p=(B+1|0)/2|0,Bo(l,0,o,B,i=255&(e=0|Vo(0|ar[r>>2],0))),Bo(l,1,n,p,i),Bo(l,2,n,p,i),(t=0|Eo(0|ar[r>>2],6))?Bo(l,6,o,B,y=255&(0|Vo(0|ar[r>>2],6))):y=0,e<<24>>24==8){if(ar[u>>2]=0,ar[b>>2]=0,ar[a>>2]=0,i=(ar[c>>2]=0)|Ro(0|ar[r>>2],0,c),f=0|Fo(l,0,a),g=0|Fo(l,1,u),Z=0|Fo(l,2,b),vb(0|g,-128,0|br(0|ar[u>>2],p)),vb(0|Z,-128,0|br(0|ar[b>>2],p)),0<(0|B))for(e=0;hb(0|(p=f+(0|br(0|ar[a>>2],e))|0),i+(0|br(0|ar[c>>2],e))|0,0|o),(0|(e=e+1|0))!=(0|B););}else{ar[u>>2]=0,ar[b>>2]=0,ar[a>>2]=0,g=(ar[c>>2]=0)|Ro(0|ar[r>>2],0,c),Z=0|Fo(l,0,a),k=0|Fo(l,1,u),h=0|Fo(l,2,b),ar[c>>2]=(0|ar[c>>2])/2|0,ar[a>>2]=(0|ar[a>>2])/2|0,w=(0|ar[u>>2])/2|0,ar[u>>2]=w,v=(0|ar[b>>2])/2|0,ar[b>>2]=v,m=0<(0|B);do{if(m){if(f=128<>1]=f,or[h+(d+e<<1)>>1]=f,(0|(e=e+1|0))<(0|n););i=i+1|0}while((0|i)<(0|p));if(!m)break}if(hb(0|Z,0|g,0|(e=o<<1)),1!=(0|B))for(i=1;hb(Z+((0|br(0|ar[a>>2],i))<<1)|0,g+((0|br(0|ar[c>>2],i))<<1)|0,0|e),(0|(i=i+1|0))!=(0|B););}}while(0)}if(t){if(ar[u>>2]=0,A=(ar[b>>2]=0)|Ro(0|ar[r>>2],6,u),f=0|Fo(l,6,b),i=o<<(8>>0&1),0<(0|B))for(e=0;hb(0|(r=f+(0|br(0|ar[b>>2],e))|0),A+(0|br(0|ar[u>>2],e))|0,0|i),(0|(e=e+1|0))!=(0|B););ur=s}else ur=s},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;switch(ur=(t=ur)+64|0,n=t+36|0,o=t+48|0,l=t,0|ar[(r|=0)>>2]){case 0:case 2:if(0==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2]))return ar[n>>2]=0,ar[(u=4+n|0)>>2]=0,(ar[8+n>>2]=0)|tr[r+8>>0]?(c=8+n|0,r=f=a=0):(ar[l>>2]=1,ar[l+4>>2]=10,tr[l+8>>0]=0,tr[(e=l+9|0)>>0]=0|tr[o>>0],tr[e+1>>0]=0|tr[o+1>>0],tr[e+2>>0]=0|tr[o+2>>0],ar[l+12>>2]=8,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.10000000149011612,gA[l+28>>2]=0,i=8+n|(gA[l+32>>2]=0),Nl(n,l),0|(e=0|ar[e>>2])&&du(e),a=r=0|ar[u>>2],f=0|ar[(c=i)>>2]),ar[l>>2]=1,ar[l+4>>2]=11,tr[l+8>>0]=1,tr[(e=l+9|0)>>0]=0|tr[o>>0],tr[e+1>>0]=0|tr[o+1>>0],tr[e+2>>0]=0|tr[o+2>>0],ar[l+12>>2]=8,ar[(e=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.15000000596046448,gA[l+28>>2]=0,f>>>(gA[l+32>>2]=0)<=a>>>0?(Nl(n,l),0|(e=0|ar[i>>2])&&du(e)):(ar[r>>2]=ar[l>>2],ar[r+4>>2]=ar[l+4>>2],ar[r+8>>2]=ar[l+8>>2],ar[r+12>>2]=ar[l+12>>2],ar[a+16>>2]=ar[e>>2],ar[a+20>>2]=ar[i>>2],ar[e>>2]=0,l=l+24|(ar[i>>2]=0),ar[(o=a+24|0)>>2]=ar[l>>2],ar[o+4>>2]=ar[l+4>>2],ar[o+8>>2]=ar[l+8>>2],ar[u>>2]=a+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[c>>2],ar[c>>2]=0,void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(ur=(u=ur)+16|0,c=u+8|0,t=u+4|0,l=u,k=0|ar[(r|=0)>>2],o=0|ar[k+24>>2],a=0|ar[k+28>>2],(0|Vo(k,0))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=u);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(b=f+12|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[b+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,k=f+52|0,ar[(d=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,ar[k+12>>2]=0,ar[f+68>>2]=d,d=b,s=(k=f)+16|0,bu(f),su(f),e=0|ar[s>>2],ar[b>>2]=d,ar[s>>2]=k,0|e&&ku(e),du(f),e=0|Eo(0|ar[r>>2],6),0|tr[(n=i+8|0)>>0]?yo(b,o,a,1,11):yo(b,o,a,1,10),Bo(b,10,o,a,8),ar[c>>2]=0,s=(ar[l>>2]=0)|Ro(0|ar[r>>2],0,c),i=e?0|Ro(0|ar[r>>2],6,t):0,b=0|Fo(b,10,l),0<(0|a))if(r=0<(0|o),e){f=0;do{if(0|tr[n>>0]){if(r)for(e=0;h=s+((0|br(0|ar[c>>2],f))+e)|0,h=0|tr[h>>0],v=e<<2,w=b+((0|br(0|ar[l>>2],f))+v)|0,tr[w>>0]=h,w=b+((1|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,w=b+((2|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,w=i+((0|br(0|ar[t>>2],f))+e)|0,v=b+((3|v)+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=0|tr[w>>0],(0|(e=e+1|0))!=(0|o););}else if(r)for(e=0;w=s+((0|br(0|ar[c>>2],f))+e)|0,w=0|tr[w>>0],h=3*e|0,v=b+((0|br(0|ar[l>>2],f))+h)|0,tr[v>>0]=w,v=b+(h+1+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=w,h=b+(h+2+(0|br(0|ar[l>>2],f)))|0,tr[h>>0]=w,(0|(e=e+1|0))!=(0|o););f=f+1|0}while((0|f)!=(0|a))}else{f=0;do{if(0|tr[n>>0]){if(r)for(e=0;h=s+((0|br(0|ar[c>>2],f))+e)|0,h=0|tr[h>>0],v=e<<2,w=b+((0|br(0|ar[l>>2],f))+v)|0,tr[w>>0]=h,w=b+((1|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,w=b+((2|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,v=b+((3|v)+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=-1,(0|(e=e+1|0))!=(0|o););}else if(r)for(e=0;w=s+((0|br(0|ar[c>>2],f))+e)|0,w=0|tr[w>>0],v=3*e|0,h=b+((0|br(0|ar[l>>2],f))+v)|0,tr[h>>0]=w,h=b+(v+1+(0|br(0|ar[l>>2],f)))|0,tr[h>>0]=w,v=b+(v+2+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=w,(0|(e=e+1|0))!=(0|o););f=f+1|0}while((0|f)!=(0|a))}ar[A>>2]=d,ar[A+4>>2]=k,ur=u},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+64|0,t=o+36|0,n=o+48|0,u=o,1==(0|ar[(r|=0)>>2])&&10==(-2&(a=0|ar[(c=r+4|0)>>2])|0))return 3<=((e=0|ar[(f=i+4|0)>>2])+-1|0)>>>0||0|(l=0|ar[i+16>>2])&&0==(0|or[l+8>>1])?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[t>>2]=0,ar[(l=4+t|0)>>2]=0,11==((ar[8+t>>2]=0)|(e=10==(0|a)?(ar[u>>2]=0,ar[u+4>>2]=e,tr[u+8>>0]=0,tr[(e=u+9|0)>>0]=0|tr[n>>0],tr[e+1>>0]=0|tr[1+n>>0],tr[e+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[u+16>>2]=0,ar[(e=u+20|0)>>2]=0,gA[u+24>>2]=.75,gA[u+28>>2]=.5,gA[u+32>>2]=0,Nl(t,u),0|(e=0|ar[e>>2])&&du(e),0|ar[c>>2]):a))?(f=0|ar[f>>2],ar[u>>2]=0,ar[u+4>>2]=f,tr[u+8>>0]=1,tr[(f=u+9|0)>>0]=0|tr[n>>0],tr[f+1>>0]=0|tr[1+n>>0],tr[f+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[(f=u+16|0)>>2]=0,ar[(r=u+20|0)>>2]=0,gA[u+24>>2]=.75,gA[u+28>>2]=.5,(i=(gA[u+32>>2]=0)|ar[l>>2])>>>0>=(0|ar[(e=8+t|0)>>2])>>>0?(Nl(t,u),0|(f=0|ar[r>>2])&&du(f)):(ar[i>>2]=ar[u>>2],ar[i+4>>2]=ar[u+4>>2],ar[i+8>>2]=ar[u+8>>2],ar[i+12>>2]=ar[u+12>>2],ar[i+16>>2]=ar[f>>2],ar[i+20>>2]=ar[r>>2],ar[f>>2]=0,u=u+24|(ar[r>>2]=0),ar[(c=i+24|0)>>2]=ar[u>>2],ar[c+4>>2]=ar[u+4>>2],ar[c+8>>2]=ar[u+8>>2],ar[l>>2]=i+36)):e=8+t|0,ar[A>>2]=ar[t>>2],ar[A+4>>2]=ar[l>>2],ar[A+8>>2]=ar[e>>2],ar[e>>2]=0),void(ur=o);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=o},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0;if(ur=(s=ur)+112|0,G=s+96|0,V=s+92|0,p=s+88|0,u=s+84|0,b=s+80|0,E=s+40|0,k=s,F=0|ar[(r|=0)>>2],l=0|ar[F+24>>2],F=0|ar[F+28>>2],f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(d=f+12|0)>>2]=0,ar[d+4>>2]=0,ar[d+8>>2]=0,ar[d+12>>2]=0,ar[d+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(C=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=C,ar[A>>2]=d,C=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[C>>2],ar[d>>2]=d,ar[C>>2]=f,0|e&&ku(e),du(f),W=0|go(X=0|ar[i+4>>2]),I=0|Zo(X),yo(d,l,F,0,X),X=(l-1+(W&=255)|0)/(0|W)|0,C=(F+-1+(I&=255)|0)/(0|I)|0,c=11==(0|ar[36+(0|ar[r>>2])>>2]),Bo(d,0,l,F,8),Bo(d,1,X,C,8),Bo(d,2,X,C,8),c&&Bo(d,6,l,F,8),ar[G>>2]=0,ar[V>>2]=0,ar[p>>2]=0,ar[u>>2]=0,C=(ar[b>>2]=0)|Ro(0|ar[r>>2],10,b),Z=0|Fo(d,0,p),o=0|Fo(d,1,G),a=0|Fo(d,2,V),X=c?0|Fo(d,6,u):0,Be(E),e=0|ar[i+16>>2])for(A=0|tr[e+10>>0],ye(k,0|or[e+8>>1],0|or[e+4>>1]),A=A<<24>>24!=0,e=k,f=(r=E)+40|0;ar[r>>2]=ar[e>>2],e=e+4|0,(0|(r=r+4|0))<(0|f););else A=1;if(g=c?4:3,t=0<(0|F)){i=0<(0|l),k=E+4|0,v=E+8|0,m=E+12|0,d=0;do{e=C+(0|br(0|ar[b>>2],d))|0;A:do{if(i){if(A)r=0;else for(f=0;;){if(y=0|ef(.8554700016975403*((0|cr[e>>0])*gA[k>>2]+(0|cr[e+1>>0])*gA[v>>2]+(0|cr[e+2>>0])*gA[m>>2])),B=Z+((0|br(0|ar[p>>2],d))+f)|0,tr[B>>0]=(0|y)<0?16:((0|y)<219?y:219)+16&255,(0|(f=f+1|0))==(0|l))break A;e=e+g|0}for(;f=(0|(f=0|ef((0|cr[e>>0])*gA[k>>2]+(0|cr[e+1>>0])*gA[v>>2]+(0|cr[e+2>>0])*gA[m>>2])))<0?0:255<(0|f)?-1:255&f,B=Z+((0|br(0|ar[p>>2],d))+r)|0,tr[B>>0]=f,(0|(r=r+1|0))!=(0|l);)e=e+g|0}}while(0);d=d+1|0}while((0|d)!=(0|F));if(t){B=0<(0|l),m=0|br(g,W),g=E+16|0,Z=E+20|0,p=E+24|0,n=E+28|0,y=E+32|0,v=E+36|0,k=0;do{if(B)for(i=C+((d=0)|br(0|ar[b>>2],k))|0;N=+(0|cr[i>>0]),R=+(0|cr[i+1>>0]),w=+(0|cr[i+2>>0]),h=N*gA[g>>2]+R*gA[Z>>2]+w*gA[p>>2],w=N*gA[n>>2]+R*gA[y>>2]+w*gA[v>>2],r=(f=A?(E=0|ef(h+128),r=(0|k)/(0|I)|0,e=(0|d)/(0|W)|0,f=o+((0|br(0|ar[G>>2],r))+e)|0,tr[f>>0]=(0|E)<0?0:255<(0|E)?-1:255&E,(0|(f=0|ef(w+128)))<0?0:255<(0|f)?-1:255&f):(E=0|ef(.875*h+128),r=(0|k)/(0|I)|0,e=(0|d)/(0|W)|0,f=o+((0|br(0|ar[G>>2],r))+e)|0,tr[f>>0]=(0|E)<0?0:255<(0|E)?-1:255&E,(0|(f=0|ef(.875*w+128)))<0?0:255<(0|f)?-1:255&f),0|br(0|ar[V>>2],r)),tr[a+(e+r)>>0]=f,!((0|l)<=(0|(d=d+W|0)));)i=i+m|0;k=k+I|0}while((0|k)<(0|F));if(c&t&0<(0|l)){e=0;do{for(f=0;G=C+((f<<2|3)+(0|br(0|ar[b>>2],e)))|0,V=X+((0|br(0|ar[u>>2],e))+f)|0,tr[V>>0]=0|tr[G>>0],(0|(f=f+1|0))!=(0|l););e=e+1|0}while((0|e)!=(0|F));ur=s}else ur=s}else ur=s}else ur=s},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+64|0,n=t+36|0,f=t+48|0,l=t,1==(0|ar[(r|=0)>>2])&&10==(-2&(o=0|ar[(a=r+4|0)>>2])|0))return!(e=0|ar[i+16>>2])||0|or[e+8>>1]||0|(c=0|ar[r+16>>2])&&0==(0|tr[c+10>>0])?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[n>>2]=0,ar[(c=4+n|0)>>2]=0,11==((ar[8+n>>2]=0)|(e=10==(0|o)?(ar[l>>2]=0,ar[l+4>>2]=3,tr[l+8>>0]=0,tr[(e=l+9|0)>>0]=0|tr[f>>0],tr[e+1>>0]=0|tr[f+1>>0],tr[e+2>>0]=0|tr[f+2>>0],ar[l+12>>2]=8,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.75,gA[l+28>>2]=.5,gA[l+32>>2]=0,Nl(n,l),0|(e=0|ar[e>>2])&&du(e),0|ar[a>>2]):o))?(ar[l>>2]=0,ar[l+4>>2]=3,tr[l+8>>0]=1,tr[(i=l+9|0)>>0]=0|tr[f>>0],tr[i+1>>0]=0|tr[f+1>>0],tr[i+2>>0]=0|tr[f+2>>0],ar[l+12>>2]=8,ar[(f=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.75,gA[l+28>>2]=.5,(r=(gA[l+32>>2]=0)|ar[c>>2])>>>0>=(0|ar[(e=8+n|0)>>2])>>>0?(Nl(n,l),0|(f=0|ar[i>>2])&&du(f)):(ar[r>>2]=ar[l>>2],ar[r+4>>2]=ar[l+4>>2],ar[r+8>>2]=ar[l+8>>2],ar[r+12>>2]=ar[l+12>>2],ar[r+16>>2]=ar[f>>2],ar[r+20>>2]=ar[i>>2],ar[f>>2]=0,l=l+24|(ar[i>>2]=0),ar[(a=r+24|0)>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],ar[c>>2]=r+36)):e=8+n|0,ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[c>>2],ar[A+8>>2]=ar[e>>2],ar[e>>2]=0),void(ur=t);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0;if(ur=(b=ur)+32|0,a=b+16|0,c=b+12|0,l=b+8|0,k=b+4|0,u=b,h=0|ar[(r|=0)>>2],o=0|ar[h+24>>2],h=0|ar[h+28>>2],f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(s=f+12|0)>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[s+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(d=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=d,ar[A>>2]=s,d=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[d>>2],ar[s>>2]=s,ar[d>>2]=f,0|e&&ku(e),du(f),yo(s,o,h,0,3),f=11==(0|ar[36+(0|ar[r>>2])>>2]),Bo(s,0,o,h,8),Bo(s,1,o,h,8),Bo(s,2,o,h,8),f&&Bo(s,6,o,h,8),ar[a>>2]=0,ar[c>>2]=0,ar[l>>2]=0,ar[k>>2]=0,r=(ar[u>>2]=0)|Ro(0|ar[r>>2],10,u),n=0|Fo(s,0,l),t=0|Fo(s,1,a),d=0|Fo(s,2,c),A=f?0|Fo(s,6,k):0,(e=0|ar[i+16>>2])||sr(32569,32248,2161,32272),0|or[e+8>>1]&&sr(32595,32248,2162,32272),e=0<(0|h)&0<(0|o),f){if(!e)return void(ur=b);f=0;do{for(e=0;m=(0|br(0|ar[u>>2],f))+(e<<2)|0,w=0|tr[r+m>>0],v=0|tr[r+(m+2)>>0],s=0|tr[r+(m+3)>>0],i=n+((0|br(0|ar[l>>2],f))+e)|0,tr[i>>0]=0|tr[r+(m+1)>>0],i=t+((0|br(0|ar[a>>2],f))+e)|0,tr[i>>0]=v,i=d+((0|br(0|ar[c>>2],f))+e)|0,tr[i>>0]=w,i=A+((0|br(0|ar[k>>2],f))+e)|0,tr[i>>0]=s,(0|(e=e+1|0))!=(0|o););f=f+1|0}while((0|f)!=(0|h));ur=b}else if(e){e=0;do{for(f=0;k=(0|br(0|ar[u>>2],e))+(3*f|0)|0,v=0|tr[r+k>>0],w=0|tr[r+(k+2)>>0],m=n+((0|br(0|ar[l>>2],e))+f)|0,tr[m>>0]=0|tr[r+(k+1)>>0],m=t+((0|br(0|ar[a>>2],e))+f)|0,tr[m>>0]=w,m=d+((0|br(0|ar[c>>2],e))+f)|0,tr[m>>0]=v,(0|(f=f+1|0))!=(0|o););e=e+1|0}while((0|e)!=(0|h));ur=b}else ur=b},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l=0,u=0;if(ur=(c=ur)+64|0,a=c+36|0,n=c+48|0,o=c,(t=0|ar[(r|=0)+4>>2])>>>0<4&&0|tr[r+8>>0]&&0==(0|tr[i+8>>0])){if(ar[a>>2]=0,ar[(u=4+a|0)>>2]=0,e=(ar[8+a>>2]=0)|ar[r>>2],f=r+9|0,tr[n>>0]=0|tr[f>>0],tr[1+n>>0]=0|tr[f+1>>0],tr[2+n>>0]=0|tr[f+2>>0],f=0|ar[r+12>>2],i=0|ar[r+16>>2],(l=0==(0|(r=0|ar[r+20>>2])))||bu(r),ar[o>>2]=e,ar[o+4>>2]=t,tr[o+8>>0]=0,tr[(e=o+9|0)>>0]=0|tr[n>>0],tr[e+1>>0]=0|tr[1+n>>0],tr[e+2>>0]=0|tr[2+n>>0],ar[o+12>>2]=f,ar[o+16>>2]=i,ar[(e=o+20|0)>>2]=r,l||bu(r),gA[o+24>>2]=.10000000149011612,gA[o+28>>2]=0,f=8+a|(gA[o+32>>2]=0),Nl(a,o),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[a>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[f>>2],ar[f>>2]=0,ar[u>>2]=0,ar[a>>2]=0,!l&&(du(r),0|(e=0|ar[a>>2]))){if((0|(f=0|ar[u>>2]))!=(0|e)){for(;i=f+-36|0,ar[u>>2]=i,(0|(f=(f=0|ar[f+-16>>2])?(du(f),0|ar[u>>2]):i))!=(0|e););e=0|ar[a>>2]}vu(e)}ur=c}else ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=c},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t=0,o=0;t=0|ar[(r|=0)>>2],n=0|ar[t+24>>2],t=0|ar[t+28>>2],i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,o=i+52|0,ar[(e=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,ar[i+68>>2]=e,ar[A>>2]=f,A=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[A>>2],ar[f>>2]=f,ar[A>>2]=i,0|e&&ku(e),du(i),o=0|ar[r>>2],yo(f,n,t,0|ar[o+32>>2],0|ar[o+36>>2]),0|Eo(0|ar[r>>2],0)&&No(f,r,0,0),0|Eo(0|ar[r>>2],1)&&No(f,r,1,1),0|Eo(0|ar[r>>2],2)&&No(f,r,2,2),0|Eo(0|ar[r>>2],3)&&No(f,r,3,3),0|Eo(0|ar[r>>2],4)&&No(f,r,4,4),0|Eo(0|ar[r>>2],5)&&No(f,r,5,5)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0;if(ur=(a=ur)+64|0,o=a+36|0,c=a+48|0,t=a,(n=0|ar[(r|=0)+4>>2])>>>0<4&&8==(0|ar[r+12>>2])){if(ar[o>>2]=0,ar[(b=4+o|0)>>2]=0,e=(ar[8+o>>2]=0)|ar[r>>2],f=0|tr[r+8>>0],l=r+9|0,tr[c>>0]=0|tr[l>>0],tr[c+1>>0]=0|tr[l+1>>0],tr[c+2>>0]=0|tr[l+2>>0],l=0|ar[r+16>>2],(u=0==(0|(r=0|ar[r+20>>2])))||bu(r),i=0|ar[i+12>>2],ar[t>>2]=e,ar[t+4>>2]=n,tr[t+8>>0]=f,tr[(e=t+9|0)>>0]=0|tr[c>>0],tr[e+1>>0]=0|tr[c+1>>0],tr[e+2>>0]=0|tr[c+2>>0],ar[t+12>>2]=i,ar[t+16>>2]=l,ar[(e=t+20|0)>>2]=r,u||bu(r),gA[t+24>>2]=.20000000298023224,gA[t+28>>2]=0,gA[t+32>>2]=.5,f=8+o|0,Nl(o,t),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[o>>2],ar[A+4>>2]=ar[b>>2],ar[A+8>>2]=ar[f>>2],ar[f>>2]=0,ar[b>>2]=0,ar[o>>2]=0,!u&&(du(r),0|(e=0|ar[o>>2]))){if((0|(f=0|ar[b>>2]))!=(0|e)){for(;c=f+-36|0,ar[b>>2]=c,(0|(f=(f=0|ar[f+-16>>2])?(du(f),0|ar[b>>2]):c))!=(0|e););e=0|ar[o>>2]}vu(e)}ur=a}else ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=a},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0;ur=(a=ur)+16|0,t=a+4|0,o=a,f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(n=f+12|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[16+n>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(u=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=u,ar[A>>2]=n,u=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[u>>2],ar[n>>2]=n,ar[u>>2]=f,0|e&&ku(e),du(f),u=0|ar[r>>2],yo(n,0|ar[u+24>>2],0|ar[u+28>>2],0|ar[u+32>>2],0|ar[u+36>>2]),u=i+12|0,l=6796;do{if(e=0|ar[l>>2],0|Eo(0|ar[r>>2],e)&&(Bo(n,e,b=0|Xo(0|ar[r>>2],e),s=0|Wo(0|ar[r>>2],e),0|ar[u>>2]),d=255&(0|Vo(0|ar[r>>2],e)),k=8-(d=(0|ar[u>>2])-d|0)|0,h=0|Ro(0|ar[r>>2],e,t),w=0|Fo(n,e,o),v=(0|ar[o>>2])/2|0,ar[o>>2]=v,0<(0|s)&0<(0|b))){A=0|ar[t>>2],f=0;do{for(i=0|br(A,f),c=0|br(v,f),e=0;m=0|cr[h+(i+e)>>0],or[w+(c+e<<1)>>1]=m<>>k,(0|(e=e+1|0))!=(0|b););f=f+1|0}while((0|f)!=(0|s))}l=l+4|0}while(6824!=(0|l));ur=a},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+64|0,o=a+36|0,f=a+48|0,t=a,(n=0|ar[(r|=0)+4>>2])>>>0<4&&8!=(0|ar[r+12>>2])){if(ar[o>>2]=0,ar[(u=4+o|0)>>2]=0,e=(ar[8+o>>2]=0)|ar[r>>2],i=0|tr[r+8>>0],c=r+9|0,tr[f>>0]=0|tr[c>>0],tr[f+1>>0]=0|tr[c+1>>0],tr[f+2>>0]=0|tr[c+2>>0],c=0|ar[r+16>>2],(l=0==(0|(r=0|ar[r+20>>2])))||bu(r),ar[t>>2]=e,ar[t+4>>2]=n,tr[t+8>>0]=i,tr[(e=t+9|0)>>0]=0|tr[f>>0],tr[e+1>>0]=0|tr[f+1>>0],tr[e+2>>0]=0|tr[f+2>>0],ar[t+12>>2]=8,ar[t+16>>2]=c,ar[(e=t+20|0)>>2]=r,l||bu(r),gA[t+24>>2]=.20000000298023224,gA[t+28>>2]=0,gA[t+32>>2]=.5,i=8+o|0,Nl(o,t),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[o>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[i>>2],ar[i>>2]=0,ar[u>>2]=0,ar[o>>2]=0,!l&&(du(r),0|(e=0|ar[o>>2]))){if((0|(i=0|ar[u>>2]))!=(0|e)){for(;f=i+-36|0,ar[u>>2]=f,(0|(i=(i=0|ar[i+-16>>2])?(du(i),0|ar[u>>2]):f))!=(0|e););e=0|ar[o>>2]}vu(e)}ur=a}else ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=a},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0;ur=(a=ur)+16|0,t=a+4|0,o=a,i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(n=i+12|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[16+n>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,f=i+52|0,ar[(e=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[i+68>>2]=e,ar[A>>2]=n,A=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[A>>2],ar[n>>2]=n,ar[A>>2]=i,0|e&&ku(e),du(i),f=0|ar[r>>2],yo(n,0|ar[f+24>>2],0|ar[f+28>>2],0|ar[f+32>>2],0|ar[f+36>>2]),f=6848;do{if(e=0|ar[f>>2],0|Eo(0|ar[r>>2],e)&&(Bo(n,e,c=0|Xo(0|ar[r>>2],e),l=0|Wo(0|ar[r>>2],e),8),u=(255&(0|Vo(0|ar[r>>2],e)))-8|0,b=0|Ro(0|ar[r>>2],e,t),ar[t>>2]=(0|ar[t>>2])/2|0,s=0|Fo(n,e,o),0<(0|l)&0<(0|c))){e=0;do{for(i=0;d=b+((0|br(0|ar[t>>2],e))+i<<1)|0,A=s+((0|br(0|ar[o>>2],e))+i)|0,tr[A>>0]=(0|lr[d>>1])>>>u,(0|(i=i+1|0))!=(0|c););e=e+1|0}while((0|e)!=(0|l))}f=f+4|0}while(6876!=(0|f));ur=a},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0;if(ur=(t=ur)+48|0,n=t+36|0,f=t,1==(0|ar[(r|=0)>>2])&&12==(-4&ar[r+4>>2]|0)&&8!=(0|(o=0|ar[r+12>>2]))){if(0|(e=0|ar[r+16>>2])){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}if(!(0|tr[e+10>>0]))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}return ar[n>>2]=0,ar[(i=4+n|0)>>2]=0,e=(ar[8+n>>2]=0)|tr[r+8>>0],ar[f>>2]=0,ar[f+4>>2]=1,tr[f+8>>0]=e,ar[f+12>>2]=o,ar[f+16>>2]=0,ar[(e=f+20|0)>>2]=0,gA[f+24>>2]=.5,gA[f+28>>2]=0,gA[f+32>>2]=0,Nl(n,f),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[8+n>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0;if(ur=(y=ur)+112|0,g=y+96|0,a=y+92|0,Z=y+88|0,p=y+84|0,c=y+80|0,b=y+40|0,X=y,E=0|ar[(r|=0)>>2],v=0|ar[E+24>>2],m=0|ar[E+28>>2],E=255&(0|Vo(E,10)),o=15==(2|ar[36+(0|ar[r>>2])>>2]),f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(B=f+12|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(K=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=K,ar[A>>2]=B,K=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[K>>2],ar[B>>2]=B,ar[K>>2]=f,0|e&&ku(e),du(f),yo(B,v,m,0,1),h=o?8:6,L=(1+v|0)/2|0,K=(1+m|0)/2|0,Bo(B,0,v,m,E),Bo(B,1,L,K,E),Bo(B,2,L,K,E),o&&Bo(B,6,v,m,E),ar[g>>2]=0,ar[a>>2]=0,ar[Z>>2]=0,ar[p>>2]=0,w=(ar[c>>2]=0)|Ro(0|ar[r>>2],10,g),n=0|Fo(B,0,a),L=0|Fo(B,1,Z),K=0|Fo(B,2,p),x=o?0|Fo(B,6,c):0,ar[a>>2]=(0|ar[a>>2])/2|0,ar[Z>>2]=(0|ar[Z>>2])/2|0,ar[p>>2]=(0|ar[p>>2])/2|0,ar[c>>2]=(0|ar[c>>2])/2|0,l=1<>2],s=1&(t=15==(1|ar[P+36>>2])),e=0|ar[P+40>>2],(d=0==(0|(P=0|ar[P+44>>2])))||bu(P),Be(b),e)for(A=0|tr[10+(0|ar[i+16>>2])>>0],ye(X,0|or[e+8>>1],0|or[e+4>>1]),A=A<<24>>24!=0,e=X,f=(B=b)+40|0;ar[B>>2]=ar[e>>2],e=e+4|0,(0|(B=B+4|0))<(0|f););else A=1;if(r=0<(0|m)){X=0<(0|v),i=1^s,G=t?3:2,V=3^s,F=t?5:4,R=5-s|0,N=4+b|0,_=8+b|0,Y=12+b|0,Q=t?7:6,D=7^s,J=65535&u,E=0;do{if(X)if(W=+gA[N>>2],I=+gA[_>>2],C=+gA[Y>>2],M=0|br(0|ar[g>>2],E),A)for(f=0;B=w+(M+(0|br(f,h)))|0,e=(0|(e=0|ef(((0|cr[B+s>>0])<<8|0|cr[B+i>>0]|0)*W+((0|cr[B+G>>0])<<8|0|cr[B+V>>0]|0)*I+((0|cr[B+F>>0])<<8|0|cr[B+R>>0]|0)*C)))<0?0:(0|e)<(0|k)?65535&e:J,q=n+((0|br(0|ar[a>>2],E))+f<<1)|0,or[q>>1]=e,o&&(q=x+((0|br(0|ar[c>>2],E))+f<<1)|0,or[q>>1]=(0|cr[B+Q>>0])<<8|0|cr[B+D>>0]),(0|(f=f+1|0))!=(0|v););else for(f=0;B=w+(M+(0|br(f,h)))|0,e=(0|(e=0|ef(.8554700016975403*(((0|cr[B+s>>0])<<8|0|cr[B+i>>0]|0)*W+((0|cr[B+G>>0])<<8|0|cr[B+V>>0]|0)*I+((0|cr[B+F>>0])<<8|0|cr[B+R>>0]|0)*C)+16)))<0?0:(0|e)<(0|k)?65535&e:J,q=n+((0|br(0|ar[a>>2],E))+f<<1)|0,or[q>>1]=e,o&&(q=x+((0|br(0|ar[c>>2],E))+f<<1)|0,or[q>>1]=(0|cr[B+Q>>0])<<8|0|cr[B+D>>0]),(0|(f=f+1|0))!=(0|v););E=E+1|0}while((0|E)!=(0|m));if(r){D=0<(0|v),J=1^s,M=t?3:2,x=3^s,V=t?5:4,F=5-s|0,R=16+b|0,N=20+b|0,_=24+b|0,Y=28+b|0,Q=32+b|0,G=36+b|0,H=+(65535&l|0),r=65535&u,E=0;do{if(D)if(X=(0|E)/2|0,T=+gA[R>>2],U=+gA[N>>2],S=+gA[_>>2],O=+gA[Y>>2],z=+gA[Q>>2],j=+gA[G>>2],i=0|br(0|ar[g>>2],E),A)for(B=0;e=w+(i+(0|br(B,h)))|0,e=(0|(e=0|ef(H+((W=+((0|cr[e+s>>0])<<8|0|cr[e+J>>0]|0))*T+(I=+((0|cr[e+M>>0])<<8|0|cr[e+x>>0]|0))*U+(C=+((0|cr[e+V>>0])<<8|0|cr[e+F>>0]|0))*S))))<0?0:(0|e)<(0|k)?65535&e:r,f=(0|B)/2|0,q=L+((0|br(0|ar[Z>>2],X))+f<<1)|0,or[q>>1]=e,e=(0|(e=0|ef(H+(W*O+I*z+C*j))))<0?0:(0|e)<(0|k)?65535&e:r,q=K+((0|br(0|ar[p>>2],X))+f<<1)|0,or[q>>1]=e,(0|(B=B+2|0))<(0|v););else for(B=0;e=w+(i+(0|br(B,h)))|0,e=(0|(e=0|ef(H+.8554700016975403*((W=+((0|cr[e+s>>0])<<8|0|cr[e+J>>0]|0))*T+(I=+((0|cr[e+M>>0])<<8|0|cr[e+x>>0]|0))*U+(C=+((0|cr[e+V>>0])<<8|0|cr[e+F>>0]|0))*S))))<0?0:(0|e)<(0|k)?65535&e:r,f=(0|B)/2|0,q=L+((0|br(0|ar[Z>>2],X))+f<<1)|0,or[q>>1]=e,e=(0|(e=0|ef(H+.8554700016975403*(W*O+I*z+C*j))))<0?0:(0|e)<(0|k)?65535&e:r,q=K+((0|br(0|ar[p>>2],X))+f<<1)|0,or[q>>1]=e,(0|(B=B+2|0))<(0|v););E=E+2|0}while((0|E)<(0|m))}}ur=(d||du(P),y)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+64|0,n=t+36|0,f=t+48|0,l=t,0==(0|ar[(r|=0)>>2])&&1==(0|ar[r+4>>2])&&8!=(0|(o=0|ar[(a=r+12|0)>>2]))){e=0|ar[r+16>>2];A:do{if(0|e){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:break;default:break A}return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}}while(0);return ar[n>>2]=0,ar[(c=4+n|0)>>2]=0,e=(ar[8+n>>2]=0)|tr[(i=r+8|0)>>0],ar[l>>2]=1,ar[l+4>>2]=e<<24>>24?15:14,tr[l+8>>0]=e,ar[l+12>>2]=o,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,r=8+n|(gA[l+32>>2]=0),Nl(n,l),0|(e=0|ar[e>>2])&&du(e),i=0|tr[i>>0],e=0|ar[a>>2],ar[l>>2]=1,ar[l+4>>2]=i<<24>>24?13:12,tr[l+8>>0]=i,tr[(i=l+9|0)>>0]=0|tr[f>>0],tr[i+1>>0]=0|tr[f+1>>0],tr[i+2>>0]=0|tr[f+2>>0],ar[l+12>>2]=e,ar[(e=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,(f=(gA[l+32>>2]=0)|ar[c>>2])>>>0>=(0|ar[r>>2])>>>0?(Nl(n,l),0|(e=0|ar[i>>2])&&du(e)):(ar[f>>2]=ar[l>>2],ar[f+4>>2]=ar[l+4>>2],ar[f+8>>2]=ar[l+8>>2],ar[f+12>>2]=ar[l+12>>2],ar[f+16>>2]=ar[e>>2],ar[f+20>>2]=ar[i>>2],ar[e>>2]=0,l=l+24|(ar[i>>2]=0),ar[(a=f+24|0)>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],ar[c>>2]=f+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[c>>2],ar[A+8>>2]=ar[r>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0;if(ur=(g=ur)+64|0,k=g+56|0,h=g+52|0,w=g+48|0,v=g+44|0,m=g+40|0,B=g+20|0,p=g,y=0|ar[(r|=0)>>2],b=0|ar[y+24>>2],s=0|ar[y+28>>2],y=255&(0|Vo(y,0)),d=0|Eo(0|ar[r>>2],6),u=1&(X=15==(1|ar[(f=i+4|0)>>2])),W=X<<31>>31,i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(Z=i+12|0)>>2]=0,ar[Z+4>>2]=0,ar[Z+8>>2]=0,ar[Z+12>>2]=0,ar[Z+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,e=i+52|0,ar[(j=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[i+68>>2]=j,ar[A>>2]=Z,j=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[j>>2],ar[Z>>2]=Z,ar[j>>2]=i,0|e&&ku(e),du(i),yo(Z,b,s,1,0|ar[f>>2]),j=d?8:6,Bo(Z,10,b,s,y),d&&Bo(Z,6,b,s,y),ar[k>>2]=0,ar[h>>2]=0,ar[w>>2]=0,ar[v>>2]=0,t=(ar[m>>2]=0)|Fo(Z,10,k),o=0|Ro(0|ar[r>>2],0,h),a=0|Ro(0|ar[r>>2],1,w),c=0|Ro(0|ar[r>>2],2,v),z=d?0|Ro(0|ar[r>>2],6,m):0,f=(l=1<>2],e=0|ar[O+40>>2],(n=0==(0|(O=0|ar[O+44>>2])))||bu(O),U=e?(U=0|tr[e+10>>0],pe(p,0|or[e+8>>1],0|or[e+4>>1]),ar[B>>2]=ar[p>>2],ar[B+4>>2]=ar[p+4>>2],ar[B+8>>2]=ar[p+8>>2],ar[B+12>>2]=ar[p+12>>2],ar[B+16>>2]=ar[p+16>>2],U<<24>>24!=0):1,0<(0|s)){S=0<(0|b),D=1<>>8&255,y=0;do{if(S)for(B=(0|y)/2|0,p=0;e=o+(((0|br(0|ar[h>>2],y))/2|0)+p<<1)|0,I=+(0|lr[e>>1]),e=(0|p)/2|0,r=a+(((0|br(0|ar[w>>2],B))/2|0)+e<<1)|0,C=+((0|lr[r>>1])-D|0),e=c+(((0|br(0|ar[v>>2],B))/2|0)+e<<1)|0,E=+((0|lr[e>>1])-D|0),C=U?C:1.142899990081787*C,E=U?E:1.142899990081787*E,A=0<=(0|(e=0|ef((I=U?I:1.1689000129699707*(I+-16))+gA[J>>2]*E)))?(0|e)<(0|l)?(r=255&e,(65535&e)>>>8&255):(r=G,X):r=0,i=0<=(0|(e=0|ef(I+C*gA[M>>2]-E*gA[T>>2])))?(0|e)<(0|l)?(Z=255&e,(65535&e)>>>8&255):(Z=G,X):Z=0,e=0<=(0|(e=0|ef(I+C*gA[F>>2])))?(0|e)<(0|l)?(f=255&e,(65535&e)>>>8&255):(f=G,X):f=0,x=t+(((H=0|br(p,j))|u)+(0|br(0|ar[k>>2],y)))|0,tr[x>>0]=A,A=t+(R+H+(0|br(0|ar[k>>2],y)))|0,tr[A>>0]=i,A=t+(N+H+(0|br(0|ar[k>>2],y)))|0,tr[A>>0]=e,A=t+(_+H+(0|br(0|ar[k>>2],y)))|0,tr[A>>0]=r,r=t+(Y+H+(0|br(0|ar[k>>2],y)))|0,tr[r>>0]=Z,r=t+(Q+H+(0|br(0|ar[k>>2],y)))|0,tr[r>>0]=f,d&&(r=z+(((0|br(0|ar[m>>2],y))/2|0)+p<<1)|0,H=t+((V|(x=p<<3))+(0|br(0|ar[k>>2],y)))|0,tr[H>>0]=(0|lr[r>>1])>>>8,H=z+(((0|br(0|ar[m>>2],y))/2|0)+p<<1)|0,x=t+(W+x+(0|br(0|ar[k>>2],y)))|0,tr[x>>0]=or[H>>1]),(0|(p=p+1|0))!=(0|b););y=y+1|0}while((0|y)!=(0|s))}ur=(n||du(O),g)},function(A,e,r,i,f){var n,t;return A|=0,e|=0,i|=0,f|=0,ur=(t=ur)+48|0,n=t+36|0,e=t,8==(0|(i=0|ar[(r|=0)+12>>2]))||0|ar[r>>2]?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[n>>2]=0,ar[(f=4+n|0)>>2]=0,r=(ar[8+n>>2]=0)|tr[r+8>>0],ar[e>>2]=1,ar[e+4>>2]=3,tr[e+8>>0]=r,ar[e+12>>2]=i,ar[e+16>>2]=0,ar[(r=e+20|0)>>2]=0,gA[e+24>>2]=.5,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(n,e),0|(e=0|ar[r>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[f>>2],ar[A+8>>2]=ar[8+n>>2]),void(ur=t)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0;if(ur=(W=ur)+80|0,p=W+68|0,y=W+64|0,B=W+60|0,E=W+56|0,X=W+52|0,v=W+48|0,m=W+44|0,g=W+40|0,R=W+20|0,V=W,e=0|ar[(r|=0)>>2],G=0|ar[e+36>>2],F=255&(e=0|Vo(e,0)),i=0|Vo(0|ar[r>>2],1),f=0|Vo(0|ar[r>>2],2),I=(Z=0|Eo(0|ar[r>>2],6))?255&(0|Vo(0|ar[r>>2],6)):0,e<<24>>24==8|i<<24>>24==8|f<<24>>24==8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=W);if(e<<24>>24!=i<<24>>24||e<<24>>24!=f<<24>>24)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=W);if(e=0|ar[r>>2],C=0|ar[e+40>>2],(w=0==(0|(h=0|ar[e+44>>2])))||(bu(h),e=0|ar[r>>2]),k=0|ar[e+24>>2],d=0|ar[e+28>>2],i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,nA=i+52|0,ar[(fA=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[nA>>2]=0,ar[nA+4>>2]=0,ar[nA+8>>2]=0,ar[nA+12>>2]=0,ar[i+68>>2]=fA,fA=f,iA=(nA=i)+16|0,bu(i),su(i),e=0|ar[iA>>2],ar[f>>2]=fA,ar[iA>>2]=nA,0|e&&ku(e),du(i),yo(f,k,d,1,3),Bo(f,3,k,d,F),Bo(f,4,k,d,F),Bo(f,5,k,d,F),Z&&Bo(f,6,k,d,I),ar[p>>2]=0,ar[y>>2]=0,ar[B>>2]=0,ar[E>>2]=0,ar[X>>2]=0,ar[v>>2]=0,ar[m>>2]=0,c=(ar[g>>2]=0)|Ro(0|ar[r>>2],0,p),l=0|Ro(0|ar[r>>2],1,y),u=0|Ro(0|ar[r>>2],2,B),b=0|Fo(f,3,X),s=0|Fo(f,4,v),iA=0|Fo(f,5,m),eA=Z?(rA=0|Ro(0|ar[r>>2],6,E),0|Fo(f,6,g)):rA=0,o=(t=1<>2]=(0|ar[p>>2])/2|0,ar[y>>2]=(0|ar[y>>2])/2|0,ar[B>>2]=(0|ar[B>>2])/2|0,ar[E>>2]=(0|ar[E>>2])/2|0,ar[X>>2]=(0|ar[X>>2])/2|0,ar[v>>2]=(0|ar[v>>2])/2|0,ar[m>>2]=(0|ar[m>>2])/2|0,ar[g>>2]=(0|ar[g>>2])/2|0,Ze(R),C?(e=0|or[C+8>>1],K=0|tr[C+10>>0],pe(V,e,0|or[C+4>>1]),ar[R>>2]=ar[V>>2],ar[R+4>>2]=ar[V+4>>2],ar[R+8>>2]=ar[V+8>>2],ar[R+12>>2]=ar[V+12>>2],ar[R+16>>2]=ar[V+16>>2],K=K<<24>>24!=0,e&=65535):(K=1,e=2),0<(0|d)){q=0<(0|k),$=k<<1,AA=0==(0|e),L=8==(0|e),j=1<>n,R=0|br(0|ar[y>>2],D),Q=0|br(0|ar[p>>2],G),D=0|br(0|ar[B>>2],D),J=0|br(0|ar[X>>2],G),M=0|br(0|ar[m>>2],G),T=0|br(0|ar[v>>2],G),U=+gA[H>>2],S=+gA[x>>2],O=+gA[P>>2],z=+gA[F>>2],V=0;do{C=R+(e=V>>a)|0,r=Q+V|0,e=0|or[u+(D+e<<1)>>1];do{if(AA){if(i=M+V|0,f=J+V|0,I=T+V|0,K){or[b+(f<<1)>>1]=e,or[s+(I<<1)>>1]=0|or[c+(r<<1)>>1],e=0|or[l+(C<<1)>>1];break}or[b+(f<<1)>>1]=16+((128+(219*(65535&e)|0)|0)>>>8),or[s+(I<<1)>>1]=16+((128+(219*(0|lr[c+(r<<1)>>1])|0)|0)>>>8),e=16+((128+(219*(0|lr[l+(C<<1)>>1])|0)|0)>>>8)&65535;break}if(f=(65535&e)-j|0,i=0|or[c+(r<<1)>>1],e=(0|lr[l+(C<<1)>>1])-j|0,L){r=(i=(C=65535&i)-e|0)+f|0,or[b+(J+V<<1)>>1]=(0|r)<0?0:255<(0|r)?255:255&r,e=C+e|0,or[s+(T+V<<1)>>1]=(0|e)<0?0:255<(0|e)?255:255&e,e=(0|(e=i-f|0))<0?0:255<(0|e)?255:255&e,i=M+V|0;break}_=+(65535&i),Y=+(0|e),N=+(0|f),Y=K?Y:1.142899990081787*Y,e=(0|(e=0|ef((_=K?_:1.1689000129699707*(_+-16))+(N=K?N:1.142899990081787*N)*U)))<0?0:65535&((0|e)<(0|t)?e:o),or[b+(J+V<<1)>>1]=e,e=(0|(e=0|ef(_+Y*S+N*O)))<0?0:65535&((0|e)<(0|t)?e:o),or[s+(T+V<<1)>>1]=e,e=(0|(e=0|ef(_+Y*z)))<0?0:65535&((0|e)<(0|t)?e:o),i=M+V|0}while(0);or[iA+(i<<1)>>1]=e,V=V+1|0}while((0|V)!=(0|k))}Z&&hb(0|(T=eA+((0|br(0|ar[g>>2],G))<<1)|0),rA+((0|br(0|ar[E>>2],G))<<1)|0,0|$),G=G+1|0}while((0|G)!=(0|d))}ar[A>>2]=fA,ar[A+4>>2]=nA,ur=(w||du(h),W)},function(A,e,r,i,f){var n;return A|=0,e|=0,i|=0,f|=0,ur=(n=ur)+48|0,f=n+36|0,e=n,8!=(0|ar[(r|=0)+12>>2])||0|ar[r>>2]?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[f>>2]=0,ar[(i=f+4|0)>>2]=0,r=(ar[f+8>>2]=0)|tr[r+8>>0],ar[e>>2]=1,ar[e+4>>2]=3,tr[e+8>>0]=r,ar[e+12>>2]=8,ar[e+16>>2]=0,ar[(r=e+20|0)>>2]=0,gA[e+24>>2]=.5,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(f,e),0|(e=0|ar[r>>2])&&du(e),ar[A>>2]=ar[f>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[f+8>>2]),void(ur=n)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0;if(ur=(W=ur)+80|0,p=W+68|0,y=W+64|0,B=W+60|0,E=W+56|0,X=W+52|0,v=W+48|0,m=W+44|0,g=W+40|0,Y=W+20|0,V=W,e=0|ar[(r|=0)>>2],G=0|ar[e+36>>2],_=255&(e=0|Vo(e,0)),i=0|Vo(0|ar[r>>2],1),f=0|Vo(0|ar[r>>2],2),I=(Z=0|Eo(0|ar[r>>2],6))?255&(0|Vo(0|ar[r>>2],6)):0,e<<24>>24!=8|i<<24>>24!=8|f<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=W);if(e=0|ar[r>>2],C=0|ar[e+40>>2],(w=0==(0|(h=0|ar[e+44>>2])))||(bu(h),e=0|ar[r>>2]),k=0|ar[e+24>>2],d=0|ar[e+28>>2],i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,P=i+52|0,ar[(x=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[P>>2]=0,ar[P+4>>2]=0,ar[P+8>>2]=0,ar[P+12>>2]=0,ar[i+68>>2]=x,x=f,H=(P=i)+16|0,bu(i),su(i),e=0|ar[H>>2],ar[f>>2]=x,ar[H>>2]=P,0|e&&ku(e),du(i),yo(f,k,d,1,3),Bo(f,3,k,d,_),Bo(f,4,k,d,_),Bo(f,5,k,d,_),Z&&Bo(f,6,k,d,I),ar[p>>2]=0,ar[y>>2]=0,ar[B>>2]=0,ar[E>>2]=0,ar[X>>2]=0,ar[v>>2]=0,ar[m>>2]=0,c=(ar[g>>2]=0)|Ro(0|ar[r>>2],0,p),l=0|Ro(0|ar[r>>2],1,y),u=0|Ro(0|ar[r>>2],2,B),b=0|Fo(f,3,X),s=0|Fo(f,4,v),H=0|Fo(f,5,m),z=Z?(j=0|Ro(0|ar[r>>2],6,E),0|Fo(f,6,g)):j=0,o=(t=1<<_)-1|0,a=(255&(0|go(G)))-1|0,n=(255&(0|Zo(G)))-1|0,Ze(Y),C?(e=0|or[C+8>>1],T=0|tr[C+10>>0],pe(V,e,0|or[C+4>>1]),ar[Y>>2]=ar[V>>2],ar[Y+4>>2]=ar[V+4>>2],ar[Y+8>>2]=ar[V+8>>2],ar[Y+12>>2]=ar[V+12>>2],ar[Y+16>>2]=ar[V+16>>2],T=T<<24>>24!=0,e&=65535):(T=1,e=2),0<(0|d)){U=0<(0|k),S=k<<1,O=0==(0|e),M=8==(0|e),Q=1<<_+-1&65535,D=Y+4|0,J=Y+8|0,_=Y+12|0,G=Y+16|0,r=0;do{if(U){V=r>>n,C=0;do{i=C>>a,f=u+((0|br(0|ar[B>>2],V))+i)|0,f=0|tr[f>>0];do{if(O){if(e=(0|br(0|ar[X>>2],r))+C|0,T){tr[b+e>>0]=f,Y=c+((0|br(0|ar[p>>2],r))+C)|0,e=s+((0|br(0|ar[v>>2],r))+C)|0,tr[e>>0]=0|tr[Y>>0],e=l+((0|br(0|ar[y>>2],V))+i)|0,e=0|tr[e>>0];break}tr[b+e>>0]=16+((128+(219*(255&f)|0)|0)>>>8),Y=c+((0|br(0|ar[p>>2],r))+C)|0,e=s+((0|br(0|ar[v>>2],r))+C)|0,tr[e>>0]=16+((128+(219*(0|cr[Y>>0])|0)|0)>>>8),e=l+((0|br(0|ar[y>>2],V))+i)|0,e=16+((128+(219*(0|cr[e>>0])|0)|0)>>>8)&255;break}if(e=0|br(0|ar[y>>2],V),I=c+((0|br(0|ar[p>>2],r))+C)|0,I=0|tr[I>>0],i=(0|cr[l+(e+i)>>0])-Q|0,e=(255&f)-Q|0,M){L=(Y=(f=255&I)-i|0)+e|0,I=b+((0|br(0|ar[X>>2],r))+C)|0,tr[I>>0]=(0|L)<0?0:255<(0|L)?-1:255&L,f=i+f|0,I=s+((0|br(0|ar[v>>2],r))+C)|0,tr[I>>0]=(0|f)<0?0:255<(0|f)?-1:255&f,e=(0|(e=Y-e|0))<0?0:255<(0|e)?-1:255&e;break}R=+(255&I),N=+(0|i),F=+(0|e),N=T?N:1.142899990081787*N,e=(0|(e=0|ef((R=T?R:1.1689000129699707*(R+-16))+(F=T?F:1.142899990081787*F)*gA[D>>2])))<0?0:255&((0|e)<(0|t)?e:o),L=b+((0|br(0|ar[X>>2],r))+C)|0,tr[L>>0]=e,e=(0|(e=0|ef(R+N*gA[J>>2]+F*gA[_>>2])))<0?0:255&((0|e)<(0|t)?e:o),L=s+((0|br(0|ar[v>>2],r))+C)|0,tr[L>>0]=e,e=(0|(e=0|ef(R+N*gA[G>>2])))<0?0:255&((0|e)<(0|t)?e:o)}while(0);L=H+((0|br(0|ar[m>>2],r))+C)|0,tr[L>>0]=e,C=C+1|0}while((0|C)!=(0|k))}Z&&hb(0|(L=z+(0|br(0|ar[g>>2],r))|0),j+(0|br(0|ar[E>>2],r))|0,0|S),r=r+1|0}while((0|r)!=(0|d))}ar[A>>2]=x,ar[A+4>>2]=P,ur=(w||du(h),W)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0;return ur=(t=ur)+48|0,n=t+36|0,e=t,8==(0|ar[(r|=0)+12>>2])&&1==(0|ar[r>>2])&&3==(0|ar[r+4>>2])?(ar[n>>2]=0,ar[(f=4+n|0)>>2]=0,o=(ar[8+n>>2]=0)|ar[i+4>>2],i=0|tr[r+8>>0],ar[e>>2]=0,ar[e+4>>2]=o,tr[e+8>>0]=i,ar[e+12>>2]=8,ar[e+16>>2]=0,ar[(i=e+20|0)>>2]=0,gA[e+24>>2]=.75,gA[e+28>>2]=.5,gA[e+32>>2]=0,Nl(n,e),0|(e=0|ar[i>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[f>>2],ar[A+8>>2]=ar[8+n>>2]):(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),void(ur=t)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0;if(ur=(p=ur)+112|0,w=p+108|0,v=p+104|0,T=p+100|0,Z=p+96|0,F=p+92|0,b=p+88|0,s=p+84|0,m=p+80|0,Y=p+40|0,X=p,U=0|ar[(r|=0)>>2],g=0|ar[U+24>>2],U=0|ar[U+28>>2],d=255&(0|go(f=0|ar[i+4>>2])),k=255&(0|Zo(f)),E=255&(O=0|Vo(0|ar[r>>2],3)),O<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if((h=0|Eo(0|ar[r>>2],6))&&(0|Vo(0|ar[r>>2],6))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if(y=0|hu(80),ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y>>2]=6208,ar[(B=y+12|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[y+32>>2]=32215,ar[y+36>>2]=0,ar[y+40>>2]=0,ar[y+44>>2]=99,ar[y+48>>2]=99,O=y+52|0,ar[(S=y+72|0)>>2]=0,ar[y+76>>2]=0,ar[O>>2]=0,ar[O+4>>2]=0,ar[O+8>>2]=0,ar[O+12>>2]=0,ar[y+68>>2]=S,S=B,M=(O=y)+16|0,bu(y),su(y),e=0|ar[M>>2],ar[B>>2]=S,ar[M>>2]=O,0|e&&ku(e),du(y),yo(B,g,U,0,f),J=(g-1+d|0)/(0|d)|0,M=(U+-1+k|0)/(0|k)|0,Bo(B,0,g,U,E),Bo(B,1,J,M,E),Bo(B,2,J,M,E),h&&Bo(B,6,g,U,E),ar[w>>2]=0,ar[v>>2]=0,ar[T>>2]=0,ar[Z>>2]=0,ar[F>>2]=0,ar[b>>2]=0,ar[s>>2]=0,c=(ar[m>>2]=0)|Ro(0|ar[r>>2],3,w),l=0|Ro(0|ar[r>>2],4,v),u=0|Ro(0|ar[r>>2],5,T),G=0|Fo(B,0,F),J=0|Fo(B,1,b),M=0|Fo(B,2,s),Q=h?(D=0|Ro(0|ar[r>>2],6,Z),0|Fo(B,6,m)):D=0,n=1<>2])for(r=0|tr[e+10>>0],ye(X,y=0|or[e+8>>1],0|or[e+4>>1]),r=r<<24>>24!=0,y&=65535,e=X,f=(B=Y)+40|0;ar[B>>2]=ar[e>>2],e=e+4|0,(0|(B=B+4|0))<(0|f););else y=2,r=1;if(t=0<(0|U)){E=0<(0|g),i=0==(0|y),X=Y+4|0,I=Y+8|0,C=Y+12|0,B=0;do{A:do{if(E){if(i)f=0;else for(f=0;;)if(_=l+((0|br(0|ar[v>>2],B))+f)|0,N=c+((0|br(0|ar[w>>2],B))+f)|0,e=u+((0|br(0|ar[T>>2],B))+f)|0,V=(0|cr[N>>0])*gA[X>>2]+(0|cr[_>>0])*gA[I>>2]+(0|cr[e>>0])*gA[C>>2],e=(0|(e=0|ef(r?V:219*V*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a),_=G+((0|br(0|ar[F>>2],B))+f)|0,tr[_>>0]=e,(0|(f=f+1|0))==(0|g))break A;for(;e=l+((0|br(0|ar[v>>2],B))+f)|0,e=0|tr[e>>0],r||(e=(0|(e=0|ef(219*(255&e)*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a)),_=G+((0|br(0|ar[F>>2],B))+f)|0,tr[_>>0]=e,(0|(f=f+1|0))!=(0|g););}}while(0);B=B+1|0}while((0|B)!=(0|U));if(t){_=0<(0|g),I=0==(0|y),C=Y+16|0,G=Y+20|0,F=Y+24|0,R=Y+28|0,N=Y+32|0,X=Y+36|0,V=+(65535&n|0),i=0;do{if(_)for(E=0;e=I?(e=u+((0|br(0|ar[T>>2],i))+E)|0,e=0|tr[e>>0],y=(e=r?(y=(0|i)/(0|k)|0,f=(0|E)/(0|d)|0,Y=J+((0|br(0|ar[b>>2],y))+f)|0,tr[Y>>0]=e,e=c+((0|br(0|ar[T>>2],i))+E)|0,0|tr[e>>0]):(e=(0|(e=0|ef(219*(255&e)*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a),y=(0|i)/(0|k)|0,f=(0|E)/(0|d)|0,Y=J+((0|br(0|ar[b>>2],y))+f)|0,tr[Y>>0]=e,e=c+((0|br(0|ar[T>>2],i))+E)|0,(0|(e=0|ef(219*(0|cr[e>>0])*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a)),0|br(0|ar[b>>2],y)),B=e,y+f|0):(e=c+((0|br(0|ar[w>>2],i))+E)|0,x=+(0|cr[e>>0]),e=l+((0|br(0|ar[v>>2],i))+E)|0,H=+(0|cr[e>>0]),e=u+((0|br(0|ar[T>>2],i))+E)|0,W=+(0|cr[e>>0]),z=224*(j=x*gA[C>>2]+H*gA[G>>2]+W*gA[F>>2])*.00390625,W=r?x*gA[R>>2]+H*gA[N>>2]+W*gA[X>>2]:224*z*.00390625,e=(0|(e=0|ef(V+(r?j:z))))<0?0:255&((0|e)<(0|o)?e:a),f=(0|i)/(0|k)|0,y=(0|E)/(0|d)|0,Y=J+((0|br(0|ar[b>>2],f))+y)|0,tr[Y>>0]=e,B=e=(0|(e=0|ef(V+W)))<0?0:255&((0|e)<(0|o)?e:a),(0|br(0|ar[s>>2],f))+y|0),tr[M+e>>0]=B,(0|(E=E+d|0))<(0|g););i=i+k|0}while((0|i)<(0|U));if(h&t)for(e=0;hb(0|(T=Q+(0|br(0|ar[m>>2],e))|0),D+(0|br(0|ar[Z>>2],e))|0,0|g),(0|(e=e+1|0))!=(0|U););}}ar[A>>2]=S,ar[A+4>>2]=O,ur=p},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0;return ur=(t=ur)+48|0,n=t+36|0,e=t,8!=(0|(f=0|ar[(r|=0)+12>>2]))&&1==(0|ar[r>>2])&&3==(0|ar[r+4>>2])?(ar[n>>2]=0,ar[(o=4+n|0)>>2]=0,a=(ar[8+n>>2]=0)|ar[i+4>>2],i=0|tr[r+8>>0],ar[e>>2]=0,ar[e+4>>2]=a,tr[e+8>>0]=i,ar[e+12>>2]=f,ar[e+16>>2]=0,ar[(i=e+20|0)>>2]=0,gA[e+24>>2]=.75,gA[e+28>>2]=.5,gA[e+32>>2]=0,Nl(n,e),0|(e=0|ar[i>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[o>>2],ar[A+8>>2]=ar[8+n>>2]):(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),void(ur=t)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0;if(ur=(p=ur)+112|0,o=p+108|0,a=p+104|0,n=p+100|0,Z=p+96|0,V=p+92|0,t=p+88|0,H=p+84|0,g=p+80|0,l=p+40|0,X=p,eA=0|ar[(r|=0)>>2],w=0|ar[eA+24>>2],eA=0|ar[eA+28>>2],v=255&(0|go(y=0|ar[i+4>>2])),m=255&(0|Zo(y)),E=255&(e=0|Vo(0|ar[r>>2],3)),e<<24>>24==8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if((q=0|Eo(0|ar[r>>2],6))&&(0|Vo(0|ar[r>>2],6))<<24>>24!=e<<24>>24)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(B=f+12|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,AA=f+52|0,ar[($=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[AA>>2]=0,ar[AA+4>>2]=0,ar[AA+8>>2]=0,ar[AA+12>>2]=0,ar[f+68>>2]=$,$=B,K=(AA=f)+16|0,bu(f),su(f),e=0|ar[K>>2],ar[B>>2]=$,ar[K>>2]=AA,0|e&&ku(e),du(f),yo(B,w,eA,0,y),L=(w-1+v|0)/(0|v)|0,K=(eA+-1+m|0)/(0|m)|0,Bo(B,0,w,eA,E),Bo(B,1,L,K,E),Bo(B,2,L,K,E),q&&Bo(B,6,w,eA,E),ar[o>>2]=0,ar[a>>2]=0,ar[n>>2]=0,ar[Z>>2]=0,ar[V>>2]=0,ar[t>>2]=0,ar[H>>2]=0,d=(ar[g>>2]=0)|Ro(0|ar[r>>2],3,o),k=0|Ro(0|ar[r>>2],4,a),h=0|Ro(0|ar[r>>2],5,n),J=0|Fo(B,0,V),L=0|Fo(B,1,t),K=0|Fo(B,2,H),x=q?(P=0|Ro(0|ar[r>>2],6,Z),0|Fo(B,6,g)):P=0,ar[o>>2]=(0|ar[o>>2])/2|0,ar[a>>2]=(0|ar[a>>2])/2|0,ar[n>>2]=(0|ar[n>>2])/2|0,ar[Z>>2]=(0|ar[Z>>2])/2|0,ar[V>>2]=(0|ar[V>>2])/2|0,ar[t>>2]=(0|ar[t>>2])/2|0,ar[H>>2]=(0|ar[H>>2])/2|0,ar[g>>2]=(0|ar[g>>2])/2|0,c=1<>2])for(r=0|tr[e+10>>0],ye(X,y=0|or[e+8>>1],0|or[e+4>>1]),r=r<<24>>24!=0,y&=65535,e=X,f=(B=l)+40|0;ar[B>>2]=ar[e>>2],e=e+4|0,(0|(B=B+4|0))<(0|f););else y=2,r=1;if(u=0<(0|eA)){_=0<(0|w),Y=0==(0|y),Q=0|ar[a>>2],X=0|ar[V>>2],V=0|ar[o>>2],F=0|ar[n>>2],W=+gA[4+l>>2],I=+gA[8+l>>2],C=+gA[12+l>>2],i=0;do{A:do{if(_){if(R=0|br(Q,i),N=0|br(X,i),B=0|br(V,i),E=0|br(F,i),Y)f=0;else for(f=0;;)if(z=(0|lr[d+(B+f<<1)>>1])*W+(0|lr[k+(R+f<<1)>>1])*I+(0|lr[h+(E+f<<1)>>1])*C,e=(0|(e=0|ef(r?z:219*z*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s),or[J+(N+f<<1)>>1]=e,(0|(f=f+1|0))==(0|w))break A;for(;e=0|or[k+(R+f<<1)>>1],r||(e=(0|(e=0|ef(219*(65535&e)*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s)),or[J+(N+f<<1)>>1]=e,(0|(f=f+1|0))!=(0|w););}}while(0);i=i+1|0}while((0|i)!=(0|eA));if(u){j=0<(0|w),J=0==(0|y),Q=0|ar[n>>2],Y=0|ar[t>>2],_=0|ar[o>>2],N=0|ar[a>>2],T=+gA[16+l>>2],U=+gA[20+l>>2],S=+gA[24+l>>2],O=+gA[28+l>>2],z=+gA[32+l>>2],M=+gA[36+l>>2],D=+(65535&c|0),X=0|ar[H>>2],i=0;do{if(j)for(V=0|br(Q,i),F=0|br(_,i),R=0|br(N,i),E=0;e=0|or[h+((f=V+E|0)<<1)>>1],e=J?(e=r?(y=0|br(Y,(0|i)/(0|m)|0),or[L+(y+(H=(0|E)/(0|v)|0)<<1)>>1]=e,f=0|or[d+(f<<1)>>1],H):(e=(0|(e=0|ef(219*(65535&e)*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s),y=0|br(Y,(0|i)/(0|m)|0),or[L+(y+(B=(0|E)/(0|v)|0)<<1)>>1]=e,f=(0|(e=0|ef(219*(0|lr[d+(f<<1)>>1])*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s),B),y+e|0):(I=224*(iA=(C=+(0|lr[d+(F+E<<1)>>1]))*T+(G=+(0|lr[k+(R+E<<1)>>1]))*U+(W=+(65535&e))*S)*.00390625,e=(0|(e=0|ef(D+(r?iA:I))))<0?0:65535&((0|e)<(0|b)?e:s),B=(0|E)/(0|v)|0,H=L+((0|br(Y,y=(0|i)/(0|m)|0))+B<<1)|0,or[H>>1]=e,f=e=(0|(e=0|ef(D+(r?C*O+G*z+W*M:224*I*.00390625))))<0?0:65535&((0|e)<(0|b)?e:s),(0|br(X,y))+B|0),or[K+(e<<1)>>1]=f,(0|(E=E+v|0))<(0|w););i=i+m|0}while((0|i)<(0|eA))}}if(q&&(rA=w<<1,u))for(e=0;hb(0|(q=x+((0|br(0|ar[g>>2],e))<<1)|0),P+((0|br(0|ar[Z>>2],e))<<1)|0,0|rA),(0|(e=e+1|0))!=(0|eA););ar[A>>2]=$,ar[A+4>>2]=AA,ur=p},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0;do{if(0|xu(A,0|ar[e+8>>2]))Lu(0,e,r,i);else if(0|xu(A,0|ar[e>>2])){if(A=e+32|0,(0|ar[e+16>>2])!=(0|r)&&(0|ar[(n=e+20|0)>>2])!=(0|r)){ar[A>>2]=i,ar[n>>2]=r,ar[(i=e+40|0)>>2]=1+(0|ar[i>>2]),1==(0|ar[e+36>>2])&&2==(0|ar[e+24>>2])&&(tr[e+54>>0]=1),ar[e+44>>2]=4;break}1==(0|i)&&(ar[A>>2]=1)}}while(0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;do{if(0|xu(A,0|ar[e+8>>2]))Lu(0,e,r,i);else{if(n=A+8|0,!(0|xu(A,0|ar[e>>2]))){o=0|ar[n>>2],os[63&ar[24+(0|ar[o>>2])>>2]](o,e,r,i,f);break}if(A=e+32|0,(0|ar[e+16>>2])!=(0|r)&&(0|ar[(t=e+20|0)>>2])!=(0|r)){if(ar[A>>2]=i,4==(0|ar[(i=e+44|0)>>2]))break;tr[(A=e+52|0)>>0]=0,n=(tr[(a=e+53|0)>>0]=0)|ar[n>>2],as[15&ar[20+(0|ar[n>>2])>>2]](n,e,r,r,1,f),0|tr[a>>0]?0|tr[A>>0]?A=3:(A=3,o=11):(A=4,o=11),11==(0|o)&&(ar[t>>2]=r,ar[(a=e+40|0)>>2]=1+(0|ar[a>>2]),1==(0|ar[e+36>>2])&&2==(0|ar[e+24>>2])&&(tr[e+54>>0]=1)),ar[i>>2]=A;break}1==(0|i)&&(ar[A>>2]=1)}}while(0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;A:do{if(0|xu(A,0|ar[e+8>>2]))Lu(0,e,r,i);else{if(t=A+12|0,d=e+24|0,k=e+36|0,h=e+54|0,b=A+8|0,l=A+16|0,!(0|xu(A,0|ar[e>>2]))){if(o=A+16+((s=0|ar[t>>2])<<3)|0,rb(l,e,r,i,f),n=A+24|0,(0|s)<=1)break;if(0==(2&(t=0|ar[b>>2])|0)&&1!=(0|ar[k>>2])){if(!(1&t))for(;;){if(0|tr[h>>0])break A;if(1==(0|ar[k>>2]))break A;if(rb(n,e,r,i,f),o>>>0<=(n=n+8|0)>>>0)break A}for(;;){if(0|tr[h>>0])break A;if(1==(0|ar[k>>2])&&1==(0|ar[d>>2]))break A;if(rb(n,e,r,i,f),o>>>0<=(n=n+8|0)>>>0)break A}}for(;;){if(0|tr[h>>0])break A;if(rb(n,e,r,i,f),o>>>0<=(n=n+8|0)>>>0)break A}}if(n=e+32|0,(0|ar[e+16>>2])!=(0|r)&&(0|ar[(s=e+20|0)>>2])!=(0|r)){if(ar[n>>2]=i,4==(0|ar[(u=e+44|0)>>2]))break;i=A+16+(ar[t>>2]<<3)|0,a=e+52|0,c=e+53|0,A=l,o=n=0;e:for(;;){if(i>>>0<=A>>>0){t=18;break}if(tr[a>>0]=0,tr[c>>0]=0,eb(A,e,r,r,1,f),0|tr[h>>0]){t=18;break}do{if(0|tr[c>>0]){if(!(0|tr[a>>0])){if(1&ar[b>>2]){n=1,t=o;break}n=1,t=18;break e}if(1==(0|ar[d>>2])){t=23;break e}if(!(2&ar[b>>2])){t=23;break e}t=n=1}else t=o}while(0);A=A+8|0,o=t}do{if(18==(0|t)){if(!o&&(ar[s>>2]=r,ar[(r=e+40|0)>>2]=1+(0|ar[r>>2]),1==(0|ar[k>>2]))&&2==(0|ar[d>>2])){if(tr[h>>0]=1,n){t=23;break}n=4;break}n?t=23:n=4}}while(0);23==(0|t)&&(n=3),ar[u>>2]=n;break}1==(0|i)&&(ar[n>>2]=1)}}while(0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;if(!((0|(i|=0))<=0)){t=255+(n=1<>0])+(0|ar[r+(o+c<<2)>>2])|0,tr[l>>0]=(0|u)<0?0:255&((0|u)<(0|n)?u:t),(0|(o=o+1|0))!=(0|i););f=f+1|0}while((0|f)!=(0|i))}},function(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;if(!((0|(i|=0))<=0)){t=65535+(n=1<>1])+(0|ar[r+(o+c<<2)>>2])|0,or[l>>1]=(0|u)<0?0:65535&((0|u)<(0|n)?u:t),(0|(o=o+1|0))!=(0|i););f=f+1|0}while((0|f)!=(0|i))}},function(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0;if(n=1<<(f|=0)+-1,0<(0|(r|=0))){a=0;do{for(c=0|br(a,r),o=t=0;o=((or[e+((l=t+c|0)<<1)>>1]<>f)+o|0,ar[A+(l<<2)>>2]=o,(0|(t=t+1|0))!=(0|r););a=a+1|0}while((0|a)!=(0|r))}},function(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0;if(n=1<<(f|=0)+-1,0<(0|(r|=0))){a=0;do{for(o=t=0;c=(0|br(t,r))+a|0,o=((or[e+(c<<1)>>1]<>f)+o|0,ar[A+(c<<2)>>2]=o,(0|(t=t+1|0))!=(0|r););a=a+1|0}while((0|a)!=(0|r))}},function(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0;if(n=1<<(f|=0)+-1,0<(0|(r|=0))){o=0;do{for(a=0|br(o,r),t=0;ar[A+((c=t+a|0)<<2)>>2]=(or[e+(c<<1)>>1]<>f,(0|(t=t+1|0))!=(0|r););o=o+1|0}while((0|o)!=(0|r))}},Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb],as=[Mb,function(A,e,r,i,f,n){A|=0,r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0;l=(a=0|ar[(o=(e|=0)+44|0)>>2])>>>0<(c=u=0|ar[(t=e+24|0)>>2])>>>0?(ar[o>>2]=u,c):a,a=24&n;A:do{if(0==(0|a)||1==(0|f)&24==(0|a))o=a=-1;else{e:do{switch(0|f){case 0:a=o=0;break;case 1:if(8&n){a=((0|(o=a=(0|ar[e+12>>2])-(0|ar[e+8>>2])|0))<0)<<31>>31;break e}a=((0|(o=a=c-(0|ar[e+20>>2])|0))<0)<<31>>31;break e;case 2:(0|tr[(o=e+32|0)+11>>0])<0&&(o=0|ar[o>>2]),a=((0|(o=a=l-o|0))<0)<<31>>31;break;default:o=a=-1;break A}}while(0);if(a=0|tb(0|o,0|a,0|r,0|i),0<=(0|(o=D)))if((0|tr[(c=e+32|0)+11>>0])<0&&(c=0|ar[c>>2]),(0|(r=((0|(i=l-c|0))<0)<<31>>31))<(0|o)|(0|r)==(0|o)&i>>>0>>0)o=a=-1;else{if(c=8&n,!(0==(0|a)&0==(0|o))){if(0|c&&0==(0|ar[e+12>>2])){o=a=-1;break}if(0!=(16&n|0)&0==(0|u)){o=a=-1;break}}0|c&&(ar[e+12>>2]=(0|ar[e+8>>2])+a,ar[e+16>>2]=l),16&n&&(ar[t>>2]=(0|ar[e+20>>2])+a)}else o=a=-1}}while(0);ar[(u=A)>>2]=0,ar[u+4>>2]=0,ar[(A=A+8|0)>>2]=a,ar[A+4>>2]=o},function(A,e,r,i,f,n){n|=0,ar[(n=A|=0)>>2]=0,ar[n+4>>2]=0,ar[(n=A+8|0)>>2]=-1,ar[n+4>>2]=-1},function(A,e,r,i,f,n){n|=0,ar[(n=A|=0)>>2]=0,ar[n+4>>2]=0,ar[(n=A+8|0)>>2]=-1,ar[n+4>>2]=-1},function(A,e,r,i,f,n){var t,o,a,c;for(A|=0,e|=0,r|=0,n|=0,t=ur=(o=ur)+31&-32,ur=ur+16|0,ar[t>>2]=0,ar[4+t>>2]=0,e=ar[8+t>>2]=0;3!=(0|e);)e=e+1|(ar[t+(e<<2)>>2]=0);for(n=(e=(c=(a=0|tr[n+11>>0])<<24>>24<0)?0|ar[n>>2]:n)+(c?0|ar[n+4>>2]:255&a)|0;!(n>>>0<=e>>>0);)_u(t,0|tr[e>>0]),e=e+1|0;for(r=0|tf(0,0,0,e=(0|tr[11+t>>0])<0?0|ar[t>>2]:t),ar[A>>2]=0,ar[A+4>>2]=0,n=ar[A+8>>2]=0;3!=(0|n);)n=n+1|(ar[A+(n<<2)>>2]=0);for(n=e+(0|Vc(r))|0;!(n>>>0<=e>>>0);)_u(A,0|tr[e>>0]),e=e+1|0;Bu(t),ur=o},function(A,e,r,i,f,n){A|=0,e|=0,n|=0;var t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0;for(w=ur=(u=ur)+31&-32,ur=ur+176|0,o=w+168|0,a=w+40|0,c=w+36|0,l=w+32|0,k=(t=w)+24|0,w=w+16|0,ar[t>>2]=0,ar[t+4>>2]=0,e=ar[t+8>>2]=0;3!=(0|e);)e=e+1|(ar[t+(e<<2)>>2]=0);for(ar[k+4>>2]=0,ar[k>>2]=16892,s=(e=(d=(s=0|tr[n+8+3>>0])<<24>>24<0)?0|ar[n>>2]:n)+((d?0|ar[n+4>>2]:255&s)<<2)|0,d=32+a|0,n=e,e=0;2!=(0|e)&n>>>0>>0;){if(ar[l>>2]=n,2==(0|(b=0|es[15&ar[12+(0|ar[k>>2])>>2]](k,o,n,s,l,a,d,c)))||(0|ar[l>>2])==(0|n)){h=7;break}for(e=a;!(e>>>0>=(0|ar[c>>2])>>>0);)_u(t,0|tr[e>>0]),e=e+1|0;n=0|ar[l>>2],e=b}for(7==(0|h)&&ti(),an(),n=0|tf(0,0,0,b=(0|tr[t+11>>0])<0?0|ar[t>>2]:t),ar[A>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0);for(ar[w+4>>2]=0,ar[w>>2]=16940,d=s=b+(0|Vc(n))|0,k=128+a|0,n=b,e=0;;){if(!(2!=(0|e)&n>>>0>>0)){h=21;break}if(ar[l>>2]=n,2==(0|(b=0|es[15&ar[16+(0|ar[w>>2])>>2]](w,o,n,32<(d-n|0)?n+32|0:s,l,a,k,c)))||(0|ar[l>>2])==(0|n)){h=17;break}for(e=a;!(e>>>0>=(0|ar[c>>2])>>>0);)Ou(A,0|ar[e>>2]),e=e+4|0;n=0|ar[l>>2],e=b}if(17==(0|h))ti();else if(21==(0|h))return an(),Bu(t),void(ur=u)},function(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])&&Ku(0,e,r,i,f)},function(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])?Ku(0,e,r,i,f):(A=0|ar[A+8>>2],as[15&ar[20+(0|ar[A>>2])>>2]](A,e,r,i,f,n))},function(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(0|xu(A|=0,0|ar[(e|=0)+8>>2]))Ku(0,e,r,i,f);else{t=0|tr[(s=e+52|0)>>0],a=0|tr[(o=e+53|0)>>0],c=A+16+((b=0|ar[A+12>>2])<<3)|0,tr[s>>0]=0,eb(A+16|(tr[o>>0]=0),e,r,i,f,n);A:do{if(1<(0|b)){l=e+24|0,u=e+54|0,b=A+8|0,A=A+24|0;do{if(0|tr[u>>0])break A;if(0|tr[s>>0]){if(1==(0|ar[l>>2]))break A;if(!(2&ar[b>>2]))break A}else if(0|tr[o>>0]&&0==(1&ar[b>>2]|0))break A;tr[s>>0]=0,tr[o>>0]=0,eb(A,e,r,i,f,n),A=A+8|0}while(A>>>0>>0)}}while(0);tr[s>>0]=t,tr[o>>0]=a}},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,n|=0;var t=0,o=0,a=0,c=0,l=0;if(1&(f|=0)|0&&sr(36230,36243,40,36262),0<(0|n)&0<(0|f)){a=0;do{for(t=A+(0|br(a,e))|0,o=r+((0|br(a,i))<<1)|0,c=0;l=32+(0|or[o>>1])>>6,tr[t>>0]=(0|l)<0?0:255&((0|l)<255?l:255),l=32+(0|or[o+2>>1])>>6,tr[t+1>>0]=(0|l)<0?0:255&((0|l)<255?l:255),!((0|f)<=(0|(c=c+2|0)));)t=t+2|0,o=o+4|0;a=a+1|0}while((0|a)!=(0|n))}},Mb,Mb,Mb,Mb,Mb,Mb],cs=[Tb,function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var o=0,a=0,c=0,l=0,u=0,b=0;if(1&(n|=0)|0&&sr(36230,36243,105,36363),0<(0|t)&0<(0|n)){l=0;do{for(c=0|br(l,f),o=A+(0|br(l,e))|0,a=i+(c<<1)|0,c=r+(c<<1)|0,u=0;b=64+(0|or[c>>1])+(0|or[a>>1])>>7,tr[o>>0]=(0|b)<0?0:255&((0|b)<255?b:255),b=64+(0|or[c+2>>1])+(0|or[a+2>>1])>>7,tr[o+1>>0]=(0|b)<0?0:255&((0|b)<255?b:255),!((0|n)<=(0|(u=u+2|0)));)o=o+2|0,a=a+4|0,c=c+4|0;l=l+1|0}while((0|l)!=(0|t))}},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,n|=0;var o,a,c,l,u=0,b=0,s=0,d=0;if(c=0<(0|(l=14-(t|=0)|0))?1<>1])+c>>l,or[t>>1]=(0|d)<0?0:65535&((0|d)<(0|o)?d:a),d=(0|or[u+2>>1])+c>>l,or[t+2>>1]=(0|d)<0?0:65535&((0|d)<(0|o)?d:a),!((0|f)<=(0|(s=s+2|0)));)t=t+4|0,u=u+4|0;b=b+1|0}while((0|b)!=(0|n))}},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,t|=0;var o=0,a=0,c=0,l=0,u=0,b=0;if(0<(0|(n|=0))&0<(0|(f|=0))){c=0;do{for(t=r+(0|br(c,i))|0,o=A+((0|br(c,e))<<1)|0,a=0;b=(0|cr[t+1>>0])<<6&65535,u=(0|cr[t+2>>0])<<6&65535,l=(0|cr[t+3>>0])<<6&65535,or[o>>1]=(0|cr[t>>0])<<6,or[o+2>>1]=b,or[o+4>>1]=u,or[o+6>>1]=l,!((0|f)<=(0|(a=a+4|0)));)t=t+4|0,o=o+8|0;c=c+1|0}while((0|c)!=(0|n))}},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,0,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,0,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,0,3,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,0,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,3,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,0,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,3,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,0,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,3,8)},Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb],ls=[Ub,function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var a,c,l,u,b=0,s=0,d=0,k=0,h=0;if(l=1<<(u=15-(o|=0)|0)-1,1&(n|=0)|0&&sr(36230,36243,238,36490),!((0|t)<=0)&&(c=65535+(a=1<>1])+l+(0|or[b>>1])>>u,or[o>>1]=(0|h)<0?0:65535&((0|h)<(0|a)?h:c),h=(0|or[s+2>>1])+l+(0|or[b+2>>1])>>u,or[o+2>>1]=(0|h)<0?0:65535&((0|h)<(0|a)?h:c),!((0|n)<=(0|(k=k+2|0)));)o=o+4|0,b=b+4|0,s=s+4|0;d=d+1|0}while((0|d)!=(0|t))}},function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,t|=0;var a,c=0,l=0;if(a=14-(o|=0)|0,0<(0|(n|=0))&0<(0|(f|=0))){c=0;do{for(t=A+((0|br(c,e))<<1)|0,o=r+((0|br(c,i))<<1)|0,l=0;or[t>>1]=(0|lr[o>>1])<>1],t))+c>>a)+o|0,tr[l>>0]=(0|d)<0?0:255&((0|d)<255?d:255),(0|(s=s+1|0))!=(0|f);)l=l+1|0,u=u+2|0;b=b+1|0}while((0|b)!=(0|n))}},function(A,e,r,i,f,n,t,o,a){A|=0,e|=0,r|=0,i|=0,t|=0,o|=0,a|=0;var c=0;if(0<(0|(n|=0))&0<(0|(f|=0))){a=0;do{for(t=r+(0|br(a,i))|0,o=A+((0|br(a,e))<<1)|0,c=0;or[o>>1]=(0|cr[t>>0])<<6,(0|(c=c+1|0))!=(0|f);)t=t+1|0,o=o+2|0;a=a+1|0}while((0|a)!=(0|n))}},Sb],bs=[Ob,function(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0;if((0|(a|=0))<=0&&sr(36293,36243,193,36428),b=1<>1],t))+b>>a)+o|0,or[c>>1]=(0|h)<0?0:65535&((0|h)<(0|l)?h:u),(0|(k=k+1|0))!=(0|f);)c=c+2|0,s=s+2|0;d=d+1|0}while((0|d)!=(0|n))}},function(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,t|=0,o|=0,a|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0;if(b=ur,k=(c|=0)+-8|0,h=0|br((f|=0)<<1,l=(n|=0)+3|0),ur=(u=ur)+(15+(0|+h)&-16)|0,-1<(0|(h=n+2|0))){w=0<(0|f),a=-1;do{A:do{if(w)for(d=a+1|0,a=r+(((s=0)|br(a,i))-1)|0;;){switch(0|t){case 0:c=0|cr[(a=a+1|0)>>0];break;case 1:v=a+1|0,c=(0|br(0|cr[a>>0],-2))+(58*(0|cr[v>>0])|0)+(10*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<1)>>k&65535,a=v;break;case 2:v=a+1|0,c=(0|br(0|cr[a>>0],-4))+(54*(0|cr[v>>0])|0)+(cr[a+2>>0]<<4)-(cr[a+3>>0]<<1)>>k&65535,a=v;break;case 3:v=a+1|0,c=(0|br(0|cr[a>>0],-6))+(46*(0|cr[v>>0])|0)+(28*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<2)>>k&65535,a=v;break;case 4:v=a+1|0,c=(0|br(0|cr[a>>0],-4))-(cr[a+3>>0]<<2)+(36*((0|cr[a+2>>0])+(0|cr[v>>0])|0)|0)>>k&65535,a=v;break;case 5:v=a+1|0,c=(0|br(0|cr[a>>0],-4))+(28*(0|cr[v>>0])|0)+(46*(0|cr[a+2>>0])|0)+(0|br(0|cr[a+3>>0],-6))>>k&65535,a=v;break;case 6:v=a+1|0,c=(0|br(0|cr[a>>0],-2))+(cr[v>>0]<<4)+(54*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<2)>>k&65535,a=v;break;default:v=a+1|0,c=(0|br(0|cr[a>>0],-2))+(10*(0|cr[v>>0])|0)+(58*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<1)>>k&65535,a=v}if(v=u+(d+(0|br(s,l))<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|f)){a=d;break A}}else a=a+1|0}while(0)}while((0|a)!=(0|h))}if(k=0==(0|t)?k:6,(0|f)<=0)ur=b;else{h=0<(0|n),d=0;do{A:do{if(h)for(a=u+(((s=0)|br(d,l))<<1)|0;;){switch(0|o){case 0:c=0|or[(a=a+2|0)>>1];break;case 1:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(58*(0|or[v>>1])|0)+(10*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 2:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(54*(0|or[v>>1])|0)+(or[a+4>>1]<<4)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 3:v=a+2|0,c=(0|br(0|or[a>>1],-6))+(46*(0|or[v>>1])|0)+(28*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;case 4:v=a+2|0,c=(0|br(0|or[a>>1],-4))-(or[a+6>>1]<<2)+(36*((0|or[a+4>>1])+(0|or[v>>1])|0)|0)>>k&65535,a=v;break;case 5:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(28*(0|or[v>>1])|0)+(46*(0|or[a+4>>1])|0)+(0|br(0|or[a+6>>1],-6))>>k&65535,a=v;break;case 6:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(or[v>>1]<<4)+(54*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;default:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(10*(0|or[v>>1])|0)+(58*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v}if(v=A+((0|br(s,e))+d<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|n))break A}}while(0);d=d+1|0}while((0|d)!=(0|f));ur=b}},function(A,e,r,i,f,n,t,o,a,c){var l;if(A|=0,e|=0,r|=0,i|=0,t|=0,o|=0,a|=0,l=14-(c|=0)|0,0<(0|(n|=0))&0<(0|(f|=0))){a=0;do{for(t=r+((0|br(a,i))<<1)|0,o=A+((0|br(a,e))<<1)|0,c=0;or[o>>1]=(0|lr[t>>1])<>1];break;case 1:v=a+2|0,c=(0|br(0|lr[a>>1],-2))+(58*(0|lr[v>>1])|0)+(10*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<1)>>k&65535,a=v;break;case 2:v=a+2|0,c=(0|br(0|lr[a>>1],-4))+(54*(0|lr[v>>1])|0)+(lr[a+4>>1]<<4)-(lr[a+6>>1]<<1)>>k&65535,a=v;break;case 3:v=a+2|0,c=(0|br(0|lr[a>>1],-6))+(46*(0|lr[v>>1])|0)+(28*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<2)>>k&65535,a=v;break;case 4:v=a+2|0,c=(0|br(0|lr[a>>1],-4))-(lr[a+6>>1]<<2)+(36*((0|lr[a+4>>1])+(0|lr[v>>1])|0)|0)>>k&65535,a=v;break;case 5:v=a+2|0,c=(0|br(0|lr[a>>1],-4))+(28*(0|lr[v>>1])|0)+(46*(0|lr[a+4>>1])|0)+(0|br(0|lr[a+6>>1],-6))>>k&65535,a=v;break;case 6:v=a+2|0,c=(0|br(0|lr[a>>1],-2))+(lr[v>>1]<<4)+(54*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<2)>>k&65535,a=v;break;default:v=a+2|0,c=(0|br(0|lr[a>>1],-2))+(10*(0|lr[v>>1])|0)+(58*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<1)>>k&65535,a=v}if(v=u+(d+(0|br(s,l))<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|f)){a=d;break A}}else a=a+1|0}while(0)}while((0|a)!=(0|h))}if(k=0==(0|t)?k:6,(0|f)<=0)ur=b;else{h=0<(0|n),d=0;do{A:do{if(h)for(a=u+(((s=0)|br(d,l))<<1)|0;;){switch(0|o){case 0:c=0|or[(a=a+2|0)>>1];break;case 1:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(58*(0|or[v>>1])|0)+(10*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 2:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(54*(0|or[v>>1])|0)+(or[a+4>>1]<<4)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 3:v=a+2|0,c=(0|br(0|or[a>>1],-6))+(46*(0|or[v>>1])|0)+(28*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;case 4:v=a+2|0,c=(0|br(0|or[a>>1],-4))-(or[a+6>>1]<<2)+(36*((0|or[a+4>>1])+(0|or[v>>1])|0)|0)>>k&65535,a=v;break;case 5:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(28*(0|or[v>>1])|0)+(46*(0|or[a+4>>1])|0)+(0|br(0|or[a+6>>1],-6))>>k&65535,a=v;break;case 6:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(or[v>>1]<<4)+(54*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;default:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(10*(0|or[v>>1])|0)+(58*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v}if(v=A+((0|br(s,e))+d<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|n))break A}}while(0);d=d+1|0}while((0|d)!=(0|f));ur=b}},Ob,Ob,Ob],ss=[function(A,e,r,i,f,n,t,o,a,c,l,u){Z(22)},function(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var b,s,d=0,k=0,h=0;if((0|(u|=0))<=0&&sr(36293,36243,80,36332),s=a+1+l<>1],o))+s+(0|br(0|or[a>>1],c))>>b,tr[l>>0]=(0|h)<0?0:255&((0|h)<255?h:255),(0|(k=k+1|0))!=(0|n);)l=l+1|0,a=a+2|0,u=u+2|0;d=d+1|0}while((0|d)!=(0|t))}}],ds=[function(A,e,r,i,f,n,t,o,a,c,l,u,b){Z(23)},function(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,b|=0;var s,d,k,h,w=0,v=0;if((0|(u|=0))<=0&&sr(36293,36243,213,36458),h=a+1+l<>1],o))+h+(0|br(0|or[a>>1],c))>>k,or[l>>1]=(0|v)<0?0:65535&((0|v)<(0|s)?v:d),(0|(w=w+1|0))!=(0|n);)l=l+2|0,a=a+2|0,u=u+2|0;b=b+1|0}while((0|b)!=(0|t))}}];return{__GLOBAL__I_000101:function(){!function(A){A|=0;var e=0;(function(A,e,r){var i,f;e|=0,r|=0,f=ur=(i=ur)+31&-32,ur=ur+16|0,Sf(A|=0),ar[A>>2]=14636,ar[A+32>>2]=e,ar[A+40>>2]=r,r=-1,ar[A+48>>2]=r,tr[A+52>>0]=0,r=0|ar[8+(0|ar[A>>2])>>2],ru(f,A+4|0),fs[63&r](A,f),bn(f),ur=i})(58864,A=0|ar[2637],58920),ar[14546]=14208,ar[14548]=14228,ar[14547]=0,Jf(58192,58864),ar[14566]=0,e=-1,ar[14567]=e,function(A,e,r){var i,f;e|=0,r|=0,f=ur=(i=ur)+31&-32,ur=ur+16|0,Of(A|=0),ar[A>>2]=14572,ar[A+32>>2]=e,ar[A+40>>2]=r,r=-1,ar[A+48>>2]=r,tr[A+52>>0]=0,r=0|ar[8+(0|ar[A>>2])>>2],ru(f,A+4|0),fs[63&r](A,f),bn(f),ur=i}(58928,A,58984),ar[14568]=14256,ar[14570]=14276,ar[14569]=0,Jf(58280,58928),ar[14588]=0,A=-1,ar[14589]=A,qf(58992,A=0|ar[2543],59040),ar[14590]=28,ar[14591]=48,Jf(58364,58992),ar[14609]=0,e=-1,ar[14610]=e,$f(59048,A,59096),ar[14611]=14312,ar[14612]=14332,Jf(58448,59048),ar[14630]=0,A=-1,ar[14631]=A,qf(59104,A=0|ar[2669],59152),ar[14632]=28,ar[14633]=48,Jf(58532,59104),ar[14651]=0,e=-1,ar[14652]=e,e=0|ar[58528+(0|ar[(0|ar[14632])-12>>2])+24>>2],ar[14674]=28,ar[14675]=48,Jf(58700,e),ar[14693]=0,e=-1,ar[14694]=e,$f(59160,A,59208),ar[14653]=14312,ar[14654]=14332,Jf(58616,59160),ar[14672]=0,A=-1,ar[14673]=A,A=0|ar[58612+(0|ar[(0|ar[14653])-12>>2])+24>>2],ar[14695]=14312,ar[14696]=14332,Jf(58784,A),ar[14714]=0,A=-1,ar[14715]=A,ar[58184+(0|ar[(0|ar[14546])-12>>2])+72>>2]=58360,ar[58272+(0|ar[(0|ar[14568])-12>>2])+72>>2]=58444,A=58528+(0|ar[(0|ar[14632])-12>>2])+4|0,ar[A>>2]=8192|ar[A>>2],A=58612+(0|ar[(0|ar[14653])-12>>2])+4|0,ar[A>>2]=8192|ar[A>>2],ar[58528+(0|ar[(0|ar[14632])-12>>2])+72>>2]=58360,ar[58612+(0|ar[(0|ar[14653])-12>>2])+72>>2]=58444}(0)},__GLOBAL__sub_I_bind_cpp:function(){rA(4080,48907),S(4096,48912,1,1,0),L(4104,48917,1,-128,127),L(4120,48922,1,-128,127),L(4112,48934,1,0,255),L(4128,48948,2,-32768,32767),L(4136,48954,2,0,65535),L(4144,48969,4,-2147483648,2147483647),L(4152,48973,4,0,-1),L(4160,48986,4,-2147483648,2147483647),L(4168,48991,4,0,-1),x(4176,49005,4),x(4184,49011,8),q(1408,49018),q(2336,49030),$(2360,4,49063),z(1400,49076),K(2384,0,49092),K(2392,0,49122),K(2400,1,49159),K(2408,2,49198),K(2416,3,49229),K(2424,4,49269),K(2432,5,49298),K(2440,4,49336),K(2448,5,49366),K(2392,0,49405),K(2400,1,49437),K(2408,2,49470),K(2416,3,49503),K(2424,4,49537),K(2432,5,49570),K(2456,6,49604),K(2464,7,49635),K(2472,7,49667)},__GLOBAL__sub_I_box_cc:function(){var A,e;ur=(e=ur)+16|0,ar[(A=e)>>2]=0,ar[A+4>>2]=0,oo(56592,ar[A+8>>2]=0,0,A),ur=(0<=(0|tr[A+11>>0])||vu(0|ar[A>>2]),e)},__GLOBAL__sub_I_heif_cc:function(){!function(A){A|=0;var e=0;P(26177,1,6244,26194,67,435),P(26197,1,6248,26194,68,2),P(26221,1,6252,26194,69,3),P(26240,2,6256,26258,44,436),P(26262,3,6264,26292,32,77),P(26297,2,6276,26341,20,70),P(26345,2,6284,26341,21,45),P(26393,3,6292,26292,33,78),P(26426,4,6304,26447,7,10),P(26453,2,6320,26258,46,437),j(1224,26479,4,0),H(1224,26495,0),H(1224,26509,1),H(1224,26541,2),H(1224,26566,3),H(1224,26598,4),H(1224,26629,5),H(1224,26652,6),H(1224,26687,7),H(1224,26719,8),H(1224,26751,9),H(1224,26777,10),j(1232,26817,4,0),H(1232,26836,0),H(1232,26862,5e3),H(1232,26901,100),H(1232,26927,101),H(1232,26958,102),H(1232,26984,103),H(1232,27010,104),H(1232,27036,105),H(1232,27062,106),H(1232,27088,107),H(1232,27114,108),H(1232,27140,109),H(1232,27166,110),H(1232,27192,111),H(1232,27218,112),H(1232,27244,113),H(1232,27270,114),H(1232,27300,115),H(1232,27355,116),H(1232,27400,117),H(1232,27427,118),H(1232,27459,119),H(1232,27493,131),H(1232,27519,120),H(1232,27556,121),H(1232,27591,122),H(1232,27637,123),H(1232,27684,124),H(1232,27725,125),H(1232,27751,1e3),H(1232,27789,126),H(1232,27830,127),H(1232,27875,128),H(1232,27915,129),H(1232,27948,2e3),H(1232,27990,2001),H(1232,28026,2002),H(1232,28077,2003),H(1232,28118,2004),H(1232,28159,2005),H(1232,28195,2006),H(1232,28233,130),H(1232,28264,3e3),H(1232,28296,3001),H(1232,28333,3002),H(1232,28372,3003),H(1232,28415,3004),H(1232,28466,4e3),j(1240,28502,4,0),H(1240,28526,0),H(1240,28553,1),H(1240,28575,2),H(1240,28596,3),H(1240,28618,4),j(1248,28639,4,0),H(1248,28651,99),H(1248,28673,0),H(1248,28696,1),H(1248,28712,2),H(1248,28728,3),H(1248,28744,10),H(1248,28772,11),H(1248,28801,12),H(1248,28835,13),H(1248,28871,14),H(1248,28905,15),H(1248,28941,10),H(1248,28971,11),j(1256,29001,4,0),H(1256,29017,99),H(1256,29043,0),H(1256,29065,1),H(1256,29085,2),j(1264,29112,4,0),H(1264,29125,0),H(1264,29140,2),H(1264,29156,1),H(1264,29172,3),H(1264,29187,4),H(1264,29202,5),H(1264,29217,6),H(1264,29236,10),O(1272,1280,1296,0,26194,71,29274,0,29274,0,29261,29276,438),O(1312,1320,1336,0,26194,72,29274,0,29274,0,29279,29276,439),O(1352,1360,1376,0,26194,73,29274,0,29274,0,29297,29276,440),AA(1392,29308,29319,4,29276,441),A=0|hu(4),ar[A>>2]=0,e=0|hu(4),ar[e>>2]=0,eA(1392,29321,1224,26341,22,0|A,1224,29326,79,0|e),e=0|hu(4),ar[e>>2]=4,A=0|hu(4),ar[A>>2]=4,eA(1392,29331,1232,26341,23,0|e,1232,29326,80,0|A),U(1392)}(0)},__GLOBAL__sub_I_heif_plugin_registry_cc:function(){ar[14321]=0,ar[14322]=0,ar[14320]=57284,ar[14324]=0,ar[14325]=0,ar[14323]=57296,function(A){A|=0;var e,r=0,i=0,f=0;f=7580,0|(A=0|ar[(e=f)+8>>2])&&rs[7&A]();A=0|ar[14321];do{if(A){for(i=57284;;){if(r=0|ar[A+16>>2],f>>>0>>0){if(!(r=0|ar[A>>2])){r=7;break}}else{if(f>>>0<=r>>>0){r=11;break}if(!(r=0|ar[(i=A+4|0)>>2])){r=10;break}A=i}i=A,A=r}if(7==(0|r)){i=f=A;break}if(10==(0|r)){f=A;break}if(11==(0|r)){f=A;break}}else i=f=57284}while(0);if(0|ar[i>>2])return;A=0|hu(20),ar[A+16>>2]=e,ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=f,ar[i>>2]=A,(r=0|ar[ar[14320]>>2])&&(ar[14320]=r,A=0|ar[i>>2]);so(0|ar[14321],A),ar[14322]=1+(0|ar[14322])}(61160)},__GLOBAL__sub_I_iostream_cpp:function(){},___cxa_can_catch:function(A,e,r){var i,f;return A|=0,e|=0,r|=0,i=ur=(f=ur)+31&-32,ur=ur+16|0,ar[i>>2]=ar[r>>2],(A=0|xb[63&ar[16+(0|ar[A>>2])>>2]](A,e,i))&&(ar[r>>2]=ar[i>>2]),ur=f,1&A|0},___cxa_is_pointer_type:function(A){return 1&(A=(A|=0)?0!=(0|qu(A,3960,4048,0)):0)|0},___errno_location:Cc,___getTypeName:function(A){return 0|(e=0|ar[(A|=0)+4>>2],(i=(i=0)|yc(r=1+(0|Vc(e|=0))|0))?hb(0|i,0|e,0|r):i=0,0|i);var e,r,i},___muldi3:nb,___udivdi3:lb,___uremdi3:ub,_bitshift64Ashr:bb,_bitshift64Lshr:sb,_bitshift64Shl:db,_emscripten_get_global_libc:function(){return 58064},_emscripten_replace_memory:function(A){return!(16777215&u(A)||u(A)<=16777215||2147483648>1,A=1.164*(k[t+f]-16),e=h[o+i]-128,r=w[a+i]-128,v[c<<2]=A+1.596*r,v[1+(c<<2)]=A-.813*r-.391*e,v[2+(c<<2)]=A+2.018*e,v[3+(c<<2)]=255,c++,++f>1)*b,a=(n>>1)*s);g(m)}else g(null)}.bind(this),0)};function Ur(){this.decoder=null}Ur.prototype.decode=function(A){if(this.decoder&&zr.heif_context_free(this.decoder),this.decoder=zr.heif_context_alloc(),!this.decoder)return console.log(\\\"Could not create HEIF context\\\"),[];var e=zr.heif_context_read_from_memory(this.decoder,A);if(e.code!==zr.heif_error_Ok)return console.log(\\\"Could not parse HEIF file\\\",e),[];var r=zr.heif_js_context_get_list_of_top_level_image_IDs(this.decoder);if(!r||r.code)return console.log(\\\"Error loading image ids\\\",r),[];if(!r.length)return console.log(\\\"No images found\\\"),[];for(var i=[],f=0;f {\\n const w = image.get_width();\\n const h = image.get_height();\\n const whiteImage = new ImageData(w, h);\\n for (let i = 0; i < w * h; i++) {\\n whiteImage.data[i * 4 + 3] = 255;\\n }\\n image.display(whiteImage, (imageData) => {\\n if (!imageData) {\\n return reject(\\\"ERR_LIBHEIF Error while processing single image and generating image data, could not ensure image\\\");\\n }\\n resolve(imageData);\\n });\\n });\\n}\\nonmessage = (message) => {\\n const id = message.data.id;\\n try {\\n const decoder = new libheif.HeifDecoder();\\n let imagesArr = decoder.decode(message.data.buffer);\\n if (!imagesArr || !imagesArr.length) {\\n throw \\\"ERR_LIBHEIF format not supported\\\";\\n }\\n imagesArr = imagesArr.filter((x) => {\\n let valid = true;\\n try {\\n /*\\n sometimes the heic container is valid\\n yet the images themselves are corrupt\\n */\\n x.get_height();\\n }\\n catch (e) {\\n valid = false;\\n }\\n return valid;\\n });\\n if (!imagesArr.length) {\\n throw \\\"ERR_LIBHEIF Heic doesn't contain valid images\\\";\\n }\\n Promise.all(imagesArr.map((image) => processSingleImage(image)))\\n .then((imageDataArr) => {\\n postMessage({ id, imageDataArr, error: \\\"\\\" });\\n })\\n .catch((e) => {\\n postMessage({\\n id,\\n imageDataArr: [],\\n error: e && e.toString ? e.toString() : e,\\n });\\n });\\n }\\n catch (e) {\\n postMessage({\\n id,\\n imageDataArr: [],\\n error: e && e.toString ? e.toString() : e,\\n });\\n }\\n};\\n\\n\";\n var blob = new Blob([workerString], {\n type: 'application/javascript'\n });\n window.__heic2any__worker = new Worker(URL.createObjectURL(blob));\n \"use strict\";\n\n ;\n ;\n ;\n var supportedMIMETypes = [\"image/png\", \"image/jpeg\", \"image/gif\"];\n var utils = {\n blobToDataURL: function blobToDataURL(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onerror = function () {\n reject(\"ERR_DOM Error on converting blob to data URL\");\n };\n\n reader.onload = function (e) {\n resolve(reader.result);\n };\n\n reader.readAsDataURL(blob);\n });\n },\n dataURItoBlob: function dataURItoBlob(dataURI) {\n try {\n var byteString = atob(dataURI.split(\",\")[1]);\n var mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n var blob = new Blob([ab], {\n type: mimeString\n });\n return blob;\n } catch (e) {\n return \"ERR_DOM Error on converting data URI to blob \" + e && e.toString ? e.toString() : e;\n }\n },\n imageDataToBlob: function imageDataToBlob(ref) {\n var imageData = ref.imageData;\n var toType = ref.toType;\n if (toType === void 0) toType = \"image/png\";\n var quality = ref.quality;\n if (quality === void 0) quality = 0.92; // normalize quality\n\n if (quality > 1 || quality < 0) {\n quality = 0.92;\n } // normalize MIME type\n\n\n if (supportedMIMETypes.indexOf(toType) === -1) {\n toType = \"image/png\";\n }\n\n return new Promise(function (resolve, reject) {\n var canvas = null;\n\n try {\n canvas = document.createElement(\"canvas\");\n } catch (e) {}\n\n if (!canvas) {\n return reject(\"ERR_CANVAS Error on converting imagedata to blob: Could not create canvas element\");\n }\n\n canvas.width = imageData.width;\n canvas.height = imageData.height;\n var ctx = canvas.getContext(\"2d\");\n\n if (!ctx) {\n return reject(\"ERR_CANVAS Error on converting imagedata to blob: Could not get canvas context\");\n }\n\n ctx.putImageData(imageData, 0, 0);\n canvas.toBlob(function (blob) {\n if (!blob) {\n return reject(\"ERR_CANVAS Error on converting imagedata to blob: Could not get blob from canvas\");\n }\n\n return resolve(blob);\n }, toType, quality);\n });\n },\n imagesToGif: function imagesToGif(ref) {\n var images = ref.images;\n var interval = ref.interval;\n var gifHeight = ref.gifHeight;\n var gifWidth = ref.gifWidth;\n return new Promise(function (resolve, reject) {\n gifshot.createGIF({\n images: images,\n interval: interval,\n gifHeight: gifHeight,\n gifWidth: gifWidth\n }, function (res) {\n if (res.error) {\n reject(\"ERR_GIF \" + res.errorCode + \" \" + res.errorMessage);\n }\n\n return resolve(res.image);\n });\n });\n },\n otherImageType: function otherImageType(buffer) {\n /**\r\n * Some confusion might arise when passing a regular image\r\n * like jpeg/png/gif and getting \"format is not supported\"\r\n * so to solve this, we should detect if the image is\r\n * already browser-readable.\r\n */\n var arr = new Uint8Array(buffer).subarray(0, 4);\n var header = \"\";\n\n for (var i = 0; i < arr.length; i++) {\n header = header + arr[i].toString(16);\n }\n\n switch (header) {\n case \"89504e47\":\n return \"image/png\";\n\n case \"47494638\":\n return \"image/gif\";\n\n case \"ffd8ffe0\":\n case \"ffd8ffe1\":\n case \"ffd8ffe2\":\n case \"ffd8ffe3\":\n case \"ffd8ffe8\":\n return \"image/jpeg\";\n\n default:\n return false;\n }\n },\n error: function error(message) {\n /**\r\n * Error coding system:\r\n *\r\n * UNKNOWN = 0\r\n * USER errors = 1\r\n * LIBHEIF errors = 2\r\n * GIF errors = 3\r\n * DOM errors = 4\r\n * CANVAS errors = 5\r\n *\r\n */\n var code = 0;\n\n if (!message) {\n message = \"ERR_UNKNOWN\";\n } else if (typeof message !== \"string\") {\n if (message.toString) {\n message = message.toString();\n } else {\n message = JSON.stringify(message);\n }\n }\n\n var headers = [\"ERR_USER\", \"ERR_LIBHEIF\", \"ERR_GIF\", \"ERR_DOM\", \"ERR_CANVAS\"];\n\n for (var index = 0; index < headers.length; index++) {\n var header = headers[index];\n\n if (message.indexOf(header) === 0) {\n code = index + 1;\n }\n }\n\n return {\n code: code,\n message: message\n };\n }\n };\n\n function decodeBuffer(buffer) {\n return new Promise(function (resolve, reject) {\n var id = (Math.random() * new Date().getTime()).toString();\n var message = {\n id: id,\n buffer: buffer\n };\n\n window.__heic2any__worker.postMessage(message);\n\n window.__heic2any__worker.addEventListener(\"message\", function (message) {\n if (message.data.id === id) {\n if (message.data.error) {\n return reject(message.data.error);\n }\n\n return resolve(message.data.imageDataArr);\n }\n });\n });\n }\n\n function heic2any(ref) {\n var blob = ref.blob;\n var toType = ref.toType;\n if (toType === void 0) toType = \"image/png\";\n var quality = ref.quality;\n if (quality === void 0) quality = 0.92;\n var gifInterval = ref.gifInterval;\n if (gifInterval === void 0) gifInterval = 0.4;\n var multiple = ref.multiple;\n if (multiple === void 0) multiple = undefined;\n return new Promise(function (resolve, reject) {\n if (!(blob instanceof Blob)) {\n utils.error(\"ERR_USER library only accepts BLOBs as input\");\n }\n\n if (typeof multiple !== \"boolean\") {\n utils.error(\"ERR_USER \\\"multiple\\\" parameter should be of type \\\"boolean\\\"\");\n }\n\n if (typeof quality !== \"number\") {\n utils.error(\"ERR_USER \\\"quality\\\" parameter should be of type \\\"number\\\"\");\n }\n\n if (typeof gifInterval !== \"number\") {\n utils.error(\"ERR_USER \\\"gifInterval\\\" parameter should be of type \\\"number\\\"\");\n }\n\n var reader = new FileReader();\n\n reader.onload = function (e) {\n var gifWidth = 0;\n var gifHeight = 0;\n var buffer = e.target.result;\n var otherImageType = utils.otherImageType(buffer);\n\n if (otherImageType) {\n return reject(utils.error(\"ERR_USER Image is already browser readable: \" + otherImageType));\n }\n\n decodeBuffer(buffer).then(function (imageDataArr) {\n gifWidth = imageDataArr[0].width;\n gifHeight = imageDataArr[0].height;\n return Promise.all(imageDataArr.map(function (imageData) {\n return utils.imageDataToBlob({\n imageData: imageData,\n toType: toType,\n quality: quality\n });\n }));\n }).then(function (blobs) {\n if (toType === \"image/gif\") {\n return Promise.all(blobs.map(function (blob) {\n return utils.blobToDataURL(blob);\n }));\n } else if (multiple) {\n resolve(blobs);\n return [\"\"];\n } else {\n resolve(blobs[0]);\n return [\"\"];\n }\n }).then(function (dataURIs) {\n if (toType === \"image/gif\" && dataURIs) {\n return utils.imagesToGif({\n images: dataURIs,\n interval: gifInterval,\n gifWidth: gifWidth,\n gifHeight: gifHeight\n });\n }\n\n return \"\";\n }).then(function (resultingGif) {\n if (toType === \"image/gif\" && resultingGif) {\n var blob = utils.dataURItoBlob(resultingGif);\n\n if (typeof blob === \"string\") {\n reject(utils.error(blob));\n } else {\n resolve(blob);\n }\n }\n }).catch(function (e) {\n reject(utils.error(e));\n });\n };\n\n reader.readAsArrayBuffer(blob);\n });\n }\n\n ;\n return heic2any;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;\n(function () {\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n /** Used as the semantic version number. */\n\n var VERSION = '4.17.21';\n /** Used as the size to enable large array optimizations. */\n\n var LARGE_ARRAY_SIZE = 200;\n /** Error message constants. */\n\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n /** Used to stand-in for `undefined` hash values. */\n\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n /** Used as the maximum memoize cache size. */\n\n var MAX_MEMOIZE_SIZE = 500;\n /** Used as the internal argument placeholder. */\n\n var PLACEHOLDER = '__lodash_placeholder__';\n /** Used to compose bitmasks for cloning. */\n\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n /** Used to compose bitmasks for value comparisons. */\n\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n /** Used to compose bitmasks for function metadata. */\n\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n /** Used as default options for `_.truncate`. */\n\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n /** Used to indicate the type of lazy iteratees. */\n\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n /** Used as references for various `Number` constants. */\n\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n /** Used as references for the maximum length and index of an array. */\n\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n /** Used to associate wrap methods with their bit flags. */\n\n var wrapFlags = [['ary', WRAP_ARY_FLAG], ['bind', WRAP_BIND_FLAG], ['bindKey', WRAP_BIND_KEY_FLAG], ['curry', WRAP_CURRY_FLAG], ['curryRight', WRAP_CURRY_RIGHT_FLAG], ['flip', WRAP_FLIP_FLAG], ['partial', WRAP_PARTIAL_FLAG], ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], ['rearg', WRAP_REARG_FLAG]];\n /** `Object#toString` result references. */\n\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n /** Used to match empty string literals in compiled template source. */\n\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n /** Used to match HTML entities and HTML characters. */\n\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n /** Used to match template delimiters. */\n\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n /** Used to match property names within property paths. */\n\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n /** Used to match leading whitespace. */\n\n var reTrimStart = /^\\s+/;\n /** Used to match a single whitespace character. */\n\n var reWhitespace = /\\s/;\n /** Used to match wrap detail comments. */\n\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n /** Used to match words composed of alphanumeric characters. */\n\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n /** Used to match backslashes in property paths. */\n\n var reEscapeChar = /\\\\(\\\\)?/g;\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n /** Used to match `RegExp` flags from their coerced string values. */\n\n var reFlags = /\\w*$/;\n /** Used to detect bad signed hexadecimal string values. */\n\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n /** Used to detect binary string values. */\n\n var reIsBinary = /^0b[01]+$/i;\n /** Used to detect host constructors (Safari). */\n\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n /** Used to detect octal string values. */\n\n var reIsOctal = /^0o[0-7]+$/i;\n /** Used to detect unsigned integer values. */\n\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n /** Used to ensure capturing order of template delimiters. */\n\n var reNoMatch = /($^)/;\n /** Used to match unescaped characters in compiled string literals. */\n\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n /** Used to compose unicode character classes. */\n\n var rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\",\n reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\",\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n /** Used to compose unicode capture groups. */\n\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n /** Used to compose unicode regexes. */\n\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n /** Used to match apostrophes. */\n\n var reApos = RegExp(rsApos, 'g');\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n\n var reComboMark = RegExp(rsCombo, 'g');\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n /** Used to match complex or compound words. */\n\n var reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n /** Used to detect strings that need a more robust regexp to match words. */\n\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n /** Used to assign default `context` object properties. */\n\n var contextProps = ['Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'];\n /** Used to make template sourceURLs easier to identify. */\n\n var templateCounter = -1;\n /** Used to identify `toStringTag` values of typed arrays. */\n\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n /** Used to map Latin Unicode letters to basic Latin letters. */\n\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A',\n '\\xc1': 'A',\n '\\xc2': 'A',\n '\\xc3': 'A',\n '\\xc4': 'A',\n '\\xc5': 'A',\n '\\xe0': 'a',\n '\\xe1': 'a',\n '\\xe2': 'a',\n '\\xe3': 'a',\n '\\xe4': 'a',\n '\\xe5': 'a',\n '\\xc7': 'C',\n '\\xe7': 'c',\n '\\xd0': 'D',\n '\\xf0': 'd',\n '\\xc8': 'E',\n '\\xc9': 'E',\n '\\xca': 'E',\n '\\xcb': 'E',\n '\\xe8': 'e',\n '\\xe9': 'e',\n '\\xea': 'e',\n '\\xeb': 'e',\n '\\xcc': 'I',\n '\\xcd': 'I',\n '\\xce': 'I',\n '\\xcf': 'I',\n '\\xec': 'i',\n '\\xed': 'i',\n '\\xee': 'i',\n '\\xef': 'i',\n '\\xd1': 'N',\n '\\xf1': 'n',\n '\\xd2': 'O',\n '\\xd3': 'O',\n '\\xd4': 'O',\n '\\xd5': 'O',\n '\\xd6': 'O',\n '\\xd8': 'O',\n '\\xf2': 'o',\n '\\xf3': 'o',\n '\\xf4': 'o',\n '\\xf5': 'o',\n '\\xf6': 'o',\n '\\xf8': 'o',\n '\\xd9': 'U',\n '\\xda': 'U',\n '\\xdb': 'U',\n '\\xdc': 'U',\n '\\xf9': 'u',\n '\\xfa': 'u',\n '\\xfb': 'u',\n '\\xfc': 'u',\n '\\xdd': 'Y',\n '\\xfd': 'y',\n '\\xff': 'y',\n '\\xc6': 'Ae',\n '\\xe6': 'ae',\n '\\xde': 'Th',\n '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u0104\": 'A',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u0105\": 'a',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\u010E\": 'D',\n \"\\u0110\": 'D',\n \"\\u010F\": 'd',\n \"\\u0111\": 'd',\n \"\\u0112\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\u0118\": 'E',\n \"\\u011A\": 'E',\n \"\\u0113\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\u0119\": 'e',\n \"\\u011B\": 'e',\n \"\\u011C\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u0122\": 'G',\n \"\\u011D\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u0123\": 'g',\n \"\\u0124\": 'H',\n \"\\u0126\": 'H',\n \"\\u0125\": 'h',\n \"\\u0127\": 'h',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u012E\": 'I',\n \"\\u0130\": 'I',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\u012F\": 'i',\n \"\\u0131\": 'i',\n \"\\u0134\": 'J',\n \"\\u0135\": 'j',\n \"\\u0136\": 'K',\n \"\\u0137\": 'k',\n \"\\u0138\": 'k',\n \"\\u0139\": 'L',\n \"\\u013B\": 'L',\n \"\\u013D\": 'L',\n \"\\u013F\": 'L',\n \"\\u0141\": 'L',\n \"\\u013A\": 'l',\n \"\\u013C\": 'l',\n \"\\u013E\": 'l',\n \"\\u0140\": 'l',\n \"\\u0142\": 'l',\n \"\\u0143\": 'N',\n \"\\u0145\": 'N',\n \"\\u0147\": 'N',\n \"\\u014A\": 'N',\n \"\\u0144\": 'n',\n \"\\u0146\": 'n',\n \"\\u0148\": 'n',\n \"\\u014B\": 'n',\n \"\\u014C\": 'O',\n \"\\u014E\": 'O',\n \"\\u0150\": 'O',\n \"\\u014D\": 'o',\n \"\\u014F\": 'o',\n \"\\u0151\": 'o',\n \"\\u0154\": 'R',\n \"\\u0156\": 'R',\n \"\\u0158\": 'R',\n \"\\u0155\": 'r',\n \"\\u0157\": 'r',\n \"\\u0159\": 'r',\n \"\\u015A\": 'S',\n \"\\u015C\": 'S',\n \"\\u015E\": 'S',\n \"\\u0160\": 'S',\n \"\\u015B\": 's',\n \"\\u015D\": 's',\n \"\\u015F\": 's',\n \"\\u0161\": 's',\n \"\\u0162\": 'T',\n \"\\u0164\": 'T',\n \"\\u0166\": 'T',\n \"\\u0163\": 't',\n \"\\u0165\": 't',\n \"\\u0167\": 't',\n \"\\u0168\": 'U',\n \"\\u016A\": 'U',\n \"\\u016C\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u0172\": 'U',\n \"\\u0169\": 'u',\n \"\\u016B\": 'u',\n \"\\u016D\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u0173\": 'u',\n \"\\u0174\": 'W',\n \"\\u0175\": 'w',\n \"\\u0176\": 'Y',\n \"\\u0177\": 'y',\n \"\\u0178\": 'Y',\n \"\\u0179\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u017A\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u0132\": 'IJ',\n \"\\u0133\": 'ij',\n \"\\u0152\": 'Oe',\n \"\\u0153\": 'oe',\n \"\\u0149\": \"'n\",\n \"\\u017F\": 's'\n };\n /** Used to map characters to HTML entities. */\n\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n /** Used to map HTML entities to characters. */\n\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n /** Used to escape characters for inclusion in compiled string literals. */\n\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n \"\\u2028\": 'u2028',\n \"\\u2029\": 'u2029'\n };\n /** Built-in method references without a dependency on `root`. */\n\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n /** Detect free variable `global` from Node.js. */\n\n var freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\n /** Detect free variable `self`. */\n\n var freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n /** Used as a reference to the global object. */\n\n var root = freeGlobal || freeSelf || Function('return this')();\n /** Detect free variable `exports`. */\n\n var freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n /** Detect free variable `module`. */\n\n var freeModule = freeExports && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n /** Detect the popular CommonJS extension `module.exports`. */\n\n var moduleExports = freeModule && freeModule.exports === freeExports;\n /** Detect free variable `process` from Node.js. */\n\n var freeProcess = moduleExports && freeGlobal.process;\n /** Used to access faster Node.js helpers. */\n\n var nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }();\n /* Node.js helper references. */\n\n\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n\n case 1:\n return func.call(thisArg, args[0]);\n\n case 2:\n return func.call(thisArg, args[0], args[1]);\n\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n\n return func.apply(thisArg, args);\n }\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n\n\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n\n return accumulator;\n }\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n\n\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n\n return array;\n }\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n\n\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n\n return array;\n }\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n\n\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n\n\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n\n return result;\n }\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n\n\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n\n\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n\n\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n }\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n\n\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n\n return array;\n }\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n\n\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n\n return accumulator;\n }\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n\n\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[--length];\n }\n\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n\n return accumulator;\n }\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n\n\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n\n\n var asciiSize = baseProperty('length');\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n function asciiToArray(string) {\n return string.split('');\n }\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\n\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n\n\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function (value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n\n return -1;\n }\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\n function baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n\n return -1;\n }\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n\n\n function baseIsNaN(value) {\n return value !== value;\n }\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n\n\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? baseSum(array, iteratee) / length : NAN;\n }\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n\n\n function baseProperty(key) {\n return function (object) {\n return object == null ? undefined : object[key];\n };\n }\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n\n\n function basePropertyOf(object) {\n return function (key) {\n return object == null ? undefined : object[key];\n };\n }\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n\n\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function (value, index, collection) {\n accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n\n\n function baseSortBy(array, comparer) {\n var length = array.length;\n array.sort(comparer);\n\n while (length--) {\n array[length] = array[length].value;\n }\n\n return array;\n }\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n\n\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n\n if (current !== undefined) {\n result = result === undefined ? current : result + current;\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n\n\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n }\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n\n\n function baseToPairs(object, props) {\n return arrayMap(props, function (key) {\n return [key, object[key]];\n });\n }\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n\n\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n }\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n\n\n function baseUnary(func) {\n return function (value) {\n return func(value);\n };\n }\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n\n\n function baseValues(object, props) {\n return arrayMap(props, function (key) {\n return object[key];\n });\n }\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n\n\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n }\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n\n\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n }\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n\n\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n\n return result;\n }\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n\n\n var deburrLetter = basePropertyOf(deburredLetters);\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n\n\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n\n\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\n\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n\n return result;\n }\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n\n\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n\n\n function overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n }\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n\n\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n\n return result;\n }\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n\n\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n }\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n\n\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = [value, value];\n });\n return result;\n }\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n\n return -1;\n }\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n\n return index;\n }\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n\n\n function stringSize(string) {\n return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);\n }\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\n function stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n }\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n\n\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n return index;\n }\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n\n\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n\n while (reUnicode.test(string)) {\n ++result;\n }\n\n return result;\n }\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\n\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n\n\n var runInContext = function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n /** Built-in constructor references. */\n\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n /** Used for built-in method references. */\n\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n /** Used to detect overreaching core-js shims. */\n\n var coreJsData = context['__core-js_shared__'];\n /** Used to resolve the decompiled source of functions. */\n\n var funcToString = funcProto.toString;\n /** Used to check objects for own properties. */\n\n var hasOwnProperty = objectProto.hasOwnProperty;\n /** Used to generate unique IDs. */\n\n var idCounter = 0;\n /** Used to detect methods masquerading as native. */\n\n var maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n }();\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n\n var nativeObjectToString = objectProto.toString;\n /** Used to infer the `Object` constructor. */\n\n var objectCtorString = funcToString.call(Object);\n /** Used to restore the original `_` reference in `_.noConflict`. */\n\n var oldDash = root._;\n /** Used to detect if a method is native. */\n\n var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n /** Built-in value references. */\n\n var Buffer = moduleExports ? context.Buffer : undefined,\n _Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = _Symbol ? _Symbol.isConcatSpreadable : undefined,\n symIterator = _Symbol ? _Symbol.iterator : undefined,\n symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n var defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }();\n /** Mocked built-ins. */\n\n\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n /* Built-in method references for those with the same name as other `lodash` methods. */\n\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n /* Built-in method references that are verified to be native. */\n\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n /** Used to store function metadata. */\n\n var metaMap = WeakMap && new WeakMap();\n /** Used to lookup unminified function names. */\n\n var realNames = {};\n /** Used to detect maps, sets, and weakmaps. */\n\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n /** Used to convert symbols to primitives and strings. */\n\n var symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n\n return new LodashWrapper(value);\n }\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n\n\n var baseCreate = function () {\n function object() {}\n\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n\n if (objectCreate) {\n return objectCreate(proto);\n }\n\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n }();\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n\n\n function baseLodash() {// No operation performed.\n }\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n\n\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n\n\n lodash.templateSettings = {\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n }; // Ensure wrappers are instances of `baseLodash`.\n\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n\n\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n\n\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n\n return result;\n }\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n\n\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : start - 1,\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || !isRight && arrLength == length && takeCount == length) {\n return baseWrapperValue(array, this.__actions__);\n }\n\n var result = [];\n\n outer: while (length-- && resIndex < takeCount) {\n index += dir;\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n\n result[resIndex++] = value;\n }\n\n return result;\n } // Ensure `LazyWrapper` is an instance of `baseLodash`.\n\n\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\n function hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n }\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n\n\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n } // Add methods to `Hash`.\n\n\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\n\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\n }\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n }\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n\n\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n\n return this;\n } // Add methods to `ListCache`.\n\n\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n }\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n\n\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n } // Add methods to `MapCache`.\n\n\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n\n while (++index < length) {\n this.add(values[index]);\n }\n }\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n\n\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n\n return this;\n }\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n\n\n function setCacheHas(value) {\n return this.__data__.has(value);\n } // Add methods to `SetCache`.\n\n\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n }\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n }\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\n function stackGet(key) {\n return this.__data__.get(key);\n }\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\n function stackHas(key) {\n return this.__data__.has(key);\n }\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n\n\n function stackSet(key, value) {\n var data = this.__data__;\n\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n\n data = this.__data__ = new MapCache(pairs);\n }\n\n data.set(key, value);\n this.size = data.size;\n return this;\n } // Add methods to `Stack`.\n\n\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n }\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n\n\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n\n\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n\n\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\n function assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\n function assignValue(object, key, value) {\n var objValue = object[key];\n\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\n function assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n }\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n\n\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function (value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n\n\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n\n return result;\n }\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n\n\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n\n return number;\n }\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n\n\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n\n if (result !== undefined) {\n return result;\n }\n\n if (!isObject(value)) {\n return value;\n }\n\n var isArr = isArray(value);\n\n if (isArr) {\n result = initCloneArray(value);\n\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result = isFlat || isFunc ? {} : initCloneObject(value);\n\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n\n result = initCloneByTag(value, tag, isDeep);\n }\n } // Check for circular references and return its corresponding clone.\n\n\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n\n if (stacked) {\n return stacked;\n }\n\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function (subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function (subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function (subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n } // Recursively populate clone (susceptible to call stack limits).\n\n\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n\n\n function baseConforms(source) {\n var props = keys(source);\n return function (object) {\n return baseConformsTo(object, source, props);\n };\n }\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n\n\n function baseConformsTo(object, source, props) {\n var length = props.length;\n\n if (object == null) {\n return !length;\n }\n\n object = Object(object);\n\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if (value === undefined && !(key in object) || !predicate(value)) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n\n\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n return setTimeout(function () {\n func.apply(undefined, args);\n }, wait);\n }\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n\n\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n } else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n value = comparator || value !== 0 ? value : 0;\n\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n\n result.push(value);\n } else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n\n\n var baseEach = createBaseEach(baseForOwn);\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function (value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n\n\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined ? current === current && !isSymbol(current) : comparator(current, computed))) {\n var computed = current,\n result = value;\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n\n\n function baseFill(array, value, start, end) {\n var length = array.length;\n start = toInteger(start);\n\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n\n end = end === undefined || end > length ? length : toInteger(end);\n\n if (end < 0) {\n end += length;\n }\n\n end = start > end ? 0 : toLength(end);\n\n while (start < end) {\n array[start++] = value;\n }\n\n return array;\n }\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n\n\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function (value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n\n\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n\n\n var baseFor = createBaseFor();\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n\n var baseForRight = createBaseFor(true);\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n\n\n function baseFunctions(object, props) {\n return arrayFilter(props, function (key) {\n return isFunction(object[key]);\n });\n }\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n\n\n function baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n\n return index && index == length ? object : undefined;\n }\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\n\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n }\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n\n\n function baseGt(value, other) {\n return value > other;\n }\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n\n\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n\n\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n\n\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n\n\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined;\n }\n\n array = arrays[0];\n var index = -1,\n seen = caches[0];\n\n outer: while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n value = comparator || value !== 0 ? value : 0;\n\n if (!(seen ? cacheHas(seen, computed) : includes(result, computed, comparator))) {\n othIndex = othLength;\n\n while (--othIndex) {\n var cache = caches[othIndex];\n\n if (!(cache ? cacheHas(cache, computed) : includes(arrays[othIndex], computed, comparator))) {\n continue outer;\n }\n }\n\n if (seen) {\n seen.push(computed);\n }\n\n result.push(value);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n\n\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function (value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n\n\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n\n\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n\n\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n\n\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n\n\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n\n\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n\n objIsArr = true;\n objIsObj = false;\n }\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n\n if (!isSameTag) {\n return false;\n }\n\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n\n\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n\n\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n\n object = Object(object);\n\n while (index--) {\n var data = matchData[index];\n\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\n }\n\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack();\n\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n\n if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) {\n return false;\n }\n }\n }\n\n return true;\n }\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n\n\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n\n\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n\n\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n\n\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n\n\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n\n if (value == null) {\n return identity;\n }\n\n if (_typeof(value) == 'object') {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n\n return property(value);\n }\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\n\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\n\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n\n\n function baseLt(value, other) {\n return value < other;\n }\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n\n\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n\n\n function baseMatches(source) {\n var matchData = getMatchData(source);\n\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n\n return function (object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n\n\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n\n return function (object) {\n var objValue = get(object, path);\n return objValue === undefined && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n\n\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n\n baseFor(source, function (srcValue, key) {\n stack || (stack = new Stack());\n\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n\n\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n\n assignMergeValue(object, key, newValue);\n }\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n\n\n function baseNth(array, n) {\n var length = array.length;\n\n if (!length) {\n return;\n }\n\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n\n\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function (iteratee) {\n if (isArray(iteratee)) {\n return function (value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n };\n }\n\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n var result = baseMap(collection, function (value, key, collection) {\n var criteria = arrayMap(iteratees, function (iteratee) {\n return iteratee(value);\n });\n return {\n 'criteria': criteria,\n 'index': ++index,\n 'value': value\n };\n });\n return baseSortBy(result, function (object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n\n\n function basePick(object, paths) {\n return basePickBy(object, paths, function (value, path) {\n return hasIn(object, path);\n });\n }\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n\n\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n\n return result;\n }\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n\n\n function basePropertyDeep(path) {\n return function (object) {\n return baseGet(object, path);\n };\n }\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n\n\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n\n splice.call(array, fromIndex, 1);\n }\n }\n\n return array;\n }\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n\n\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n\n if (length == lastIndex || index !== previous) {\n var previous = index;\n\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n\n return array;\n }\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n\n\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n\n\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n\n return result;\n }\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n\n\n function baseRepeat(string, n) {\n var result = '';\n\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n } // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n\n\n do {\n if (n % 2) {\n result += string;\n }\n\n n = nativeFloor(n / 2);\n\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n\n\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n\n\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n\n\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n\n if (newValue === undefined) {\n newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};\n }\n }\n\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n\n return object;\n }\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n\n\n var baseSetData = !metaMap ? identity : function (func, data) {\n metaMap.set(func, data);\n return func;\n };\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n\n var baseSetToString = !defineProperty ? identity : function (func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n\n\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n\n end = end > length ? length : end;\n\n if (end < 0) {\n end += length;\n }\n\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result = Array(length);\n\n while (++index < length) {\n result[index] = array[index + start];\n }\n\n return result;\n }\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n\n\n function baseSome(collection, predicate) {\n var result;\n baseEach(collection, function (value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n\n\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = low + high >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n\n return high;\n }\n\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n\n\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? computed <= value : computed < value;\n }\n\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n\n\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n\n\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n return +value;\n }\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n\n\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n }\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n\n\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n } else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n\n if (set) {\n return setToArray(set);\n }\n\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache();\n } else {\n seen = iteratee ? [] : result;\n }\n\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n value = comparator || value !== 0 ? value : 0;\n\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n\n if (iteratee) {\n seen.push(computed);\n }\n\n result.push(value);\n } else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n\n result.push(value);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n\n\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n\n\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {}\n\n return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);\n }\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n\n\n function baseWrapperValue(value, actions) {\n var result = value;\n\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n\n return arrayReduce(actions, function (result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n\n\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n\n\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n\n return result;\n }\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n\n\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n\n\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n\n\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n\n\n var castRest = baseRest;\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n }\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n\n\n var clearTimeout = ctxClearTimeout || function (id) {\n return root.clearTimeout(id);\n };\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n\n\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n }\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n\n\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n\n\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n\n\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n\n\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n\n\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n\n\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {\n return 1;\n }\n\n if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {\n return -1;\n }\n }\n\n return 0;\n }\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n\n\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n } // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n\n\n return object.index - other.index;\n }\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n\n\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n\n return result;\n }\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n\n\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n\n var offset = argsIndex;\n\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n\n return result;\n }\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n\n\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n\n while (++index < length) {\n array[index] = source[index];\n }\n\n return array;\n }\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n\n\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n\n return object;\n }\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n\n\n function createAggregator(setter, initializer) {\n return function (collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n\n\n function createAssigner(assigner) {\n return baseRest(function (object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n\n object = Object(object);\n\n while (++index < length) {\n var source = sources[index];\n\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n\n return object;\n });\n }\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n\n\n function createBaseEach(eachFunc, fromRight) {\n return function (collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while (fromRight ? index-- : ++index < length) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n\n return collection;\n };\n }\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n\n\n function createBaseFor(fromRight) {\n return function (object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n\n return object;\n };\n }\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n\n return wrapper;\n }\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n\n\n function createCaseFirst(methodName) {\n return function (string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1);\n return chr[methodName]() + trailing;\n };\n }\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\n\n function createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createCtor(Ctor) {\n return function () {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n\n switch (args.length) {\n case 0:\n return new Ctor();\n\n case 1:\n return new Ctor(args[0]);\n\n case 2:\n return new Ctor(args[0], args[1]);\n\n case 3:\n return new Ctor(args[0], args[1], args[2]);\n\n case 4:\n return new Ctor(args[0], args[1], args[2], args[3]);\n\n case 5:\n return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n\n case 6:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n\n case 7:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args); // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n\n return isObject(result) ? result : thisBinding;\n };\n }\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n\n var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);\n length -= holders.length;\n\n if (length < arity) {\n return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined, args, holders, undefined, undefined, arity - length);\n }\n\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return apply(fn, this, args);\n }\n\n return wrapper;\n }\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n\n\n function createFind(findIndexFunc) {\n return function (collection, predicate, fromIndex) {\n var iterable = Object(collection);\n\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n\n predicate = function predicate(key) {\n return iteratee(iterable[key], key, iterable);\n };\n }\n\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n\n\n function createFlow(fromRight) {\n return flatRest(function (funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n\n while (index--) {\n var func = funcs[index];\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n\n index = wrapper ? index : length;\n\n while (++index < length) {\n func = funcs[index];\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);\n }\n }\n\n return function () {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n\n return result;\n };\n });\n }\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n\n length -= holdersCount;\n\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary, arity - length);\n }\n\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n length = args.length;\n\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n\n if (isAry && ary < length) {\n args.length = ary;\n }\n\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n\n return fn.apply(thisBinding, args);\n }\n\n return wrapper;\n }\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n\n\n function createInverter(setter, toIteratee) {\n return function (object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n\n\n function createMathOperation(operator, defaultValue) {\n return function (value, other) {\n var result;\n\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n\n if (value !== undefined) {\n result = value;\n }\n\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n\n result = operator(value, other);\n }\n\n return result;\n };\n }\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n\n\n function createOver(arrayFunc) {\n return flatRest(function (iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function (args) {\n var thisArg = this;\n return arrayFunc(iteratees, function (iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n\n\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n var charsLength = chars.length;\n\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars) ? castSlice(stringToArray(result), 0, length).join('') : result.slice(0, length);\n }\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n\n return apply(fn, isBind ? thisArg : this, args);\n }\n\n return wrapper;\n }\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n\n\n function createRange(fromRight) {\n return function (start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n } // Ensure the sign of `-0` is preserved.\n\n\n start = toFinite(start);\n\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n\n step = step === undefined ? start < end ? 1 : -1 : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n\n\n function createRelationalOperation(operator) {\n return function (value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n\n return operator(value, other);\n };\n }\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n\n var newData = [func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, newHoldersRight, argPos, ary, arity];\n var result = wrapFunc.apply(undefined, newData);\n\n if (isLaziable(func)) {\n setData(result, newData);\n }\n\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n\n\n function createRound(methodName) {\n var func = Math[methodName];\n return function (number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n\n return func(number);\n };\n }\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n\n\n var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function (values) {\n return new Set(values);\n };\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n\n function createToPairs(keysFunc) {\n return function (object) {\n var tag = getTag(object);\n\n if (tag == mapTag) {\n return mapToArray(object);\n }\n\n if (tag == setTag) {\n return setToPairs(object);\n }\n\n return baseToPairs(object, keysFunc(object));\n };\n }\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n var length = partials ? partials.length : 0;\n\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n partials = holders = undefined;\n }\n\n var data = isBindKey ? undefined : getData(func);\n var newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity];\n\n if (data) {\n mergeData(newData, data);\n }\n\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n\n\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n return srcValue;\n }\n\n return objValue;\n }\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n\n\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n\n return objValue;\n }\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n\n\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n\n\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n } // Check that cyclic values are equal.\n\n\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n\n\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == other + '';\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(object);\n\n if (stacked) {\n return stacked == other;\n }\n\n bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits).\n\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n\n }\n\n return false;\n }\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n\n\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n\n var index = objLength;\n\n while (index--) {\n var key = objProps[index];\n\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n } // Check that cyclic values are equal.\n\n\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n } // Recursively compare objects (susceptible to call stack limits).\n\n\n if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n\n skipCtor || (skipCtor = key == 'constructor');\n }\n\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal.\n\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n\n\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n\n\n var getData = !metaMap ? noop : function (func) {\n return metaMap.get(func);\n };\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n\n function getFuncName(func) {\n var result = func.name + '',\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n\n return result;\n }\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n\n\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n\n\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n\n\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n }\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n\n\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n result[length] = [key, value, isStrictComparable(value)];\n }\n\n return result;\n }\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n\n\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n\n\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n }\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\n\n var getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function (object) {\n var result = [];\n\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n\n return result;\n };\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\n var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n\n if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\n };\n }\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n\n\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop':\n start += size;\n break;\n\n case 'dropRight':\n end -= size;\n break;\n\n case 'take':\n end = nativeMin(end, start + size);\n break;\n\n case 'takeRight':\n start = nativeMax(start, end - size);\n break;\n }\n }\n\n return {\n 'start': start,\n 'end': end\n };\n }\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n\n\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n\n\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n\n object = object[key];\n }\n\n if (result || ++index != length) {\n return result;\n }\n\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n }\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n\n\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length); // Add properties assigned by `RegExp#exec`.\n\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n\n return result;\n }\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n\n\n function initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n }\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n\n\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor();\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor();\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n\n\n function insertWrapDetails(source, details) {\n var length = details.length;\n\n if (!length) {\n return source;\n }\n\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n\n\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n\n\n function isIndex(value, length) {\n var type = _typeof(value);\n\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n }\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n\n\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n\n var type = _typeof(index);\n\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n\n return false;\n }\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n\n\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n\n var type = _typeof(value);\n\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n }\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n\n\n function isKeyable(value) {\n var type = _typeof(value);\n\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n }\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n\n\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n\n if (func === other) {\n return true;\n }\n\n var data = getData(other);\n return !!data && func === data[0];\n }\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n\n\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n }\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n\n\n var isMaskable = coreJsData ? isFunction : stubFalse;\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n }\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n\n\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n\n\n function matchesStrictComparable(key, srcValue) {\n return function (object) {\n if (object == null) {\n return false;\n }\n\n return object[key] === srcValue && (srcValue !== undefined || key in Object(object));\n };\n }\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n\n\n function memoizeCapped(func) {\n var result = memoize(func, function (key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n\n return key;\n });\n var cache = result.cache;\n return result;\n }\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n\n\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; // Exit early if metadata can't be merged.\n\n if (!(isCommon || isCombo)) {\n return data;\n } // Use source `thisArg` if available.\n\n\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2]; // Set when currying a bound function.\n\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n } // Compose partial arguments.\n\n\n var value = source[3];\n\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n } // Compose partial right arguments.\n\n\n value = source[5];\n\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n } // Use source `argPos` if available.\n\n\n value = source[7];\n\n if (value) {\n data[7] = value;\n } // Use source `ary` if it's smaller.\n\n\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n } // Use source `arity` if one is not provided.\n\n\n if (data[9] == null) {\n data[9] = source[9];\n } // Use source `func` and merge bitmasks.\n\n\n data[0] = source[0];\n data[1] = newBitmask;\n return data;\n }\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\n\n function nativeKeysIn(object) {\n var result = [];\n\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n\n return result;\n }\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n\n\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n\n\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? func.length - 1 : start, 0);\n return function () {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n\n index = -1;\n var otherArgs = Array(start + 1);\n\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n\n\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n\n\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n\n return array;\n }\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n\n\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n\n\n var setData = shortOut(baseSetData);\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n\n var setTimeout = ctxSetTimeout || function (func, wait) {\n return root.setTimeout(func, wait);\n };\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n\n\n var setToString = shortOut(baseSetToString);\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n\n function setWrapToString(wrapper, reference, bitmask) {\n var source = reference + '';\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n\n\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n\n return func.apply(undefined, arguments);\n };\n }\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n\n\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n size = size === undefined ? length : size;\n\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n array[rand] = array[index];\n array[index] = value;\n }\n\n array.length = size;\n return array;\n }\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n\n\n var stringToPath = memoizeCapped(function (string) {\n var result = [];\n\n if (string.charCodeAt(0) === 46\n /* . */\n ) {\n result.push('');\n }\n\n string.replace(rePropName, function (match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match);\n });\n return result;\n });\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n }\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n\n\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n }\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n\n\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function (pair) {\n var value = '_.' + pair[0];\n\n if (bitmask & pair[1] && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n\n\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n\n\n function chunk(array, size, guard) {\n if (guard ? isIterateeCall(array, size, guard) : size === undefined) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n\n var length = array == null ? 0 : array.length;\n\n if (!length || size < 1) {\n return [];\n }\n\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, index += size);\n }\n\n return result;\n }\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n\n\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (value) {\n result[resIndex++] = value;\n }\n }\n\n return result;\n }\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n\n\n function concat() {\n var length = arguments.length;\n\n if (!length) {\n return [];\n }\n\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n\n\n var difference = baseRest(function (array, values) {\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];\n });\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n\n var differenceBy = baseRest(function (array, values) {\n var iteratee = last(values);\n\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) : [];\n });\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n\n var differenceWith = baseRest(function (array, values) {\n var comparator = last(values);\n\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) : [];\n });\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n n = guard || n === undefined ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n\n\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n n = guard || n === undefined ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n\n\n function dropRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];\n }\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n\n\n function dropWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];\n }\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n\n\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n\n return baseFill(array, value, start, end);\n }\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n\n\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n\n\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = length - 1;\n\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n\n\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n\n\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n\n\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n\n\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n\n return result;\n }\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n\n\n function head(array) {\n return array && array.length ? array[0] : undefined;\n }\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n\n\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n\n return baseIndexOf(array, value, index);\n }\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n\n\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n\n\n var intersection = baseRest(function (arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];\n });\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n\n var intersectionBy = baseRest(function (arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee, 2)) : [];\n });\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n\n var intersectionWith = baseRest(function (arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n\n if (comparator) {\n mapped.pop();\n }\n\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined, comparator) : [];\n });\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n\n\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n\n\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = length;\n\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n\n return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);\n }\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n\n\n function nth(array, n) {\n return array && array.length ? baseNth(array, toInteger(n)) : undefined;\n }\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n\n\n var pull = baseRest(pullAll);\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n\n function pullAll(array, values) {\n return array && array.length && values && values.length ? basePullAll(array, values) : array;\n }\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n\n\n function pullAllBy(array, values, iteratee) {\n return array && array.length && values && values.length ? basePullAll(array, values, getIteratee(iteratee, 2)) : array;\n }\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n\n\n function pullAllWith(array, values, comparator) {\n return array && array.length && values && values.length ? basePullAll(array, values, undefined, comparator) : array;\n }\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n\n\n var pullAt = flatRest(function (array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n basePullAt(array, arrayMap(indexes, function (index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n return result;\n });\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n\n function remove(array, predicate) {\n var result = [];\n\n if (!(array && array.length)) {\n return result;\n }\n\n var index = -1,\n indexes = [],\n length = array.length;\n predicate = getIteratee(predicate, 3);\n\n while (++index < length) {\n var value = array[index];\n\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n\n basePullAt(array, indexes);\n return result;\n }\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n\n\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n\n\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n } else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n\n return baseSlice(array, start, end);\n }\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n\n\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n\n\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n\n\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n\n if (length) {\n var index = baseSortedIndex(array, value);\n\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n\n return -1;\n }\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n\n\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n\n\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n\n\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n\n if (eq(array[index], value)) {\n return index;\n }\n }\n\n return -1;\n }\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n\n\n function sortedUniq(array) {\n return array && array.length ? baseSortedUniq(array) : [];\n }\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n\n\n function sortedUniqBy(array, iteratee) {\n return array && array.length ? baseSortedUniq(array, getIteratee(iteratee, 2)) : [];\n }\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n\n\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n\n\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n\n n = guard || n === undefined ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n\n\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n n = guard || n === undefined ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n\n\n function takeRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];\n }\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n\n\n function takeWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];\n }\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n\n\n var union = baseRest(function (arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n\n var unionBy = baseRest(function (arrays) {\n var iteratee = last(arrays);\n\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n\n var unionWith = baseRest(function (arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n\n function uniq(array) {\n return array && array.length ? baseUniq(array) : [];\n }\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n\n\n function uniqBy(array, iteratee) {\n return array && array.length ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n\n\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return array && array.length ? baseUniq(array, undefined, comparator) : [];\n }\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n\n\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n\n var length = 0;\n array = arrayFilter(array, function (group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function (index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n\n\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n\n var result = unzip(array);\n\n if (iteratee == null) {\n return result;\n }\n\n return arrayMap(result, function (group) {\n return apply(iteratee, undefined, group);\n });\n }\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n\n\n var without = baseRest(function (array, values) {\n return isArrayLikeObject(array) ? baseDifference(array, values) : [];\n });\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n\n var xor = baseRest(function (arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n\n var xorBy = baseRest(function (arrays) {\n var iteratee = last(arrays);\n\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n\n var xorWith = baseRest(function (arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n\n var zip = baseRest(unzip);\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n\n\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n\n\n var zipWith = baseRest(function (arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n\n\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n\n\n function thru(value, interceptor) {\n return interceptor(value);\n }\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n\n\n var wrapperAt = flatRest(function (paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function interceptor(object) {\n return baseAt(object, paths);\n };\n\n if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n\n value = value.slice(start, +start + (length ? 1 : 0));\n\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n\n return new LodashWrapper(value, this.__chain__).thru(function (array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n\n return array;\n });\n });\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n\n function wrapperChain() {\n return chain(this);\n }\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n\n\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n\n\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n return {\n 'done': done,\n 'value': value\n };\n }\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n\n\n function wrapperToIterator() {\n return this;\n }\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n\n\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n\n var previous = clone;\n parent = parent.__wrapped__;\n }\n\n previous.__wrapped__ = value;\n return result;\n }\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n\n\n function wrapperReverse() {\n var value = this.__wrapped__;\n\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n\n wrapped = wrapped.reverse();\n\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n\n return new LodashWrapper(wrapped, this.__chain__);\n }\n\n return this.thru(reverse);\n }\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n\n\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n\n\n var countBy = createAggregator(function (result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n\n return func(collection, getIteratee(predicate, 3));\n }\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n\n\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n\n\n var find = createFind(findIndex);\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n\n var findLast = createFind(findLastIndex);\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n\n\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n\n\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n\n\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n\n\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n\n\n var groupBy = createAggregator(function (result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n }\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n\n\n var invokeMap = baseRest(function (collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n\n var keyBy = createAggregator(function (result, value, key) {\n baseAssignValue(result, key, value);\n });\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n\n\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n\n orders = guard ? undefined : orders;\n\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n\n return baseOrderBy(collection, iteratees, orders);\n }\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n\n\n var partition = createAggregator(function (result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function () {\n return [[], []];\n });\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n\n\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n\n\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n\n\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n\n\n function sampleSize(collection, n, guard) {\n if (guard ? isIterateeCall(collection, n, guard) : n === undefined) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n\n\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n\n\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n\n var tag = getTag(collection);\n\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n\n return baseKeys(collection).length;\n }\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n\n\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n\n return func(collection, getIteratee(predicate, 3));\n }\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n\n\n var sortBy = baseRest(function (collection, iteratees) {\n if (collection == null) {\n return [];\n }\n\n var length = iteratees.length;\n\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\n var now = ctxNow || function () {\n return root.Date.now();\n };\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n\n\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n n = toInteger(n);\n return function () {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n\n\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = func && n == null ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n\n\n function before(n, func) {\n var result;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n n = toInteger(n);\n return function () {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n\n if (n <= 1) {\n func = undefined;\n }\n\n return result;\n };\n }\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n\n\n var bind = baseRest(function (func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n\n var bindKey = baseRest(function (object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n\n return createWrap(key, bitmask, object, partials, holders);\n });\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n\n\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n\n\n var defer = baseRest(function (func, args) {\n return baseDelay(func, 1, args);\n });\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n\n var delay = baseRest(function (func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n\n\n function memoize(func, resolver) {\n if (typeof func != 'function' || resolver != null && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n var memoized = function memoized() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n } // Expose `MapCache`.\n\n\n memoize.Cache = MapCache;\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n return function () {\n var args = arguments;\n\n switch (args.length) {\n case 0:\n return !predicate.call(this);\n\n case 1:\n return !predicate.call(this, args[0]);\n\n case 2:\n return !predicate.call(this, args[0], args[1]);\n\n case 3:\n return !predicate.call(this, args[0], args[1], args[2]);\n }\n\n return !predicate.apply(this, args);\n };\n }\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n\n\n function once(func) {\n return before(2, func);\n }\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n\n\n var overArgs = castRest(function (func, transforms) {\n transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n var funcsLength = transforms.length;\n return baseRest(function (args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n\n return apply(func, this, args);\n });\n });\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n\n var partial = baseRest(function (func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n\n var partialRight = baseRest(function (func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n\n var rearg = flatRest(function (func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n\n\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function (args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n\n return apply(func, this, otherArgs);\n });\n }\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n\n\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n\n\n function unary(func) {\n return ary(func, 1);\n }\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n\n\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n\n\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n\n\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n\n\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n\n\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n\n\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n\n\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n\n\n function eq(value, other) {\n return value === other || value !== value && other !== other;\n }\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n\n\n var gt = createRelationalOperation(baseGt);\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n\n var gte = createRelationalOperation(function (value, other) {\n return value >= other;\n });\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n\n var isArguments = baseIsArguments(function () {\n return arguments;\n }()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n };\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n\n var isArray = Array.isArray;\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n\n\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n\n\n function isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;\n }\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n\n\n var isBuffer = nativeIsBuffer || stubFalse;\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n\n\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n\n if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n\n var tag = getTag(value);\n\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n\n\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n\n\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n\n\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag || typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value);\n }\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n\n\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\n\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n } // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n\n\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n\n\n function isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\n function isObject(value) {\n var type = _typeof(value);\n\n return value != null && (type == 'object' || type == 'function');\n }\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\n function isObjectLike(value) {\n return value != null && _typeof(value) == 'object';\n }\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n\n\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n\n\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n\n\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n\n\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n\n return baseIsNative(value);\n }\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n\n\n function isNull(value) {\n return value === null;\n }\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n\n\n function isNil(value) {\n return value == null;\n }\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n\n\n function isNumber(value) {\n return typeof value == 'number' || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n\n\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n\n var proto = getPrototype(value);\n\n if (proto === null) {\n return true;\n }\n\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n }\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n\n\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n\n\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\n function isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n }\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\n function isSymbol(value) {\n return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n\n\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n\n function isUndefined(value) {\n return value === undefined;\n }\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n\n\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n\n\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n\n\n var lt = createRelationalOperation(baseLt);\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n\n var lte = createRelationalOperation(function (value, other) {\n return value <= other;\n });\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n\n function toArray(value) {\n if (!value) {\n return [];\n }\n\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;\n return func(value);\n }\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n\n\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n\n value = toNumber(value);\n\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n\n return value === value ? value : 0;\n }\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n\n\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n return result === result ? remainder ? result - remainder : result : 0;\n }\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n\n\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n\n\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n\n\n function toSafeInteger(value) {\n return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;\n }\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n\n\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n\n\n var assign = createAssigner(function (object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n\n var assignIn = createAssigner(function (object, source) {\n copyObject(source, keysIn(source), object);\n });\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n\n var assignInWith = createAssigner(function (object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n\n var assignWith = createAssigner(function (object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n\n var at = flatRest(baseAt);\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n\n\n var defaults = baseRest(function (object, sources) {\n object = Object(object);\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n\n var defaultsDeep = baseRest(function (args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n\n\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n\n\n function forIn(object, iteratee) {\n return object == null ? object : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n\n\n function forInRight(object, iteratee) {\n return object == null ? object : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n\n\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n\n\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n\n\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n\n\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n\n\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n\n\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n\n\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n\n\n var invert = createInverter(function (result, value, key) {\n if (value != null && typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n\n var invertBy = createInverter(function (result, value, key) {\n if (value != null && typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n\n var invoke = baseRest(baseInvoke);\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n\n\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n\n\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n\n\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n\n\n var merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n\n var mergeWith = createAssigner(function (object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n\n var omit = flatRest(function (object, paths) {\n var result = {};\n\n if (object == null) {\n return result;\n }\n\n var isDeep = false;\n paths = arrayMap(paths, function (path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n\n var length = paths.length;\n\n while (length--) {\n baseUnset(result, paths[length]);\n }\n\n return result;\n });\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n\n\n var pick = flatRest(function (object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n\n var props = arrayMap(getAllKeysIn(object), function (prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function (value, path) {\n return predicate(value, path[0]);\n });\n }\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n\n\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n var index = -1,\n length = path.length; // Ensure the loop is entered when path is empty.\n\n if (!length) {\n length = 1;\n object = undefined;\n }\n\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n\n object = isFunction(value) ? value.call(object) : value;\n }\n\n return object;\n }\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n\n\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n\n\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n\n\n var toPairs = createToPairs(keys);\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n\n var toPairsIn = createToPairs(keysIn);\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n iteratee = getIteratee(iteratee, 4);\n\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n\n if (isArrLike) {\n accumulator = isArr ? new Ctor() : [];\n } else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n } else {\n accumulator = {};\n }\n }\n\n (isArrLike ? arrayEach : baseForOwn)(object, function (value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n\n\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n\n\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n\n\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n\n\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n\n\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n\n\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n\n return baseClamp(toNumber(number), lower, upper);\n }\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n\n\n function inRange(number, start, end) {\n start = toFinite(start);\n\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n\n\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n } else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n } else {\n lower = toFinite(lower);\n\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1))), upper);\n }\n\n return baseRandom(lower, upper);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n\n\n var camelCase = createCompounder(function (result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n\n\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n\n\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n var length = string.length;\n position = position === undefined ? length : baseClamp(toInteger(position), 0, length);\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n\n\n function escape(string) {\n string = toString(string);\n return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string;\n }\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n\n\n function escapeRegExp(string) {\n string = toString(string);\n return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, '\\\\$&') : string;\n }\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n\n\n var kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n\n var lowerCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n\n var lowerFirst = createCaseFirst('toLowerCase');\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n\n if (!length || strLength >= length) {\n return string;\n }\n\n var mid = (length - strLength) / 2;\n return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars);\n }\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n\n\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? string + createPadding(length - strLength, chars) : string;\n }\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n\n\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? createPadding(length - strLength, chars) + string : string;\n }\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n\n\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n\n\n function repeat(string, n, guard) {\n if (guard ? isIterateeCall(string, n, guard) : n === undefined) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n\n return baseRepeat(toString(string), n);\n }\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n\n\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n\n\n var snakeCase = createCompounder(function (result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n\n if (!limit) {\n return [];\n }\n\n string = toString(string);\n\n if (string && (typeof separator == 'string' || separator != null && !isRegExp(separator))) {\n separator = baseToString(separator);\n\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n\n return string.split(separator, limit);\n }\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n\n\n var startCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length);\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{ref:\"btn\",class:_vm.classes,attrs:{\"id\":_vm.buttonId,\"data-cy\":_vm.cypressClass,\"name\":\"button\",\"data-style\":\"slide-left\"},on:{\"click\":function($event){$event.preventDefault();return _vm.clicked.apply(null, arguments)}}},[_c('span',{staticClass:\"ladda-label\"},[_vm._t(\"default\")],2),_c('span',{staticClass:\"ladda-spinner\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./device-setup.vue?vue&type=template&id=0fa8c859&\"\nimport script from \"./device-setup.vue?vue&type=script&lang=js&\"\nexport * from \"./device-setup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row m-t-lg\"},[_c('div',{staticClass:\"col-xs-12 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4\"},[_c('div',{staticClass:\"ibox\"},[_c('div',{staticClass:\"ibox-content p-m text-center\"},[_c('h1',[_vm._v(\"WrestlingIQ Kiosk\")]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"form-group p-x-lg m-t-lg\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.kioskCode),expression:\"kioskCode\"}],staticClass:\"form-control\",attrs:{\"placeholder\":\"6-digit Kiosk Code\",\"required\":\"required\",\"type\":\"text\",\"name\":\"kiosk-code\",\"autocapitalize\":\"off\",\"autocomplete\":\"off\",\"autocorrect\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":(_vm.kioskCode)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.kioskCode=$event.target.value}}}),_vm._v(\" \"),_c('ladda-button',{attrs:{\"el-class\":\"btn btn-primary m-t-sm btn-lg\",\"loading\":_vm.loading},on:{\"lbClicked\":_vm.authenticate}},[_vm._v(\"\\n Use Kiosk\\n \")]),_vm._v(\" \"),(_vm.error)?_c('p',{staticClass:\"text-danger m-t-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]):_vm._e()],1)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"m-t-m\"},[_vm._v(\"\\n Please enter your kiosk device code below.\"),_c('br'),_vm._v(\"Need a kiosk code? Email support@wrestlingiq.com\\n \")])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./profile-photo-placeholder.vue?vue&type=template&id=3104b785&\"\nimport script from \"./profile-photo-placeholder.vue?vue&type=script&lang=js&\"\nexport * from \"./profile-photo-placeholder.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.classes,staticStyle:{\"enable-background\":\"new 0 0 128 128\",\"display\":\"block\"},attrs:{\"fill\":\"currentcolor\",\"id\":\"Line\",\"version\":\"1.1\",\"viewBox\":\"0 0 128 128\",\"xml:space\":\"preserve\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',[_c('path',{attrs:{\"d\":\"M99.298,106.402c-0.014-6.198-1.627-13.411-12.443-17.109c-0.218-7.678-0.69-15.571-1.408-23.485 c1.097-1.425,1.97-2.743,2.641-3.866C95.742,61.35,101,54.56,101,45c0-5.913-0.75-13.402-6.277-16.033 c-1.114-6.278-5.69-11.965-12.66-15.672c-1.435-1.276-3.057-2.416-4.892-3.356C74.217,4.339,69.317,1,64,1 c-5.319,0-10.216,3.338-13.17,8.939c-1.834,0.94-3.456,2.079-4.89,3.354c-6.971,3.707-11.549,9.395-12.663,15.674 C27.75,31.598,27,39.087,27,45c0,9.56,5.258,16.35,12.912,16.942c0.671,1.123,1.543,2.441,2.641,3.866 c-0.718,7.924-1.19,15.816-1.407,23.485c-10.807,3.694-12.427,10.901-12.444,17.11c-3.626,9.638-3.7,19.193-3.701,19.597 c-0.001,0.266,0.104,0.521,0.292,0.709c0.188,0.188,0.443,0.294,0.708,0.294h76c0.266,0,0.521-0.106,0.708-0.294 c0.188-0.188,0.292-0.444,0.292-0.709C102.999,125.596,102.924,116.04,99.298,106.402z M84.833,88.675 c-0.974-0.267-2.014-0.507-3.121-0.721l-0.071-0.203c-0.109-0.313-0.367-0.553-0.688-0.638c-1.842-0.491-3.819-0.82-5.876-0.98 c-0.072-0.005-0.138,0.014-0.206,0.024l-0.614-8.592c3.394-1.955,4.919-4.549,5.452-5.679c1.487-1.291,2.79-2.599,3.917-3.872 C84.22,74.977,84.627,81.906,84.833,88.675z M89.022,125.004H38.977c-0.637-1.638-0.977-3.315-0.977-5 c0-2.019,0.42-3.966,1.243-5.775l0.107-0.226c0.016-0.033,0.029-0.066,0.041-0.1l8.681-24.988c1.302-0.32,2.675-0.556,4.096-0.705 l1.842,10.936c0.011,0.079,1.224,7.858,9.989,7.858c8.766,0,9.979-7.78,9.986-7.834l1.846-10.96 c1.421,0.149,2.793,0.385,4.096,0.705l8.682,24.988c0.012,0.034,0.025,0.067,0.041,0.1l0.101,0.212 c0.829,1.822,1.249,3.77,1.249,5.789C90,121.688,89.659,123.365,89.022,125.004z M49.483,70.125 c-0.094-0.052-0.194-0.086-0.296-0.105c-3.448-3.082-5.797-6.277-7.268-8.653c0.058-0.146,0.091-0.3,0.076-0.46l-2.034-21.696 c2.528-2.91,5.296-5.316,8.032-7.286C52.746,31.41,58.311,31,64,31c5.67,0,11.219,0.407,15.964,0.921 c2.761,1.976,5.549,4.385,8.075,7.29l-2.034,21.696c-0.015,0.16,0.018,0.314,0.076,0.46c-1.472,2.376-3.821,5.571-7.27,8.654 c-0.099,0.018-0.195,0.051-0.286,0.1C78.489,70.139,74.851,72,64,72S49.511,70.139,49.483,70.125z M39.158,30.634 c0.812-6.556,4.608-14.984,12.853-19.062C55.461,9.865,59.495,9,64,9c4.505,0,8.539,0.865,11.99,2.572 c8.249,4.081,12.042,12.505,12.852,19.066l-0.041,0.436c-2.19-0.343-4.942-0.731-8.058-1.078 c-8.244-5.814-16.053-7.853-16.498-7.965C64.165,22.01,64.082,22,64,22c-0.088,0-8.202,2.024-16.707,7.992 c-3.131,0.348-5.895,0.738-8.093,1.082L39.158,30.634z M88.291,36.514c-1.429-1.515-2.913-2.888-4.413-4.126 c1.774,0.231,3.369,0.465,4.736,0.68L88.291,36.514z M76.368,29.563C72.505,29.23,68.287,29,64,29 c-4.312,0-8.554,0.233-12.435,0.568c6.043-3.65,11.276-5.215,12.43-5.533C65.16,24.366,70.373,25.961,76.368,29.563z M44.14,32.385 c-1.509,1.24-3,2.614-4.431,4.129l-0.323-3.447C40.757,32.852,42.358,32.617,44.14,32.385z M64,74 c6.423,0,10.451-0.635,12.784-1.211C75.077,74.954,71.366,78,64,78c-7.437,0-11.128-3.051-12.812-5.219 C53.516,73.359,57.55,74,64,74z M64,80c3.434,0,6.159-0.604,8.319-1.489l0.683,9.565c0.029,0.411,0.307,0.741,0.678,0.867 l-1.67,9.917c-0.038,0.251-1.007,6.145-8.011,6.145c-7.003,0-7.972-5.894-8.013-6.166l-1.667-9.895 c0.371-0.126,0.648-0.456,0.678-0.867l0.683-9.565C57.841,79.396,60.566,80,64,80z M99,45c0,7.845-3.894,13.588-9.716,14.774 c0.409-0.818,0.616-1.329,0.646-1.406c0.203-0.514-0.049-1.093-0.562-1.296c-0.357-0.142-0.739-0.052-1.012,0.181l2.237-23.86 c1.996,0.34,3.164,0.579,3.204,0.587c0.537,0.11,1.07-0.235,1.182-0.776s-0.235-1.07-0.776-1.182 c-0.042-0.009-1.296-0.266-3.423-0.625l0.128-1.363C96.568,30.457,99,35.004,99,45z M92.524,28.242 c-0.649-0.133-1.353-0.206-2.104-0.228c-0.62-2.882-1.748-5.956-3.486-8.837C89.759,21.823,91.69,24.931,92.524,28.242z M64,3 c3.797,0,7.375,2.037,9.968,5.567C70.951,7.526,67.611,7,64,7c-3.612,0-6.952,0.526-9.969,1.567C56.624,5.037,60.201,3,64,3z M41.07,19.172c-1.74,2.883-2.869,5.958-3.489,8.841c-0.751,0.022-1.455,0.096-2.105,0.229C36.31,24.929,38.242,21.82,41.07,19.172 z M29,45c0-9.996,2.432-14.543,8.092-14.967l0.128,1.363c-2.127,0.36-3.381,0.616-3.423,0.625 c-0.541,0.112-0.888,0.642-0.776,1.182C33.119,33.675,33.535,34,33.999,34c0.067,0,0.136-0.007,0.204-0.021 c0.04-0.008,1.208-0.248,3.204-0.587l2.237,23.86c-0.272-0.233-0.654-0.322-1.012-0.181c-0.513,0.203-0.765,0.783-0.562,1.296 c0.03,0.077,0.237,0.589,0.646,1.406C32.894,58.588,29,52.845,29,45z M44.374,68.013c1.127,1.273,2.43,2.581,3.917,3.872 c0.533,1.13,2.057,3.723,5.451,5.679l-0.613,8.592c-0.069-0.009-0.135-0.029-0.207-0.023c-2.057,0.16-4.035,0.49-5.876,0.98 c-0.321,0.085-0.578,0.325-0.688,0.638l-0.07,0.203c-1.107,0.214-2.147,0.454-3.121,0.721 C43.372,81.913,43.779,74.984,44.374,68.013z M30.636,106.942c0.043-0.115,0.066-0.256,0.066-0.379 c-0.01-4.312-0.025-13.117,14.823-16.411l-8.006,23.044l-0.09,0.191c-0.948,2.084-1.429,4.31-1.429,6.617 c0,1.685,0.287,3.36,0.839,5h-9.808C27.153,122.294,27.749,114.525,30.636,106.942z M91.16,125.004c0.552-1.641,0.84-3.316,0.84-5 c0-2.307-0.48-4.533-1.435-6.63l-8.087-23.221c14.846,3.295,14.831,12.1,14.821,16.434c0,0.122,0.022,0.242,0.065,0.356 c2.887,7.583,3.482,15.352,3.605,18.062H91.16z\"}}),_c('path',{attrs:{\"d\":\"M57.165,38.014l-6-1c-0.546-0.09-1.06,0.278-1.151,0.822c-0.091,0.545,0.277,1.06,0.822,1.151l6,1 C56.891,39.996,56.947,40,57.001,40c0.48,0,0.904-0.347,0.985-0.835C58.077,38.62,57.709,38.104,57.165,38.014z\"}}),_c('path',{attrs:{\"d\":\"M70.999,40c0.054,0,0.11-0.004,0.166-0.014l6-1c0.544-0.091,0.913-0.606,0.822-1.151c-0.091-0.544-0.602-0.912-1.151-0.822 l-6,1c-0.544,0.091-0.913,0.606-0.822,1.151C70.095,39.653,70.519,40,70.999,40z\"}}),_c('path',{attrs:{\"d\":\"M54.263,40.912h-0.527c-1.509,0-2.736,1.228-2.736,2.737v2.526c0,1.509,1.228,2.737,2.736,2.737h0.527 c1.509,0,2.737-1.228,2.737-2.737v-2.526C57,42.139,55.772,40.912,54.263,40.912z M55,46.175c0,0.406-0.331,0.737-0.737,0.737 h-0.527c-0.406,0-0.736-0.331-0.736-0.737v-2.526c0-0.406,0.33-0.737,0.736-0.737h0.527c0.399,0,0.737,0.337,0.737,0.737V46.175z\"}}),_c('path',{attrs:{\"d\":\"M74.263,40.912h-0.527c-1.509,0-2.736,1.228-2.736,2.737v2.526c0,1.509,1.228,2.737,2.736,2.737h0.527 c1.509,0,2.737-1.228,2.737-2.737v-2.526C77,42.139,75.772,40.912,74.263,40.912z M75,46.175c0,0.406-0.331,0.737-0.737,0.737 h-0.527c-0.406,0-0.736-0.331-0.736-0.737v-2.526c0-0.406,0.33-0.737,0.736-0.737h0.527c0.399,0,0.737,0.337,0.737,0.737V46.175z\"}}),_c('path',{attrs:{\"d\":\"M68.797,60.158c-0.334-0.44-0.961-0.525-1.401-0.192C66.491,60.652,65.348,61,64,61c-1.348,0-2.49-0.348-3.396-1.034 c-0.441-0.335-1.068-0.248-1.401,0.193c-0.333,0.44-0.247,1.067,0.193,1.401C60.657,62.516,62.206,63,64,63 c1.795,0,3.344-0.485,4.605-1.441C69.044,61.225,69.13,60.598,68.797,60.158z\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./tag.vue?vue&type=template&id=56e6d90b&\"\nimport script from \"./tag.vue?vue&type=script&lang=js&\"\nexport * from \"./tag.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"inline-flex align-items-center gap-x-xxs rounded-xxs font-small\",style:({\n color: _vm.tag.text_color,\n 'background-color': _vm.tag.color,\n 'padding': '2px 4px'\n })},[_vm._v(\"\\n \"+_vm._s(_vm.tag.abbreviation)+\" \"+_vm._s(_vm.tagCount)+\"\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const taggableMix = {\n methods: {\n rosterTagsWithCount: function (wrestlerProfile) {\n if (!wrestlerProfile) {\n return [];\n }\n let rosters = _.flatMap(wrestlerProfile.rosters);\n let tags = _.flatMap(rosters, \"tags\");\n let count = _.countBy(tags, \"abbreviation\");\n return _.map(_.uniqBy(tags, \"abbreviation\"), function (t) {\n t.count = count[t.abbreviation];\n return t;\n });\n },\n rosterNames: function (wrestlerProfile) {\n if (!wrestlerProfile) {\n return \"\";\n }\n // This should sort by roster name, then append them in a comma separated string\n return _.map(_.sortBy(_.flatMap(wrestlerProfile.rosters), \"name\"), \"name\").join(\", \");\n },\n activeRosters: function (wrestlerProfile) {\n if (!wrestlerProfile) {\n return [];\n }\n return _.filter(wrestlerProfile.rosters, function (r) {\n return !r.archived;\n });\n },\n activeRosterNames: function (wrestlerProfile) {\n // Sort by name from the activerosters function above\n return _.map(_.sortBy(this.activeRosters(wrestlerProfile), \"name\"), \"name\").join(\", \");\n },\n archivedRosters: function (wrestlerProfile) {\n if (!wrestlerProfile) {\n return [];\n }\n return _.filter(wrestlerProfile.rosters, function (r) {\n return r.archived;\n });\n },\n archivedRosterNames: function (wrestlerProfile) {\n // Sort by name from the archivedRosters function above\n return _.map(_.sortBy(this.archivedRosters(wrestlerProfile), \"name\"), \"name\").join(\", \");\n },\n },\n};\n","import { render, staticRenderFns } from \"./paginated-check-ins.vue?vue&type=template&id=5fa8de2c&\"\nimport script from \"./paginated-check-ins.vue?vue&type=script&lang=js&\"\nexport * from \"./paginated-check-ins.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[(_vm.hasCheckIns)?_c('p',{staticClass:\"font-small m-t-xxs m-l-xxs m-b-m\"},[_c('strong',[_vm._v(_vm._s(_vm.checkIns.length))]),_vm._v(\" checked in\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.store.state.loadingCheckIns)?_c('div',[_vm._m(0)]):_c('div',[(_vm.style === 'list')?_c('ul',{staticClass:\"list-unstyled m-b-xs\"},_vm._l((_vm.currentPageResults),function(checkIn){return _c('li',{class:_vm.rowClasses(checkIn),on:{\"click\":function($event){return _vm.openCheckInEditor(checkIn)}}},[_c('div',{staticClass:\"flex align-items-center\"},[(_vm.avatarExists(checkIn))?_c('div',{staticClass:\"m-r-m\"},[_c('div',{staticClass:\"image\"},[_c('img',{staticClass:\"kiosk-profile-pic\",attrs:{\"src\":checkIn.profile.avatar_thumbnail,\"alt\":\"profile picture\"}})])]):_c('profile-photo-placeholder',{attrs:{\"classes\":\"kiosk-profile-pic m-r-m color-gray-400\"}}),_vm._v(\" \"),_c('div',{staticClass:\"flex-col\"},[_c('h3',{staticClass:\"m-t-none m-b-none\"},[_vm._v(\"\\n \"+_vm._s(checkIn.profile.display_name)+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"color-gray-500 m-b-none m-t-xxs\"},[_vm._v(\"\\n \"+_vm._s(_vm.checkInAt(checkIn, false))+\"\\n \"),(checkIn.class_pass_id)?_c('span',[_vm._v(\"Class Pass Used \"),(checkIn.class_pass.paid_session)?_c('span',[_vm._v(\"- \"+_vm._s(checkIn.class_pass.paid_session.name))]):_vm._e()]):_vm._e()])])],1),_vm._v(\" \"),_c('div',{staticClass:\"m-l-auto p-r-sm flex\"},[(_vm.needsFinalization(checkIn))?_c('div',{staticClass:\"m-r-lg\"},[_vm._m(1,true)]):_c('div',{staticClass:\"m-r-lg\"},[_vm._m(2,true)]),_vm._v(\" \"),_c('div',[(_vm.beingEdited(checkIn))?_c('i',{staticClass:\"fa fa-angle-down fa-lg\"}):_c('i',{staticClass:\"fa fa-angle-right fa-lg\"})])])])}),0):_c('div',{staticClass:\"grid grid-cols-3 gap-4 m-b-xs\"},_vm._l((_vm.currentPageResults),function(checkIn){return _c('div',{staticClass:\"cursor-pointer flex-col hover-opacity-75\",class:_vm.gridClasses(checkIn),on:{\"click\":function($event){return _vm.openCheckInEditor(checkIn)}}},[(_vm.avatarExists(checkIn))?_c('div',{},[_c('img',{staticClass:\"kiosk-grid-pic\",attrs:{\"src\":checkIn.profile.avatar_thumbnail,\"alt\":\"profile picture\"}})]):_c('profile-photo-placeholder',{attrs:{\"classes\":\"kiosk-grid-pic color-gray-400\"}}),_vm._v(\" \"),_c('h3',{staticClass:\"m-t-sm m-b-none\"},[_vm._v(\"\\n \"+_vm._s(checkIn.profile.display_name)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"flex flex-wrap gap-x-xxs gap-y-xxs items-center m-t-xs\"},_vm._l((_vm.rosterTagsWithCount(checkIn.profile)),function(tag){return _c('tag',{key:tag.abbreviation,attrs:{\"tag\":tag,\"count\":tag.count}})}),1),_vm._v(\" \"),(checkIn.class_pass_id && checkIn.class_pass.paid_session)?_c('div',[_c('p',{staticClass:\"m-b-none m-t-xxs\"},[_c('span',{staticClass:\"label label-primary\"},[_vm._v(_vm._s(checkIn.class_pass.paid_session.name))])])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"flex align-items-center justify-space-between\"},[_c('p',{staticClass:\"color-gray-500 m-b-none m-t-xxs\"},[_vm._v(\"\\n \"+_vm._s(_vm.checkInAt(checkIn, false))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"flex m-r-xs\"},[(_vm.needsFinalization(checkIn))?_c('div',[_vm._m(3,true)]):_c('div',[_vm._m(4,true)]),_vm._v(\" \"),_c('div',[(_vm.beingEdited(checkIn))?_c('i',{staticClass:\"fa fa-angle-down fa-lg m-l-xxs\"}):_vm._e()])])])],1)}),0)])]),_vm._v(\" \"),_c('div',{staticClass:\"flex justify-space-between align-items-center\",class:{ 'border-top': _vm.hasCheckIns, 'p-t-sm': _vm.hasCheckIns }},[_c('div',[(_vm.hasCheckIns)?_c('nav',{staticClass:\"flex-col flex align-items-center\",attrs:{\"aria-label\":\"Check-in pagination navigation\"}},[_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showAll),expression:\"!showAll\"}],staticClass:\"pagination pagination-sm m-b-none m-t-sm\"},[_c('li',[_c('a',{attrs:{\"aria-label\":\"Previous\"},on:{\"click\":function($event){$event.preventDefault();return _vm.decrementPage.apply(null, arguments)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"«\")])])]),_vm._v(\" \"),_vm._l((_vm.pages),function(page){return _c('li',{class:page === _vm.currentPage + 1 ? 'active' : ''},[_c('a',{on:{\"click\":function($event){$event.preventDefault();return _vm.showPage(page - 1)}}},[_vm._v(_vm._s(page))])])}),_vm._v(\" \"),_c('li',[_c('a',{attrs:{\"aria-label\":\"Next\"},on:{\"click\":function($event){$event.preventDefault();return _vm.incrementPage.apply(null, arguments)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"»\")])])])],2),_vm._v(\" \"),(_vm.store.state.eventToCheckIn)?_c('a',{staticClass:\"font-small text-underline m-t-xxs\",on:{\"click\":function($event){_vm.showAll = !_vm.showAll}}},[_vm._v(\"\\n \"+_vm._s(_vm.showAll ? \"Minimize\" : \"Show all\")+\"\\n \")]):_vm._e()]):_c('p',[(!_vm.store.state.loadingCheckIns)?_c('small',[_vm._v(\"No check ins recorded\\n \"),(\n _vm.store.state.eventToCheckIn &&\n _vm.store.state.eventToCheckIn.id !== -1\n )?_c('span',[_vm._v(\"for \"+_vm._s(_vm.store.state.eventToCheckIn.name))]):_vm._e()]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"flex m-l-sm\"},[_c('div',[_c('i',{staticClass:\"fa fa-th cursor-pointer\",class:{\n 'color-blue-500': _vm.gridStyle,\n 'color-gray-400': _vm.listStyle,\n },attrs:{\"title\":\"Grid\"},on:{\"click\":function($event){_vm.style = 'grid'}}})]),_vm._v(\" \"),_c('div',{staticClass:\"m-l-xs\"},[_c('i',{staticClass:\"fa fa-list cursor-pointer\",class:{\n 'color-blue-500': _vm.listStyle,\n 'color-gray-300': _vm.gridStyle,\n },attrs:{\"title\":\"List\"},on:{\"click\":function($event){_vm.style = 'list'}}})])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sk-spinner sk-spinner-fading-circle\"},[_c('div',{staticClass:\"sk-circle1 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle2 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle3 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle4 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle5 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle6 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle7 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle8 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle9 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle10 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle11 sk-circle\"}),_vm._v(\" \"),_c('div',{staticClass:\"sk-circle12 sk-circle\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"color-red-700\"},[_c('i',{staticClass:\"fa fa-warning\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"color-green-400\"},[_c('i',{staticClass:\"fa fa-check\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"color-red-700\"},[_c('i',{staticClass:\"fa fa-warning\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"color-green-400\"},[_c('i',{staticClass:\"fa fa-check\"})])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./spinner.vue?vue&type=template&id=4dcdc335&\"\nimport script from \"./spinner.vue?vue&type=script&lang=js&\"\nexport * from \"./spinner.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.useSvg)?_c('div',{staticClass:\"sk-spinner sk-spinner-fading-circle\",style:(_vm.styles)},_vm._l((12),function(n){return _c('div',{key:n,class:(\"sk-circle\" + n + \" sk-circle\")})}),0):_c('svg',{staticClass:\"animate-spin w-4 h-4\",style:(_vm.styles),attrs:{\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('circle',{staticClass:\"opacity-25\",attrs:{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"stroke\":_vm.themeColors.stroke,\"stroke-width\":\"4\",\"fill\":\"none\"}}),_vm._v(\" \"),_c('path',{staticClass:\"opacity-75\",attrs:{\"fill\":_vm.themeColors.fill,\"d\":\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const paramAndHistoryMixin = {\n methods: {\n getQueryParameter(queryKey) {\n return decodeURIComponent((new RegExp(`[?|&]${queryKey}=` + '([^&;]+?)(&|#|;|$)').exec(location.search) || [null, ''])[1].replace(/\\+/g, '%20')) || '';\n },\n // This could be decomposed into several functions, leaving for now\n replaceHistoryState(queryKey, value) {\n const uri = window.location.href;\n queryKey = Array.isArray(value) ? `${queryKey}[]` : queryKey;\n const regPattern = Array.isArray(value) ? '[?&]' + _.escapeRegExp(queryKey) + '=.*?\\\\d*' : '([?&])' + _.escapeRegExp(queryKey) + '=.*?(&|$)';\n\n const regex = new RegExp(regPattern, 'ig');\n let separator = uri.indexOf('?') !== -1 ? '&' : '?';\n const match = uri.match(regex);\n const notOnlyParam = match != null && match[0].indexOf('&') !== -1 && match[0].indexOf('?') !== -1;\n const replacement = notOnlyParam ? '?' : '';\n let newState = uri;\n\n // Deal with array based value types\n if (Array.isArray(value)) {\n if (value.length === 0) {\n newState = uri.replace(regex, replacement);\n } else {\n if (match) {\n // First blow away all of the previous query key array values\n newState = uri.replace(regex, '');\n // Then transform the first & into a question mark\n let hasAmp = newState.indexOf('&') !== -1;\n let hasQue = newState.indexOf('?') !== -1;\n if (hasAmp && !hasQue) {\n // If we are here, we need to transform the first ampersand into a question mark\n // because blowing away previous key array values has pushed a parameter into the first slot that wasn't before\n newState = newState.replace('&', '?');\n separator = '&';\n } else {\n separator = hasQue ? '&' : '?';\n }\n }\n // Then build up all the array in the query parameters\n let params = [];\n value.forEach((v) => {\n params.push(`${queryKey}=${v}`);\n });\n\n newState = `${newState + separator}${params.join('&')}`;\n }\n } else {\n if (value === null) {\n // Remove the query string entirely\n if (match) {\n newState = uri.replace(regex, replacement);\n }\n } else {\n // handle single value type query parameters\n if (match) {\n newState = uri.replace(regex, `$1${queryKey}=${value}$2`);\n } else {\n newState = `${uri + separator + queryKey}=${value}`;\n }\n }\n }\n\n history.replaceState(null, null, newState);\n },\n },\n};\n","\n\n\n","import { render, staticRenderFns } from \"./search.vue?vue&type=template&id=0ced312e&\"\nimport script from \"./search.vue?vue&type=script&lang=js&\"\nexport * from \"./search.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-6[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-6[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search.vue?vue&type=script&lang=js&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showingAddForm)?[_c('div',[_vm._t(\"addform\",null,{\"eventName\":_vm.getAttemptedEventName(),\"firstName\":_vm.getAttemptedFirstName(),\"lastName\":_vm.getAttemptedLastName()})],2)]:[_c('div',{class:_vm.titleClasses},[_c('div',[_vm._t(\"title\"),_vm._v(\" \"),_c('div',{staticClass:\"search-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.search),expression:\"search\"}],class:_vm.inputSize(),attrs:{\"placeholder\":(\" \" + _vm.placeholder)},domProps:{\"value\":(_vm.search)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.search=$event.target.value}}}),_vm._v(\" \"),(_vm.searching)?_c('spinner'):_vm._e()],1)],2),_vm._v(\" \"),_vm._t(\"ctas\")],2),_vm._v(\" \"),_vm._t(\"headers\"),_vm._v(\" \"),_c('div',{class:_vm.resultCountClasses},[_c('small',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.searching && _vm.search.length > 0),expression:\"searching && search.length > 0\"}]},[_vm._v(\"Searching for \"),_c('span',{staticClass:\"text-navy\"},[_vm._v(_vm._s(_vm.search))])]),_vm._v(\" \"),_c('small',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.resultsLoaded && _vm.search.length > 0),expression:\"resultsLoaded && search.length > 0\"}]},[_vm._v(_vm._s(_vm._f(\"resultPluralize\")(_vm.resultCount))+\" for \"),_c('span',{staticClass:\"text-navy\"},[_vm._v(_vm._s(_vm.search))])]),_vm._v(\" \"),(_vm.resultsLoaded && (_vm.resultCount === 0 || _vm.resultCount === '0'))?[_vm._t(\"nothingfound\")]:_vm._e(),_vm._v(\" \"),_c('small',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}]},[_c('span',{staticClass:\"text-danger\"},[_vm._v(_vm._s(_vm.errorMessage))])])],2),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.resultsLoaded),expression:\"resultsLoaded\"}],staticClass:\"search-results\",class:_vm.resultsContainerClasses},[_vm._l((_vm.results),function(result,index){return _vm._t(\"list\",null,{\"index\":index,\"result\":result})}),_vm._v(\" \"),_c('div',{staticClass:\"all-result m-t-xs\",attrs:{\"id\":\"loading-more\"}},[_c('small',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loadingMore),expression:\"loadingMore\"}]},[_vm._v(\"Loading more \"+_vm._s(_vm.getModelNameForResults())+\" matching \"),_c('span',{staticClass:\"text-navy\"},[_vm._v(_vm._s(_vm.search))]),_vm._v(\"...\")]),_vm._v(\" \"),(_vm.loadingMore)?_c('spinner'):_vm._e(),_vm._v(\" \"),_c('small',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.noMoreData && _vm.search !== ''),expression:\"noMoreData && search !== ''\"}]},[_vm._v(\"All \"+_vm._s(_vm.getModelNameForResults())+\" matching \"),_c('span',{staticClass:\"text-navy\"},[_vm._v(_vm._s(_vm.search))]),_vm._v(\" shown\")])],1),_vm._v(\" \"),(_vm.allowAdd)?_c('div',{staticClass:\"add-record\"},[_c('small',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.resultsLoaded && _vm.search.length > 0),expression:\"resultsLoaded && search.length > 0\"}]},[_c('a',{on:{\"click\":function($event){return _vm.showAddClicked()}}},[_vm._v(\"Not found? Create a new \"+_vm._s(_vm.readableModelName))])])]):_vm._e()],2)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./wrestler_kiosk_result.vue?vue&type=template&id=a8972c98&\"\nimport script from \"./wrestler_kiosk_result.vue?vue&type=script&lang=js&\"\nexport * from \"./wrestler_kiosk_result.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-wrestler teammate\"},[(!_vm.noHr)?_c('div',{staticClass:\"hr-line-dashed\",staticStyle:{\"margin\":\"0\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12\"},[_c('div',{staticClass:\"flex p-t-sm p-b-sm\"},[(_vm.avatarExists)?_c('div',{staticClass:\"m-r-m\"},[_c('div',{staticClass:\"image\"},[_c('img',{staticClass:\"kiosk-profile-pic\",attrs:{\"src\":_vm.wrestler.avatar_thumbnail,\"alt\":\"profile picture\"}})])]):_vm._e(),_vm._v(\" \"),_c('div',[_c('div',{staticClass:\"flex flex-wrap gap-x-sm align-items-center\"},[_c('h3',{staticClass:\"m-b-none\",class:{ 'text-gray-300': _vm.hasOnlyPausedSubscription }},[_vm._v(_vm._s(_vm.wrestler.first_name)+\" \"+_vm._s(_vm.wrestler.last_name))]),_vm._v(\" \"),(_vm.rosterTagsWithCount(_vm.wrestler).length > 0)?_c('div',{staticClass:\"flex flex-wrap gap-x-xxs gap-y-xxs items-center\"},_vm._l((_vm.rosterTagsWithCount(_vm.wrestler)),function(tag){return _c('tag',{key:tag.abbreviation,attrs:{\"tag\":tag,\"count\":tag.count}})}),1):_vm._e()]),_vm._v(\" \"),_c('p',{staticClass:\"search-type-label\",class:{ 'text-gray-300': _vm.hasOnlyPausedSubscription }},[_vm._v(\"\\n \"+_vm._s(_vm.wrestler.weight_class)+\" lbs\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"m-l-auto flex-shrink-0\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"disabled\":_vm.hasOnlyPausedSubscription},on:{\"click\":function($event){return _vm.$emit('check-in', _vm.wrestler)}}},[_vm._v(\"\\n Check in\\n \")])])]),_vm._v(\" \"),(_vm.hasOnlyPausedSubscription)?_c('div',{staticClass:\"alert alert-danger\"},[_c('i',{staticClass:\"fa fa-exclamation-triangle\"}),_vm._v(\" \"+_vm._s(_vm.wrestler.first_name)+\" \"+_vm._s(_vm.wrestler.last_name)+\"'s subscription is paused. Please ask a coach/admin to resume payment collection, then check them in.\\n \")]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./reg_address_question.vue?vue&type=template&id=1adbedd0&\"\nimport script from \"./reg_address_question.vue?vue&type=script&lang=js&\"\nexport * from \"./reg_address_question.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reg-address\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12\"},[_c('div',{attrs:{\"role\":\"form\"}},[_c('h3',[_vm._v(_vm._s(_vm.prompt()))]),_vm._v(\" \"),_c('div',{class:_vm.getClass()},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('address1', this.srId)}},[_vm._v(\"\\n Address line 1\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.line1),expression:\"line1\"}],ref:\"line-1\",staticClass:\"form-control\",attrs:{\"id\":this.$srHelper.idFor('address1', this.srId),\"autocomplete\":\"address-line1\",\"type\":\"text\",\"data-cy\":\"address-line-1\"},domProps:{\"value\":(_vm.line1)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.line1=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('address2', this.srId)}},[_vm._v(\"Address line 2 (optional)\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.line2),expression:\"line2\"}],ref:\"line-2\",staticClass:\"form-control\",attrs:{\"id\":this.$srHelper.idFor('address2', this.srId),\"type\":\"text\",\"data-cy\":\"address-line-2\",\"autocomplete\":\"address-line2\"},domProps:{\"value\":(_vm.line2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.line2=$event.target.value}}})]),_vm._v(\" \"),_c('div',{class:_vm.getClass()},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12 col-sm-6 m-b-only-xs-m\"},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('city', this.srId)}},[_vm._v(\"\\n City\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.city),expression:\"city\"}],ref:\"city\",staticClass:\"form-control\",attrs:{\"autocomplete\":\"address-level2\",\"id\":this.$srHelper.idFor('city', this.srId),\"type\":\"text\",\"data-cy\":\"city\"},domProps:{\"value\":(_vm.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.city=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"col-xs-12 col-sm-2 m-b-only-xs-m\"},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('state', this.srId)}},[_vm._v(\"\\n State\\n \")]),_vm._v(\" \"),_c('the-mask',{ref:\"state\",staticClass:\"form-control\",attrs:{\"mask\":\"AA\",\"type\":\"text\",\"data-cy\":\"state\",\"autocomplete\":\"address-level1\",\"id\":this.$srHelper.idFor('state', this.srId)},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"col-xs-12 col-sm-4\"},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('zip', this.srId)}},[_vm._v(\"\\n Zip\\n \")]),_vm._v(\" \"),_c('the-mask',{ref:\"zip\",staticClass:\"form-control\",attrs:{\"mask\":\"#####\",\"type\":\"tel\",\"data-cy\":\"zip\",\"autocomplete\":\"postal-code\",\"id\":this.$srHelper.idFor('zip', this.srId)},nativeOn:{\"blur\":function($event){return _vm.validate()}},model:{value:(_vm.zip),callback:function ($$v) {_vm.zip=$$v},expression:\"zip\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12\"},[_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}],staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])])])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./reg_date_question.vue?vue&type=template&id=7953406a&\"\nimport script from \"./reg_date_question.vue?vue&type=script&lang=js&\"\nexport * from \"./reg_date_question.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reg-date\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12\"},[_c('div',{attrs:{\"role\":\"form\"}},[_c('div',{class:_vm.getClass()},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('date', this.srId)}},[_vm._v(_vm._s(_vm.prompt()))]),_vm._v(\" \"),(_vm.hasSubtext)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.question.subtext)}}):_vm._e(),_vm._v(\" \"),_c('the-mask',{ref:\"date\",staticClass:\"form-control\",attrs:{\"mask\":\"##/##/####\",\"placeholder\":\"mm/dd/yyyy\",\"masked\":true,\"id\":this.$srHelper.idFor('date', this.srId),\"type\":\"tel\"},nativeOn:{\"blur\":function($event){return _vm.validate()}},model:{value:(_vm.answer),callback:function ($$v) {_vm.answer=$$v},expression:\"answer\"}}),_vm._v(\" \"),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}],staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./reg_email_question.vue?vue&type=template&id=620c665a&\"\nimport script from \"./reg_email_question.vue?vue&type=script&lang=js&\"\nexport * from \"./reg_email_question.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reg-email\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12\"},[_c('div',{attrs:{\"role\":\"form\"}},[_c('div',{class:_vm.getClass()},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('email', this.srId)}},[_vm._v(_vm._s(_vm.prompt()))]),_vm._v(\" \"),(_vm.hasSubtext)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.question.subtext)}}):_vm._e(),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.answer),expression:\"answer\"}],ref:\"email\",staticClass:\"form-control\",attrs:{\"id\":this.$srHelper.idFor('email', this.srId),\"type\":\"email\"},domProps:{\"value\":(_vm.answer)},on:{\"blur\":function($event){return _vm.validate()},\"input\":function($event){if($event.target.composing){ return; }_vm.answer=$event.target.value}}}),_vm._v(\" \"),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}],staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./reg_phone_number_question.vue?vue&type=template&id=a4ef1772&\"\nimport script from \"./reg_phone_number_question.vue?vue&type=script&lang=js&\"\nexport * from \"./reg_phone_number_question.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reg-phone-number\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xs-12\"},[_c('div',{attrs:{\"role\":\"form\"}},[_c('div',{class:_vm.getClass()},[_c('label',{attrs:{\"for\":this.$srHelper.idFor('phone_number', this.srId)}},[_vm._v(\"\\n \"+_vm._s(_vm.prompt())+\"\\n \")]),_vm._v(\" \"),(_vm.hasSubtext)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.question.subtext)}}):_vm._e(),_vm._v(\" \"),_c('the-mask',{ref:\"phone\",staticClass:\"form-control\",attrs:{\"mask\":\"(###) ### - ####\",\"id\":this.$srHelper.idFor('phone_number', this.srId),\"type\":\"tel\"},nativeOn:{\"blur\":function($event){return _vm.validate()}},model:{value:(_vm.answer),callback:function ($$v) {_vm.answer=$$v},expression:\"answer\"}}),_vm._v(\" \"),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}],staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar Q = function Q(e) {\n return e instanceof File;\n},\n te = function te(e) {\n return /^image/.test(e.type);\n},\n $ = function $(e, o) {\n var g = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var T = document.createElement(e),\n E = Object.getOwnPropertyDescriptors(T.__proto__);\n\n for (var l in o) {\n l === \"style\" ? T.style.cssText = o[l] : E[l] && E[l].set || /textContent|innerHTML/.test(l) || typeof o[l] == \"function\" ? T[l] = o[l] : T.setAttribute(l, o[l]);\n }\n\n return g.forEach(function (l) {\n return T.appendChild(l);\n }), T;\n};\n\nvar j = null;\n\nvar w = function w() {\n return j === null && (j = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) < \"u\" && _typeof(window.document) < \"u\"), j;\n},\n Ee = w() && !!Node.prototype.replaceChildren,\n de = Ee ? // @ts-ignore\nfunction (e, o) {\n return e.replaceChildren(o);\n} : function (e, o) {\n for (; e.lastChild;) {\n e.removeChild(e.lastChild);\n }\n\n o !== void 0 && e.append(o);\n},\n B = w() && $(\"div\", {\n class: \"PinturaMeasure\",\n style: \"position:absolute;left:0;top:0;width:99999px;height:0;pointer-events:none;contain:strict;margin:0;padding:0;\"\n});\n\nvar X;\n\nvar ce = function ce(e) {\n return de(B, e), B.parentNode || document.body.append(B), clearTimeout(X), X = setTimeout(function () {\n B.remove();\n }, 500), e;\n};\n\nvar H = null;\n\nvar le = function le() {\n return H === null && (H = w() && /^((?!chrome|android).)*(safari|iphone|ipad)/i.test(navigator.userAgent)), H;\n},\n Ie = function Ie(e) {\n return new Promise(function (o, g) {\n var T = !1;\n !e.parentNode && le() && (T = !0, e.style.cssText = \"position:absolute;visibility:hidden;pointer-events:none;left:0;top:0;width:0;height:0;\", ce(e));\n\n var E = function E() {\n var S = e.naturalWidth,\n y = e.naturalHeight;\n S && y && (T && e.remove(), clearInterval(l), o({\n width: S,\n height: y\n }));\n };\n\n e.onerror = function (S) {\n clearInterval(l), g(S);\n };\n\n var l = setInterval(E, 1);\n E();\n });\n},\n _e = function _e(e) {\n return new Promise(function (o, g) {\n var T = function T() {\n o({\n width: e.videoWidth,\n height: e.videoHeight\n });\n };\n\n if (e.readyState >= 1) return T();\n e.onloadedmetadata = T, e.onerror = function () {\n return g(e.error);\n };\n });\n},\n Te = function Te(e) {\n return typeof e == \"string\";\n},\n ue = function ue(e) {\n return new Promise(function (o) {\n var g = Te(e) ? e : URL.createObjectURL(e),\n T = function T() {\n var l = new Image();\n l.src = g, o(l);\n };\n\n if (e instanceof Blob && te(e)) return T();\n var E = document.createElement(\"video\");\n E.preload = \"metadata\", E.onloadedmetadata = function () {\n return o(E);\n }, E.onerror = T, E.src = g;\n });\n},\n fe = function fe(e) {\n return e.nodeName === \"VIDEO\";\n},\n ge = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(e) {\n var o, g;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!e.src) {\n _context.next = 4;\n break;\n }\n\n o = e;\n _context.next = 7;\n break;\n\n case 4:\n _context.next = 6;\n return ue(e);\n\n case 6:\n o = _context.sent;\n\n case 7:\n _context.prev = 7;\n\n if (!fe(o)) {\n _context.next = 14;\n break;\n }\n\n _context.next = 11;\n return _e(o);\n\n case 11:\n _context.t0 = _context.sent;\n _context.next = 17;\n break;\n\n case 14:\n _context.next = 16;\n return Ie(o);\n\n case 16:\n _context.t0 = _context.sent;\n\n case 17:\n g = _context.t0;\n\n case 18:\n _context.prev = 18;\n Q(e) && URL.revokeObjectURL(o.src);\n return _context.finish(18);\n\n case 21:\n return _context.abrupt(\"return\", g);\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[7,, 18, 21]]);\n }));\n\n return function ge(_x) {\n return _ref.apply(this, arguments);\n };\n}(),\n Z = function Z(e) {\n return e instanceof Blob && !(e instanceof File);\n},\n q = function q() {},\n ie = function ie(e) {\n e.width = 1, e.height = 1;\n var o = e.getContext(\"2d\");\n o && o.clearRect(0, 0, 1, 1);\n};\n\nvar W = null;\n\nvar me = function me() {\n if (W === null) if (\"WebGL2RenderingContext\" in window) {\n var e;\n\n try {\n e = $(\"canvas\"), W = !!e.getContext(\"webgl2\");\n } catch (_unused) {\n W = !1;\n }\n\n e && ie(e), e = void 0;\n } else W = !1;\n return W;\n},\n pe = function pe(e, o) {\n return me() ? e.getContext(\"webgl2\", o) : e.getContext(\"webgl\", o) || e.getContext(\"experimental-webgl\", o);\n};\n\nvar k = null;\n\nvar Oe = function Oe() {\n if (k === null) {\n var e = $(\"canvas\");\n k = !!pe(e), ie(e), e = void 0;\n }\n\n return k;\n},\n Re = function Re() {\n return Object.prototype.toString.call(window.operamini) === \"[object OperaMini]\";\n},\n he = function he() {\n return \"Promise\" in window;\n},\n Ge = function Ge() {\n return \"URL\" in window && \"createObjectURL\" in window.URL;\n},\n Ae = function Ae() {\n return \"visibilityState\" in document;\n},\n Me = function Me() {\n return \"performance\" in window;\n},\n Se = function Se() {\n return \"File\" in window;\n};\n\nvar z = null;\n\nvar ee = function ee() {\n return z === null && (z = w() && // Can't run on Opera Mini due to lack of everything\n !Re() && // Require these APIs to feature detect a modern browser\n Ae() && he() && Se() && Ge() && Me()), z;\n},\n Le = function Le(e) {\n var o = e.addFilter,\n g = e.utils,\n T = e.views,\n E = g.Type,\n l = g.createRoute,\n S = T.fileActionButton,\n x = function (_ref2) {\n var _ref2$parallel = _ref2.parallel,\n i = _ref2$parallel === void 0 ? 1 : _ref2$parallel,\n _ref2$autoShift = _ref2.autoShift,\n n = _ref2$autoShift === void 0 ? !0 : _ref2$autoShift;\n var r = [];\n var t = 0;\n\n var s = function s() {\n if (!r.length) return f.oncomplete();\n t++, r.shift()(function () {\n t--, t < i && I();\n });\n },\n I = function I() {\n for (var _ = 0; _ < i - t; _++) {\n s();\n }\n },\n f = {\n queue: function queue(_) {\n r.push(_), n && I();\n },\n runJobs: I,\n oncomplete: function oncomplete() {}\n };\n\n return f;\n }({\n parallel: 1\n }),\n v = function v(i) {\n return i === null ? {} : i;\n };\n\n o(\"SHOULD_REMOVE_ON_REVERT\", function (i, _ref3) {\n var n = _ref3.item,\n r = _ref3.query;\n return new Promise(function (t) {\n var s = n.file,\n I = r(\"GET_ALLOW_IMAGE_EDITOR\") && r(\"GET_IMAGE_EDITOR_ALLOW_EDIT\") && r(\"GET_IMAGE_EDITOR_SUPPORT_EDIT\") && r(\"GET_IMAGE_EDITOR_SUPPORT_IMAGE\")(s);\n t(!I);\n });\n }), o(\"DID_LOAD_ITEM\", function (i, _ref4) {\n var n = _ref4.query,\n r = _ref4.dispatch;\n return new Promise(function (t, s) {\n if (i.origin > 1) {\n t(i);\n return;\n }\n\n var I = i.file;\n if (!n(\"GET_ALLOW_IMAGE_EDITOR\") || !n(\"GET_IMAGE_EDITOR_INSTANT_EDIT\") || !n(\"GET_IMAGE_EDITOR_SUPPORT_IMAGE\")(I)) return t(i);\n\n var f = function f() {\n if (!b.length) return;\n var _b$ = b[0],\n p = _b$.item,\n m = _b$.resolve,\n O = _b$.reject;\n r(\"EDIT_ITEM\", {\n id: p.id,\n handleEditorResponse: _(p, m, O)\n });\n },\n _ = function _(p, m, O) {\n return function (h) {\n b.shift(), h ? m(p) : O(p), r(\"KICK\"), f();\n };\n };\n\n ne({\n item: i,\n resolve: t,\n reject: s\n }), b.length === 1 && f();\n });\n }), o(\"DID_CREATE_ITEM\", function (i, _ref5) {\n var n = _ref5.query,\n r = _ref5.dispatch;\n i.getMetadata(\"color\") && i.setMetadata(\"colors\", i.getMetadata(\"color\")), i.extend(\"edit\", function () {\n r(\"EDIT_ITEM\", {\n id: i.id\n });\n });\n });\n\n var b = [],\n ne = function ne(i) {\n return b.push(i), i;\n },\n oe = function oe(i) {\n var _v = v(i(\"GET_IMAGE_EDITOR\")),\n n = _v.imageProcessor,\n r = _v.imageReader,\n t = _v.imageWriter;\n\n return i(\"GET_IMAGE_EDITOR_WRITE_IMAGE\") && i(\"GET_IMAGE_EDITOR_SUPPORT_WRITE_IMAGE\") && n && r && t;\n },\n re = function re(i, n) {\n var r = i(\"GET_FILE_POSTER_HEIGHT\"),\n t = i(\"GET_FILE_POSTER_MAX_HEIGHT\");\n return r ? (n.width = r * 2, n.height = r * 2) : t && (n.width = t * 2, n.height = t * 2), n;\n },\n J = function J(i, n) {\n var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n if (!n) return;\n if (!i(\"GET_FILE_POSTER_FILTER_ITEM\")(n)) return r();\n\n var _v2 = v(i(\"GET_IMAGE_EDITOR\")),\n t = _v2.imageProcessor,\n s = _v2.imageReader,\n I = _v2.imageWriter,\n f = _v2.editorOptions,\n _ = _v2.legacyDataToImageState,\n p = _v2.imageState;\n\n if (!t) return;\n\n var _s2 = _slicedToArray(s, 2),\n m = _s2[0],\n O = _s2[1],\n _I = _slicedToArray(I, 2),\n _I$ = _I[0],\n h = _I$ === void 0 ? q : _I$,\n L = _I[1],\n P = n.file,\n G = n.getMetadata(\"imageState\"),\n D = re(i, {\n width: 512,\n height: 512\n }),\n U = _objectSpread(_objectSpread({}, f), {}, {\n imageReader: m(O),\n imageWriter: h(_objectSpread(_objectSpread({}, L || {}), {}, {\n // limit memory so poster is created quicker\n canvasMemoryLimit: D.width * D.height * 2,\n // apply legacy data if needed\n preprocessImageState: function preprocessImageState(A, M, K, N) {\n return !G && _ ? _objectSpread(_objectSpread({}, A), _(void 0, N.size, _objectSpread({}, n.getMetadata()))) : A;\n }\n })),\n imageState: _objectSpread(_objectSpread({}, p), G)\n });\n\n x.queue(function (A) {\n t(P, U).then(function (_ref6) {\n var M = _ref6.dest;\n n.setMetadata(\"poster\", URL.createObjectURL(M), !0), A(), r();\n });\n });\n };\n\n o(\"CREATE_VIEW\", function (i) {\n var n = i.is,\n r = i.view,\n t = i.query;\n if (!t(\"GET_ALLOW_IMAGE_EDITOR\") || !t(\"GET_IMAGE_EDITOR_SUPPORT_WRITE_IMAGE\")) return;\n var s = t(\"GET_ALLOW_FILE_POSTER\");\n if (!(n(\"file-info\") && !s || n(\"file\") && s)) return;\n\n var _v3 = v(t(\"GET_IMAGE_EDITOR\")),\n f = _v3.createEditor,\n _ = _v3.imageReader,\n p = _v3.imageWriter,\n m = _v3.editorOptions,\n O = _v3.legacyDataToImageState,\n h = _v3.imageState;\n\n if (!_ || !p || !m || !m.locale) return;\n delete m.imageReader, delete m.imageWriter;\n\n var _ref7 = _slicedToArray(_, 2),\n L = _ref7[0],\n P = _ref7[1],\n G = function G(a) {\n var d = a.id;\n return t(\"GET_ITEM\", d);\n },\n D = function D(a) {\n if (!t(\"GET_ALLOW_FILE_POSTER\")) return !1;\n var d = G(a);\n return d ? t(\"GET_FILE_POSTER_FILTER_ITEM\")(d) ? !!d.getMetadata(\"poster\") : !1 : void 0;\n },\n U = function U(_ref8) {\n var a = _ref8.root,\n d = _ref8.props,\n c = _ref8.action;\n var u = c.handleEditorResponse,\n R = G(d),\n Y = Q(R.file) || Z(R.file),\n se = Y ? R.file : R.source,\n C = f(_objectSpread(_objectSpread({}, m), {}, {\n imageReader: L(P),\n src: se\n }));\n C.on(\"load\", function (_ref9) {\n var V = _ref9.size;\n var F = R.getMetadata(\"imageState\");\n !F && O && (F = O(C, V, R.getMetadata())), C.imageState = _objectSpread(_objectSpread({}, h), F);\n }), C.on(\"process\", function (_ref10) {\n var V = _ref10.src,\n F = _ref10.imageState;\n Y || R.setFile(V), R.setMetadata(\"imageState\", F), u && u(!0);\n }), C.on(\"close\", function () {\n u && u(!1);\n });\n },\n A = function A(_ref11) {\n var a = _ref11.root,\n d = _ref11.props;\n var c = d.id,\n u = t(\"GET_ITEM\", c);\n if (!u) return;\n var R = u.file;\n t(\"GET_IMAGE_EDITOR_SUPPORT_IMAGE\")(R) && (t(\"GET_ALLOW_FILE_POSTER\") && !u.getMetadata(\"poster\") && a.dispatch(\"REQUEST_CREATE_IMAGE_POSTER\", {\n id: c\n }), !(!t(\"GET_IMAGE_EDITOR_ALLOW_EDIT\") || !t(\"GET_IMAGE_EDITOR_SUPPORT_EDIT\")) && M(a, d));\n },\n M = function M(a, d) {\n if (a.ref.handleEdit || (a.ref.handleEdit = function (c) {\n c.stopPropagation(), a.dispatch(\"EDIT_ITEM\", {\n id: d.id\n });\n }), D(d)) {\n a.ref.editButton && a.ref.editButton.parentNode && a.ref.editButton.parentNode.removeChild(a.ref.editButton);\n var c = r.createChildView(S, {\n label: \"edit\",\n icon: t(\"GET_IMAGE_EDITOR_ICON_EDIT\"),\n opacity: 0\n });\n c.element.classList.add(\"filepond--action-edit-item\"), c.element.dataset.align = t(\"GET_STYLE_IMAGE_EDITOR_BUTTON_EDIT_ITEM_POSITION\"), c.on(\"click\", a.ref.handleEdit), a.ref.buttonEditItem = r.appendChildView(c);\n } else {\n a.ref.buttonEditItem && a.removeChildView(a.ref.buttonEditItem);\n\n var _c = r.element.querySelector(\".filepond--file-info-main\"),\n u = document.createElement(\"button\");\n\n u.className = \"filepond--action-edit-item-alt\", u.innerHTML = t(\"GET_IMAGE_EDITOR_ICON_EDIT\") + \"edit\", u.addEventListener(\"click\", a.ref.handleEdit), _c.appendChild(u), a.ref.editButton = u;\n }\n },\n K = function K(_ref12) {\n var a = _ref12.root,\n d = _ref12.props,\n c = _ref12.action;\n if (/imageState/.test(c.change.key) && t(\"GET_ALLOW_FILE_POSTER\")) return a.dispatch(\"REQUEST_CREATE_IMAGE_POSTER\", {\n id: d.id\n });\n /poster/.test(c.change.key) && (!t(\"GET_IMAGE_EDITOR_ALLOW_EDIT\") || !t(\"GET_IMAGE_EDITOR_SUPPORT_EDIT\") || M(a, d));\n };\n\n r.registerDestroyer(function (_ref13) {\n var a = _ref13.root;\n a.ref.buttonEditItem && a.ref.buttonEditItem.off(\"click\", a.ref.handleEdit), a.ref.editButton && a.ref.editButton.removeEventListener(\"click\", a.ref.handleEdit);\n });\n var N = {\n EDIT_ITEM: U,\n DID_LOAD_ITEM: A,\n DID_UPDATE_ITEM_METADATA: K,\n DID_REMOVE_ITEM: function DID_REMOVE_ITEM(_ref14) {\n var a = _ref14.props;\n var d = a.id,\n c = t(\"GET_ITEM\", d);\n if (!c) return;\n var u = c.getMetadata(\"poster\");\n u && URL.revokeObjectURL(u);\n },\n REQUEST_CREATE_IMAGE_POSTER: function REQUEST_CREATE_IMAGE_POSTER(_ref15) {\n var a = _ref15.root,\n d = _ref15.props;\n return J(a.query, G(d));\n },\n DID_FILE_POSTER_LOAD: void 0\n };\n\n if (s) {\n var a = function a(_ref16) {\n var d = _ref16.root;\n d.ref.buttonEditItem && (d.ref.buttonEditItem.opacity = 1);\n };\n\n N.DID_FILE_POSTER_LOAD = a;\n }\n\n r.registerWriter(l(N));\n }), o(\"SHOULD_PREPARE_OUTPUT\", function (i, _ref17) {\n var n = _ref17.query,\n r = _ref17.change,\n t = _ref17.item;\n return new Promise(function (s) {\n if (!n(\"GET_IMAGE_EDITOR_SUPPORT_IMAGE\")(t.file) || r && !/imageState/.test(r.key)) return s(!1);\n s(!n(\"IS_ASYNC\"));\n });\n });\n\n var ae = function ae(i, n, r) {\n return new Promise(function (t) {\n if (!oe(i) || r.archived || !Q(n) && !Z(n) || !i(\"GET_IMAGE_EDITOR_SUPPORT_IMAGE\")(n)) return t(!1);\n ge(n).then(function () {\n var s = i(\"GET_IMAGE_TRANSFORM_IMAGE_FILTER\");\n\n if (s) {\n var I = s(n);\n if (typeof I == \"boolean\") return t(I);\n if (typeof I.then == \"function\") return I.then(t);\n }\n\n t(!0);\n }).catch(function () {\n var s = i(\"GET_IMAGE_EDITOR_SUPPORT_IMAGE_FORMAT\");\n\n if (s && s(n)) {\n t(!0);\n return;\n }\n\n t(!1);\n });\n });\n };\n\n return o(\"PREPARE_OUTPUT\", function (i, _ref18) {\n var n = _ref18.query,\n r = _ref18.item;\n\n var t = function t(s) {\n return new Promise(function (I, f) {\n var _ = function _() {\n x.queue(function (p) {\n var m = r.getMetadata(\"imageState\"),\n _v4 = v(n(\"GET_IMAGE_EDITOR\")),\n O = _v4.imageProcessor,\n h = _v4.imageReader,\n L = _v4.imageWriter,\n P = _v4.editorOptions,\n G = _v4.imageState;\n\n if (!O || !h || !L || !P) return;\n\n var _h = _slicedToArray(h, 2),\n D = _h[0],\n U = _h[1],\n _L = _slicedToArray(L, 2),\n _L$ = _L[0],\n A = _L$ === void 0 ? q : _L$,\n M = _L[1];\n\n O(s, _objectSpread(_objectSpread({}, P), {}, {\n imageReader: D(U),\n imageWriter: A(M),\n imageState: _objectSpread(_objectSpread({}, G), m)\n })).then(I).catch(f).finally(p);\n });\n };\n\n n(\"GET_ALLOW_FILE_POSTER\") && !r.getMetadata(\"poster\") ? J(n, r, _) : _();\n });\n };\n\n return new Promise(function (s) {\n ae(n, i, r).then(function (I) {\n if (!I) return s(i);\n t(i).then(function (f) {\n var _ = n(\"GET_IMAGE_EDITOR_AFTER_WRITE_IMAGE\");\n\n if (_) return Promise.resolve(_(f)).then(s);\n s(f.dest);\n });\n });\n });\n }), {\n options: {\n // enable or disable image editing\n allowImageEditor: [!0, E.BOOLEAN],\n // open editor when image is dropped\n imageEditorInstantEdit: [!1, E.BOOLEAN],\n // allow editing\n imageEditorAllowEdit: [!0, E.BOOLEAN],\n // cannot edit if no WebGL or is <=IE11\n imageEditorSupportEdit: [w() && ee() && Oe(), E.BOOLEAN],\n // receives file and should return true if can edit\n imageEditorSupportImage: [te, E.FUNCTION],\n // receives file, should return true if can be loaded with Pintura\n imageEditorSupportImageFormat: [null, E.FUNCTION],\n // cannot write if is <= IE11\n imageEditorSupportWriteImage: [ee(), E.BOOLEAN],\n // should output image\n imageEditorWriteImage: [!0, E.BOOLEAN],\n // receives written image and can return single or more images\n imageEditorBeforeOpenImage: [void 0, E.FUNCTION],\n // receives written image and can return single or more images\n imageEditorAfterWriteImage: [void 0, E.FUNCTION],\n // editor object\n imageEditor: [null, E.OBJECT],\n // the icon to use for the edit button\n imageEditorIconEdit: ['', E.STRING],\n // location of processing button\n styleImageEditorButtonEditItemPosition: [\"bottom center\", E.STRING]\n }\n };\n};\n\nw() && document.dispatchEvent(new CustomEvent(\"FilePond:pluginloaded\", {\n detail: Le\n}));\nexport { Le as default };","var _excluded = [\"textOutlineWidth\", \"textShadowX\", \"textShadowY\", \"textShadowBlur\", \"textShadowColor\", \"outline\", \"blur\"],\n _excluded2 = [\"controls\"],\n _excluded3 = [\"textContent\", \"innerHTML\"],\n _excluded4 = [\"width\", \"height\"],\n _excluded5 = [\"height\"],\n _excluded6 = [\"strokeWidth\", \"strokeColor\", \"strokeJoin\", \"strokeCap\"],\n _excluded7 = [\"strokeWidth\", \"strokeColor\"],\n _excluded8 = [\"strokeWidth\", \"strokeColor\", \"strokeJoin\", \"strokeCap\"],\n _excluded9 = [\"strokeWidth\", \"strokeColor\"],\n _excluded10 = [\"frameStyle\"];\n\nvar _DirectionCoordinateT, _DirectionRectMap, _DirectionInversionTa;\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n/*!\n* Pintura v8.89.2 \n* (c) 2018-2024 PQINA Inc. - All Rights Reserved\n* License: https://pqina.nl/pintura/license/\n*/\n\n/* eslint-disable */\nvar JFIF_MARKER = 0xffe0;\nvar EXIF_MARKER = 0xffe1;\nvar SOS_MARKER = 0xffda;\nvar XMP_MARKER = 0xffe1;\nvar MPF_MARKER = 0xffe2;\nvar APP2_MARKER = 0xffe2;\nvar Markers = [{\n value: JFIF_MARKER,\n name: 'jfif'\n}, {\n value: SOS_MARKER,\n name: 'sos'\n}, {\n value: EXIF_MARKER,\n subvalue: 0x4578,\n name: 'exif'\n}, {\n value: XMP_MARKER,\n subvalue: 0x6874,\n name: 'xmp'\n}, {\n value: MPF_MARKER,\n subvalue: 0x4d50,\n name: 'mpf'\n}, {\n value: APP2_MARKER,\n name: 'app2'\n}];\nvar JPEG_SOI_MARKER = 0xffd8; // start of JPEG\n\nvar JPEG_MARKER_PREFIX = 0xff;\n\nvar dataViewGetApplicationMarkers = function dataViewGetApplicationMarkers(view) {\n // If no SOI marker exit here because we're not going to find the APP1 header in a non-jpeg file\n if (view.getUint16(0) !== JPEG_SOI_MARKER) return undefined;\n var length = view.byteLength; // cache the length here\n\n var offset = 2; // start at 2 as we skip the SOI marker\n\n var marker; // this will hold the current marker\n // resulting markers\n\n var res = undefined;\n\n while (offset < length) {\n // test if marker is valid JPEG marker (starts with ff)\n if (view.getUint8(offset) !== JPEG_MARKER_PREFIX) break; // let's read the full marker\n\n marker = view.getUint16(offset); // read marker if included in marker types\n\n var markerDescription = Markers.find(function (descriptor) {\n if (descriptor.value === marker) {\n if (descriptor.subvalue) {\n return descriptor.subvalue === view.getUint16(offset + 2 + 2);\n }\n\n return true;\n }\n\n return false;\n });\n\n if (markerDescription) {\n var name = markerDescription.name;\n if (!res) res = {}; // prevent overwriting by double markers\n\n if (!res[name]) {\n res[name] = {\n offset: offset,\n size: view.getUint16(offset + 2)\n };\n }\n } // Image stream starts here, no markers found\n\n\n if (marker === SOS_MARKER) break; // next offset is 2 to skip over marker type and then we add marker data size to skip to next marker\n\n offset += 2 + view.getUint16(offset + 2);\n } // no APP markers found\n\n\n return res;\n};\n\nvar APP1_MARKER = 0xffe1;\nvar APP1_EXIF_IDENTIFIER = 0x45786966;\nvar TIFF_MARKER = 0x002a;\nvar BYTE_ALIGN_MOTOROLA = 0x4d4d;\nvar BYTE_ALIGN_INTEL = 0x4949; // offset = start of APP1_MARKER\n\nvar dataViewGetExifTags = function dataViewGetExifTags(view, offset) {\n // If no APP1 marker exit here because we're not going to find the EXIF id header outside of APP1\n if (view.getUint16(offset) !== APP1_MARKER) return undefined; // get marker size\n\n var size = view.getUint16(offset + 2); // 14197\n // Let's skip over app1 marker and size marker (2 + 2 bytes)\n\n offset += 4; // We're now at the EXIF header marker (we'll only check the first 4 bytes, reads \"exif\"), if not there, exit\n\n if (view.getUint32(offset) !== APP1_EXIF_IDENTIFIER) return undefined; // Let's skip over 6 byte EXIF marker\n\n offset += 6; // Read byte alignment\n\n var byteAlignment = view.getUint16(offset);\n if (byteAlignment !== BYTE_ALIGN_INTEL && byteAlignment !== BYTE_ALIGN_MOTOROLA) return undefined;\n var storedAsLittleEndian = byteAlignment === BYTE_ALIGN_INTEL; // Skip over byte alignment\n\n offset += 2; // Test if valid tiff marker data, should always be 0x002a\n\n if (view.getUint16(offset, storedAsLittleEndian) !== TIFF_MARKER) return undefined; // Skip to first IDF, position of IDF is read after tiff marker (offset 2)\n\n offset += view.getUint32(offset + 2, storedAsLittleEndian); // helper method to find tag offset by marker\n\n var getTagOffsets = function getTagOffsets(marker) {\n var offsets = [];\n var i = offset;\n var max = Math.min(view.byteLength, offset + size - 16);\n\n for (; i < max; i += 12) {\n var tagOffset = i; // see if is match, if not, next entry\n\n if (view.getUint16(tagOffset, storedAsLittleEndian) !== marker) continue; // add offset\n\n offsets.push(tagOffset);\n }\n\n return offsets;\n };\n\n return {\n read: function read(address) {\n var tagOffsets = getTagOffsets(address);\n if (!tagOffsets.length) return undefined; // only return first found tag\n\n return view.getUint16(tagOffsets[0] + 8, storedAsLittleEndian);\n },\n write: function write(address, value) {\n var tagOffsets = getTagOffsets(address);\n if (!tagOffsets.length) return false; // overwrite all found tags (sometimes images can have multiple tags with the same value, let's make sure they're all set)\n\n tagOffsets.forEach(function (offset) {\n return view.setUint16(offset + 8, value, storedAsLittleEndian);\n });\n return true;\n }\n };\n};\n\nvar ORIENTATION_TAG = 0x0112;\n\nvar arrayBufferImageExif = function arrayBufferImageExif(data, key, value) {\n // no data, no go!\n if (!data) return;\n var view = new DataView(data); // Get app1 header offset\n\n var markers = dataViewGetApplicationMarkers(view);\n if (!markers || !markers.exif) return; // Get EXIF tags read/writer\n\n var tags = dataViewGetExifTags(view, markers.exif.offset);\n if (!tags) return; // Read the exif orientation marker\n\n return value === undefined ? tags.read(key) : tags.write(key, value);\n};\n\nvar backup = '__pqina_webapi__';\n\nvar getNativeAPIRef = function getNativeAPIRef(API) {\n return window[backup] ? window[backup][API] : window[API];\n};\n\nvar noop$1 = function noop$1() {};\n\nvar FileReaderDataFormat = {\n ArrayBuffer: 'readAsArrayBuffer'\n};\n\nvar readFile = function readFile(file) {\n var onprogress = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$1;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return new Promise(function (resolve, reject) {\n var _options$dataFormat = options.dataFormat,\n dataFormat = _options$dataFormat === void 0 ? FileReaderDataFormat.ArrayBuffer : _options$dataFormat;\n var reader = new (getNativeAPIRef('FileReader'))();\n\n reader.onload = function () {\n return resolve(reader.result);\n };\n\n reader.onerror = function () {\n return reject(reader.error);\n };\n\n reader.onprogress = onprogress;\n reader[dataFormat](file);\n });\n};\n\nvar blobReadSection = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(blob) {\n var slice,\n onprogress,\n _args = arguments;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n slice = _args.length > 1 && _args[1] !== undefined ? _args[1] : [0, blob.size];\n onprogress = _args.length > 2 ? _args[2] : undefined;\n _context.next = 4;\n return readFile(blob.slice.apply(blob, _toConsumableArray(slice)), onprogress);\n\n case 4:\n return _context.abrupt(\"return\", _context.sent);\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function blobReadSection(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar getImageOrientationFromFile = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(file, onprogress) {\n var head;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return blobReadSection(file, [0, 64 * 4096], onprogress);\n\n case 2:\n head = _context2.sent;\n return _context2.abrupt(\"return\", arrayBufferImageExif(head, ORIENTATION_TAG) || 1);\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function getImageOrientationFromFile(_x2, _x3) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar result$d = null;\n\nvar isBrowser = function isBrowser() {\n if (result$d === null) result$d = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n return result$d;\n};\n\nvar result$c = null;\n\nvar canOrientImages = function canOrientImages() {\n return new Promise(function (resolve) {\n if (result$c === null) {\n // 2x1 pixel image 90CW rotated with orientation EXIF header\n var testSrc = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k=';\n var testImage = isBrowser() ? new Image() : {};\n\n testImage.onload = function () {\n // should correct orientation if is presented in landscape,\n // in which case the browser doesn't autocorrect\n result$c = testImage.naturalWidth === 1;\n testImage = undefined;\n resolve(result$c);\n };\n\n testImage.src = testSrc;\n return;\n }\n\n return resolve(result$c);\n });\n};\n\nvar canvasToImageData = function canvasToImageData(canvas) {\n var imageData = canvas.getContext('2d').getImageData(0, 0, canvas.width, canvas.height);\n return imageData;\n};\n\nvar isString = function isString(v) {\n return typeof v === 'string';\n};\n\nfunction setElementStyles(element, styles) {\n styles.split(';').forEach(function (style) {\n var _style$split = style.split(':'),\n _style$split2 = _slicedToArray(_style$split, 2),\n prop = _style$split2[0],\n value = _style$split2[1];\n\n if (!prop.length || !value) return;\n\n var _value$split = value.split('!important'),\n _value$split2 = _slicedToArray(_value$split, 2),\n cleanValue = _value$split2[0],\n important = _value$split2[1];\n\n element.style.setProperty(prop, cleanValue, isString(important) ? 'important' : undefined);\n });\n}\n\nvar h = function h(name, attributes) {\n var children = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var el = document.createElement(name); // @ts-ignore\n\n var descriptors = Object.getOwnPropertyDescriptors(el.__proto__);\n\n for (var key in attributes) {\n if (key === 'style') {\n setElementStyles(el, attributes[key]);\n } else if (descriptors[key] && descriptors[key].set || /textContent|innerHTML/.test(key) || typeof attributes[key] === 'function') {\n el[key] = attributes[key];\n } else {\n el.setAttribute(key, attributes[key]);\n }\n }\n\n children.forEach(function (child) {\n return el.appendChild(child);\n });\n return el;\n};\n\nvar MATRICES = {\n 1: function _() {\n return [1, 0, 0, 1, 0, 0];\n },\n 2: function _(width) {\n return [-1, 0, 0, 1, width, 0];\n },\n 3: function _(width, height) {\n return [-1, 0, 0, -1, width, height];\n },\n 4: function _(width, height) {\n return [1, 0, 0, -1, 0, height];\n },\n 5: function _() {\n return [0, 1, 1, 0, 0, 0];\n },\n 6: function _(width, height) {\n return [0, 1, -1, 0, height, 0];\n },\n 7: function _(width, height) {\n return [0, -1, -1, 0, height, width];\n },\n 8: function _(width) {\n return [0, -1, 1, 0, 0, width];\n }\n};\n\nvar getImageOrientationMatrix = function getImageOrientationMatrix(width, height) {\n var orientation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;\n if (orientation === -1) orientation = 1;\n return MATRICES[orientation](width, height);\n};\n\nvar releaseCanvas = function releaseCanvas(canvas) {\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx && ctx.clearRect(0, 0, 1, 1);\n};\n\nvar isImageData = function isImageData(obj) {\n return 'data' in obj;\n};\n\nvar isUserAgent = function isUserAgent(test) {\n return isBrowser() ? RegExp(test).test(window.navigator.userAgent) : undefined;\n};\n\nvar result$b = null;\n\nvar isAndroid = function isAndroid() {\n if (result$b === null) result$b = isUserAgent(/Android/);\n return result$b;\n};\n\nvar canvasClone = function canvasClone(canvas, options) {\n var clone = h('canvas', {\n width: canvas.width,\n height: canvas.height\n });\n clone.getContext('2d', options).drawImage(canvas, 0, 0);\n return clone;\n};\n\nvar imageDataToCanvas = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(imageData) {\n var orientation,\n canOrient,\n _ref4,\n _ref5,\n width,\n height,\n canvas,\n ctx,\n inMemoryCanvas,\n _ctx,\n _args3 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n orientation = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : 1;\n _context3.next = 3;\n return canOrientImages();\n\n case 3:\n canOrient = _context3.sent;\n _ref4 = canOrient || orientation < 5 ? [imageData.width, imageData.height] : [imageData.height, imageData.width], _ref5 = _slicedToArray(_ref4, 2), width = _ref5[0], height = _ref5[1];\n canvas = h('canvas', {\n width: width,\n height: height\n });\n ctx = canvas.getContext('2d', {\n willReadFrequently: true\n }); // transform image data ojects into in memory canvas elements so we can transform them (putImageData isn't affect by transforms)\n\n if (isImageData(imageData) && !canOrient && orientation > 1) {\n inMemoryCanvas = h('canvas', {\n width: imageData.width,\n height: imageData.height\n });\n _ctx = inMemoryCanvas.getContext('2d', {\n willReadFrequently: true\n });\n\n _ctx.putImageData(imageData, 0, 0);\n\n imageData = inMemoryCanvas;\n } // get base transformation matrix\n\n\n if (!canOrient && orientation > 1) {\n ctx.transform.apply(ctx, getImageOrientationMatrix(imageData.width, imageData.height, orientation));\n } // can't test for instanceof ImageBitmap as Safari doesn't support it\n // if still imageData object by this point, we'll use put\n\n\n if (!isImageData(imageData)) {\n _context3.next = 15;\n break;\n }\n\n ctx.putImageData(imageData, 0, 0); // Somehow on Android + Intel (not on M1) a toBlob call on the current canvas won't return a valid image blob, for some reason duplicating the canvas solves it #882\n\n if (!isAndroid()) {\n _context3.next = 13;\n break;\n }\n\n return _context3.abrupt(\"return\", canvasClone(canvas));\n\n case 13:\n _context3.next = 16;\n break;\n\n case 15:\n ctx.drawImage(imageData, 0, 0);\n\n case 16:\n // if image data is of type canvas, clean it up\n if (imageData instanceof HTMLCanvasElement) releaseCanvas(imageData);\n return _context3.abrupt(\"return\", canvas);\n\n case 18:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function imageDataToCanvas(_x4) {\n return _ref3.apply(this, arguments);\n };\n}();\n\nvar orientImageData = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(imageData) {\n var orientation,\n _args4 = arguments;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n orientation = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : 1;\n\n if (!(orientation === 1)) {\n _context4.next = 3;\n break;\n }\n\n return _context4.abrupt(\"return\", imageData);\n\n case 3:\n _context4.next = 5;\n return canOrientImages();\n\n case 5:\n if (_context4.sent) {\n _context4.next = 11;\n break;\n }\n\n _context4.t0 = canvasToImageData;\n _context4.next = 9;\n return imageDataToCanvas(imageData, orientation);\n\n case 9:\n _context4.t1 = _context4.sent;\n return _context4.abrupt(\"return\", (0, _context4.t0)(_context4.t1));\n\n case 11:\n return _context4.abrupt(\"return\", imageData);\n\n case 12:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function orientImageData(_x5) {\n return _ref6.apply(this, arguments);\n };\n}();\n\nvar isObject = function isObject(v) {\n return _typeof(v) === 'object';\n};\n\nvar copy = function copy(val) {\n // don't clone html elements\n if (val instanceof HTMLElement) return val; // clone objects\n\n return isObject(val) ? deepCopy(val) : val;\n};\n\nvar deepCopy = function deepCopy(src) {\n var dst;\n\n if (Array.isArray(src)) {\n dst = [];\n src.forEach(function (val, i) {\n dst[i] = copy(val);\n });\n } else {\n dst = {};\n src !== null && Object.keys(src).forEach(function (key) {\n var val = src[key];\n dst[key] = copy(val);\n });\n }\n\n return dst;\n};\n\nvar isFunction = function isFunction(v) {\n return typeof v === 'function';\n};\n\nvar imageToCanvas = function imageToCanvas(image, _ref7) {\n var width = _ref7.width,\n height = _ref7.height,\n canvasMemoryLimit = _ref7.canvasMemoryLimit,\n contextOptions = _ref7.contextOptions;\n var canvasWidth = width || image.naturalWidth;\n var canvasHeight = height || image.naturalHeight; // if no width and no height use defaults\n\n if (!canvasWidth && !canvasHeight) {\n // if these are 0 it's possible that we're trying to convert an SVG that doesn't have width or height attributes\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1328124\n canvasWidth = 300;\n canvasHeight = 150;\n } // determine if requires more memory than limit, if so limit target size\n\n\n var requiredCanvasMemory = canvasWidth * canvasHeight;\n\n if (canvasMemoryLimit && requiredCanvasMemory > canvasMemoryLimit) {\n var canvasScalar = Math.sqrt(canvasMemoryLimit) / Math.sqrt(requiredCanvasMemory);\n canvasWidth = Math.floor(canvasWidth * canvasScalar);\n canvasHeight = Math.floor(canvasHeight * canvasScalar);\n } // create new canvas element\n\n\n var canvas = h('canvas');\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n var ctx = canvas.getContext('2d', contextOptions);\n ctx.drawImage(image, 0, 0, canvasWidth, canvasHeight);\n return canvas;\n}; // turns image into canvas only after it's fully loaded\n\n\nvar imageToCanvasSafe = function imageToCanvasSafe(image, options) {\n return new Promise(function (resolve, reject) {\n var ready = function ready() {\n return resolve(imageToCanvas(image, options));\n };\n\n if (image.complete && image.width) {\n // need to test for image.width, on ie11 it will be 0 for object urls\n ready();\n } else {\n image.onload = ready;\n\n image.onerror = function () {\n return reject(new Error('Failed to load image'));\n };\n }\n });\n};\n\nvar blobToCanvas = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(imageBlob, options) {\n var imageElement, canvas;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n imageElement = h('img', {\n src: URL.createObjectURL(imageBlob)\n });\n _context5.next = 3;\n return imageToCanvasSafe(imageElement, options);\n\n case 3:\n canvas = _context5.sent;\n URL.revokeObjectURL(imageElement.src);\n return _context5.abrupt(\"return\", canvas);\n\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function blobToCanvas(_x6, _x7) {\n return _ref8.apply(this, arguments);\n };\n}();\n\nvar canCreateImageBitmap = function canCreateImageBitmap() {\n return 'createImageBitmap' in window;\n};\n\nvar canCreateOffscreenCanvas = function canCreateOffscreenCanvas() {\n return 'OffscreenCanvas' in window;\n};\n\nvar isSVGFile = function isSVGFile(blob) {\n return /svg/.test(blob.type);\n};\n\nvar getUniqueId = function getUniqueId() {\n return Math.random().toString(36).substring(2, 9);\n};\n\nvar functionToBlob = function functionToBlob(fn) {\n return new Blob(['(', typeof fn === 'function' ? fn.toString() : fn, ')()'], {\n type: 'application/javascript'\n });\n};\n\nvar wrapFunction = function wrapFunction(fn) {\n return \"function () {self.onmessage = function (message) {(\".concat(fn.toString(), \").apply(null, message.data.content.concat([function (err, response) {\\n response = response || {};\\n const transfer = 'data' in response ? [response.data.buffer] : 'width' in response ? [response] : [];\\n return self.postMessage({ id: message.data.id, content: response, error: err }, transfer);\\n}]))}}\");\n};\n\nvar workerPool = new Map();\n\nvar thread = function thread(fn, args, transferList) {\n return new Promise(function (resolve, reject) {\n var workerKey = fn.toString();\n var pooledWorker = workerPool.get(workerKey);\n\n if (!pooledWorker) {\n // create worker for this function\n var workerFn = wrapFunction(fn); // create a new web worker\n\n var url = URL.createObjectURL(functionToBlob(workerFn));\n var messages = new Map();\n var worker = new Worker(url); // create a pooled worker, this object will contain the worker and active messages\n\n pooledWorker = {\n url: url,\n worker: worker,\n messages: messages,\n terminationTimeout: undefined,\n terminate: function terminate() {\n clearTimeout(pooledWorker.terminationTimeout);\n pooledWorker.worker.terminate();\n URL.revokeObjectURL(url);\n workerPool.delete(workerKey);\n }\n }; // handle received messages\n\n worker.onmessage = function (e) {\n // should receive message id and message\n var _e$data = e.data,\n id = _e$data.id,\n content = _e$data.content,\n error = _e$data.error; // automatically clean up workers after half a second\n\n clearTimeout(pooledWorker.terminationTimeout);\n pooledWorker.terminationTimeout = setTimeout(function () {\n if (messages.size > 0) return;\n pooledWorker.terminate();\n }, 500); // message route no longer valid\n\n if (!messages.has(id)) return; // get related thread and resolve with returned content\n\n var message = messages.get(id); // remove thread from threads cache\n\n messages.delete(id); // resolve or reject message based on response from worker\n\n error != null ? message.reject(error) : message.resolve(content);\n }; // pool this worker\n\n\n workerPool.set(workerKey, pooledWorker);\n } // we need a way to remember this message so we generate a unique id and use that as a key for this request, that way we can link the response back to request in the pooledWorker.onmessage handler\n\n\n var messageId = getUniqueId();\n pooledWorker.messages.set(messageId, {\n resolve: resolve,\n reject: reject\n }); // use pooled worker and await response\n\n pooledWorker.worker.postMessage({\n id: messageId,\n content: args\n }, transferList);\n });\n};\n\nvar result$a = null;\n\nvar isFirefox = function isFirefox() {\n if (result$a === null) result$a = isUserAgent(/Firefox/);\n return result$a;\n};\n\nvar mainThreadBlobToImageData = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(imageBlob, canvasMemoryLimit) {\n var canvas, imageData;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return blobToCanvas(imageBlob, {\n canvasMemoryLimit: canvasMemoryLimit,\n contextOptions: {\n willReadFrequently: true\n }\n });\n\n case 2:\n canvas = _context6.sent;\n imageData = canvasToImageData(canvas);\n releaseCanvas(canvas);\n return _context6.abrupt(\"return\", imageData);\n\n case 6:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function mainThreadBlobToImageData(_x8, _x9) {\n return _ref9.apply(this, arguments);\n };\n}();\n\nvar blobToImageData = /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(imageBlob, canvasMemoryLimit) {\n var imageData;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n if (!(isAndroid() && !isFirefox())) {\n _context7.next = 4;\n break;\n }\n\n _context7.next = 3;\n return mainThreadBlobToImageData(imageBlob, canvasMemoryLimit);\n\n case 3:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 4:\n if (!(canCreateImageBitmap() && !isSVGFile(imageBlob) && canCreateOffscreenCanvas())) {\n _context7.next = 13;\n break;\n }\n\n _context7.prev = 5;\n _context7.next = 8;\n return thread(function (file, canvasMemoryLimit, done) {\n createImageBitmap(file).then(function (bitmap) {\n var canvasWidth = bitmap.width;\n var canvasHeight = bitmap.height; // determine if requires more memory than limit, if so limit target size\n\n var requiredCanvasMemory = canvasWidth * canvasHeight;\n\n if (canvasMemoryLimit && requiredCanvasMemory > canvasMemoryLimit) {\n var canvasScalar = Math.sqrt(canvasMemoryLimit) / Math.sqrt(requiredCanvasMemory);\n canvasWidth = Math.floor(canvasWidth * canvasScalar);\n canvasHeight = Math.floor(canvasHeight * canvasScalar);\n }\n\n var canvas = new OffscreenCanvas(canvasWidth, canvasHeight);\n var ctx = canvas.getContext('2d', {\n // we're going to read from this canvas, don't hardware accelerate\n willReadFrequently: true\n });\n ctx.drawImage(bitmap, 0, 0, canvasWidth, canvasHeight);\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n done(null, imageData);\n }).catch(function (err) {\n // fail silently\n done(err);\n });\n }, [imageBlob, canvasMemoryLimit]);\n\n case 8:\n imageData = _context7.sent;\n _context7.next = 13;\n break;\n\n case 11:\n _context7.prev = 11;\n _context7.t0 = _context7[\"catch\"](5);\n\n case 13:\n if (!(!imageData || !imageData.width)) {\n _context7.next = 17;\n break;\n }\n\n _context7.next = 16;\n return mainThreadBlobToImageData(imageBlob, canvasMemoryLimit);\n\n case 16:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 17:\n return _context7.abrupt(\"return\", imageData);\n\n case 18:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, null, [[5, 11]]);\n }));\n\n return function blobToImageData(_x10, _x11) {\n return _ref10.apply(this, arguments);\n };\n}();\n\nvar canvasToBlob = function canvasToBlob(canvas) {\n var mimeType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var quality = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n return new Promise(function (resolve, reject) {\n try {\n canvas.toBlob(function (blob) {\n if (!blob) return reject(new Error('Failed to create blob'));\n resolve(blob);\n }, mimeType, quality);\n } catch (err) {\n reject(err);\n }\n });\n};\n\nvar imageDataToBlob = /*#__PURE__*/function () {\n var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(imageData, mimeType, quality) {\n var canvas, blob;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return imageDataToCanvas(imageData);\n\n case 2:\n canvas = _context8.sent;\n _context8.next = 5;\n return canvasToBlob(canvas, mimeType, quality);\n\n case 5:\n blob = _context8.sent;\n releaseCanvas(canvas);\n return _context8.abrupt(\"return\", blob);\n\n case 8:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n return function imageDataToBlob(_x12, _x13, _x14) {\n return _ref11.apply(this, arguments);\n };\n}();\n\nvar mimeTypes = {\n matroska: 'mkv'\n};\n\nvar getExtensionFromMimeType = function getExtensionFromMimeType(mimeType) {\n var ext = (mimeType.match(/\\/([a-z0-9]+)/) || [])[1];\n\n if (/^x/.test(ext)) {\n var _mimeType$split = mimeType.split('/x-'),\n _mimeType$split2 = _slicedToArray(_mimeType$split, 2),\n _mimeType$split2$ = _mimeType$split2[1],\n _post = _mimeType$split2$ === void 0 ? '' : _mimeType$split2$;\n\n return mimeTypes[_post];\n }\n\n return ext;\n};\n\nvar getFilenameWithoutExtension = function getFilenameWithoutExtension(name) {\n return name.substring(0, name.lastIndexOf('.')) || name;\n};\n\nvar getExtensionFromFilename = function getExtensionFromFilename(filename) {\n return filename.split('.').pop();\n};\n\nvar ImageExtensionsRegex = /avif|bmp|gif|jpg|jpeg|jpe|jif|jfif|png|svg|tiff|webp/;\n/*\nSupport image mime types\n- image/webp\n- image/gif\n- image/avif\n- image/jpeg\n- image/png\n- image/bmp\n- image/svg+xml\n*/\n\nvar getMimeTypeFromExtension = function getMimeTypeFromExtension(ext) {\n // empty string returned if extension not found\n if (!ImageExtensionsRegex.test(ext)) return ''; // return MimeType for this extension\n\n return 'image/' + (/jfif|jif|jpe|jpg/.test(ext) ? 'jpeg' : ext === 'svg' ? 'svg+xml' : ext);\n};\n\nvar getMimeTypeFromFilename = function getMimeTypeFromFilename(name) {\n return name && getMimeTypeFromExtension(getExtensionFromFilename(name).toLowerCase());\n};\n\nvar matchFilenameToMimeType = function matchFilenameToMimeType(filename, mimeType) {\n // get the mime type that matches this extension\n var fileMimeType = getMimeTypeFromFilename(filename); // test if type already matches current mime type, no need to change name\n\n if (fileMimeType === mimeType) return filename; // get the extension for this mimetype (gets all characters after the \"image/\" part)\n // if mimeType doesn't yield an extension, use the fileMimeType\n\n var targetMimeTypeExtension = getExtensionFromMimeType(mimeType) || fileMimeType;\n return \"\".concat(getFilenameWithoutExtension(filename), \".\").concat(targetMimeTypeExtension);\n};\n\nvar blobToFile = function blobToFile(blob, filename, mimetype) {\n var lastModified = new Date().getTime();\n var blobHasMimeType = blob.type.length && !/null|text/.test(blob.type);\n var blobMimeType = blobHasMimeType ? blob.type : mimetype;\n var name = matchFilenameToMimeType(filename, blobMimeType);\n\n try {\n return new (getNativeAPIRef('File'))([blob], name, {\n lastModified: lastModified,\n type: blobHasMimeType ? blob.type : blobMimeType\n });\n } catch (err) {\n var file = blobHasMimeType ? blob.slice() : blob.slice(0, blob.size, blobMimeType);\n file.lastModified = lastModified;\n file.name = name;\n return file;\n }\n};\n\nvar getAspectRatio = function getAspectRatio(w, h) {\n return w / h;\n};\n\nvar passthrough = function passthrough(v) {\n return v;\n};\n\nvar PI = Math.PI;\nvar HALF_PI = Math.PI / 2;\nvar QUART_PI = HALF_PI / 2;\n\nvar isRotatedSideways = function isRotatedSideways(a) {\n var rotationLimited = Math.abs(a) % Math.PI;\n return rotationLimited > QUART_PI && rotationLimited < Math.PI - QUART_PI;\n}; // enum Direction {\n// Top = 't',\n// Right = 'r',\n// Bottom = 'b',\n// Left = 'l',\n// TopLeft = 'tl',\n// TopRight = 'tr',\n// BottomRight = 'br',\n// BottomLeft = 'bl',\n// }\n// export const { Top, Right, Bottom, Left, TopLeft, TopRight, BottomRight, BottomLeft } = Direction;\n// export default Direction;\n\n\nvar Direction = {\n Top: 't',\n Right: 'r',\n Bottom: 'b',\n Left: 'l',\n TopLeft: 'tl',\n TopRight: 'tr',\n BottomRight: 'br',\n BottomLeft: 'bl'\n};\nvar Top = Direction.Top,\n Right = Direction.Right,\n Bottom = Direction.Bottom,\n Left = Direction.Left,\n TopLeft = Direction.TopLeft,\n TopRight = Direction.TopRight,\n BottomRight = Direction.BottomRight,\n BottomLeft = Direction.BottomLeft;\nvar DirectionCoordinateTable = (_DirectionCoordinateT = {}, _defineProperty(_DirectionCoordinateT, Top, [0.5, 0]), _defineProperty(_DirectionCoordinateT, Right, [1, 0.5]), _defineProperty(_DirectionCoordinateT, Bottom, [0.5, 1]), _defineProperty(_DirectionCoordinateT, Left, [0, 0.5]), _defineProperty(_DirectionCoordinateT, TopLeft, [0, 0]), _defineProperty(_DirectionCoordinateT, TopRight, [1, 0]), _defineProperty(_DirectionCoordinateT, BottomRight, [1, 1]), _defineProperty(_DirectionCoordinateT, BottomLeft, [0, 1]), _DirectionCoordinateT);\n\nvar fixPrecision = function fixPrecision(value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12;\n return parseFloat(value.toFixed(precision));\n}; //\n// generic\n//\n\n\nvar scale = function scale(value, scalar, pivot) {\n return pivot + (value - pivot) * scalar;\n};\n\nvar ellipseCreateFromRect = function ellipseCreateFromRect(rect) {\n return {\n x: rect.x + rect.width * 0.5,\n y: rect.y + rect.height * 0.5,\n rx: rect.width * 0.5,\n ry: rect.height * 0.5\n };\n}; //\n// vector\n//\n\n\nvar vectorCreateEmpty = function vectorCreateEmpty() {\n return vectorCreate(0, 0);\n};\n\nvar vectorCreate = function vectorCreate(x, y) {\n return {\n x: x,\n y: y\n };\n};\n\nvar vectorCreateFromSize = function vectorCreateFromSize(size) {\n return vectorCreate(size.width, size.height);\n};\n\nvar vectorCreateFromAny = function vectorCreateFromAny(obj) {\n return vectorCreate(obj.x, obj.y);\n};\n\nvar vectorCreateFromPointerEvent = function vectorCreateFromPointerEvent(e) {\n return vectorCreate(e.pageX, e.pageY);\n};\n\nvar vectorCreateFromPointerEventOffset = function vectorCreateFromPointerEventOffset(e) {\n return vectorCreate(e.offsetX, e.offsetY);\n};\n\nvar vectorClone = function vectorClone(v) {\n return vectorCreate(v.x, v.y);\n};\n\nvar vectorUpdate = function vectorUpdate(v, x, y) {\n v.x = x;\n v.y = y;\n return v;\n};\n\nvar vectorInvert = function vectorInvert(v) {\n v.x = -v.x;\n v.y = -v.y;\n return v;\n};\n\nvar vectorPerpendicular = function vectorPerpendicular(v) {\n var x = v.x;\n v.x = -v.y;\n v.y = x;\n return v;\n};\n\nvar vectorRotate = function vectorRotate(v, radians) {\n var pivot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : vectorCreateEmpty();\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n var tx = v.x - pivot.x;\n var ty = v.y - pivot.y;\n v.x = pivot.x + cos * tx - sin * ty;\n v.y = pivot.y + sin * tx + cos * ty;\n return v;\n};\n\nvar vectorLength = function vectorLength(v) {\n return Math.sqrt(v.x * v.x + v.y * v.y);\n};\n\nvar vectorNormalize = function vectorNormalize(v) {\n var length = Math.sqrt(v.x * v.x + v.y * v.y);\n if (length === 0) return vectorCreateEmpty();\n v.x /= length;\n v.y /= length;\n return v;\n};\n\nvar vectorAngle = function vectorAngle(v) {\n return Math.atan2(v.y, v.x);\n};\n\nvar vectorAngleBetween = function vectorAngleBetween(a, b) {\n return Math.atan2(b.y - a.y, b.x - a.x);\n};\n\nvar vectorEqual = function vectorEqual(a, b) {\n return a.x === b.x && a.y === b.y;\n};\n\nvar vectorApply = function vectorApply(v, fn) {\n v.x = fn(v.x);\n v.y = fn(v.y);\n return v;\n};\n\nvar vectorInSize = function vectorInSize(v, size) {\n return v.x >= 0 && v.y >= 0 && v.x <= size.width && v.y <= size.height;\n};\n\nvar vectorAdd = function vectorAdd(a, b) {\n a.x += b.x;\n a.y += b.y;\n return a;\n};\n\nvar vectorSubtract = function vectorSubtract(a, b) {\n a.x -= b.x;\n a.y -= b.y;\n return a;\n};\n\nvar vectorDivide = function vectorDivide(v, l) {\n v.x /= l;\n v.y /= l;\n return v;\n};\n\nvar vectorMultiply = function vectorMultiply(v, f) {\n v.x *= f;\n v.y *= f;\n return v;\n};\n\nvar vectorDot = function vectorDot(a, b) {\n return a.x * b.x + a.y * b.y;\n};\n\nvar vectorCross = function vectorCross(a, b) {\n return a.x * b.y - a.y * b.x;\n};\n\nvar vectorDistanceSquared = function vectorDistanceSquared(a) {\n var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : vectorCreateEmpty();\n var x = a.x - b.x;\n var y = a.y - b.y;\n return x * x + y * y;\n};\n\nvar vectorDistance = function vectorDistance(a) {\n var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : vectorCreateEmpty();\n return Math.sqrt(vectorDistanceSquared(a, b));\n};\n\nvar vectorScale = function vectorScale(v, scalar, pivot) {\n v.x = scale(v.x, scalar, pivot.x);\n v.y = scale(v.y, scalar, pivot.y);\n return v;\n};\n\nvar vectorCenter = function vectorCenter(v) {\n var x = 0;\n var y = 0;\n v.forEach(function (v) {\n x += v.x;\n y += v.y;\n });\n return vectorCreate(x / v.length, y / v.length);\n};\n\nvar vectorsFlip = function vectorsFlip(points, flipX, flipY, cx, cy) {\n points.forEach(function (point) {\n point.x = flipX ? cx - (point.x - cx) : point.x;\n point.y = flipY ? cy - (point.y - cy) : point.y;\n });\n return points;\n};\n\nvar vectorsRotate = function vectorsRotate(points, angle, cx, cy) {\n var s = Math.sin(angle);\n var c = Math.cos(angle);\n points.forEach(function (p) {\n p.x -= cx;\n p.y -= cy;\n var rx = p.x * c - p.y * s;\n var ry = p.x * s + p.y * c;\n p.x = cx + rx;\n p.y = cy + ry;\n });\n return points;\n}; //\n// size\n//\n\n\nvar toSize = function toSize(width, height) {\n return {\n width: width,\n height: height\n };\n};\n\nvar sizeClone = function sizeClone(size) {\n return toSize(size.width, size.height);\n};\n\nvar sizeCreateFromAny = function sizeCreateFromAny(obj) {\n return toSize(obj.width, obj.height);\n};\n\nvar sizeCreateFromRect = function sizeCreateFromRect(r) {\n return toSize(r.width, r.height);\n};\n\nvar sizeCreateFromArray = function sizeCreateFromArray(a) {\n return toSize(a[0], a[1]);\n};\n\nvar sizeCreateFromImageNaturalSize = function sizeCreateFromImageNaturalSize(image) {\n return toSize(image.naturalWidth, image.naturalHeight);\n};\n\nvar sizeCreateFromElement = function sizeCreateFromElement(element) {\n if (/img/i.test(element.nodeName)) {\n return sizeCreateFromImageNaturalSize(element);\n }\n\n return sizeCreateFromAny(element);\n};\n\nvar sizeCreate = function sizeCreate(width, height) {\n return toSize(width, height);\n};\n\nvar sizeEqual = function sizeEqual(a, b) {\n var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : passthrough;\n return format(a.width) === format(b.width) && format(a.height) === format(b.height);\n};\n\nvar sizeScale = function sizeScale(size, scalar) {\n size.width *= scalar;\n size.height *= scalar;\n return size;\n};\n\nvar sizeCenter = function sizeCenter(size) {\n return vectorCreate(size.width * 0.5, size.height * 0.5);\n};\n\nvar sizeRotate = function sizeRotate(size, radians) {\n var r = Math.abs(radians);\n var cos = Math.abs(Math.cos(r));\n var sin = Math.abs(Math.sin(r));\n var w = cos * size.width + sin * size.height;\n var h = sin * size.width + cos * size.height;\n size.width = w;\n size.height = h;\n return size;\n};\n\nvar sizeTurn = function sizeTurn(size, radians) {\n var w = size.width;\n var h = size.height;\n\n if (isRotatedSideways(radians)) {\n size.width = h;\n size.height = w;\n }\n\n return size;\n};\n\nvar sizeContains = function sizeContains(a, b) {\n return a.width >= b.width && a.height >= b.height;\n};\n\nvar sizeApply = function sizeApply(size, fn) {\n size.width = fn(size.width);\n size.height = fn(size.height);\n return size;\n};\n\nvar sizeHypotenuse = function sizeHypotenuse(size) {\n return Math.sqrt(size.width * size.width + size.height * size.height);\n};\n\nvar sizeMin = function sizeMin(a, b) {\n return sizeCreate(Math.min(a.width, b.width), Math.min(a.height, b.height));\n}; //\n// line\n//\n\n\nvar lineCreate = function lineCreate(start, end) {\n return {\n start: start,\n end: end\n };\n};\n\nvar lineClone = function lineClone(line) {\n return lineCreate(vectorClone(line.start), vectorClone(line.end));\n};\n\nvar lineExtend = function lineExtend(line, amount) {\n if (amount === 0) return line;\n var v = vectorCreate(line.start.x - line.end.x, line.start.y - line.end.y);\n var n = vectorNormalize(v);\n var m = vectorMultiply(n, amount);\n line.start.x += m.x;\n line.start.y += m.y;\n line.end.x -= m.x;\n line.end.y -= m.y;\n return line;\n};\n\nvar lineMultiply = function lineMultiply(line, amount) {\n if (amount === 0) return line;\n var v = vectorCreate(line.start.x - line.end.x, line.start.y - line.end.y);\n var n = vectorNormalize(v);\n var m = vectorMultiply(n, amount);\n line.end.x += m.x;\n line.end.y += m.y;\n return line;\n};\n\nvar lineExtrude = function lineExtrude(_ref12, amount) {\n var start = _ref12.start,\n end = _ref12.end;\n if (amount === 0) return [vectorCreate(start.x, start.y), vectorCreate(start.x, start.y), vectorCreate(end.x, end.y), vectorCreate(end.x, end.y)];\n var a = Math.atan2(end.y - start.y, end.x - start.x);\n var sina = Math.sin(a) * amount;\n var cosa = Math.cos(a) * amount;\n return [vectorCreate(sina + start.x, -cosa + start.y), vectorCreate(-sina + start.x, cosa + start.y), vectorCreate(-sina + end.x, cosa + end.y), vectorCreate(sina + end.x, -cosa + end.y)];\n}; //\n// rect\n//\n\n\nvar CornerSigns = [vectorCreate(-1, -1), vectorCreate(-1, 1), vectorCreate(1, 1), vectorCreate(1, -1)];\n\nvar toRect = function toRect(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n};\n\nvar rectClone$1 = function rectClone$1(rect) {\n return toRect(rect.x, rect.y, rect.width, rect.height);\n};\n\nvar rectCreateEmpty = function rectCreateEmpty() {\n return toRect(0, 0, 0, 0);\n};\n\nvar rectCreateFromDimensions = function rectCreateFromDimensions(width, height) {\n return toRect(0, 0, width, height);\n};\n\nvar rectCreateFromSize = function rectCreateFromSize(size) {\n return toRect(0, 0, size.width, size.height);\n};\n\nvar rectCreateFromBounds = function rectCreateFromBounds(bounds) {\n return toRect(bounds[3], bounds[0], bounds[1] - bounds[3], bounds[2] - bounds[0]);\n};\n\nvar rectCreateFromAny = function rectCreateFromAny(obj) {\n return toRect(obj.x || 0, obj.y || 0, obj.width || 0, obj.height || 0);\n};\n\nvar rectCreateFromPoints = function rectCreateFromPoints(points) {\n var xMin = points[0].x;\n var xMax = points[0].x;\n var yMin = points[0].y;\n var yMax = points[0].y;\n points.forEach(function (point) {\n xMin = Math.min(xMin, point.x);\n xMax = Math.max(xMax, point.x);\n yMin = Math.min(yMin, point.y);\n yMax = Math.max(yMax, point.y);\n });\n return toRect(xMin, yMin, xMax - xMin, yMax - yMin);\n};\n\nvar rectCreateFromEllipse = function rectCreateFromEllipse(ellipse) {\n return rectCreate(ellipse.x - ellipse.rx, ellipse.y - ellipse.ry, ellipse.rx * 2, ellipse.ry * 2);\n};\n\nvar rectCreateWithCenter = function rectCreateWithCenter(center, size) {\n return toRect(center.x - size.width * 0.5, center.y - size.height * 0.5, size.width, size.height);\n};\n\nvar rectCreate = function rectCreate(x, y, width, height) {\n return toRect(x, y, width, height);\n};\n\nvar rectCenter = function rectCenter(rect) {\n return vectorCreate(rect.x + rect.width * 0.5, rect.y + rect.height * 0.5);\n};\n\nvar rectTranslate$1 = function rectTranslate$1(rect, t) {\n rect.x += t.x;\n rect.y += t.y;\n return rect;\n};\n\nvar rectScale$1 = function rectScale$1(rect, scalar, pivot) {\n pivot = pivot || rectCenter(rect);\n rect.x = scalar * (rect.x - pivot.x) + pivot.x;\n rect.y = scalar * (rect.y - pivot.y) + pivot.y;\n rect.width = scalar * rect.width;\n rect.height = scalar * rect.height;\n return rect;\n};\n\nvar rectClamp = function rectClamp(rect, sizeMin, sizeMax, pivot) {\n var x = (pivot.x - rect.x) / rect.width;\n var y = (pivot.y - rect.y) / rect.height;\n var width = Math.max(sizeMin.width, rect.width);\n var height = Math.max(sizeMin.height, rect.height);\n width = Math.min(sizeMax.width, width);\n height = Math.min(sizeMax.height, height);\n rect.x = pivot.x - x * width;\n rect.y = pivot.y - y * height;\n rect.width = width;\n rect.height = height;\n return rect;\n};\n\nvar rectGetCornerByTarget = function rectGetCornerByTarget(rect, target) {\n var _DirectionCoordinateT2 = _slicedToArray(DirectionCoordinateTable[target], 2),\n xf = _DirectionCoordinateT2[0],\n yf = _DirectionCoordinateT2[1];\n\n var x = xf * rect.width;\n var y = yf * rect.height;\n return vectorCreate(rect.x + x, rect.y + y);\n};\n\nvar rectMultiply = function rectMultiply(rect, factor) {\n rect.x *= factor;\n rect.y *= factor;\n rect.width *= factor;\n rect.height *= factor;\n return rect;\n};\n\nvar rectDivide = function rectDivide(rect, factor) {\n rect.x /= factor;\n rect.y /= factor;\n rect.width /= factor;\n rect.height /= factor;\n return rect;\n};\n\nvar rectSubtract = function rectSubtract(a, b) {\n a.x -= b.x;\n a.y -= b.y;\n a.width -= b.width;\n a.height -= b.height;\n return a;\n};\n\nvar rectAdd = function rectAdd(a, b) {\n a.x += b.x;\n a.y += b.y;\n a.width += b.width;\n a.height += b.height;\n return a;\n};\n\nvar rectEqual = function rectEqual(a, b) {\n var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : passthrough;\n return format(a.x) === format(b.x) && format(a.y) === format(b.y) && format(a.width) === format(b.width) && format(a.height) === format(b.height);\n};\n\nvar rectAspectRatio = function rectAspectRatio(rect) {\n return getAspectRatio(rect.width, rect.height);\n};\n\nvar rectUpdate = function rectUpdate(rect, x, y, width, height) {\n rect.x = x;\n rect.y = y;\n rect.width = width;\n rect.height = height;\n return rect;\n};\n\nvar rectUpdateWithRect = function rectUpdateWithRect(a, b) {\n a.x = b.x;\n a.y = b.y;\n a.width = b.width;\n a.height = b.height;\n return a;\n};\n\nvar rectRotate = function rectRotate(rect, radians, pivot) {\n if (!pivot) pivot = rectCenter(rect);\n return rectGetCorners(rect).map(function (vertex) {\n return vectorRotate(vertex, radians, pivot);\n });\n};\n\nvar rectCenterRect = function rectCenterRect(a, b) {\n return toRect(a.width * 0.5 - b.width * 0.5, a.height * 0.5 - b.height * 0.5, b.width, b.height);\n};\n\nvar rectContainsPoint = function rectContainsPoint(rect, point) {\n if (point.x < rect.x) return false;\n if (point.y < rect.y) return false;\n if (point.x > rect.x + rect.width) return false;\n if (point.y > rect.y + rect.height) return false;\n return true;\n};\n\nvar rectCoverRect = function rectCoverRect(rect, aspectRatio) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : vectorCreateEmpty();\n if (rect.width === 0 || rect.height === 0) return rectCreateEmpty();\n var inputAspectRatio = rectAspectRatio(rect);\n if (!aspectRatio) aspectRatio = inputAspectRatio;\n var width = rect.width;\n var height = rect.height;\n\n if (aspectRatio > inputAspectRatio) {\n // height remains the same, width is expanded\n width = height * aspectRatio;\n } else {\n // width remains the same, height is expanded\n height = width / aspectRatio;\n }\n\n return toRect(offset.x + (rect.width - width) * 0.5, offset.y + (rect.height - height) * 0.5, width, height);\n};\n\nvar rectLimitInRect = function rectLimitInRect(childRect, parentRect, aspectRatio) {\n var _rectToBounds = rectToBounds(childRect),\n _rectToBounds2 = _slicedToArray(_rectToBounds, 4),\n t = _rectToBounds2[0],\n r = _rectToBounds2[1],\n b = _rectToBounds2[2],\n l = _rectToBounds2[3];\n\n var rectOrigin = _objectSpread({}, childRect);\n\n if (t < parentRect.y) {\n childRect.height = childRect.height - (parentRect.y - t);\n childRect.y = parentRect.y;\n }\n\n if (r > parentRect.x + parentRect.width) {\n childRect.width = parentRect.x + parentRect.width - childRect.x;\n }\n\n if (b > parentRect.y + parentRect.height) {\n childRect.height = parentRect.y + parentRect.height - childRect.y;\n }\n\n if (l < parentRect.x) {\n childRect.width = childRect.width - (parentRect.x - l);\n childRect.x = parentRect.x;\n }\n\n if (aspectRatio) {\n // scalar\n var _scalar = Math.min(1, rectOrigin.width / childRect.width, rectOrigin.height / childRect.height);\n\n return rectMultiply(rectOrigin, _scalar);\n }\n\n return childRect;\n};\n\nvar rectOffsetInRect = function rectOffsetInRect(childRect, parentRect) {\n var _rectToBounds3 = rectToBounds(childRect),\n _rectToBounds4 = _slicedToArray(_rectToBounds3, 4),\n t = _rectToBounds4[0],\n r = _rectToBounds4[1],\n b = _rectToBounds4[2],\n l = _rectToBounds4[3];\n\n if (t < parentRect.y) childRect.y = Math.max(parentRect.y, childRect.y);\n if (r > parentRect.width) childRect.x = parentRect.width - childRect.width;\n if (b > parentRect.height) childRect.y = parentRect.height - childRect.height;\n if (l < parentRect.x) childRect.x = Math.max(parentRect.x, childRect.x);\n return childRect;\n};\n\nvar rectContainRect = function rectContainRect(rect) {\n var aspectRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : rectAspectRatio(rect);\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : vectorCreateEmpty();\n if (rect.width === 0 || rect.height === 0) return rectCreateEmpty();\n var width = rect.width;\n var height = width / aspectRatio;\n\n if (height > rect.height) {\n height = rect.height;\n width = height * aspectRatio;\n }\n\n return toRect(offset.x + (rect.width - width) * 0.5, offset.y + (rect.height - height) * 0.5, width, height);\n};\n\nvar rectToBounds = function rectToBounds(rect) {\n return [Math.min(rect.y, rect.y + rect.height), Math.max(rect.x, rect.x + rect.width), Math.max(rect.y, rect.y + rect.height), Math.min(rect.x, rect.x + rect.width) // left\n ];\n};\n\nvar rectGetCorners = function rectGetCorners(rect) {\n return [vectorCreate(rect.x, rect.y), vectorCreate(rect.x + rect.width, rect.y), vectorCreate(rect.x + rect.width, rect.y + rect.height), vectorCreate(rect.x, rect.y + rect.height)];\n};\n\nvar rectApply = function rectApply(rect, fn) {\n if (!rect) return;\n rect.x = fn(rect.x);\n rect.y = fn(rect.y);\n rect.width = fn(rect.width);\n rect.height = fn(rect.height);\n return rect;\n};\n\nvar rectApplyPerspective = function rectApplyPerspective(rect, perspective) {\n var pivot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rectCenter(rect);\n return rectGetCorners(rect).map(function (corner, index) {\n var sign = CornerSigns[index];\n return vectorCreate(scale(corner.x, 1.0 + sign.x * perspective.x, pivot.x), scale(corner.y, 1.0 + sign.y * perspective.y, pivot.y));\n });\n};\n\nvar rectNormalizeOffset = function rectNormalizeOffset(rect) {\n rect.x = 0;\n rect.y = 0;\n return rect;\n};\n\nvar convexPolyCentroid = function convexPolyCentroid(vertices) {\n var first = vertices[0];\n var last = vertices[vertices.length - 1]; // make sure is closed loop\n\n vertices = vectorEqual(first, last) ? vertices : [].concat(_toConsumableArray(vertices), [first]);\n var fx = first.x;\n var fy = first.y;\n var twiceArea = 0;\n var i = 0;\n var x = 0;\n var y = 0;\n var a;\n var b;\n var f;\n var l = vertices.length;\n\n for (; i < l; i++) {\n // current vertex\n a = vertices[i]; // next vertex\n\n b = vertices[i + 1 > l - 1 ? 0 : i + 1];\n f = (a.y - fy) * (b.x - fx) - (b.y - fy) * (a.x - fx);\n twiceArea += f;\n x += (a.x + b.x - 2 * fx) * f;\n y += (a.y + b.y - 2 * fy) * f;\n }\n\n f = twiceArea * 3;\n return vectorCreate(fx + x / f, fy + y / f);\n};\n\nvar lineLineIntersection = function lineLineIntersection(a, b) {\n return getLineLineIntersectionPoint(a.start, a.end, b.start, b.end);\n};\n\nvar getLineLineIntersectionPoint = function getLineLineIntersectionPoint(a, b, c, d) {\n var denominator = (d.y - c.y) * (b.x - a.x) - (d.x - c.x) * (b.y - a.y); // lines are parallel\n\n if (denominator === 0) return undefined;\n var uA = ((d.x - c.x) * (a.y - c.y) - (d.y - c.y) * (a.x - c.x)) / denominator;\n var uB = ((b.x - a.x) * (a.y - c.y) - (b.y - a.y) * (a.x - c.x)) / denominator; // intersection is not on the line itself\n\n if (uA < 0 || uA > 1 || uB < 0 || uB > 1) return undefined; // return intersection point\n\n return vectorCreate(a.x + uA * (b.x - a.x), a.y + uA * (b.y - a.y));\n}; // checks if line intersects with one of the lines that can be drawn between the points (in sequence)\n\n\nvar linePointsIntersection = function linePointsIntersection(line, points) {\n var _ref13 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref13$ignoreIdentica = _ref13.ignoreIdenticalLines,\n ignoreIdenticalLines = _ref13$ignoreIdentica === void 0 ? false : _ref13$ignoreIdentica,\n _ref13$breakOnInterse = _ref13.breakOnIntersection,\n breakOnIntersection = _ref13$breakOnInterse === void 0 ? false : _ref13$breakOnInterse;\n\n var l = points.length;\n var intersections = [];\n\n for (var i = 0; i < l - 1; i++) {\n if (ignoreIdenticalLines && (vectorEqual(line.start, points[i]) || vectorEqual(line.start, points[i + 1]) || vectorEqual(line.end, points[i]) || vectorEqual(line.end, points[i + 1]))) continue;\n var intersection = getLineLineIntersectionPoint(line.start, line.end, points[i], points[i + 1]);\n if (!intersection) continue;\n if (breakOnIntersection) return [intersection];\n intersections.push(intersection);\n }\n\n return intersections.length ? intersections : undefined;\n};\n\nvar pointInPoly$1 = function pointInPoly$1(point, vertices) {\n var i = 0;\n var j = 0;\n var c = false;\n var l = vertices.length;\n\n for (i = 0, j = l - 1; i < l; j = i++) {\n if (vertices[i].y > point.y != vertices[j].y > point.y && point.x < (vertices[j].x - vertices[i].x) * (point.y - vertices[i].y) / (vertices[j].y - vertices[i].y) + vertices[i].x) {\n c = !c;\n }\n }\n\n return c;\n};\n\nvar getControlPoint = function getControlPoint(p1, p2, p3, scale) {\n var dx = (p2.x - p1.x) * scale;\n var dy = (p2.y - p1.y) * scale;\n\n if (vectorDistance(p3, p2) < vectorDistance(p2, p1)) {\n dx *= 0.15;\n dy *= 0.15;\n }\n\n return {\n x: p2.x + dx,\n y: p2.y + dy\n };\n};\n\nvar bezier = function bezier(p1, c, p2, t) {\n var x = (1 - t) * (1 - t) * p1.x + 2 * (1 - t) * t * c.x + t * t * p2.x;\n var y = (1 - t) * (1 - t) * p1.y + 2 * (1 - t) * t * c.y + t * t * p2.y;\n return {\n x: x,\n y: y\n };\n};\n\nvar pointsInterpolate = function pointsInterpolate(p1, p2, p3, numPoints, controlPointScale) {\n var controlPoint = getControlPoint(p1, p2, p3, controlPointScale);\n var points = [];\n\n for (var i = 0; i <= numPoints; i++) {\n var _t = i / numPoints;\n\n points.push(bezier(p2, controlPoint, p3, _t));\n }\n\n return points;\n}; // first tests if points of a are to be found in b, then does the reverse\n\n\nvar polyIntersectsWithPoly = function polyIntersectsWithPoly(a, b) {\n var bContainsCornerOfA = a.find(function (corner) {\n return pointInPoly$1(corner, b);\n });\n if (bContainsCornerOfA) return true;\n var aContainsCornerOfB = b.find(function (corner) {\n return pointInPoly$1(corner, a);\n });\n if (aContainsCornerOfB) return true;\n return false;\n};\n\nvar quadLines = function quadLines(vertices) {\n var arr = [];\n\n for (var i = 0; i < vertices.length; i++) {\n var next = i + 1;\n if (next === vertices.length) next = 0;\n arr.push(lineCreate(vectorClone(vertices[i]), vectorClone(vertices[next])));\n }\n\n return arr;\n};\n\nvar quadToLines = function quadToLines(vertices) {\n var extension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return quadLines(vertices) // extend the poly lines a tiny bit so we\n // don't shoot rays between line gaps at corners\n // this caused one intersection to be missing resulting\n // in error while manipulating crop edges\n // (rotate image 90degrees -> drag bottom edge) (2021-04-09)\n .map(function (line) {\n return lineExtend(line, extension);\n });\n};\n\nvar ellipseToPolygon = function ellipseToPolygon(center, rx, ry) {\n var rotation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var flipX = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var flipY = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var resolution = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 12;\n var points = [];\n\n for (var i = 0; i < resolution; i++) {\n points.push(vectorCreate(center.x + rx * Math.cos(i * (Math.PI * 2) / resolution), center.y + ry * Math.sin(i * (Math.PI * 2) / resolution)));\n }\n\n if (flipX || flipY) vectorsFlip(points, flipX, flipY, center.x, center.y);\n if (rotation) vectorsRotate(points, rotation, center.x, center.y);\n return points;\n};\n\nvar polyToBounds = function polyToBounds(poly) {\n return poly.reduce(function (_ref14, _ref15) {\n var _ref16 = _slicedToArray(_ref14, 4),\n top = _ref16[0],\n right = _ref16[1],\n bottom = _ref16[2],\n left = _ref16[3];\n\n var x = _ref15.x,\n y = _ref15.y;\n left = Math.min(left, x);\n right = Math.max(right, x);\n top = Math.min(top, y);\n bottom = Math.max(bottom, y);\n return [top, right, bottom, left];\n }, [Infinity, -Infinity, -Infinity, Infinity]);\n}; // markup editor shape helpers\n\n\nvar circleOverlapsWithLine = function circleOverlapsWithLine(point, radius, from, to) {\n var ac = vectorCreate(point.x - from.x, point.y - from.y);\n var ab = vectorCreate(to.x - from.x, to.y - from.y);\n var ab2 = vectorDot(ab, ab);\n var acab = vectorDot(ac, ab);\n var t = acab / ab2;\n t = t < 0 ? 0 : t;\n t = t > 1 ? 1 : t;\n var h = vectorCreate(ab.x * t + from.x - point.x, ab.y * t + from.y - point.y);\n var h2 = vectorDot(h, h);\n return h2 <= radius * radius;\n};\n\nvar circleOverlapsWithPath = function circleOverlapsWithPath(position, radius, points) {\n var l = points.length;\n\n for (var i = 0; i < l - 1; i++) {\n if (circleOverlapsWithLine(position, radius, points[i], points[i + 1])) return true;\n }\n\n return false;\n};\n\nvar circleOverlapsWithPolygon = function circleOverlapsWithPolygon(position, radius, points) {\n if (pointInPoly$1(position, points)) return true;\n if (circleOverlapsWithPath(position, radius, points)) return true;\n return circleOverlapsWithLine(position, radius, points[0], points[points.length - 1]);\n};\n\nvar circleOverlapsWithEllipse = function circleOverlapsWithEllipse(position, radius, ellipse, rotation, flipX, flipY) {\n var points = ellipseToPolygon(vectorCreate(ellipse.x, ellipse.y), ellipse.rx, ellipse.ry, rotation, flipX, flipY, 12);\n return circleOverlapsWithPolygon(position, radius, points);\n};\n\nvar circleOverlapsWithRect = function circleOverlapsWithRect(position, radius, rect, rotation, pivot) {\n return circleOverlapsWithPolygon(position, radius, rectRotate(rect, rotation, pivot || rectCenter(rect)));\n};\n\nvar getImageTransformedRect = function getImageTransformedRect(imageSize, imageRotation) {\n var imageRect = rectCreateFromSize(imageSize);\n var imageCenter = rectCenter(imageRect);\n var imageTransformedVertices = rectRotate(imageRect, imageRotation, imageCenter);\n return rectNormalizeOffset(rectCreateFromPoints(imageTransformedVertices));\n};\n\nvar isElement = function isElement(v, name) {\n return v instanceof HTMLElement && (name ? new RegExp(\"^\".concat(name, \"$\"), 'i').test(v.nodeName) : true);\n};\n\nvar isFile = function isFile(v) {\n return v instanceof File;\n};\n\nvar canvasToFile = /*#__PURE__*/function () {\n var _ref17 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(canvas, mimeType, quality) {\n var blob;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return canvasToBlob(canvas, mimeType, quality);\n\n case 2:\n blob = _context9.sent;\n return _context9.abrupt(\"return\", blobToFile(blob, 'canvas'));\n\n case 4:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function canvasToFile(_x15, _x16, _x17) {\n return _ref17.apply(this, arguments);\n };\n}();\n\nvar getFilenameFromURL = function getFilenameFromURL(url) {\n return url.split('/').pop().split(/\\?|\\#/).shift();\n}; // @ts-ignore\n\n\nvar supportsReplaceChildren = isBrowser() && !!Node.prototype.replaceChildren;\nvar fn$1 = supportsReplaceChildren ? // @ts-ignore\nfunction (parent, newChildren) {\n return parent.replaceChildren(newChildren);\n} : function (parent, newChildren) {\n while (parent.lastChild) {\n parent.removeChild(parent.lastChild);\n }\n\n if (newChildren !== undefined) {\n parent.append(newChildren);\n }\n};\nvar container = isBrowser() && h('div', {\n class: 'PinturaMeasure',\n style: 'position:absolute;left:0;top:0;width:99999px;height:0;pointer-events:none;contain:strict;margin:0;padding:0;'\n});\nvar timeoutId;\n\nvar appendForMeasuring = function appendForMeasuring(element) {\n // replace element children with this child\n fn$1(container, element); // append to DOM if not in it atm\n\n if (!container.parentNode) document.body.append(container); // auto detach from DOM after it isn't used for a little while\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n container.remove();\n }, 500); // return added element for measuring\n\n return element;\n};\n\nvar result$9 = null;\n\nvar isSafari = function isSafari() {\n if (result$9 === null) result$9 = isBrowser() && /^((?!chrome|android).)*(safari|iphone|ipad)/i.test(navigator.userAgent); // added |iphone|ipad as safari is not present in WebView on React Native\n\n return result$9;\n};\n\nvar getImageElementSize = function getImageElementSize(imageElement) {\n return new Promise(function (resolve, reject) {\n var shouldAutoRemove = false; // test if image is attached to DOM, if not attached, attach so measurement is correct on Safari\n\n if (!imageElement.parentNode && isSafari()) {\n shouldAutoRemove = true; // has width 0 and height 0 to prevent rendering very big SVGs (without width and height) that will for one frame overflow the window and show a scrollbar\n\n imageElement.style.cssText = \"position:absolute;visibility:hidden;pointer-events:none;left:0;top:0;width:0;height:0;\";\n appendForMeasuring(imageElement);\n } // start testing size\n\n\n var measure = function measure() {\n var width = imageElement.naturalWidth;\n var height = imageElement.naturalHeight;\n var hasSize = width && height;\n if (!hasSize) return; // clean up image if was attached for measuring\n\n if (shouldAutoRemove) imageElement.remove();\n clearInterval(intervalId);\n resolve({\n width: width,\n height: height\n });\n };\n\n imageElement.onerror = function (err) {\n clearInterval(intervalId);\n reject(err);\n };\n\n var intervalId = setInterval(measure, 1);\n measure();\n });\n};\n\nvar getVideoElementSize = function getVideoElementSize(element) {\n return new Promise(function (resolve, reject) {\n var done = function done() {\n resolve({\n width: element.videoWidth,\n height: element.videoHeight\n });\n };\n\n if (element.readyState >= 1) return done();\n element.onloadedmetadata = done;\n\n element.onerror = function () {\n return reject(element.error);\n };\n });\n};\n\nvar isImage = function isImage(file) {\n return /^image/.test(file.type);\n};\n\nvar getAsVideoOrImageElement = function getAsVideoOrImageElement(src) {\n return new Promise(function (resolve) {\n // undetermined or is video\n var elementSrc = isString(src) ? src : URL.createObjectURL(src);\n\n var createImage = function createImage() {\n var image = new Image();\n image.src = elementSrc;\n resolve(image);\n }; // we can already know it's an image\n\n\n if (src instanceof Blob && isImage(src)) return createImage(); // try video first\n\n var element = document.createElement('video');\n element.preload = 'metadata';\n\n element.onloadedmetadata = function () {\n return resolve(element);\n }; // when errors we switch to image\n\n\n element.onerror = createImage;\n element.src = elementSrc;\n });\n};\n\nvar isVideoElement = function isVideoElement(element) {\n return element.nodeName === 'VIDEO';\n}; // TODO: video rename function\n\n\nvar getImageSize = /*#__PURE__*/function () {\n var _ref18 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(src) {\n var mediaElement, size;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n if (src['src']) {\n _context10.next = 6;\n break;\n }\n\n _context10.next = 3;\n return getAsVideoOrImageElement(src);\n\n case 3:\n mediaElement = _context10.sent;\n _context10.next = 7;\n break;\n\n case 6:\n mediaElement = src;\n\n case 7:\n _context10.prev = 7;\n\n if (!isVideoElement(mediaElement)) {\n _context10.next = 14;\n break;\n }\n\n _context10.next = 11;\n return getVideoElementSize(mediaElement);\n\n case 11:\n _context10.t0 = _context10.sent;\n _context10.next = 17;\n break;\n\n case 14:\n _context10.next = 16;\n return getImageElementSize(mediaElement);\n\n case 16:\n _context10.t0 = _context10.sent;\n\n case 17:\n size = _context10.t0;\n\n case 18:\n _context10.prev = 18;\n isFile(src) && URL.revokeObjectURL(mediaElement.src);\n return _context10.finish(18);\n\n case 21:\n return _context10.abrupt(\"return\", size);\n\n case 22:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, null, [[7,, 18, 21]]);\n }));\n\n return function getImageSize(_x18) {\n return _ref18.apply(this, arguments);\n };\n}();\n\nvar awaitComplete = function awaitComplete(image) {\n return new Promise(function (resolve, reject) {\n if (image.complete) return resolve(image);\n\n image.onload = function () {\n return resolve(image);\n };\n\n image.onerror = function () {\n return reject(new Error('Failed to load image'));\n };\n });\n};\n\nvar imageToFile = /*#__PURE__*/function () {\n var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(imageElement) {\n var size, image, canvas, ctx, blob;\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return getImageSize(imageElement);\n\n case 2:\n size = _context11.sent;\n _context11.next = 5;\n return awaitComplete(imageElement);\n\n case 5:\n image = _context11.sent;\n canvas = h('canvas', size);\n ctx = canvas.getContext('2d', {\n willReadFrequently: true\n });\n ctx.drawImage(image, 0, 0);\n _context11.next = 11;\n return canvasToBlob(canvas);\n\n case 11:\n blob = _context11.sent;\n return _context11.abrupt(\"return\", blobToFile(blob, getFilenameFromURL(image.src)));\n\n case 13:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n\n return function imageToFile(_x19) {\n return _ref19.apply(this, arguments);\n };\n}();\n\nvar isDataURI = function isDataURI(str) {\n return /^data:/.test(str);\n};\n\nvar createProgressEvent = function createProgressEvent() {\n var loaded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var lengthComputable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return new (getNativeAPIRef('ProgressEvent'))('progress', {\n loaded: loaded * 100,\n total: 100,\n lengthComputable: lengthComputable\n });\n};\n\nvar dataURIToFile = /*#__PURE__*/function () {\n var _ref20 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(dataURI) {\n var filename,\n onprogress,\n res,\n blob,\n mimeType,\n file,\n _args12 = arguments;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n filename = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : 'data-uri';\n onprogress = _args12.length > 2 && _args12[2] !== undefined ? _args12[2] : noop$1;\n // basic loader, no size info\n onprogress(createProgressEvent(0));\n _context12.next = 5;\n return fetch(dataURI);\n\n case 5:\n res = _context12.sent;\n onprogress(createProgressEvent(0.33));\n _context12.next = 9;\n return res.blob();\n\n case 9:\n blob = _context12.sent;\n if (!isImage(blob)) mimeType = \"image/\".concat(dataURI.includes(',/9j/') ? 'jpeg' : 'png');\n onprogress(createProgressEvent(0.66));\n file = blobToFile(blob, filename, mimeType);\n onprogress(createProgressEvent(1));\n return _context12.abrupt(\"return\", file);\n\n case 15:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }));\n\n return function dataURIToFile(_x20) {\n return _ref20.apply(this, arguments);\n };\n}();\n\nvar getResponseHeader = function getResponseHeader(xhr, header) {\n var parse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (header) {\n return header;\n };\n return xhr.getAllResponseHeaders().indexOf(header) >= 0 ? parse(xhr.getResponseHeader(header)) : undefined;\n};\n\nvar getFilenameFromContentDisposition = function getFilenameFromContentDisposition(header) {\n if (!header) return null;\n var matches = header.split(/filename=|filename\\*=.+''/).splice(1).map(function (name) {\n return name.trim().replace(/^[\"']|[;\"']{0,2}$/g, '');\n }).filter(function (name) {\n return name.length;\n });\n return matches.length ? decodeURI(matches[matches.length - 1]) : null;\n};\n\nvar EditorErrorCode = {\n URL_REQUEST: 'URL_REQUEST',\n DOCTYPE_MISSING: 'DOCTYPE_MISSING'\n};\n\nvar EditorError = /*#__PURE__*/function (_Error) {\n _inherits(EditorError, _Error);\n\n var _super = _createSuper(EditorError);\n\n function EditorError(message, code, metadata) {\n var _this;\n\n _classCallCheck(this, EditorError);\n\n _this = _super.call(this, message);\n _this.name = 'EditorError';\n _this.code = code;\n _this.metadata = metadata;\n return _this;\n }\n\n return _createClass(EditorError);\n}( /*#__PURE__*/_wrapNativeSuper(Error)); // should be called after xhr.open\n\n\nvar configureXHR = function configureXHR(xhr, options) {\n // https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters\n // only handles headers and credentials for now\n var _ref21 = options || {},\n _ref21$headers = _ref21.headers,\n headers = _ref21$headers === void 0 ? {} : _ref21$headers,\n credentials = _ref21.credentials; // apply options to xhr\n\n\n Object.entries(headers).forEach(function (_ref22) {\n var _ref23 = _slicedToArray(_ref22, 2),\n header = _ref23[0],\n value = _ref23[1];\n\n return xhr.setRequestHeader(header, value);\n }); // set xhr withCredentials\n\n if (credentials) xhr.withCredentials = credentials !== 'omit';\n};\n\nvar fetchFile = function fetchFile(url, onprogress, options) {\n return new Promise(function (resolve, reject) {\n var handleError = function handleError() {\n return reject(new EditorError('Error fetching image', EditorErrorCode.URL_REQUEST, xhr));\n };\n\n var xhr = new XMLHttpRequest();\n xhr.onprogress = onprogress;\n xhr.onerror = handleError, xhr.onload = function () {\n if (!xhr.response || xhr.status >= 300 || xhr.status < 200) return handleError(); // we store the response mime type so we can add it to the blob later on, if it's missing (happens on Safari 10)\n\n var mimetype = getResponseHeader(xhr, 'Content-Type'); // try to get filename and any file instructions as well\n\n var filename = getResponseHeader(xhr, 'Content-Disposition', getFilenameFromContentDisposition) || getFilenameFromURL(url); // convert to actual file if possible\n\n resolve(blobToFile(xhr.response, filename, mimetype || getMimeTypeFromFilename(filename)));\n }; // get helper\n\n var willRequest = options.willRequest;\n Promise.resolve(willRequest && willRequest(url, {\n resourceType: 'image'\n })).then(function (requestInit) {\n // don't load image\n if (requestInit === false) return reject('Image load rejected'); // we're good to go (pass true explicitely on purpose)\n\n xhr.open('GET', url, true); // set props\n\n configureXHR(xhr, requestInit); // fire xhr\n\n xhr.responseType = 'blob';\n xhr.send();\n }).catch(console.error);\n });\n};\n\nvar urlToFile = function urlToFile(url, onprogress, options) {\n // use fetch to create blob from data uri\n if (isDataURI(url)) return dataURIToFile(url, undefined, onprogress); // load file from url\n\n return fetchFile(url, onprogress, options);\n};\n\nvar isBlob = function isBlob(v) {\n return v instanceof Blob && !(v instanceof File);\n};\n\nvar isImageBitmap = function isImageBitmap(obj) {\n return 'close' in obj;\n};\n\nvar srcToFile = /*#__PURE__*/function () {\n var _ref24 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(src, onprogress, options) {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (!(isFile(src) || isBlob(src))) {\n _context13.next = 4;\n break;\n }\n\n return _context13.abrupt(\"return\", src);\n\n case 4:\n if (!isString(src)) {\n _context13.next = 10;\n break;\n }\n\n _context13.next = 7;\n return urlToFile(src, onprogress, options);\n\n case 7:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 10:\n if (!isElement(src, 'canvas')) {\n _context13.next = 16;\n break;\n }\n\n _context13.next = 13;\n return canvasToFile(src);\n\n case 13:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 16:\n if (!isElement(src, 'img')) {\n _context13.next = 22;\n break;\n }\n\n _context13.next = 19;\n return imageToFile(src);\n\n case 19:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 22:\n if (!(isImageData(src) || isImageBitmap(src))) {\n _context13.next = 32;\n break;\n }\n\n _context13.t0 = canvasToFile;\n _context13.next = 26;\n return imageDataToCanvas(src);\n\n case 26:\n _context13.t1 = _context13.sent;\n _context13.next = 29;\n return (0, _context13.t0)(_context13.t1);\n\n case 29:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 32:\n throw new EditorError('Invalid image source', 'invalid-image-source');\n\n case 33:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n return function srcToFile(_x21, _x22, _x23) {\n return _ref24.apply(this, arguments);\n };\n}();\n\nvar result$8 = null;\n\nvar isMac = function isMac() {\n if (result$8 === null) result$8 = isBrowser() && /^mac/i.test(navigator.platform);\n return result$8;\n};\n\nvar result$7 = null;\n\nvar isIOS = function isIOS() {\n if (result$7 === null) // first part is for iPhones and iPads iOS 12 and below second part is for iPads with iOS 13 and up\n result$7 = isBrowser() && (isUserAgent(/iPhone|iPad|iPod/) || isMac() && navigator.maxTouchPoints >= 1);\n return result$7;\n};\n\nvar orientImageSize = /*#__PURE__*/function () {\n var _ref25 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(size) {\n var orientation,\n _args14 = arguments;\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n orientation = _args14.length > 1 && _args14[1] !== undefined ? _args14[1] : 1;\n _context14.next = 3;\n return canOrientImages();\n\n case 3:\n _context14.t0 = _context14.sent;\n\n if (_context14.t0) {\n _context14.next = 6;\n break;\n }\n\n _context14.t0 = isIOS();\n\n case 6:\n if (!_context14.t0) {\n _context14.next = 8;\n break;\n }\n\n return _context14.abrupt(\"return\", size);\n\n case 8:\n if (!(orientation < 5)) {\n _context14.next = 10;\n break;\n }\n\n return _context14.abrupt(\"return\", size);\n\n case 10:\n return _context14.abrupt(\"return\", sizeCreate(size.height, size.width));\n\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n\n return function orientImageSize(_x24) {\n return _ref25.apply(this, arguments);\n };\n}();\n\nvar isJPEG = function isJPEG(file) {\n return /jpeg/.test(file.type);\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n return _typeof(obj) == 'object' && obj.constructor == Object;\n};\n\nvar stringify = function stringify(value) {\n return !isPlainObject(value) ? value : JSON.stringify(value);\n};\n\nvar post = function post(url, dataset, options) {\n return new Promise(function (resolve, reject) {\n var _options$token = options.token,\n token = _options$token === void 0 ? {} : _options$token,\n _options$beforeSend = options.beforeSend,\n beforeSend = _options$beforeSend === void 0 ? noop$1 : _options$beforeSend,\n _options$onprogress = options.onprogress,\n onprogress = _options$onprogress === void 0 ? noop$1 : _options$onprogress;\n\n token.cancel = function () {\n return request.abort();\n };\n\n var request = new XMLHttpRequest();\n request.upload.onprogress = onprogress;\n\n request.onload = function () {\n return request.status >= 200 && request.status < 300 ? resolve(request) : reject(request);\n };\n\n request.onerror = function () {\n return reject(request);\n };\n\n request.ontimeout = function () {\n return reject(request);\n };\n\n request.open('POST', encodeURI(url));\n beforeSend(request);\n request.send( // if is FormData, we use that\n dataset instanceof FormData ? dataset : // reduce the dataset to FormData\n dataset.reduce(function (formData, args) {\n // @ts-ignore\n formData.append.apply(formData, _toConsumableArray(args.map(stringify)));\n return formData;\n }, new FormData()));\n });\n};\n\nvar ctxRotate = function ctxRotate(ctx) {\n var rotation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var pivot = arguments.length > 2 ? arguments[2] : undefined;\n if (rotation === 0) return ctx;\n ctx.translate(pivot.x, pivot.y);\n ctx.rotate(rotation);\n ctx.translate(-pivot.x, -pivot.y);\n return ctx;\n};\n\nvar ctxTranslate = function ctxTranslate(ctx, x, y) {\n ctx.translate(x, y);\n return ctx;\n};\n\nvar ctxScale = function ctxScale(ctx, x, y) {\n ctx.scale(x, y);\n return ctx;\n};\n\nvar cropImageData = /*#__PURE__*/function () {\n var _ref26 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(imageData) {\n var options,\n flipX,\n flipY,\n rotation,\n crop,\n imageSize,\n shouldFlip,\n shouldRotate,\n cropDefined,\n cropCoversImage,\n shouldCrop,\n imageDataOut,\n image,\n _ctx2,\n outputSize,\n _ctx3,\n _ctx4,\n ctx,\n _args15 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n options = _args15.length > 1 && _args15[1] !== undefined ? _args15[1] : {};\n flipX = options.flipX, flipY = options.flipY, rotation = options.rotation, crop = options.crop;\n imageSize = sizeCreateFromAny(imageData);\n shouldFlip = flipX || flipY;\n shouldRotate = !!rotation;\n cropDefined = crop && (crop.x || crop.y || crop.width || crop.height);\n cropCoversImage = cropDefined && rectEqual(crop, rectCreateFromSize(imageSize));\n shouldCrop = cropDefined && !cropCoversImage; // skip!\n\n if (!(!shouldFlip && !shouldRotate && !shouldCrop)) {\n _context15.next = 10;\n break;\n }\n\n return _context15.abrupt(\"return\", imageData);\n\n case 10:\n image = h('canvas', {\n width: imageData.width,\n height: imageData.height\n });\n image.getContext('2d', {\n willReadFrequently: true\n }).putImageData(imageData, 0, 0); // flip image data\n\n if (shouldFlip) {\n _ctx2 = h('canvas', {\n width: image.width,\n height: image.height\n }).getContext('2d', {\n willReadFrequently: true\n });\n ctxScale(_ctx2, flipX ? -1 : 1, flipY ? -1 : 1);\n\n _ctx2.drawImage(image, flipX ? -image.width : 0, flipY ? -image.height : 0);\n\n _ctx2.restore();\n\n releaseCanvas(image);\n image = _ctx2.canvas;\n } // rotate image data\n\n\n if (!shouldRotate) {\n _context15.next = 24;\n break;\n }\n\n // if shouldRotate is true we also receive a crop rect\n outputSize = sizeApply(sizeCreateFromRect(rectCreateFromPoints(rectRotate(rectCreateFromAny(image), rotation))), Math.floor);\n _ctx3 = h('canvas', {\n width: crop.width,\n height: crop.height\n }).getContext('2d', {\n willReadFrequently: true\n });\n ctxTranslate(_ctx3, -crop.x, -crop.y);\n ctxRotate(_ctx3, rotation, sizeCenter(outputSize));\n\n _ctx3.drawImage(image, (outputSize.width - image.width) * 0.5, (outputSize.height - image.height) * 0.5);\n\n _ctx3.restore();\n\n releaseCanvas(image);\n image = _ctx3.canvas;\n _context15.next = 29;\n break;\n\n case 24:\n if (!shouldCrop) {\n _context15.next = 29;\n break;\n }\n\n _ctx4 = image.getContext('2d', {\n willReadFrequently: true\n });\n imageDataOut = _ctx4.getImageData(crop.x, crop.y, crop.width, crop.height);\n releaseCanvas(image);\n return _context15.abrupt(\"return\", imageDataOut);\n\n case 29:\n // done, return resulting image data\n ctx = image.getContext('2d', {\n willReadFrequently: true\n });\n imageDataOut = ctx.getImageData(0, 0, image.width, image.height);\n releaseCanvas(image);\n return _context15.abrupt(\"return\", imageDataOut);\n\n case 33:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n\n return function cropImageData(_x25) {\n return _ref26.apply(this, arguments);\n };\n}();\n\nvar resizeTransform = function resizeTransform(options, done) {\n var imageData = options.imageData,\n width = options.width,\n height = options.height;\n var inputWidth = imageData.width;\n var inputHeight = imageData.height;\n var outputWidth = Math.round(width);\n var outputHeight = Math.round(height);\n var inputData = imageData.data;\n var outputData = new Uint8ClampedArray(outputWidth * outputHeight * 4);\n var scaleX = inputWidth / outputWidth;\n var scaleY = inputHeight / outputHeight;\n var scaleXHalf = Math.ceil(scaleX * 0.5);\n var scaleYHalf = Math.ceil(scaleY * 0.5);\n\n for (var j = 0; j < outputHeight; j++) {\n for (var i = 0; i < outputWidth; i++) {\n var x2 = (i + j * outputWidth) * 4;\n var weight = 0;\n var weights = 0;\n var weightsAlpha = 0;\n var _r = 0;\n var g = 0;\n var b = 0;\n var a = 0;\n var centerY = (j + 0.5) * scaleY;\n\n for (var yy = Math.floor(j * scaleY); yy < (j + 1) * scaleY; yy++) {\n var dy = Math.abs(centerY - (yy + 0.5)) / scaleYHalf;\n var centerX = (i + 0.5) * scaleX;\n var w0 = dy * dy;\n\n for (var xx = Math.floor(i * scaleX); xx < (i + 1) * scaleX; xx++) {\n var dx = Math.abs(centerX - (xx + 0.5)) / scaleXHalf;\n var w = Math.sqrt(w0 + dx * dx);\n if (w < -1 || w > 1) continue;\n weight = 2 * w * w * w - 3 * w * w + 1;\n if (weight <= 0) continue;\n dx = 4 * (xx + yy * inputWidth);\n var ref = inputData[dx + 3];\n a += weight * ref;\n weightsAlpha += weight;\n\n if (ref < 255) {\n weight = weight * ref / 250;\n }\n\n _r += weight * inputData[dx];\n g += weight * inputData[dx + 1];\n b += weight * inputData[dx + 2];\n weights += weight;\n }\n }\n\n outputData[x2] = _r / weights;\n outputData[x2 + 1] = g / weights;\n outputData[x2 + 2] = b / weights;\n outputData[x2 + 3] = a / weightsAlpha;\n }\n } // @ts-ignore\n\n\n done(null, {\n data: outputData,\n width: outputWidth,\n height: outputHeight\n });\n};\n\nvar imageDataObjectToImageData = function imageDataObjectToImageData(obj) {\n if (obj instanceof ImageData) {\n return obj;\n }\n\n var imageData;\n\n try {\n imageData = new ImageData(obj.width, obj.height);\n } catch (err) {\n // IE + Old EDGE (tested on 12)\n var canvas = h('canvas');\n imageData = canvas.getContext('2d').createImageData(obj.width, obj.height);\n }\n\n imageData.data.set(obj.data);\n return imageData;\n};\n\nvar resizeImageData = /*#__PURE__*/function () {\n var _ref27 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(imageData) {\n var options,\n resizeImageData,\n width,\n height,\n fit,\n upscale,\n targetWidth,\n targetHeight,\n scalarWidth,\n scalarHeight,\n _scalar2,\n _args16 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n options = _args16.length > 1 && _args16[1] !== undefined ? _args16[1] : {};\n resizeImageData = _args16.length > 2 ? _args16[2] : undefined;\n width = options.width, height = options.height, fit = options.fit, upscale = options.upscale; // no need to rescale\n\n if (!(!width && !height)) {\n _context16.next = 5;\n break;\n }\n\n return _context16.abrupt(\"return\", imageData);\n\n case 5:\n targetWidth = width;\n targetHeight = height;\n\n if (!width) {\n targetWidth = height;\n } else if (!height) {\n targetHeight = width;\n }\n\n if (!(fit !== 'force')) {\n _context16.next = 17;\n break;\n }\n\n scalarWidth = targetWidth / imageData.width;\n scalarHeight = targetHeight / imageData.height;\n _scalar2 = 1;\n\n if (fit === 'cover') {\n _scalar2 = Math.max(scalarWidth, scalarHeight);\n } else if (fit === 'contain') {\n _scalar2 = Math.min(scalarWidth, scalarHeight);\n } // if image is too small, exit here with original image\n\n\n if (!(_scalar2 > 1 && upscale === false)) {\n _context16.next = 15;\n break;\n }\n\n return _context16.abrupt(\"return\", imageData);\n\n case 15:\n targetWidth = Math.round(imageData.width * _scalar2);\n targetHeight = Math.round(imageData.height * _scalar2);\n\n case 17:\n // make sure canvas has a size\n targetWidth = Math.max(targetWidth, 1);\n targetHeight = Math.max(targetHeight, 1); // no need to resize?\n\n if (!(imageData.width === targetWidth && imageData.height === targetHeight)) {\n _context16.next = 21;\n break;\n }\n\n return _context16.abrupt(\"return\", imageData);\n\n case 21:\n if (!resizeImageData) {\n _context16.next = 23;\n break;\n }\n\n return _context16.abrupt(\"return\", resizeImageData(imageData, targetWidth, targetHeight));\n\n case 23:\n _context16.next = 25;\n return thread(resizeTransform, [{\n imageData: imageData,\n width: targetWidth,\n height: targetHeight\n }], [imageData.data.buffer]);\n\n case 25:\n imageData = _context16.sent;\n return _context16.abrupt(\"return\", imageDataObjectToImageData(imageData));\n\n case 27:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16);\n }));\n\n return function resizeImageData(_x26) {\n return _ref27.apply(this, arguments);\n };\n}();\n\nvar colorEffect = function colorEffect(options, done) {\n var imageData = options.imageData,\n matrix = options.matrix;\n if (!matrix) return done(null, imageData);\n var data = imageData.data;\n var l = data.length;\n var m11 = matrix[0];\n var m12 = matrix[1];\n var m13 = matrix[2];\n var m14 = matrix[3];\n var m15 = matrix[4];\n var m21 = matrix[5];\n var m22 = matrix[6];\n var m23 = matrix[7];\n var m24 = matrix[8];\n var m25 = matrix[9];\n var m31 = matrix[10];\n var m32 = matrix[11];\n var m33 = matrix[12];\n var m34 = matrix[13];\n var m35 = matrix[14];\n var m41 = matrix[15];\n var m42 = matrix[16];\n var m43 = matrix[17];\n var m44 = matrix[18];\n var m45 = matrix[19];\n var index = 0;\n var r = 0.0;\n var g = 0.0;\n var b = 0.0;\n var a = 0.0;\n var mr = 0.0;\n var mg = 0.0;\n var mb = 0.0;\n var ma = 0.0;\n var or = 0.0;\n var og = 0.0;\n var ob = 0.0;\n\n for (; index < l; index += 4) {\n r = data[index] / 255;\n g = data[index + 1] / 255;\n b = data[index + 2] / 255;\n a = data[index + 3] / 255;\n mr = r * m11 + g * m12 + b * m13 + a * m14 + m15;\n mg = r * m21 + g * m22 + b * m23 + a * m24 + m25;\n mb = r * m31 + g * m32 + b * m33 + a * m34 + m35;\n ma = r * m41 + g * m42 + b * m43 + a * m44 + m45;\n or = Math.max(0, mr * ma) + (1.0 - ma);\n og = Math.max(0, mg * ma) + (1.0 - ma);\n ob = Math.max(0, mb * ma) + (1.0 - ma);\n data[index] = Math.max(0.0, Math.min(1.0, or)) * 255;\n data[index + 1] = Math.max(0.0, Math.min(1.0, og)) * 255;\n data[index + 2] = Math.max(0.0, Math.min(1.0, ob)) * 255;\n data[index + 3] = a * 255;\n } // @ts-ignore\n\n\n done(null, {\n data: data,\n width: imageData.width,\n height: imageData.height\n });\n};\n\nvar convolutionEffect = function convolutionEffect(options, done) {\n var imageData = options.imageData,\n matrix = options.matrix;\n if (!matrix) return done(null, imageData); // calculate kernel weight\n\n var kernelWeight = matrix.reduce(function (prev, curr) {\n return prev + curr;\n });\n kernelWeight = kernelWeight <= 0 ? 1 : kernelWeight; // input info\n\n var inputWidth = imageData.width;\n var inputHeight = imageData.height;\n var inputData = imageData.data;\n var i = 0;\n var x = 0;\n var y = 0;\n var side = Math.round(Math.sqrt(matrix.length));\n var sideHalf = Math.floor(side / 2);\n var r = 0,\n g = 0,\n b = 0,\n a = 0,\n cx = 0,\n cy = 0,\n scy = 0,\n scx = 0,\n srcOff = 0,\n weight = 0;\n var outputData = new Uint8ClampedArray(inputWidth * inputHeight * 4);\n\n for (y = 0; y < inputHeight; y++) {\n for (x = 0; x < inputWidth; x++) {\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0;\n g = 0;\n b = 0;\n a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - sideHalf;\n scx = x + cx - sideHalf;\n\n if (scy < 0) {\n scy = inputHeight - 1;\n }\n\n if (scy >= inputHeight) {\n scy = 0;\n }\n\n if (scx < 0) {\n scx = inputWidth - 1;\n }\n\n if (scx >= inputWidth) {\n scx = 0;\n }\n\n srcOff = (scy * inputWidth + scx) * 4;\n weight = matrix[cy * side + cx];\n r += inputData[srcOff] * weight;\n g += inputData[srcOff + 1] * weight;\n b += inputData[srcOff + 2] * weight;\n a += inputData[srcOff + 3] * weight;\n }\n }\n\n outputData[i] = r / kernelWeight;\n outputData[i + 1] = g / kernelWeight;\n outputData[i + 2] = b / kernelWeight;\n outputData[i + 3] = a / kernelWeight;\n i += 4;\n }\n } // @ts-ignore\n\n\n done(null, {\n data: outputData,\n width: inputWidth,\n height: inputHeight\n });\n};\n\nvar vignetteEffect = function vignetteEffect(options, done) {\n var imageData = options.imageData,\n strength = options.strength;\n if (!strength) return done(null, imageData);\n var inputWidth = imageData.width;\n var inputHeight = imageData.height;\n var data = imageData.data;\n\n var dist = function dist(x, y) {\n dx = x - cx;\n dy = y - cy;\n return Math.sqrt(dx * dx + dy * dy);\n };\n\n var x = 0;\n var y = 0;\n var cx = inputWidth * 0.5;\n var cy = inputHeight * 0.5;\n var dx;\n var dy;\n var dm = dist(0, 0);\n var fr, fg, fb;\n var br, bg, bb, ba;\n var fa;\n var ca;\n\n var blend = function blend(index, input, output, alpha) {\n br = input[index] / 255;\n bg = input[index + 1] / 255;\n bb = input[index + 2] / 255;\n ba = input[index + 3] / 255;\n fa = 1.0 - alpha;\n ca = fa * ba + alpha;\n output[index] = (fa * ba * br + alpha * fr) / ca * 255;\n output[index + 1] = (fa * ba * bg + alpha * fg) / ca * 255;\n output[index + 2] = (fa * ba * bb + alpha * fb) / ca * 255;\n output[index + 3] = ca * 255;\n };\n\n if (strength > 0) {\n fr = 0;\n fg = 0;\n fb = 0;\n } else {\n strength = Math.abs(strength);\n fr = 1;\n fg = 1;\n fb = 1;\n }\n\n for (y = 0; y < inputHeight; y++) {\n for (x = 0; x < inputWidth; x++) {\n blend( // index\n (x + y * inputWidth) * 4, // data in\n data, // data out\n data, // opacity\n dist(x, y) * strength / dm);\n }\n } // @ts-ignore\n\n\n done(null, {\n data: data,\n width: imageData.width,\n height: imageData.height\n });\n};\n\nvar noiseEffect = function noiseEffect(options, done) {\n var imageData = options.imageData,\n level = options.level,\n _options$monochrome = options.monochrome,\n monochrome = _options$monochrome === void 0 ? false : _options$monochrome;\n if (!level) return done(null, imageData);\n var data = imageData.data;\n var l = data.length;\n var index = 0;\n var r;\n var g;\n var b;\n\n var rand = function rand() {\n return (-1 + Math.random() * 2) * 255 * level;\n };\n\n var pixel = monochrome ? function () {\n var average = rand();\n return [average, average, average];\n } : function () {\n return [rand(), rand(), rand()];\n };\n\n for (; index < l; index += 4) {\n var _pixel = pixel();\n\n var _pixel2 = _slicedToArray(_pixel, 3);\n\n r = _pixel2[0];\n g = _pixel2[1];\n b = _pixel2[2];\n data[index] = data[index] + r;\n data[index + 1] = data[index + 1] + g;\n data[index + 2] = data[index + 2] + b;\n } // @ts-ignore\n\n\n done(null, {\n data: data,\n width: imageData.width,\n height: imageData.height\n });\n};\n\nvar gammaEffect = function gammaEffect(options, done) {\n var imageData = options.imageData,\n level = options.level;\n if (!level) return done(null, imageData);\n var data = imageData.data;\n var l = data.length;\n var index = 0;\n var r;\n var g;\n var b;\n\n for (; index < l; index += 4) {\n r = data[index] / 255;\n g = data[index + 1] / 255;\n b = data[index + 2] / 255;\n data[index] = Math.pow(r, level) * 255;\n data[index + 1] = Math.pow(g, level) * 255;\n data[index + 2] = Math.pow(b, level) * 255;\n } // @ts-ignore\n\n\n done(null, {\n data: data,\n width: imageData.width,\n height: imageData.height\n });\n};\n\nvar isIdentityMatrix = function isIdentityMatrix(matrix) {\n /*\n [\n 1, 0, 0, 0, 0\n 0, 1, 0, 0, 0\n 0, 0, 1, 0, 0\n 0, 0, 0, 1, 0\n ]\n */\n var l = matrix.length;\n var v;\n var s = l >= 20 ? 6 : l >= 16 ? 5 : 3;\n\n for (var i = 0; i < l; i++) {\n v = matrix[i];\n if (v === 1 && i % s !== 0) return false;else if (v !== 0 && v !== 1) return false;\n }\n\n return true;\n};\n\nvar filterImageData = /*#__PURE__*/function () {\n var _ref28 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(imageData) {\n var options,\n colorMatrix,\n convolutionMatrix,\n gammaLevel,\n noiseLevel,\n vignetteStrength,\n filters,\n chain,\n filterChain,\n _args17 = arguments;\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n options = _args17.length > 1 && _args17[1] !== undefined ? _args17[1] : {};\n colorMatrix = options.colorMatrix, convolutionMatrix = options.convolutionMatrix, gammaLevel = options.gamma, noiseLevel = options.noise, vignetteStrength = options.vignette; // filters\n\n filters = []; // apply convolution matrix\n\n if (convolutionMatrix) {\n filters.push([convolutionEffect, {\n matrix: convolutionMatrix.clarity\n }]);\n } // apply noise\n\n\n if (gammaLevel > 0) {\n filters.push([gammaEffect, {\n level: 1.0 / gammaLevel\n }]);\n } // apply color matrix\n\n\n if (colorMatrix && !isIdentityMatrix(colorMatrix)) {\n filters.push([colorEffect, {\n matrix: colorMatrix\n }]);\n } // apply noise\n\n\n if (noiseLevel > 0 || noiseLevel < 0) {\n filters.push([noiseEffect, {\n level: noiseLevel\n }]);\n } // apply vignette\n\n\n if (vignetteStrength > 0 || vignetteStrength < 0) {\n filters.push([vignetteEffect, {\n strength: vignetteStrength\n }]);\n } // no changes\n\n\n if (filters.length) {\n _context17.next = 10;\n break;\n }\n\n return _context17.abrupt(\"return\", imageData);\n\n case 10:\n // builds effect chain\n chain = function chain(transforms, i) {\n return \"(err, imageData) => {\\n (\".concat(transforms[i][0].toString(), \")(Object.assign({ imageData: imageData }, filterInstructions[\").concat(i, \"]), \\n \").concat(transforms[i + 1] ? chain(transforms, i + 1) : 'done', \")\\n }\");\n };\n\n filterChain = \"function (options, done) {\\n const filterInstructions = options.filterInstructions;\\n const imageData = options.imageData;\\n (\".concat(chain(filters, 0), \")(null, imageData)\\n }\");\n _context17.next = 14;\n return thread(filterChain, [{\n imageData: imageData,\n filterInstructions: filters.map(function (t) {\n return t[1];\n })\n }], [imageData.data.buffer]);\n\n case 14:\n imageData = _context17.sent;\n return _context17.abrupt(\"return\", imageDataObjectToImageData(imageData));\n\n case 16:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n }));\n\n return function filterImageData(_x27) {\n return _ref28.apply(this, arguments);\n };\n}();\n\nvar isNumber = function isNumber(v) {\n return typeof v === 'number';\n};\n\nvar isEmoji = function isEmoji(str) {\n return isString(str) && str.match(/(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\u0023-\\u0039]\\ufe0f?\\u20e3|\\u3299|\\u3297|\\u303d|\\u3030|\\u24c2|\\ud83c[\\udd70-\\udd71]|\\ud83c[\\udd7e-\\udd7f]|\\ud83c\\udd8e|\\ud83c[\\udd91-\\udd9a]|\\ud83c[\\udde6-\\uddff]|\\ud83c[\\ude01-\\ude02]|\\ud83c\\ude1a|\\ud83c\\ude2f|\\ud83c[\\ude32-\\ude3a]|\\ud83c[\\ude50-\\ude51]|\\u203c|\\u2049|[\\u25aa-\\u25ab]|\\u25b6|\\u25c0|[\\u25fb-\\u25fe]|\\u00a9|\\u00ae|\\u2122|\\u2139|\\ud83c\\udc04|[\\u2600-\\u26FF]|\\u2b05|\\u2b06|\\u2b07|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u231a|\\u231b|\\u2328|\\u23cf|[\\u23e9-\\u23f3]|[\\u23f8-\\u23fa]|\\ud83c\\udccf|\\u2934|\\u2935|[\\u2190-\\u21ff])/g) !== null;\n};\n\nvar hasProp = function hasProp(obj, key) {\n return obj.hasOwnProperty(key);\n};\n\nvar isArray = function isArray(arr) {\n return Array.isArray(arr);\n};\n\nvar isApple = function isApple() {\n return isIOS() || isMac();\n};\n\nvar isWindows = function isWindows() {\n return /^win/i.test(navigator.platform);\n}; // macos: font-size: 123, x: 63.5, y: 110\n// windows: font-size: 112, x: 64, y: 103\n// android: font-size: 112, x: 64, y: 102\n\n\nvar x = 64;\nvar y = 102;\nvar fontSize = 112;\nvar hasSetValues = false;\n\nvar getEmojiSVG = function getEmojiSVG(emoji, alt) {\n if (!hasSetValues && isBrowser()) {\n if (isWindows()) y = 103;\n\n if (isApple()) {\n x = 63.5;\n y = 110;\n fontSize = 123;\n }\n\n hasSetValues = true;\n }\n\n return \"\").concat(emoji, \"\");\n};\n\nvar SVGToDataURL = function SVGToDataURL(svg) {\n return \"data:image/svg+xml,\".concat(svg.replace('<', '%3C').replace('>', '%3E'));\n};\n\nvar isBinary = function isBinary(v) {\n return v instanceof Blob;\n};\n\nvar toPercentage = function toPercentage(value, total) {\n return \"\".concat(value / total * 100, \"%\");\n};\n\nvar colorArrayToRGBA = function colorArrayToRGBA(color) {\n return \"rgba(\".concat(Math.round(color[0] * 255), \", \").concat(Math.round(color[1] * 255), \", \").concat(Math.round(color[2] * 255), \", \").concat(isNumber(color[3]) ? color[3] : 1, \")\");\n}; // tested and this seems a tiny bit faster than JSON.stringify\n\n\nvar objectUID = function objectUID(obj) {\n return Object.values(obj).join('_');\n};\n\nvar timeout = function timeout() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}; // cannot use a ObjectURL because of a webkit bug (throws error in chrome / safari)\n// returns true if every pixel's uint32 representation is 0 (or \"blank\")\n\n\nvar isContextBlank = function isContextBlank(ctx) {\n var buffer = new Uint32Array(ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height).data.buffer);\n return !buffer.some(function (color) {\n return color !== 0;\n });\n};\n\nvar width = 80;\nvar height = 80;\n\nvar whenSVGSafeForDrawing = /*#__PURE__*/function () {\n var _ref29 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(img) {\n var delay,\n canvas,\n ctx,\n _args18 = arguments;\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n delay = _args18.length > 1 && _args18[1] !== undefined ? _args18[1] : 0;\n // Safari has some trouble with custom fonts\n canvas = h('canvas', {\n width: width,\n height: height\n });\n ctx = canvas.getContext('2d'); // always wait a short while because it's never ready on first draw\n\n _context18.next = 5;\n return timeout(delay);\n\n case 5:\n // we draw the image so we can test if the content is drawn. If custom font isn't ready the canvas will be empty\n ctx.drawImage(img, 0, 0, width, height);\n\n if (!(isContextBlank(ctx) && delay <= 256)) {\n _context18.next = 10;\n break;\n }\n\n _context18.next = 9;\n return whenSVGSafeForDrawing(img, delay + 16);\n\n case 9:\n return _context18.abrupt(\"return\", _context18.sent);\n\n case 10:\n return _context18.abrupt(\"return\", true);\n\n case 11:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18);\n }));\n\n return function whenSVGSafeForDrawing(_x28) {\n return _ref29.apply(this, arguments);\n };\n}(); // store cached draw cycles here\n\n\nvar safariDrawCache = new Map();\n\nvar svgToImage = function svgToImage(svg) {\n var _ref30 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref30$safariCacheKey = _ref30.safariCacheKey,\n safariCacheKey = _ref30$safariCacheKey === void 0 ? '*' : _ref30$safariCacheKey;\n\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onerror = function () {\n return reject(new Error('Failed to load SVG'));\n };\n\n img.onload = function () {\n // uncomment to test difference between SVG as dataURL and SVG in page\n // if (document.getElementById('svgdiv')) document.getElementById('svgdiv').remove();\n // document.body.append(\n // h('div', {\n // id: 'svgdiv',\n // style: `\n // position:absolute;\n // top:0;\n // left:0;\n // display:flex;\n // pointer-events:none;\n // z-index:99999999999999;\n // filter:invert(100%);\n // opacity:.5;\n // outline:1px solid green;`,\n // innerHTML: svg,\n // })\n // );\n // We done!\n if (!isSafari() || !svg.includes('@font-face') || safariDrawCache.has(safariCacheKey)) {\n return resolve(img);\n } // wait for embedded fonts to load\n\n\n whenSVGSafeForDrawing(img).then(function () {\n safariDrawCache.set(safariCacheKey, true);\n resolve(img);\n });\n };\n\n img.src = 'data:image/svg+xml,' + svg; // uncomment to test difference between SVG as dataURL and SVG in page\n // const dupe = img.cloneNode() as HTMLElement;\n // if (document.getElementById('svgimage')) document.getElementById('svgimage').remove();\n // document.body.append(dupe);\n // dupe.id = 'svgimage';\n // dupe.style.cssText = `\n // pointer-events:none;\n // z-index:99999999999999;\n // position:absolute;\n // top:0;\n // left:0;\n // outline:1px solid purple;`;\n });\n};\n\nvar blobToDataURL = function blobToDataURL(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onerror = function () {\n return reject(reader.error);\n };\n\n reader.onload = function () {\n return resolve(reader.result);\n };\n\n reader.readAsDataURL(blob);\n });\n};\n\nvar pubsub = function pubsub() {\n var subs = [];\n return {\n sub: function sub(event, callback) {\n subs.push({\n event: event,\n callback: callback\n });\n return function () {\n return subs = subs.filter(function (subscriber) {\n return subscriber.event !== event || subscriber.callback !== callback;\n });\n };\n },\n pub: function pub(event, value) {\n subs.filter(function (sub) {\n return sub.event === event;\n }).forEach(function (sub) {\n return sub.callback(value);\n });\n }\n };\n}; // used to make sure text is drawn outside of element in a correct way\n\n\nvar TextPadding = 32;\n\nvar textGetInitialLineOffset = function textGetInitialLineOffset() {\n var _ref31 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref31$fontSize = _ref31.fontSize,\n fontSize = _ref31$fontSize === void 0 ? 16 : _ref31$fontSize,\n _ref31$lineHeight = _ref31.lineHeight,\n lineHeight = _ref31$lineHeight === void 0 ? 20 : _ref31$lineHeight;\n\n return Math.max(0, fontSize - lineHeight) * 0.5;\n};\n\nvar textGetLineCount = function textGetLineCount() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return text.split('\\n').length;\n};\n\nvar textGetStyles = function textGetStyles(_ref32) {\n var _ref32$color = _ref32.color,\n color = _ref32$color === void 0 ? [0, 0, 0] : _ref32$color,\n _ref32$fontSize = _ref32.fontSize,\n fontSize = _ref32$fontSize === void 0 ? 16 : _ref32$fontSize,\n _ref32$fontFamily = _ref32.fontFamily,\n fontFamily = _ref32$fontFamily === void 0 ? 'sans-serif' : _ref32$fontFamily,\n _ref32$fontVariant = _ref32.fontVariant,\n fontVariant = _ref32$fontVariant === void 0 ? 'normal' : _ref32$fontVariant,\n _ref32$fontWeight = _ref32.fontWeight,\n fontWeight = _ref32$fontWeight === void 0 ? 'normal' : _ref32$fontWeight,\n _ref32$fontStyle = _ref32.fontStyle,\n fontStyle = _ref32$fontStyle === void 0 ? 'normal' : _ref32$fontStyle,\n _ref32$textAlign = _ref32.textAlign,\n textAlign = _ref32$textAlign === void 0 ? 'left' : _ref32$textAlign,\n _ref32$letterSpacing = _ref32.letterSpacing,\n letterSpacing = _ref32$letterSpacing === void 0 ? 'normal' : _ref32$letterSpacing,\n _ref32$lineHeight = _ref32.lineHeight,\n lineHeight = _ref32$lineHeight === void 0 ? 20 : _ref32$lineHeight;\n var scalar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return \"font-size:\".concat(fontSize * scalar, \"px;font-style:\").concat(fontStyle, \";font-weight:\").concat(fontWeight, \";font-family:\").concat(fontFamily, \";font-variant:\").concat(fontVariant, \";line-height:\").concat(lineHeight * scalar, \"px;text-align:\").concat(textAlign, \";letter-spacing:\").concat(isNumber(letterSpacing) ? letterSpacing + 'px' : 'normal', \";color:\").concat(colorArrayToRGBA(color), \";\");\n};\n\nvar textGetContentEditableStyles = function textGetContentEditableStyles(text, options) {\n var scalar = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var width = options.width,\n height = options.height,\n disableNewline = options.disableNewline;\n var isAutoWidth = !width;\n var allowNewline = disableNewline === false ? textGetLineCount(text) : undefined;\n var widthValue = isAutoWidth ? 'auto' : \"\".concat(width * scalar, \"px\");\n var heightValue = height ? \"\".concat(height * scalar, \"px\") : 'auto';\n var wordBreak = isAutoWidth ? 'normal' : 'break-word';\n var whiteSpace = isAutoWidth && !allowNewline ? 'nowrap' : 'pre-line';\n var paddingTop = textGetInitialLineOffset(options) * scalar;\n return \"max-width:none;min-width:auto;width:\".concat(widthValue, \";height:\").concat(heightValue, \";margin-top:0;margin-bottom:0;padding-top:\").concat(paddingTop, \"px;word-break:\").concat(wordBreak, \";word-wrap:normal;white-space:\").concat(whiteSpace, \";\");\n};\n\nvar TextMeasureCache = new Map();\n\nvar toParts = function toParts(node) {\n var parts = [];\n\n for (var _i2 = 0, _Array$from = Array.from(node.childNodes); _i2 < _Array$from.length; _i2++) {\n var childNode = _Array$from[_i2];\n\n if (childNode.nodeType === Node.TEXT_NODE) {\n parts.push(textToLines(childNode));\n } else {\n parts.push.apply(parts, _toConsumableArray(toParts(childNode)));\n }\n }\n\n return parts;\n};\n\nvar MeasureStyles = 'pointer-events:none;visibility:hidden;position:absolute;left:0;top:0;';\n\nvar textMeasure = function textMeasure() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var options = arguments.length > 1 ? arguments[1] : undefined;\n // gather props that impact size and test if can be found in cache\n var _options$width = options.width,\n width = _options$width === void 0 ? 0 : _options$width,\n _options$height = options.height,\n height = _options$height === void 0 ? 'auto' : _options$height,\n fontSize = options.fontSize,\n fontFamily = options.fontFamily,\n lineHeight = options.lineHeight,\n fontWeight = options.fontWeight,\n fontStyle = options.fontStyle,\n fontVariant = options.fontVariant,\n letterSpacing = options.letterSpacing;\n var uid = objectUID({\n text: text,\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontSize: fontSize,\n lineHeight: lineHeight,\n letterSpacing: letterSpacing,\n width: width,\n height: height\n });\n var measurement = TextMeasureCache.get(uid);\n if (measurement) return measurement; // firefox limits font size to 1000px, so if we're above, we scale down before measuring and then scale up after measuring\n\n var fontScalar = 1;\n\n if (fontSize > 1000 && isFirefox()) {\n fontScalar = fontSize / 1000;\n fontSize = 1000;\n lineHeight = lineHeight * fontScalar;\n }\n\n var element = appendForMeasuring(h('pre', {\n contenteditable: 'true',\n spellcheck: 'false',\n style: \"\".concat(MeasureStyles).concat(textGetStyles({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontSize: fontSize,\n letterSpacing: letterSpacing,\n lineHeight: lineHeight\n }), \";\").concat(textGetContentEditableStyles(text, options), \"\\\"\"),\n innerHTML: text\n }));\n var elementRect = element.getBoundingClientRect(); // @ts-ignore\n\n var elementTextParts = toParts(element).flat();\n measurement = {\n // @ts-ignore\n signature: elementTextParts.map(function (line) {\n return line.text;\n }).join('_;_'),\n textSize: sizeApply(sizeCreateFromAny(elementRect), function (v) {\n return Math.ceil(v * fontScalar);\n })\n };\n TextMeasureCache.set(uid, measurement); // clean up measured elements\n\n element.remove();\n return measurement;\n};\n\nvar textToLines = function textToLines(node) {\n var text = node.nodeValue;\n if (!text) return [];\n var textLength = text.length;\n var range = document.createRange();\n range.selectNodeContents(node);\n var lines = [];\n\n for (var i = 0; i < textLength; i++) {\n range.setStart(node, 0);\n range.setEnd(node, i + 1); // which line are we at\n\n var lineIndex = range.getClientRects().length - 1; // get current character\n\n var char = text.charAt(i); // new line, or add to current line\n\n if (!lines[lineIndex]) lines.push(char);else lines[lineIndex] += char;\n } // merge text and rects\n\n\n var clientRects = range.getClientRects();\n return lines.map(function (line, index) {\n return {\n rect: clientRects[index],\n text: line\n };\n });\n};\n\nvar TextSizeCache = new Map();\n\nvar textToSize = function textToSize() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var options = arguments.length > 1 ? arguments[1] : undefined;\n var _options$width2 = options.width,\n width = _options$width2 === void 0 ? 0 : _options$width2,\n _options$height2 = options.height,\n height = _options$height2 === void 0 ? 0 : _options$height2;\n if (width && height) return sizeCreate(width, height); // gather props that impact size and test if can be found in cache\n\n var _options$fontSize = options.fontSize,\n fontSize = _options$fontSize === void 0 ? 16 : _options$fontSize,\n fontFamily = options.fontFamily,\n _options$lineHeight = options.lineHeight,\n lineHeight = _options$lineHeight === void 0 ? 20 : _options$lineHeight,\n fontWeight = options.fontWeight,\n fontStyle = options.fontStyle,\n fontVariant = options.fontVariant,\n letterSpacing = options.letterSpacing;\n var uid = objectUID({\n text: text,\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontSize: fontSize,\n letterSpacing: letterSpacing,\n lineHeight: lineHeight,\n width: width\n });\n var size = TextSizeCache.get(uid);\n if (size) return size; // firefox limits font size to 1000px, so if we're above, we scale down before measuring and then scale up after measuring\n\n var fontScalar = 1;\n\n if (fontSize > 1000 && isFirefox()) {\n fontScalar = fontSize / 1000;\n fontSize = 1000;\n lineHeight = lineHeight / fontScalar;\n } // new measurement needed\n\n\n var element = appendForMeasuring(h('pre', {\n contenteditable: 'true',\n spellcheck: 'false',\n style: \"\".concat(MeasureStyles).concat(textGetStyles(_objectSpread(_objectSpread({}, options), {}, {\n fontSize: fontSize,\n lineHeight: lineHeight\n })), \";\").concat(textGetContentEditableStyles(text, options), \"\\\"\"),\n innerHTML: text\n }));\n var rect = element.getBoundingClientRect();\n size = sizeCreateFromAny(rect); // cache measurement for next query\n\n size = sizeApply(size, function (v) {\n return v * fontScalar;\n }); // use fixed width if supplied\n\n if (width) size.width = width;\n TextSizeCache.set(uid, size);\n return size;\n};\n\nvar getPathFromURL = function getPathFromURL(url) {\n return url.pathname.split('/').slice(0, -1).join('/');\n};\n\nvar createStyleSheetLoader = function createStyleSheetLoader(url, willRequest) {\n var _pubsub = pubsub(),\n _sub = _pubsub.sub,\n pub = _pubsub.pub;\n\n var text;\n var error;\n Promise.resolve(willRequest && willRequest(url, {\n resourceType: 'stylesheet'\n })).then(function (requestInit) {\n // prevent load\n if (requestInit === false) {\n error = 'requestPrevented';\n return pub('error', error);\n } // get props\n\n\n var _ref33 = requestInit || {},\n headers = _ref33.headers,\n credentials = _ref33.credentials; // fetching\n\n\n fetch(url, {\n headers: headers,\n credentials: credentials\n }).then(function (res) {\n return res.text();\n }).then(function (txt) {\n text = txt;\n pub('load', text);\n }).catch(function (err) {\n error = err;\n pub('error', error);\n });\n });\n return {\n sub: function sub(event, cb) {\n if (event === 'load' && text) return cb(text);\n if (event === 'error' && error) return cb(error);\n\n _sub(event, cb);\n }\n };\n};\n\nvar StyleSheetLoaders = new Map();\n\nvar loadStylesheet = function loadStylesheet(url, willRequest) {\n return new Promise(function (resolve, reject) {\n var loader = StyleSheetLoaders.get(url);\n\n if (typeof loader === 'undefined') {\n loader = createStyleSheetLoader(url, willRequest);\n StyleSheetLoaders.set(url, loader);\n }\n\n loader.sub('load', resolve);\n loader.sub('error', reject);\n });\n}; // use this method to access rules because when accessing third party stylesheetes like google fonts it will throw a warning\n\n\nvar getRulesRemote = /*#__PURE__*/function () {\n var _ref34 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(src, willRequest, styleNonce) {\n var styleSheetContent, styleProps, styleElement, tempStyleSheet;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n _context19.next = 3;\n return loadStylesheet(src, willRequest);\n\n case 3:\n styleSheetContent = _context19.sent;\n _context19.next = 9;\n break;\n\n case 6:\n _context19.prev = 6;\n _context19.t0 = _context19[\"catch\"](0);\n return _context19.abrupt(\"return\", []);\n\n case 9:\n styleProps = {\n innerHTML: styleSheetContent,\n id: getUniqueId()\n };\n if (styleNonce) styleProps.nonce = styleNonce;\n styleElement = h('style', styleProps);\n document.head.append(styleElement);\n tempStyleSheet = Array.from(document.styleSheets).find(function (styleSheet) {\n var node = styleSheet.ownerNode;\n return node.id === styleElement.id;\n });\n styleElement.remove();\n return _context19.abrupt(\"return\", Array.from(tempStyleSheet.cssRules));\n\n case 16:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, null, [[0, 6]]);\n }));\n\n return function getRulesRemote(_x29, _x30, _x31) {\n return _ref34.apply(this, arguments);\n };\n}();\n\nvar RemoteStyleSheetRulesCache = new Map();\n\nvar filterFontFaceRules = function filterFontFaceRules(rules) {\n return rules.filter(function (rule) {\n return rule instanceof CSSFontFaceRule;\n });\n};\n\nvar filterImportRules = function filterImportRules(rules) {\n return rules.filter(function (rule) {\n return rule instanceof CSSImportRule;\n });\n};\n\nvar getFontFaceRulesSafe = /*#__PURE__*/function () {\n var _ref35 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(styleSheet, willRequest, styleNonce) {\n var rules, _iterator, _step, importRule, url, _remoteRules, remoteRules, _url;\n\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n if (!RemoteStyleSheetRulesCache.has(styleSheet.href)) {\n _context20.next = 2;\n break;\n }\n\n return _context20.abrupt(\"return\", RemoteStyleSheetRulesCache.get(styleSheet.href));\n\n case 2:\n _context20.prev = 2;\n // get all rules\n rules = Array.from(styleSheet.cssRules); // get @imports\n\n _iterator = _createForOfIteratorHelper(filterImportRules(rules));\n _context20.prev = 5;\n\n _iterator.s();\n\n case 7:\n if ((_step = _iterator.n()).done) {\n _context20.next = 21;\n break;\n }\n\n importRule = _step.value;\n url = importRule.href; // already loaded this one before\n\n if (!RemoteStyleSheetRulesCache.has(url)) {\n _context20.next = 14;\n break;\n }\n\n _remoteRules = RemoteStyleSheetRulesCache.get(url);\n rules = [].concat(_toConsumableArray(rules), _toConsumableArray(_remoteRules));\n return _context20.abrupt(\"continue\", 19);\n\n case 14:\n _context20.next = 16;\n return getRulesRemote(url, willRequest, styleNonce);\n\n case 16:\n remoteRules = _context20.sent;\n // remember returned rules for next run\n RemoteStyleSheetRulesCache.set(url, remoteRules); // add found rules\n\n rules = [].concat(_toConsumableArray(rules), _toConsumableArray(remoteRules));\n\n case 19:\n _context20.next = 7;\n break;\n\n case 21:\n _context20.next = 26;\n break;\n\n case 23:\n _context20.prev = 23;\n _context20.t0 = _context20[\"catch\"](5);\n\n _iterator.e(_context20.t0);\n\n case 26:\n _context20.prev = 26;\n\n _iterator.f();\n\n return _context20.finish(26);\n\n case 29:\n _context20.next = 38;\n break;\n\n case 31:\n _context20.prev = 31;\n _context20.t1 = _context20[\"catch\"](2);\n _url = styleSheet.href; // this tries to load the styles with `fetch`\n\n _context20.next = 36;\n return getRulesRemote(_url, willRequest, styleNonce);\n\n case 36:\n rules = _context20.sent;\n // remember returned rules for next run\n RemoteStyleSheetRulesCache.set(_url, rules);\n\n case 38:\n return _context20.abrupt(\"return\", filterFontFaceRules(rules));\n\n case 39:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, null, [[2, 31], [5, 23, 26, 29]]);\n }));\n\n return function getFontFaceRulesSafe(_x32, _x33, _x34) {\n return _ref35.apply(this, arguments);\n };\n}();\n\nvar getCSSPropertyValue = function getCSSPropertyValue(rule, name) {\n return rule.style.getPropertyValue(name);\n};\n\nvar isMatchingFontRule = function isMatchingFontRule(rule, fontFamily) {\n if (!rule.style) return false;\n var family = getCSSPropertyValue(rule, 'font-family').replace(/^\"|\"$/g, '');\n return family == fontFamily;\n};\n\nvar getMatchingFontRule = function getMatchingFontRule(rules, fontFamily) {\n var res = [];\n\n var _iterator2 = _createForOfIteratorHelper(rules),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var fontRule = _step2.value;\n var isMatch = isMatchingFontRule(fontRule, fontFamily);\n if (!isMatch) continue;\n res.push(fontRule);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return res;\n};\n\nvar getDocumentStylesheetFontFaceRules = /*#__PURE__*/function () {\n var _ref36 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(willRequest, styleNonce) {\n var styleSheets, ruleSets, rules;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n styleSheets = Array.from(document.styleSheets).map(function (styleSheet) {\n return getFontFaceRulesSafe(styleSheet, willRequest, styleNonce);\n });\n _context21.next = 3;\n return Promise.all(styleSheets);\n\n case 3:\n ruleSets = _context21.sent;\n rules = [];\n ruleSets.forEach(function (ruleSet) {\n return rules.push.apply(rules, _toConsumableArray(ruleSet));\n });\n return _context21.abrupt(\"return\", rules);\n\n case 7:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21);\n }));\n\n return function getDocumentStylesheetFontFaceRules(_x35, _x36) {\n return _ref36.apply(this, arguments);\n };\n}();\n\nvar getFontSources = /*#__PURE__*/function () {\n var _ref37 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(fontFamily, willRequest, styleNonce) {\n var fontFaceRules, matchingRules;\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n _context22.next = 2;\n return getDocumentStylesheetFontFaceRules(willRequest, styleNonce);\n\n case 2:\n fontFaceRules = _context22.sent;\n // rules matching this font\n matchingRules = getMatchingFontRule(fontFaceRules, fontFamily);\n\n if (matchingRules.length) {\n _context22.next = 6;\n break;\n }\n\n return _context22.abrupt(\"return\", []);\n\n case 6:\n return _context22.abrupt(\"return\", matchingRules.map(function (rule) {\n // create stylesheet root path so we can determine font path\n var url = rule.parentStyleSheet && rule.parentStyleSheet.href && new URL(rule.parentStyleSheet.href);\n var styleSheetPath = url ? url.origin + getPathFromURL(url) + '/' : ''; // create font source\n\n var fontSources = rule.style.getPropertyValue('src');\n var fontSrcFirst = fontSources.match(/url\\(\"?(.*?)\"?\\)/)[1]; // get styles\n\n var fontProps = Array.from(rule.style).filter(function (prop) {\n return prop != 'src';\n }).reduce(function (props, key) {\n props += key + ':' + getCSSPropertyValue(rule, key) + ';';\n return props;\n }, ''); // merge together to create path (Safari font URL is absolute so if it is we only use that url)\n\n return [/^http/.test(fontSrcFirst) ? fontSrcFirst : styleSheetPath + fontSrcFirst, fontProps];\n }));\n\n case 7:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22);\n }));\n\n return function getFontSources(_x37, _x38, _x39) {\n return _ref37.apply(this, arguments);\n };\n}();\n\nvar FontLocal = new Map();\nvar FontCache = new Map(); // application/x-font-ttf\n// application/x-font-truetype\n// application/x-font-opentype\n// application/font-woff\n// application/font-woff2\n// font/otf\n// font/ttf\n// font/woff\n// font/woff2\n\nvar getFontFormatByMimeType = function getFontFormatByMimeType(type) {\n if (!type || /woff2/.test(type)) return 'woff2';\n if (/woff/.test(type)) return 'woff';\n if (/ttf|truetype/.test(type)) return 'truetype';\n if (/otf|opentype/.test(type)) return 'opentype';\n if (/svg/.test(type)) return 'svg';\n return 'woff2';\n};\n\nvar getFontFaceEmbed = /*#__PURE__*/function () {\n var _ref38 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(fontFamily, willRequest, styleNonce) {\n var fontStyles, fontSources, fontFaces, _iterator3, _step3, _ref41, _ref40, fontSource, fontProps, blob, dataType, dataURL;\n\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n if (!FontLocal.get(fontFamily)) {\n _context23.next = 2;\n break;\n }\n\n return _context23.abrupt(\"return\");\n\n case 2:\n fontStyles = FontCache.get(fontFamily);\n\n if (fontStyles) {\n _context23.next = 39;\n break;\n }\n\n _context23.next = 6;\n return getFontSources(fontFamily, willRequest, styleNonce);\n\n case 6:\n fontSources = _context23.sent;\n\n if (fontSources.length) {\n _context23.next = 10;\n break;\n }\n\n FontLocal.set(fontFamily, true);\n return _context23.abrupt(\"return\");\n\n case 10:\n fontFaces = [];\n _iterator3 = _createForOfIteratorHelper(fontSources);\n _context23.prev = 12;\n\n _iterator3.s();\n\n case 14:\n if ((_step3 = _iterator3.n()).done) {\n _context23.next = 29;\n break;\n }\n\n _ref41 = _step3.value;\n _ref40 = _slicedToArray(_ref41, 2);\n fontSource = _ref40[0];\n fontProps = _ref40[1];\n _context23.next = 21;\n return fetch(fontSource).then(function (res) {\n return res.blob();\n });\n\n case 21:\n blob = _context23.sent;\n dataType = getFontFormatByMimeType(blob.type);\n _context23.next = 25;\n return blobToDataURL(blob);\n\n case 25:\n dataURL = _context23.sent;\n fontFaces.push(\"@font-face { src:url(\".concat(dataURL, \") format('\").concat(dataType, \"');\").concat(fontProps, \";font-display:block; }\"));\n\n case 27:\n _context23.next = 14;\n break;\n\n case 29:\n _context23.next = 34;\n break;\n\n case 31:\n _context23.prev = 31;\n _context23.t0 = _context23[\"catch\"](12);\n\n _iterator3.e(_context23.t0);\n\n case 34:\n _context23.prev = 34;\n\n _iterator3.f();\n\n return _context23.finish(34);\n\n case 37:\n fontStyles = fontFaces.join(''); // cache the font so it's super fast in next request\n\n FontCache.set(fontFamily, fontStyles);\n\n case 39:\n return _context23.abrupt(\"return\", fontStyles);\n\n case 40:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, null, [[12, 31, 34, 37]]);\n }));\n\n return function getFontFaceEmbed(_x40, _x41, _x42) {\n return _ref38.apply(this, arguments);\n };\n}();\n\nvar textToImage = /*#__PURE__*/function () {\n var _ref42 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24() {\n var text,\n options,\n color,\n _options$imageWidth,\n imageWidth,\n _options$imageHeight,\n imageHeight,\n _options$paddingTop,\n paddingTop,\n _options$paddingRight,\n paddingRight,\n _options$paddingBotto,\n paddingBottom,\n _options$paddingLeft,\n paddingLeft,\n fontFamily,\n fontSize,\n _options$pixelRatio,\n pixelRatio,\n willRequest,\n outline,\n blur,\n styleNonce,\n fontScalar,\n fontScalarStyles,\n computedScalar,\n width,\n height,\n fontEmbed,\n fontFaceStyleTag,\n textEncoded,\n textFinal,\n computedPaddingTop,\n computedPaddingRight,\n computedPaddingBottom,\n computedPaddingLeft,\n paddingStyles,\n fontColor,\n outlineStyles,\n blurStyles,\n computedColor,\n textStyles,\n textContentEditableStyles,\n svg,\n _args24 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n text = _args24.length > 0 && _args24[0] !== undefined ? _args24[0] : '';\n options = _args24.length > 1 ? _args24[1] : undefined;\n\n if (text.length) {\n _context24.next = 4;\n break;\n }\n\n return _context24.abrupt(\"return\");\n\n case 4:\n color = options.color, _options$imageWidth = options.imageWidth, imageWidth = _options$imageWidth === void 0 ? 300 : _options$imageWidth, _options$imageHeight = options.imageHeight, imageHeight = _options$imageHeight === void 0 ? 150 : _options$imageHeight, _options$paddingTop = options.paddingTop, paddingTop = _options$paddingTop === void 0 ? 0 : _options$paddingTop, _options$paddingRight = options.paddingRight, paddingRight = _options$paddingRight === void 0 ? TextPadding : _options$paddingRight, _options$paddingBotto = options.paddingBottom, paddingBottom = _options$paddingBotto === void 0 ? 0 : _options$paddingBotto, _options$paddingLeft = options.paddingLeft, paddingLeft = _options$paddingLeft === void 0 ? TextPadding : _options$paddingLeft, fontFamily = options.fontFamily, fontSize = options.fontSize, _options$pixelRatio = options.pixelRatio, pixelRatio = _options$pixelRatio === void 0 ? 1 : _options$pixelRatio, willRequest = options.willRequest, outline = options.outline, blur = options.blur, styleNonce = options.styleNonce; // manage high font-size on firefox, don't blanket handle it here as Chrome has trouble scaling svg context\n\n fontScalar = 1;\n fontScalarStyles = '';\n\n if (fontSize > 1000 && isFirefox()) {\n fontScalar = fontSize / 1000;\n fontScalarStyles = \"transform-origin:0 0;transform:scale(\".concat(fontScalar, \")\");\n }\n\n computedScalar = pixelRatio / fontScalar;\n width = (imageWidth + paddingLeft + paddingRight) * pixelRatio;\n height = (imageHeight + paddingBottom + paddingTop) * pixelRatio; // build font style tag if should be embedded\n\n _context24.next = 13;\n return getFontFaceEmbed(fontFamily, willRequest, styleNonce);\n\n case 13:\n fontEmbed = _context24.sent;\n fontFaceStyleTag = '';\n if (fontEmbed) fontFaceStyleTag = \"\").concat(fontEmbed, \"\"); // make sure text is encoded as characters before rendering in our SVG\n\n textEncoded = text // these characters need to be encoded in an SVG dataURL\n .replace(/%/g, '%25').replace(/#/g, '%23').replace(/ /g, \"\\xA0\") // replace non escaped ampersands\n .replace(/&(?!#\\d{4};|[a-z]+;)/gi, '&'); // no non-closing tags allowed in foreignObject as is xhtml namespace, safari and firefox don't draw newline character so replace with
\n\n textFinal = textEncoded.replace(/
|\\n/g, '
');\n computedPaddingTop = paddingTop * computedScalar;\n computedPaddingRight = paddingRight * computedScalar;\n computedPaddingBottom = paddingBottom * computedScalar;\n computedPaddingLeft = paddingLeft * computedScalar; // define padding style\n\n paddingStyles = \"top:\".concat(computedPaddingTop, \"px;right:\").concat(computedPaddingRight, \"px;bottom:\").concat(computedPaddingBottom, \"px;left:\").concat(computedPaddingLeft, \"px\"); // if shadow or outline\n\n fontColor = color;\n outlineStyles = '';\n blurStyles = '';\n\n if (outline || blur) {\n computedColor = colorArrayToRGBA(color);\n\n if (outline) {\n // we hide text\n fontColor = [0, 0, 0, 0]; // we use text color for outline\n\n outlineStyles = \"-webkit-text-stroke: \".concat(outline * 2 * computedScalar, \"px \").concat(computedColor);\n }\n\n if (blur) {\n if (isSafari()) {\n // Safari: somehow a text-shadow with a blur doesn't work when drawing the final image, so instead we use the blur()filter. The .4 approximates the amount of blur when using text-shadow.\n blurStyles = \"filter:blur(\".concat(blur * computedScalar * 0.4, \"px)\");\n } else {\n // we hide text\n fontColor = [0, 0, 0, 0]; // we use text color for shadow\n\n blurStyles = \"text-shadow: 0 0 \".concat(blur * computedScalar, \"px \").concat(computedColor);\n }\n }\n }\n\n textStyles = textGetStyles(_objectSpread(_objectSpread({}, options), {}, {\n color: fontColor,\n fontSize: fontSize\n }), computedScalar);\n textContentEditableStyles = textGetContentEditableStyles(text, options, computedScalar); // build svg string\n\n svg = \"
\").concat(fontFaceStyleTag, \"
\").concat(textFinal, \"
\");\n return _context24.abrupt(\"return\", svgToImage(svg, {\n safariCacheKey: fontFamily\n }));\n\n case 31:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24);\n }));\n\n return function textToImage() {\n return _ref42.apply(this, arguments);\n };\n}();\n\nvar shapeEqual = function shapeEqual(a, b) {\n return JSON.stringify(a) === JSON.stringify(b);\n};\n\nvar shapeDeepCopy = function shapeDeepCopy(shape) {\n var shapeShallowCopy = _objectSpread({}, shape);\n\n var shapeDeepCopy = deepCopy(shapeShallowCopy);\n return shapeDeepCopy;\n};\n\nvar getContextSize = function getContextSize(context) {\n var _ref43;\n\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var contextAspectRatio = rectAspectRatio(context);\n var xOut;\n var yOut;\n var xIn = size.width || size.rx;\n var yIn = size.height || size.ry;\n if (xIn && yIn) return sizeClone(size);\n\n if (xIn || yIn) {\n xOut = parseFloat(xIn || Number.MAX_SAFE_INTEGER);\n yOut = parseFloat(yIn || Number.MAX_SAFE_INTEGER);\n var min = Math.min(xOut, yOut);\n\n if (isString(xIn) || isString(yIn)) {\n xOut = \"\".concat(min, \"%\");\n yOut = \"\".concat(min * contextAspectRatio, \"%\");\n } else {\n xOut = min;\n yOut = min;\n }\n } else {\n var _min = 10;\n xOut = \"\".concat(_min, \"%\");\n yOut = \"\".concat(_min * contextAspectRatio, \"%\");\n }\n\n var xProp = size.width ? 'width' : size.rx ? 'rx' : undefined;\n var yProp = size.width ? 'height' : size.rx ? 'ry' : undefined;\n return _ref43 = {}, _defineProperty(_ref43, xProp || 'width', xOut), _defineProperty(_ref43, yProp || 'height', yOut), _ref43;\n};\n\nvar shapeCreateFromEmoji = function shapeCreateFromEmoji(emoji) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({\n width: undefined,\n height: undefined\n }, props), {}, {\n aspectRatio: 1,\n backgroundImage: SVGToDataURL(getEmojiSVG(emoji))\n });\n};\n\nvar shapeCreateFromImage = function shapeCreateFromImage(src) {\n var shapeProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var shapeDefaultLayout = shapeIsEllipse(shapeProps) ? {} : {\n width: undefined,\n height: undefined,\n aspectRatio: undefined\n };\n\n var shape = _objectSpread(_objectSpread(_objectSpread({\n // required/default image shape props\n backgroundColor: [0, 0, 0, 0]\n }, shapeDefaultLayout), shapeProps), {}, {\n // set image\n backgroundImage: // is svg or URL\n isString(src) ? src : isBinary(src) ? URL.createObjectURL(src) : src\n });\n\n return shape;\n};\n\nvar shapeCreateFromPreset = function shapeCreateFromPreset(preset, parentRect) {\n var shape;\n\n if (isString(preset) || isBinary(preset)) {\n // default props for \"quick\" preset\n var shapeOptions = _objectSpread(_objectSpread({}, getContextSize(parentRect)), {}, {\n backgroundSize: 'contain'\n }); // if is emoji, create default markup,\n\n\n if (isEmoji(preset)) {\n shape = shapeCreateFromEmoji(preset, shapeOptions);\n } // is URL, create default markup for image\n else {\n shape = shapeCreateFromImage(preset, shapeOptions);\n }\n } else {\n // is using src shortcut\n if (preset.src) {\n var contextSize = getContextSize(parentRect, preset.shape || preset); // shape options\n\n var _shapeOptions = _objectSpread(_objectSpread({}, preset.shape), contextSize); // should auto-fix aspect ratio\n\n\n if (preset.width && preset.height && !hasProp(_shapeOptions, 'aspectRatio')) {\n var _width = shapeGetPropPixelValue(contextSize, 'width', parentRect);\n\n var _height = shapeGetPropPixelValue(contextSize, 'height', parentRect);\n\n _shapeOptions.aspectRatio = getAspectRatio(_width, _height);\n } // should auto-contain sticker in container\n\n\n if (!_shapeOptions.backgroundSize && !preset.shape && (!preset.width || !preset.height)) _shapeOptions.backgroundSize = 'contain'; // emoji markup\n\n if (isEmoji(preset.src)) {\n shape = shapeCreateFromEmoji(preset.src, _shapeOptions);\n } // is url\n else {\n shape = shapeCreateFromImage(preset.src, _shapeOptions);\n }\n } // should have markup defined\n else if (preset.shape) {\n shape = shapeDeepCopy(preset.shape);\n }\n }\n\n if (hasProp(shape, 'backgroundImage')) {\n // set transparent background if no background color defined\n if (!hasProp(shape, 'backgroundColor')) {\n shape.backgroundColor = [0, 0, 0, 0];\n } // for rectangles with image presets, disable these styles by default\n\n\n if (!hasProp(shape, 'disableStyle')) {\n shape.disableStyle = ['cornerRadius', 'backgroundColor', 'strokeColor', 'strokeWidth'];\n }\n }\n\n return parentRect ? shapeComputeDisplay(shape, parentRect) : shape;\n};\n\nvar shapeLineGetStartPoint = function shapeLineGetStartPoint(line) {\n return vectorCreate(line.x1, line.y1);\n};\n\nvar shapeLineGetEndPoint = function shapeLineGetEndPoint(line) {\n return vectorCreate(line.x2, line.y2);\n}; //#endregion\n//#region shape testing\n// shape types\n\n\nvar shapeIsText = function shapeIsText(shape) {\n return hasProp(shape, 'text');\n};\n\nvar shapeIsTextBlock = function shapeIsTextBlock(shape) {\n return shapeIsText(shape) && !(shapeHasRelativeSize(shape) || hasProp(shape, 'width'));\n};\n\nvar shapeIsTextBox = function shapeIsTextBox(shape) {\n return shapeIsText(shape) && (shapeHasRelativeSize(shape) || hasProp(shape, 'width'));\n};\n\nvar shapeIsRect = function shapeIsRect(shape) {\n return !shapeIsText(shape) && shapeHasComputedSize(shape);\n};\n\nvar shapeIsEllipse = function shapeIsEllipse(shape) {\n return hasProp(shape, 'rx');\n};\n\nvar shapeIsLine = function shapeIsLine(shape) {\n return hasProp(shape, 'x1');\n};\n\nvar shapeIsPath = function shapeIsPath(shape) {\n return hasProp(shape, 'points');\n}; // shape state\n\n\nvar shapeIsTextEmpty = function shapeIsTextEmpty(shape) {\n return shapeIsText(shape) && !shape.text.length;\n};\n\nvar shapeIsTextEditing = function shapeIsTextEditing(shape) {\n return shapeIsText(shape) && shape.isEditing;\n};\n\nvar shapeIsVisible = function shapeIsVisible(shape) {\n return hasProp(shape, 'opacity') ? shape.opacity > 0 : true;\n};\n\nvar shapeIsSelected = function shapeIsSelected(shape) {\n return shape.isSelected;\n};\n\nvar shapeIsEditing = function shapeIsEditing(shape) {\n return shape.isEditing;\n};\n\nvar shapeIsDraft = function shapeIsDraft(shape) {\n return shape._isDraft;\n};\n\nvar shapeHasSize = function shapeHasSize(shape) {\n return hasProp(shape, 'width') && hasProp(shape, 'height');\n};\n\nvar shapeHasNumericStroke = function shapeHasNumericStroke(shape) {\n return isNumber(shape.strokeWidth) && shape.strokeWidth > 0;\n}; // only relevant if is bigger than 0\n\n\nvar shapeHasRelativePosition = function shapeHasRelativePosition(shape) {\n var hasRight = hasProp(shape, 'right');\n var hasBottom = hasProp(shape, 'bottom');\n return hasRight || hasBottom;\n};\n\nvar shapeHasTexture = function shapeHasTexture(shape) {\n return hasProp(shape, 'backgroundImage') || hasProp(shape, 'text');\n};\n\nvar shapeHasRelativeSize = function shapeHasRelativeSize(shape) {\n return (hasProp(shape, 'x') || hasProp(shape, 'left')) && hasProp(shape, 'right') || (hasProp(shape, 'y') || hasProp(shape, 'top')) && hasProp(shape, 'bottom');\n};\n\nvar shapeHasComputedSize = function shapeHasComputedSize(shape) {\n return shapeHasSize(shape) || shapeHasRelativeSize(shape);\n};\n\nvar shapeIsVisibleColor = function shapeIsVisibleColor(shape, colorProp) {\n var value = shape[colorProp];\n if (!value) return false;\n if (value.length === 3) return true;\n return value[3] > 0;\n};\n\nvar shapeHasStroke = function shapeHasStroke(shape) {\n return shape.strokeWidth && shapeIsVisibleColor(shape, 'strokeColor');\n}; // actions\n\n\nvar shapeSelect = function shapeSelect(shape) {\n shape.isSelected = true;\n return shape;\n};\n\nvar shapeMakeDraft = function shapeMakeDraft(shape) {\n shape._isDraft = true;\n return shape;\n};\n\nvar shapeMakeFinal = function shapeMakeFinal(shape) {\n shape._isDraft = false;\n return shape;\n}; // rights\n\n\nvar shapeCanStyle = function shapeCanStyle(shape, style) {\n if (shape.disableStyle === true) return false;\n\n if (isArray(shape.disableStyle) && style) {\n return !shape.disableStyle.includes(style);\n }\n\n return true;\n};\n\nvar shapeCanAcceptSnap = function shapeCanAcceptSnap(shape) {\n return shape.disableAcceptSnap !== true;\n};\n\nvar shapeCanSelect = function shapeCanSelect(shape) {\n return shape.disableSelect !== true;\n};\n\nvar shapeCanRemove = function shapeCanRemove(shape) {\n return shape.disableRemove !== true;\n};\n\nvar shapeCanDuplicate = function shapeCanDuplicate(shape) {\n return shape.disableDuplicate !== true && shapeCanMove(shape);\n};\n\nvar shapeCanReorder = function shapeCanReorder(shape) {\n return shape.disableReorder !== true;\n};\n\nvar shapeCanFlip = function shapeCanFlip(shape) {\n if (shape.disableFlip) return false;\n if (shapeIsDraft(shape) || shapeHasRelativePosition(shape)) return false;\n return shapeHasTexture(shape);\n};\n\nvar shapeCanInput = function shapeCanInput(shape, input) {\n if (!shapeIsText(shape)) return false;\n if (shape.disableInput === true) return false;\n if (isFunction(shape.disableInput)) return shape.disableInput(input != null ? input : shape.text);\n return input || true;\n};\n\nvar shapeCanChangeTextLayout = function shapeCanChangeTextLayout(shape, layout) {\n if (shape.disableTextLayout === true) return false;\n\n if (isArray(shape.disableTextLayout) && layout) {\n return !shape.disableTextLayout.includes(layout);\n }\n\n return true;\n};\n\nvar shapeCanSelectPoint = function shapeCanSelectPoint(shape) {\n // can't select points if below 3\n return shapeCanAddPoint(shape) && shape.points.length > 3;\n};\n\nvar shapeCanAddPoint = function shapeCanAddPoint(shape) {\n if (!shapeIsPath(shape)) return false;\n if (shape.disableAddPoints === undefined || shape.disableAddPoints === true) return false;\n return true;\n};\n\nvar shapeCanManipulate = function shapeCanManipulate(shape) {\n return shape.disableManipulate !== true && !shapeIsDraft(shape) && !shapeHasRelativePosition(shape);\n};\n\nvar shapeCanMove = function shapeCanMove(shape) {\n return shapeCanManipulate(shape) && shape.disableMove !== true;\n};\n\nvar shapeCanResize = function shapeCanResize(shape) {\n return shapeCanManipulate(shape) && shapeCanMove(shape) && shape.disableResize !== true && (shapeHasSize(shape) || shapeIsTextBox(shape) || shapeIsEllipse(shape) || shapeIsLine(shape) || shapeIsPath(shape) && hasProp(shape, 'pathClose'));\n};\n\nvar shapeCanRotate = function shapeCanRotate(shape) {\n return shapeCanManipulate(shape) && shape.disableRotate !== true && (shapeHasSize(shape) || hasProp(shape, 'text') || shapeIsEllipse(shape));\n}; //#endregion\n//#region shape formatting\n\n\nvar shapeDeleteRelativeProps = function shapeDeleteRelativeProps(shape) {\n delete shape.left;\n delete shape.right;\n delete shape.top;\n delete shape.bottom;\n return shape;\n};\n\nvar shapeDeleteTransformProps = function shapeDeleteTransformProps(shape) {\n delete shape.rotation;\n return shape;\n};\n\nvar shapeFormatStroke = function shapeFormatStroke(shape) {\n shape.strokeWidth = shape.strokeWidth || 1;\n shape.strokeColor = shape.strokeColor || [0, 0, 0];\n return shape;\n};\n\nvar shapeFormatFill = function shapeFormatFill(shape) {\n shape.backgroundColor = shape.backgroundColor ? shape.backgroundColor : shape.strokeWidth || shape.backgroundImage ? undefined : [0, 0, 0];\n return shape;\n}; // encode illegal characters\n// first replace entities, then encode characters that are left, then replace entities\n\n\nvar shapeFormatHTMLText = function shapeFormatHTMLText(shape) {\n var text = shape.text;\n text = text.replace(/&(#[0-9]+|[a-z]+);/gi, function (_, value) {\n return \"___\".concat(value, \"___\");\n });\n text = text.replace(/&/, '&');\n shape.text = text.replace(/___(#[0-9]+|[a-z]+)___/gi, function (_, value) {\n return \"&\".concat(value, \";\");\n });\n};\n\nvar shapeFormatPlainText = function shapeFormatPlainText(shape) {\n shapeFormatHTMLText(shape);\n var text = shape.text;\n text = text.replace(//g, '<');\n shape.text = text;\n};\n\nvar shapeExpandTextShadow = function shapeExpandTextShadow(shape) {\n if (!shape.textShadow) return shape;\n\n var _shape$textShadow = _slicedToArray(shape.textShadow, 4),\n x = _shape$textShadow[0],\n y = _shape$textShadow[1],\n blur = _shape$textShadow[2],\n color = _shape$textShadow[3];\n\n shape.textShadowX = x;\n shape.textShadowY = y;\n shape.textShadowBlur = blur;\n shape.textShadowColor = color;\n delete shape.textShadow;\n return shape;\n};\n\nvar shapeExpandOutline = function shapeExpandOutline(shape) {\n if (!shape.textOutline) return shape;\n\n var _shape$textOutline = _slicedToArray(shape.textOutline, 2),\n width = _shape$textOutline[0],\n color = _shape$textOutline[1];\n\n shape.textOutlineWidth = width;\n shape.textOutlineColor = color;\n delete shape.textOutline;\n};\n\nvar shapeFormatText = function shapeFormatText(shape) {\n shape.fontSize = shape.fontSize || '4%';\n shape.fontFamily = shape.fontFamily || 'sans-serif';\n shape.fontWeight = shape.fontWeight || 'normal';\n shape.fontStyle = shape.fontStyle || 'normal';\n shape.fontVariant = shape.fontVariant || 'normal';\n shape.lineHeight = shape.lineHeight || '120%';\n shape.color = shape.color || [0, 0, 0];\n shape.format = shape.format === 'html' ? 'html' : 'text';\n shapeExpandTextShadow(shape);\n shapeExpandOutline(shape);\n if (shape.format === 'html') shapeFormatHTMLText(shape);else shapeFormatPlainText(shape);\n return shapeIsTextBlock(shape) ? shapeFormatTextBlock(shape) : shapeFormatTextBox(shape);\n};\n\nvar shapeFormatTextBlock = function shapeFormatTextBlock(shape) {\n // for now can't align if not allowed to use newlines\n if (shape.disableNewline !== false) {\n delete shape.textAlign;\n shape.text = shape.text.replace(/\\n/g, ' ');\n }\n\n return shapeDeleteRelativeProps(shape);\n};\n\nvar shapeFormatTextBox = function shapeFormatTextBox(shape) {\n shape.textAlign = shape.textAlign || 'left';\n return shape;\n};\n\nvar shapeFormatRect = function shapeFormatRect(shape) {\n shape.cornerRadius = shape.cornerRadius || 0;\n shape.strokeWidth = shape.strokeWidth || 0;\n shape.strokeColor = shape.strokeColor || [0, 0, 0];\n return shapeFormatFill(shape);\n};\n\nvar shapeFormatEllipse = function shapeFormatEllipse(shape) {\n shape.strokeWidth = shape.strokeWidth || 0;\n shape.strokeColor = shape.strokeColor || [0, 0, 0];\n return shapeFormatFill(shape);\n};\n\nvar shapeFormatPath = function shapeFormatPath(shape) {\n shapeFormatStroke(shape);\n shapeDeleteTransformProps(shape);\n\n if (!hasProp(shape, 'pathClose')) {\n shape.disableResize = true;\n\n if (!hasProp(shape, 'disableMove')) {\n shape.disableMove = true;\n }\n }\n\n return shapeDeleteRelativeProps(shape);\n};\n\nvar shapeFormatLine = function shapeFormatLine(shape) {\n shapeFormatStroke(shape);\n shape.lineStart = shape.lineStart || undefined;\n shape.lineEnd = shape.lineEnd || undefined;\n shapeDeleteTransformProps(shape);\n return shapeDeleteRelativeProps(shape);\n};\n\nvar shapeFormatDefaults = function shapeFormatDefaults(shape) {\n if (!isString(shape.id)) shape.id = getUniqueId();\n if (!hasProp(shape, 'rotation')) shape.rotation = 0;\n if (!hasProp(shape, 'opacity')) shape.opacity = 1;\n if (!hasProp(shape, 'disableErase')) shape.disableErase = true;\n};\n\nvar shapeFormat = function shapeFormat(shape) {\n shapeFormatDefaults(shape);\n\n if (shapeIsText(shape)) {\n shapeFormatText(shape);\n } else if (shapeIsRect(shape)) {\n shapeFormatRect(shape);\n } else if (shapeIsPath(shape)) {\n shapeFormatPath(shape);\n } else if (shapeIsLine(shape)) {\n shapeFormatLine(shape);\n } else if (shapeIsEllipse(shape)) {\n shapeFormatEllipse(shape);\n }\n\n return shape;\n};\n\nvar shapeGetDescription = function shapeGetDescription(shape) {\n if (shapeIsText(shape)) return 'text';\n if (shapeIsRect(shape)) return 'rectangle';\n if (shapeIsPath(shape)) return 'path';\n if (shapeIsLine(shape)) return 'line';\n if (shapeIsEllipse(shape)) return 'ellipse';\n return;\n}; //#endregion\n\n\nvar toPixelValue = function toPixelValue(percentage, total) {\n return parseFloat(percentage) / 100 * total;\n}; //#region shape transforming\n\n\nvar xRegExp = new RegExp(/^x|left|right|^width|rx|fontSize|eraseRadius|feather|cornerRadius|strokeWidth|strokeDash/, 'i');\nvar yRegExp = new RegExp(/^y|top|bottom|^height|ry/, 'i');\n\nvar compute = function compute(key, value, _ref44) {\n var width = _ref44.width,\n height = _ref44.height;\n\n // handle array of percentage values\n if (Array.isArray(value)) {\n return value.map(function (v) {\n if (isObject(v)) {\n // update the object itself\n computeProps(v, {\n width: width,\n height: height\n });\n }\n\n if (isString(v)) {\n v = compute(key, v, {\n width: width,\n height: height\n });\n }\n\n return v;\n });\n } // no need to compute (test with typeof instead of for perf)\n\n\n if (typeof value !== 'string') return value;\n if (!value.endsWith('%')) return value;\n var f = parseFloat(value) / 100;\n if (xRegExp.test(key)) return fixPrecision(width * f, 6);\n if (yRegExp.test(key)) return fixPrecision(height * f, 6); // dont auto-compute\n\n return value;\n};\n\nvar shapeComputeProp = compute;\n\nvar computeRelativeToValue = function computeRelativeToValue(percentage, value) {\n return Math.round(value * (parseFloat(percentage) / 100));\n};\n\nvar PROPS_RELATIVE_TO_FONT_SIZE = ['lineHeight', 'textOutlineWidth', 'textShadowX', 'textShadowY', 'textShadowBlur'];\n\nvar computeProps = function computeProps(obj, context) {\n Object.entries(obj).map(function (_ref45) {\n var _ref46 = _slicedToArray(_ref45, 2),\n key = _ref46[0],\n value = _ref46[1];\n\n obj[key] = compute(key, value, context);\n }); // no text, skip\n\n if (!obj.text) return; // calculate props relative to font size\n\n PROPS_RELATIVE_TO_FONT_SIZE.filter(function (key) {\n return isString(obj[key]);\n }).forEach(function (key) {\n obj[key] = computeRelativeToValue(obj[key], obj.fontSize);\n });\n};\n\nvar shapeComputeDisplay = function shapeComputeDisplay(shape, context) {\n computeProps(shape, context);\n shapeComputeRect(shape, context);\n return shape;\n};\n\nvar shapeGetPropPixelTotal = function shapeGetPropPixelTotal(prop, parentRect) {\n var total;\n\n if (/^x|width|rx|fontSize|strokeWidth|cornerRadius/.test(prop)) {\n total = parentRect.width;\n } else if (/^y|height|ry/.test(prop)) {\n total = parentRect.height;\n }\n\n return total;\n};\n\nvar shapeUpdateProp = function shapeUpdateProp(shape, prop, value, parentRect) {\n if (!isString(shape[prop])) {\n shape[prop] = value;\n return shape;\n }\n\n var total = shapeGetPropPixelTotal(prop, parentRect);\n shape[prop] = total === undefined ? value : toPercentage(value, total);\n return shape;\n};\n\nvar shapeGetPropPixelValue = function shapeGetPropPixelValue(shape, prop, parentRect) {\n if (Array.isArray(shape[prop])) return shape[prop].map(function (item) {\n return Object.entries(item).reduce(function (mapped, _ref47) {\n var _ref48 = _slicedToArray(_ref47, 2),\n key = _ref48[0],\n value = _ref48[1];\n\n mapped[key] = isString(value) ? toPixelValue(value, shapeGetPropPixelTotal(key, parentRect)) : value;\n return mapped;\n }, {});\n });\n if (!isString(shape[prop])) return shape[prop];\n return toPixelValue(shape[prop], shapeGetPropPixelTotal(prop, parentRect));\n};\n\nvar shapeGetPropsPixelValues = function shapeGetPropsPixelValues(shape, props, parentRect) {\n return props.reduce(function (prev, prop) {\n var value = shapeGetPropPixelValue(shape, prop, parentRect);\n prev[prop] = value;\n return prev;\n }, {});\n};\n\nvar shapeUpdateProps = function shapeUpdateProps(shape, props, parentRect) {\n Object.keys(props).forEach(function (key) {\n return shapeUpdateProp(shape, key, props[key], parentRect);\n });\n return shape;\n};\n\nvar shapeBounds = function shapeBounds(shape) {\n var rect = rectCreateEmpty();\n var strokeWidth = shape.strokeWidth || 0;\n\n if (shapeIsRect(shape)) {\n rect.x = shape.x - strokeWidth * 0.5;\n rect.y = shape.y - strokeWidth * 0.5;\n rect.width = shape.width + strokeWidth;\n rect.height = shape.height + strokeWidth;\n } else if (shapeIsLine(shape)) {\n var x1 = shape.x1,\n y1 = shape.y1,\n x2 = shape.x2,\n y2 = shape.y2;\n var left = Math.abs(Math.min(x1, x2));\n var right = Math.abs(Math.max(x1, x2));\n var top = Math.abs(Math.min(y1, y2));\n var bottom = Math.abs(Math.min(y1, y2));\n rect.x = left + strokeWidth * 0.5;\n rect.y = right + strokeWidth * 0.5;\n rect.width = right - left + strokeWidth;\n rect.height = bottom - top + strokeWidth;\n } else if (shapeIsEllipse(shape)) {\n rect.x = shape.x - shape.rx + strokeWidth * 0.5;\n rect.y = shape.y - shape.ry + strokeWidth * 0.5;\n rect.width = shape.rx * 2 + strokeWidth;\n rect.height = shape.ry * 2 + strokeWidth;\n }\n\n if (rect && hasProp(shape, 'rotation')) {\n rectRotate(rect, shape.rotation);\n }\n\n return rectToBounds(rect);\n};\n\nvar shapesBounds = function shapesBounds(shapes, parentRect) {\n var bounds = shapes.filter(function (shape) {\n return shape.x < 0 || shape.y < 0 || shape.x1 < 0 || shape.y1 < 0;\n }).reduce(function (bounds, shape) {\n var _shapeBounds = shapeBounds(shape),\n _shapeBounds2 = _slicedToArray(_shapeBounds, 4),\n top = _shapeBounds2[0],\n right = _shapeBounds2[1],\n bottom = _shapeBounds2[2],\n left = _shapeBounds2[3];\n\n bounds.top = Math.min(top, bounds.top);\n bounds.left = Math.min(left, bounds.left);\n bounds.bottom = Math.max(bottom, bounds.bottom);\n bounds.right = Math.max(right, bounds.right);\n return bounds;\n }, {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n });\n if (bounds.right > 0) bounds.right -= parentRect.width;\n if (bounds.bottom > 0) bounds.bottom -= parentRect.height;\n return bounds;\n};\n\nvar shapesFromCompositShape = function shapesFromCompositShape(shape, parentRect, parser) {\n var shapeCopy = shapeDeepCopy(shape);\n shapeComputeDisplay(shapeCopy, parentRect);\n var shapes = parser(shapeCopy);\n return Array.isArray(shapes) ? shapes : [shapes];\n};\n\nvar shapeComputeRect = function shapeComputeRect(shape, context) {\n if (hasProp(shape, 'left')) shape.x = shape.left;\n\n if (hasProp(shape, 'right') && !isString(shape.right)) {\n var _r2 = context.width - shape.right;\n\n if (hasProp(shape, 'left')) {\n shape.x = shape.left;\n shape.width = Math.max(0, _r2 - shape.left);\n } else if (hasProp(shape, 'width')) {\n shape.x = _r2 - shape.width;\n }\n }\n\n if (hasProp(shape, 'top')) shape.y = shape.top;\n\n if (hasProp(shape, 'bottom') && !isString(shape.bottom)) {\n var b = context.height - shape.bottom;\n\n if (hasProp(shape, 'top')) {\n shape.y = shape.top;\n shape.height = Math.max(0, b - shape.top);\n } else if (hasProp(shape, 'height')) {\n shape.y = b - shape.height;\n }\n }\n\n return shape;\n}; // currently only used for drawing to canvas in output\n\n\nvar shapeScale = function shapeScale(shape, scale) {\n if (shapeIsPath(shape)) {\n shape.points.filter(function (point) {\n return isNumber(point.x);\n }).forEach(function (point) {\n point.x *= scale;\n point.y *= scale;\n });\n }\n\n if (shapeIsLine(shape) && isNumber(shape.x1)) {\n shape.x1 *= scale;\n shape.y1 *= scale;\n shape.x2 *= scale;\n shape.y2 *= scale;\n }\n\n if (isNumber(shape.x) && isNumber(shape.y)) {\n shape.x *= scale;\n shape.y *= scale;\n }\n\n if (isNumber(shape.width) && isNumber(shape.height)) {\n shape.width *= scale;\n shape.height *= scale;\n }\n\n if (isNumber(shape.rx) && isNumber(shape.ry)) {\n shape.rx *= scale;\n shape.ry *= scale;\n }\n\n if (shapeHasNumericStroke(shape)) {\n shape.strokeWidth *= scale;\n }\n\n if (shapeIsText(shape)) {\n shape._scale = scale;\n\n if (isNumber(shape.fontSize)) {\n shape.fontSize *= scale;\n }\n\n if (isNumber(shape.lineHeight)) {\n shape.lineHeight *= scale;\n }\n\n if (isNumber(shape.width) && !isNumber(shape.height)) shape.width *= scale;\n }\n\n if (hasProp(shape, 'cornerRadius') && isNumber(shape.cornerRadius)) {\n shape.cornerRadius *= scale;\n }\n\n return shape;\n};\n\nvar shapeGetLength = function shapeGetLength(shape) {\n if (!shape.x1) return;\n return vectorDistance(vectorCreate(shape.x1, shape.y1), vectorCreate(shape.x2, shape.y2));\n};\n\nvar shapeGetCenter = function shapeGetCenter(shape) {\n if (shapeIsRect(shape)) {\n return vectorCreate(shape.x + shape.width * 0.5, shape.y + shape.height * 0.5);\n }\n\n if (shapeIsEllipse(shape)) {\n return vectorCreate(shape.x, shape.y);\n }\n\n if (shape.text) {\n // if is text box we try to use width & height values\n if (shapeIsTextBox(shape)) {\n var _height2 = shape.height || textToSize(shape.text, shape).height;\n\n return vectorCreate(shape.x + shape.width * 0.5, shape.y + _height2 * 0.5);\n } // else we calculate text size\n\n\n var size = textToSize(shape.text, shape);\n return vectorCreate(shape.x + size.width * 0.5, shape.y + size.height * 0.5);\n }\n\n if (shapeIsPath(shape)) {\n return vectorCenter(shape.points);\n }\n\n if (shapeIsLine(shape)) {\n return vectorCenter([shapeLineGetStartPoint(shape), shapeLineGetEndPoint(shape)]);\n }\n\n return undefined;\n}; //#endregion\n\n\nvar shapeGetLevel = function shapeGetLevel(shapeInitialState, imageCurrentState) {\n var flipX = false;\n\n if (imageCurrentState.flipX && shapeInitialState.flipX) {\n flipX = true;\n } else if (!imageCurrentState.flipX && shapeInitialState.flipX) {\n flipX = false;\n } else if (imageCurrentState.flipX && !shapeInitialState.flipX) {\n flipX = true;\n }\n\n var flipY = false;\n\n if (imageCurrentState.flipY && shapeInitialState.flipY) {\n flipY = true;\n } else if (!imageCurrentState.flipY && shapeInitialState.flipY) {\n flipY = false;\n } else if (imageCurrentState.flipY && !shapeInitialState.flipY) {\n flipY = true;\n }\n\n var rotation = -imageCurrentState.rotation;\n if ((flipX || flipY) && !(flipX && flipY)) rotation = -rotation;\n return {\n flipX: flipX,\n flipY: flipY,\n rotation: rotation\n };\n};\n\nvar ctxRoundRect = function ctxRoundRect(ctx, x, y, width, height, radius) {\n if (width < 2 * radius) radius = width / 2;\n if (height < 2 * radius) radius = height / 2;\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n ctx.arcTo(x + width, y, x + width, y + height, radius);\n ctx.arcTo(x + width, y + height, x, y + height, radius);\n ctx.arcTo(x, y + height, x, y, radius);\n ctx.arcTo(x, y, x + width, y, radius);\n ctx.closePath();\n return ctx;\n};\n\nvar isCanvas = function isCanvas(element) {\n return /canvas/i.test(element.nodeName);\n};\n\nvar isRemoteURL = function isRemoteURL(url) {\n return new URL(url, location.href).origin !== location.origin;\n};\n\nvar loadImage = function loadImage(image) {\n var onSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n return new Promise(function (resolve, reject) {\n // the image element we'll use to load the image\n var imageElement = image;\n var sizeCalculated = false;\n\n var reportSize = function reportSize() {\n if (sizeCalculated) return;\n sizeCalculated = true;\n isFunction(onSize) &&\n /* Use Promise.resolve to make async but place before resolve of parent promise */\n Promise.resolve().then(function () {\n return onSize(sizeCreate(imageElement.naturalWidth, imageElement.naturalHeight));\n });\n }; // if is not an image element, it must be a valid image source\n\n\n if (!imageElement.src) {\n imageElement = new Image(); // if is remote image, set crossOrigin\n // why not always set crossOrigin? -> because when set this fires two requests,\n // one for asking permission and one for downloading the image\n\n if (isString(image) && isRemoteURL(image)) imageElement.crossOrigin = 'anonymous';\n imageElement.src = isString(image) ? image : URL.createObjectURL(image);\n }\n\n if (imageElement.complete) {\n reportSize();\n return resolve(imageElement);\n } // try to calculate size faster\n\n\n if (isFunction(onSize)) getImageElementSize(imageElement).then(reportSize).catch(reject);\n\n imageElement.onload = function () {\n reportSize();\n resolve(imageElement);\n };\n\n imageElement.onerror = function () {\n return reject(new Error('Failed to load image'));\n };\n });\n};\n\nvar cache = new Map([]);\n\nvar getImage = function getImage(src) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function (resolve, reject) {\n var _options$onMetadata = options.onMetadata,\n onMetadata = _options$onMetadata === void 0 ? noop$1 : _options$onMetadata,\n _options$onLoad = options.onLoad,\n onLoad = _options$onLoad === void 0 ? resolve : _options$onLoad,\n _options$onError = options.onError,\n onError = _options$onError === void 0 ? reject : _options$onError,\n _options$onComplete = options.onComplete,\n onComplete = _options$onComplete === void 0 ? noop$1 : _options$onComplete;\n var imageLoadState = cache.get(src); // start loading\n\n if (!imageLoadState) {\n imageLoadState = {\n loading: false,\n complete: false,\n error: false,\n image: undefined,\n size: undefined,\n bus: pubsub()\n }; // store\n\n cache.set(src, imageLoadState);\n } // wait for load\n\n\n imageLoadState.bus.sub('meta', onMetadata);\n imageLoadState.bus.sub('load', onLoad);\n imageLoadState.bus.sub('error', onError);\n imageLoadState.bus.sub('complete', onComplete); // if is canvas, it's already done\n\n if (isCanvas(src)) {\n var canvas = src; // get image\n\n var image = canvas.cloneNode(); // update state\n\n imageLoadState.complete = true;\n imageLoadState.image = image;\n imageLoadState.size = sizeCreateFromElement(canvas);\n } // already loaded\n\n\n if (imageLoadState.complete) {\n imageLoadState.bus.pub('meta', {\n size: imageLoadState.size\n });\n\n if (imageLoadState.error) {\n imageLoadState.bus.pub('error', imageLoadState.error);\n } else {\n imageLoadState.bus.pub('load', imageLoadState.image);\n }\n\n imageLoadState.bus.pub('complete'); // reset subscribers\n\n imageLoadState.bus = pubsub();\n return;\n } // already loading, exit here\n\n\n if (imageLoadState.loading) return; // now loading\n\n imageLoadState.loading = true; // resource needs to be loaded\n\n loadImage(src, function (size) {\n imageLoadState.size = size;\n imageLoadState.bus.pub('meta', {\n size: size\n });\n }).then(function (image) {\n imageLoadState.image = image;\n imageLoadState.bus.pub('load', image);\n }).catch(function (err) {\n imageLoadState.error = err;\n imageLoadState.bus.pub('error', err);\n }).finally(function () {\n imageLoadState.complete = true;\n imageLoadState.loading = false;\n imageLoadState.bus.pub('complete'); // reset subscribers\n\n imageLoadState.bus = pubsub();\n });\n });\n};\n\nvar drawCanvas = function drawCanvas(ctx, image, srcRect, destRect) {\n return ctx.drawImage(image, srcRect.x, srcRect.x, srcRect.width, srcRect.height, destRect.x, destRect.y, destRect.width, destRect.height);\n};\n\nvar ctxDrawImage = /*#__PURE__*/function () {\n var _ref49 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(ctx, image, srcRect, destRect) {\n var draw,\n options,\n _args25 = arguments;\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n draw = _args25.length > 4 && _args25[4] !== undefined ? _args25[4] : drawCanvas;\n options = _args25.length > 5 ? _args25[5] : undefined;\n ctx.save();\n ctx.clip();\n _context25.next = 6;\n return draw(ctx, image, srcRect, destRect, options);\n\n case 6:\n ctx.restore();\n\n case 7:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25);\n }));\n\n return function ctxDrawImage(_x43, _x44, _x45, _x46) {\n return _ref49.apply(this, arguments);\n };\n}();\n\nvar getDrawImageParams = function getDrawImageParams(container, backgroundSize, imageSize, backgroundCorners, backgroundPosition) {\n // target is container\n var destRect = rectClone$1(container); // texture mapping\n\n if (backgroundCorners) {\n var _srcRect = rectApply(rectCreateFromPoints(backgroundCorners), fixPrecision);\n\n _srcRect.x *= imageSize.width;\n _srcRect.width *= imageSize.width;\n _srcRect.y *= imageSize.height;\n _srcRect.height *= imageSize.height;\n return {\n srcRect: _srcRect,\n destRect: destRect\n };\n } // by default use entire image\n\n\n var srcRect = rectCreate(0, 0, imageSize.width, imageSize.height); // css background positioning\n\n if (backgroundSize === 'contain') {\n var rect = rectContainRect(container, rectAspectRatio(srcRect));\n destRect.width = rect.width;\n destRect.height = rect.height;\n\n if (backgroundPosition) {\n destRect.x += backgroundPosition.x;\n destRect.y += backgroundPosition.y;\n } else {\n destRect.x += rect.x;\n destRect.y += rect.y;\n }\n } else if (backgroundSize === 'cover') {\n var relativeRect = rectCoverRect(destRect, srcRect.width / srcRect.height);\n destRect.width = relativeRect.width;\n destRect.height = relativeRect.height;\n\n if (backgroundPosition) {\n destRect.x += backgroundPosition.x;\n destRect.y += backgroundPosition.y;\n } else {\n destRect.x += relativeRect.x;\n destRect.y += relativeRect.y;\n }\n } else if (backgroundSize) {\n destRect.width = backgroundSize.width;\n destRect.height = backgroundSize.height;\n\n if (backgroundPosition) {\n destRect.x += backgroundPosition.x;\n destRect.y += backgroundPosition.y;\n }\n } else if (backgroundPosition) {\n destRect.width = imageSize.width;\n destRect.height = imageSize.height;\n destRect.x += backgroundPosition.x;\n destRect.y += backgroundPosition.y;\n }\n\n return {\n srcRect: srcRect,\n destRect: destRect\n };\n};\n\nvar defineRectShape = function defineRectShape(ctx, shape) {\n shape.cornerRadius > 0 ? ctxRoundRect(ctx, shape.x, shape.y, shape.width, shape.height, shape.cornerRadius) : ctx.rect(shape.x, shape.y, shape.width, shape.height);\n return ctx;\n};\n\nvar fillRectShape = function fillRectShape(ctx, shape) {\n shape.backgroundColor && ctx.fill();\n return ctx;\n};\n\nvar strokeRectShape = function strokeRectShape(ctx, shape) {\n shape.strokeWidth && ctx.stroke();\n return ctx;\n};\n\nvar drawRect = /*#__PURE__*/function () {\n var _ref50 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26(ctx, shape) {\n var options,\n drawImage,\n image,\n backgroundPosition,\n _getDrawImageParams,\n srcRect,\n destRect,\n patternCanvas,\n patternCtx,\n pattern,\n _getDrawImageParams2,\n _srcRect2,\n _destRect,\n _args26 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n options = _args26.length > 2 && _args26[2] !== undefined ? _args26[2] : {};\n drawImage = options.drawImage;\n ctx.lineWidth = shape.strokeWidth ? shape.strokeWidth : 1; // 1 is default value for lineWidth prop\n\n ctx.strokeStyle = shape.strokeColor ? colorArrayToRGBA(shape.strokeColor) : 'none';\n ctx.fillStyle = shape.backgroundColor ? colorArrayToRGBA(shape.backgroundColor) : 'none';\n ctx.globalAlpha = shape.opacity;\n\n if (!shape.backgroundImage) {\n _context26.next = 44;\n break;\n }\n\n if (!isCanvas(shape.backgroundImage)) {\n _context26.next = 11;\n break;\n }\n\n image = shape.backgroundImage;\n _context26.next = 14;\n break;\n\n case 11:\n _context26.next = 13;\n return getImage(shape.backgroundImage);\n\n case 13:\n image = _context26.sent;\n\n case 14:\n // draw background color first\n defineRectShape(ctx, shape);\n fillRectShape(ctx, shape); // draw pattern OR draw normal image\n\n if (!(shape.backgroundRepeat === 'repeat')) {\n _context26.next = 37;\n break;\n }\n\n backgroundPosition = shape.backgroundPosition || {\n x: 0,\n y: 0\n };\n _getDrawImageParams = getDrawImageParams(shape, shape.backgroundSize || sizeCreateFromElement(image), sizeCreateFromElement(image), shape.backgroundCorners, {\n x: 0,\n y: 0\n }), srcRect = _getDrawImageParams.srcRect, destRect = _getDrawImageParams.destRect; // create pattern canvas so we can scale image before creating pattern\n\n patternCanvas = document.createElement('canvas');\n patternCanvas.width = destRect.width;\n patternCanvas.height = destRect.height;\n patternCtx = patternCanvas.getContext('2d', {\n willReadFrequently: false,\n desynchronized: true\n });\n _context26.next = 25;\n return drawImage(patternCtx, image, srcRect, _objectSpread(_objectSpread({}, destRect), {}, {\n x: 0,\n y: 0\n }));\n\n case 25:\n // fill context with pattern\n pattern = ctx.createPattern(patternCanvas, 'repeat');\n ctx.fillStyle = pattern;\n ctx.save();\n ctx.beginPath();\n ctx.rect(shape.x + backgroundPosition.x, shape.y + backgroundPosition.y, shape.width - backgroundPosition.x, shape.height - backgroundPosition.y);\n ctx.clip();\n ctx.translate(destRect.x + backgroundPosition.x, destRect.y + backgroundPosition.y);\n ctx.fill(); // release pattern canvas\n\n releaseCanvas(patternCanvas);\n ctx.restore();\n _context26.next = 40;\n break;\n\n case 37:\n _getDrawImageParams2 = getDrawImageParams(shape, shape.backgroundSize, sizeCreateFromElement(image), shape.backgroundCorners, shape.backgroundPosition), _srcRect2 = _getDrawImageParams2.srcRect, _destRect = _getDrawImageParams2.destRect;\n _context26.next = 40;\n return ctxDrawImage(ctx, image, _srcRect2, _destRect, drawImage, {\n feather: shape.feather\n });\n\n case 40:\n ctx.beginPath();\n defineRectShape(ctx, shape);\n strokeRectShape(ctx, shape);\n return _context26.abrupt(\"return\", []);\n\n case 44:\n // no image, only draw fill and stroke\n defineRectShape(ctx, shape);\n fillRectShape(ctx, shape);\n strokeRectShape(ctx, shape);\n return _context26.abrupt(\"return\", []);\n\n case 48:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26);\n }));\n\n return function drawRect(_x47, _x48) {\n return _ref50.apply(this, arguments);\n };\n}();\n\nvar drawEllipse = /*#__PURE__*/function () {\n var _ref51 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28(ctx, shape) {\n var options,\n _args28 = arguments;\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n options = _args28.length > 2 && _args28[2] !== undefined ? _args28[2] : {};\n return _context28.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref52 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27(resolve, reject) {\n var drawImage, image, bounds, _getDrawImageParams3, srcRect, destRect;\n\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n drawImage = options.drawImage;\n ctx.lineWidth = shape.strokeWidth || 1; // 1 is default value for lineWidth prop\n\n ctx.strokeStyle = shape.strokeColor ? colorArrayToRGBA(shape.strokeColor) : 'none';\n ctx.fillStyle = shape.backgroundColor ? colorArrayToRGBA(shape.backgroundColor) : 'none';\n ctx.globalAlpha = shape.opacity;\n ctx.ellipse(shape.x, shape.y, shape.rx, shape.ry, 0, 0, Math.PI * 2);\n shape.backgroundColor && ctx.fill();\n\n if (!shape.backgroundImage) {\n _context27.next = 25;\n break;\n }\n\n _context27.prev = 8;\n _context27.next = 11;\n return getImage(shape.backgroundImage);\n\n case 11:\n image = _context27.sent;\n _context27.next = 17;\n break;\n\n case 14:\n _context27.prev = 14;\n _context27.t0 = _context27[\"catch\"](8);\n reject(_context27.t0);\n\n case 17:\n bounds = rectCreate(shape.x - shape.rx, shape.y - shape.ry, shape.rx * 2, shape.ry * 2);\n _getDrawImageParams3 = getDrawImageParams(bounds, shape.backgroundSize, sizeCreateFromElement(image), shape.backgroundCorners, shape.backgroundPosition), srcRect = _getDrawImageParams3.srcRect, destRect = _getDrawImageParams3.destRect; // @ts-ignore\n\n _context27.next = 21;\n return ctxDrawImage(ctx, image, srcRect, destRect, drawImage);\n\n case 21:\n shape.strokeWidth && ctx.stroke();\n resolve([]);\n _context27.next = 27;\n break;\n\n case 25:\n shape.strokeWidth && ctx.stroke();\n resolve([]);\n\n case 27:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27, null, [[8, 14]]);\n }));\n\n return function (_x51, _x52) {\n return _ref52.apply(this, arguments);\n };\n }()));\n\n case 2:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28);\n }));\n\n return function drawEllipse(_x49, _x50) {\n return _ref51.apply(this, arguments);\n };\n}();\n\nvar drawText = /*#__PURE__*/function () {\n var _ref53 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee29(ctx, shape, options) {\n var width, height, textSize, rect, _shape$textOutlineWid, textOutlineWidth, _shape$textShadowX, textShadowX, _shape$textShadowY, textShadowY, _shape$textShadowBlur, textShadowBlur, textShadowColor, outline, blur, plaintTextShape, shouldClip, shadowRect, outlineRect;\n\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n width = isNumber(shape.width) ? Math.floor(shape.width) : undefined;\n height = isNumber(shape.height) ? Math.floor(shape.height) : undefined; // calculate text size\n\n textSize = width && height ? sizeCreateFromAny(shape) : textToSize(shape.text, _objectSpread(_objectSpread({}, shape), {}, {\n width: width,\n height: height\n }));\n rect = {\n x: shape.x,\n y: shape.y,\n width: textSize.width,\n height: textSize.height\n };\n drawRect(ctx, _objectSpread(_objectSpread(_objectSpread({}, shape), rect), {}, {\n options: options\n })); // skip if no text\n\n if (shape.text.length) {\n _context29.next = 7;\n break;\n }\n\n return _context29.abrupt(\"return\", []);\n\n case 7:\n // draw text effects first\n _shape$textOutlineWid = shape.textOutlineWidth, textOutlineWidth = _shape$textOutlineWid === void 0 ? 0 : _shape$textOutlineWid, _shape$textShadowX = shape.textShadowX, textShadowX = _shape$textShadowX === void 0 ? 0 : _shape$textShadowX, _shape$textShadowY = shape.textShadowY, textShadowY = _shape$textShadowY === void 0 ? 0 : _shape$textShadowY, _shape$textShadowBlur = shape.textShadowBlur, textShadowBlur = _shape$textShadowBlur === void 0 ? 0 : _shape$textShadowBlur, textShadowColor = shape.textShadowColor, outline = shape.outline, blur = shape.blur, plaintTextShape = _objectWithoutProperties(shape, _excluded); // if height set, clip to text box\n\n shouldClip = !!shape.height;\n\n if (shouldClip) {\n ctx.rect(rect.x, rect.y, rect.width, rect.height);\n ctx.save();\n ctx.clip();\n } // draw shadow\n\n\n if (!(textShadowX || textShadowY || textShadowBlur)) {\n _context29.next = 18;\n break;\n }\n\n ctx.save(); // move translation based on text shadow\n\n ctx.translate(textShadowX, textShadowY); // adjust rect so we draw all shadow\n\n shadowRect = _objectSpread({}, rect);\n\n if (!shouldClip) {\n shadowRect.height += TextPadding + textShadowBlur;\n } // draw base shadow\n\n\n _context29.next = 17;\n return drawTextImage(ctx, shadowRect, _objectSpread(_objectSpread({}, shape), {}, {\n width: width,\n height: height\n }), _objectSpread(_objectSpread({}, options), {}, {\n paddingLeft: TextPadding + textShadowBlur,\n paddingRight: TextPadding + textShadowBlur,\n paddingTop: textShadowBlur,\n paddingBottom: textShadowBlur + (shouldClip ? -1 * textShadowY : shape.fontSize),\n shapeExtendedProps: {\n color: textShadowColor,\n blur: textShadowBlur\n }\n }));\n\n case 17:\n ctx.restore();\n\n case 18:\n if (!textOutlineWidth) {\n _context29.next = 23;\n break;\n }\n\n outlineRect = _objectSpread({}, rect);\n if (!shouldClip) outlineRect.height += TextPadding + textOutlineWidth;\n _context29.next = 23;\n return drawTextImage(ctx, outlineRect, _objectSpread(_objectSpread({}, shape), {}, {\n width: width,\n height: height\n }), _objectSpread(_objectSpread({}, options), {}, {\n paddingLeft: TextPadding + textOutlineWidth,\n paddingRight: TextPadding + textOutlineWidth,\n paddingTop: textOutlineWidth,\n paddingBottom: textOutlineWidth + shouldClip ? 0 : shape.fontSize,\n shapeExtendedProps: {\n color: shape.textOutlineColor,\n outline: textOutlineWidth\n }\n }));\n\n case 23:\n // restore text clipping\n if (shouldClip) {\n ctx.restore();\n } // draw text\n\n\n _context29.next = 26;\n return drawTextImage(ctx, rect, _objectSpread(_objectSpread({}, plaintTextShape), {}, {\n width: width,\n height: height\n }), _objectSpread(_objectSpread({}, options), {}, {\n paddingLeft: TextPadding,\n paddingRight: TextPadding,\n paddingTop: 0,\n paddingBottom: shouldClip ? 0 : shape.fontSize\n }));\n\n case 26:\n return _context29.abrupt(\"return\", []);\n\n case 27:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29);\n }));\n\n return function drawText(_x53, _x54, _x55) {\n return _ref53.apply(this, arguments);\n };\n}();\n\nvar drawTextImage = /*#__PURE__*/function () {\n var _ref54 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee30(ctx, rect, shape, options) {\n var willRequest, shapeExtendedProps, paddingLeft, paddingRight, paddingTop, paddingBottom, styleNonce, width, height, imageWidth, imageHeight, image;\n return _regeneratorRuntime.wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n willRequest = options.willRequest, shapeExtendedProps = options.shapeExtendedProps, paddingLeft = options.paddingLeft, paddingRight = options.paddingRight, paddingTop = options.paddingTop, paddingBottom = options.paddingBottom, styleNonce = options.styleNonce; // aligns with how canvas measured width/height\n\n width = isNumber(shape.width) ? Math.floor(rect.width) : undefined;\n height = isNumber(shape.height) ? Math.floor(rect.height) : undefined;\n imageWidth = Math.ceil(rect.width);\n imageHeight = Math.ceil(rect.height); // maybe in future use same pixel ratio as device to better match preview text texture?\n\n _context30.next = 7;\n return textToImage(shape.text, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, shape), shapeExtendedProps), rect), {}, {\n width: width,\n height: height,\n paddingLeft: paddingLeft,\n paddingRight: paddingRight,\n paddingTop: paddingTop,\n paddingBottom: paddingBottom,\n imageWidth: imageWidth,\n imageHeight: imageHeight,\n willRequest: willRequest,\n styleNonce: styleNonce\n }));\n\n case 7:\n image = _context30.sent;\n ctx.drawImage(image, shape.x - paddingLeft, shape.y - paddingTop, image.width, image.height);\n\n case 9:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30);\n }));\n\n return function drawTextImage(_x56, _x57, _x58, _x59) {\n return _ref54.apply(this, arguments);\n };\n}();\n\nvar drawLine = /*#__PURE__*/function () {\n var _ref55 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee32(ctx, shape) {\n return _regeneratorRuntime.wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n return _context32.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref56 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee31(resolve) {\n var lineStartPosition, lineEndPosition;\n return _regeneratorRuntime.wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n ctx.lineWidth = shape.strokeWidth || 1; // 1 is default value for lineWidth prop\n\n ctx.strokeStyle = shape.strokeColor ? colorArrayToRGBA(shape.strokeColor) : 'none';\n ctx.globalAlpha = shape.opacity;\n\n if (shape.bitmap) {\n ctx.lineCap = shape.strokeCap;\n ctx.lineJoin = shape.strokeJoin;\n ctx.setLineDash(shape.strokeDash || []);\n }\n\n lineStartPosition = shapeLineGetStartPoint(shape);\n lineEndPosition = shapeLineGetEndPoint(shape); // draw line\n\n ctx.moveTo(lineStartPosition.x, lineStartPosition.y);\n ctx.lineTo(lineEndPosition.x, lineEndPosition.y);\n shape.strokeWidth && ctx.stroke(); // draw other shapes\n\n resolve([]);\n\n case 10:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31);\n }));\n\n return function (_x62) {\n return _ref56.apply(this, arguments);\n };\n }()));\n\n case 1:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32);\n }));\n\n return function drawLine(_x60, _x61) {\n return _ref55.apply(this, arguments);\n };\n}();\n\nvar drawPath = /*#__PURE__*/function () {\n var _ref57 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee33(ctx, shape) {\n return _regeneratorRuntime.wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n return _context33.abrupt(\"return\", new Promise(function (resolve, reject) {\n // let's draw a dot instead\n if (shape.bitmap && shape.points.length === 1) {\n drawEllipse(ctx, {\n x: shape.points[0].x,\n y: shape.points[0].y,\n rx: shape.strokeWidth * 0.5,\n ry: shape.strokeWidth * 0.5,\n backgroundColor: shape.strokeColor\n }).then(function () {\n return resolve([]);\n });\n return;\n }\n\n ctx.lineWidth = shape.strokeWidth || 1; // 1 is default value for lineWidth prop\n\n ctx.strokeStyle = shape.strokeColor ? colorArrayToRGBA(shape.strokeColor) : 'none';\n ctx.fillStyle = shape.backgroundColor ? colorArrayToRGBA(shape.backgroundColor) : 'none';\n ctx.globalAlpha = shape.opacity; // draw line\n\n var points = shape.points;\n\n if (shape.bitmap) {\n ctx.lineCap = shape.strokeCap;\n ctx.lineJoin = shape.strokeJoin;\n ctx.setLineDash(shape.strokeDash || []);\n }\n\n if (shape.pathClose) ctx.beginPath();\n ctx.moveTo(points[0].x, points[0].y);\n var l = points.length;\n\n for (var i = 1; i < l; i++) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n\n if (shape.pathClose) ctx.closePath();\n shape.strokeWidth && ctx.stroke();\n shape.backgroundColor && ctx.fill();\n resolve([]);\n }));\n\n case 1:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33);\n }));\n\n return function drawPath(_x63, _x64) {\n return _ref57.apply(this, arguments);\n };\n}();\n\nvar ctxFlip = function ctxFlip(ctx, flipX, flipY, pivot) {\n if (!flipX && !flipY) return ctx;\n ctx.translate(pivot.x, pivot.y);\n ctx.scale(flipX ? -1 : 1, flipY ? -1 : 1);\n ctx.translate(-pivot.x, -pivot.y);\n return ctx;\n};\n\nvar drawShape = /*#__PURE__*/function () {\n var _ref58 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee34(ctx, shape, options) {\n var center, fn, subShapes, shapes;\n return _regeneratorRuntime.wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n // add or subtract\n ctx.globalCompositeOperation = shape.drawMode === 'subtract' ? 'destination-out' : 'source-over'; // center, needed for transforms\n\n center = shapeGetCenter(shape); // rotate context\n\n ctxRotate(ctx, shape.rotation, center); // flip context\n\n ctxFlip(ctx, shape.flipX, shape.flipY, center);\n\n if (shapeIsRect(shape)) {\n fn = drawRect;\n } else if (shapeIsEllipse(shape)) {\n fn = drawEllipse;\n } else if (shapeIsLine(shape)) {\n fn = drawLine;\n } else if (shapeIsPath(shape)) {\n fn = drawPath;\n } else if (shapeIsText(shape)) {\n fn = drawText;\n }\n\n if (!fn) {\n _context34.next = 15;\n break;\n }\n\n _context34.next = 8;\n return fn(ctx, shape, options);\n\n case 8:\n subShapes = _context34.sent;\n\n if (subShapes.length) {\n _context34.next = 11;\n break;\n }\n\n return _context34.abrupt(\"return\", []);\n\n case 11:\n _context34.next = 13;\n return drawShapes(ctx, subShapes, options);\n\n case 13:\n shapes = _context34.sent;\n return _context34.abrupt(\"return\", [shape].concat(_toConsumableArray(shapes)));\n\n case 15:\n return _context34.abrupt(\"return\", []);\n\n case 16:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34);\n }));\n\n return function drawShape(_x65, _x66, _x67) {\n return _ref58.apply(this, arguments);\n };\n}();\n\nvar drawShapes = /*#__PURE__*/function () {\n var _ref59 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee35(ctx, shapes, options) {\n var drawnShapes, _iterator4, _step4, shape;\n\n return _regeneratorRuntime.wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n drawnShapes = [];\n _iterator4 = _createForOfIteratorHelper(shapes);\n _context35.prev = 2;\n\n _iterator4.s();\n\n case 4:\n if ((_step4 = _iterator4.n()).done) {\n _context35.next = 19;\n break;\n }\n\n shape = _step4.value;\n ctx.save(); // clears previous shape's path\n\n ctx.beginPath(); // wait for shape to draw before drawing next shape\n\n _context35.t0 = [];\n _context35.t1 = _toConsumableArray(drawnShapes);\n _context35.t2 = _toConsumableArray;\n _context35.next = 13;\n return drawShape(ctx, shape, options);\n\n case 13:\n _context35.t3 = _context35.sent;\n _context35.t4 = (0, _context35.t2)(_context35.t3);\n drawnShapes = _context35.t0.concat.call(_context35.t0, _context35.t1, _context35.t4);\n ctx.restore();\n\n case 17:\n _context35.next = 4;\n break;\n\n case 19:\n _context35.next = 24;\n break;\n\n case 21:\n _context35.prev = 21;\n _context35.t5 = _context35[\"catch\"](2);\n\n _iterator4.e(_context35.t5);\n\n case 24:\n _context35.prev = 24;\n\n _iterator4.f();\n\n return _context35.finish(24);\n\n case 27:\n return _context35.abrupt(\"return\", drawnShapes);\n\n case 28:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35, null, [[2, 21, 24, 27]]);\n }));\n\n return function drawShapes(_x68, _x69, _x70) {\n return _ref59.apply(this, arguments);\n };\n}();\n\nvar drawImageData = /*#__PURE__*/function () {\n var _ref60 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee36(imageData) {\n var options,\n _options$shapes,\n shapes,\n _options$contextBound,\n contextBounds,\n _options$transform,\n transform,\n drawImage,\n willRequest,\n styleNonce,\n canvasMemoryLimit,\n _options$computeShape,\n computeShape,\n _options$preprocessSh,\n preprocessShape,\n canvas,\n ctx,\n computedShapes,\n imageDataOut,\n _args36 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n options = _args36.length > 1 && _args36[1] !== undefined ? _args36[1] : {};\n _options$shapes = options.shapes, shapes = _options$shapes === void 0 ? [] : _options$shapes, _options$contextBound = options.contextBounds, contextBounds = _options$contextBound === void 0 ? imageData : _options$contextBound, _options$transform = options.transform, transform = _options$transform === void 0 ? noop$1 : _options$transform, drawImage = options.drawImage, willRequest = options.willRequest, styleNonce = options.styleNonce, canvasMemoryLimit = options.canvasMemoryLimit, _options$computeShape = options.computeShape, computeShape = _options$computeShape === void 0 ? passthrough : _options$computeShape, _options$preprocessSh = options.preprocessShape, preprocessShape = _options$preprocessSh === void 0 ? passthrough : _options$preprocessSh; // no shapes to draw\n\n if (shapes.length) {\n _context36.next = 4;\n break;\n }\n\n return _context36.abrupt(\"return\", imageData);\n\n case 4:\n // create drawing context\n canvas = h('canvas');\n canvas.width = contextBounds.width;\n canvas.height = contextBounds.height;\n ctx = canvas.getContext('2d', {\n willReadFrequently: true\n });\n ctx.putImageData(imageData, contextBounds.x || 0, contextBounds.y || 0); // compute the position of all shapes\n\n computedShapes = shapes.map(shapeDeepCopy).map(computeShape).map(preprocessShape).flat().filter(Boolean); // compute transforms for context\n\n transform(ctx); // draw shapes to canvas\n\n _context36.next = 13;\n return drawShapes(ctx, computedShapes, {\n drawImage: drawImage,\n canvasMemoryLimit: canvasMemoryLimit,\n willRequest: willRequest,\n styleNonce: styleNonce\n });\n\n case 13:\n imageDataOut = ctx.getImageData(0, 0, canvas.width, canvas.height);\n releaseCanvas(canvas);\n return _context36.abrupt(\"return\", imageDataOut);\n\n case 16:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36);\n }));\n\n return function drawImageData(_x71) {\n return _ref60.apply(this, arguments);\n };\n}();\n\nvar fillImageData = /*#__PURE__*/function () {\n var _ref61 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee37(imageData) {\n var options,\n backgroundColor,\n backgroundImage,\n hasBackgroundColor,\n image,\n ctx,\n _image,\n _getDrawImageParams4,\n srcRect,\n destRect,\n imageDataOut,\n _args37 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n options = _args37.length > 1 && _args37[1] !== undefined ? _args37[1] : {};\n backgroundColor = options.backgroundColor, backgroundImage = options.backgroundImage;\n hasBackgroundColor = !(!backgroundColor || backgroundColor && backgroundColor[3] === 0); // no background set\n\n if (!(!backgroundImage && !hasBackgroundColor)) {\n _context37.next = 5;\n break;\n }\n\n return _context37.abrupt(\"return\", imageData);\n\n case 5:\n // canvas to fill\n image = h('canvas');\n image.width = imageData.width;\n image.height = imageData.height;\n ctx = image.getContext('2d', {\n willReadFrequently: true\n });\n ctx.putImageData(imageData, 0, 0); // fill behind image\n\n ctx.globalCompositeOperation = 'destination-over';\n\n if (hasBackgroundColor) {\n ctx.fillStyle = colorArrayToRGBA(backgroundColor);\n ctx.fillRect(0, 0, image.width, image.height);\n }\n\n if (!backgroundImage) {\n _context37.next = 22;\n break;\n }\n\n if (!isCanvas(backgroundImage)) {\n _context37.next = 17;\n break;\n }\n\n _image = backgroundImage;\n _context37.next = 20;\n break;\n\n case 17:\n _context37.next = 19;\n return getImage(backgroundImage);\n\n case 19:\n _image = _context37.sent;\n\n case 20:\n _getDrawImageParams4 = getDrawImageParams({\n x: 0,\n y: 0,\n width: imageData.width,\n height: imageData.height\n }, 'cover', {\n width: _image.width,\n height: _image.height\n }), srcRect = _getDrawImageParams4.srcRect, destRect = _getDrawImageParams4.destRect;\n ctx.drawImage(_image, srcRect.x, srcRect.y, srcRect.width, srcRect.height, destRect.x, destRect.y, destRect.width, destRect.height);\n\n case 22:\n imageDataOut = ctx.getImageData(0, 0, image.width, image.height);\n releaseCanvas(image);\n return _context37.abrupt(\"return\", imageDataOut);\n\n case 25:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37);\n }));\n\n return function fillImageData(_x72) {\n return _ref61.apply(this, arguments);\n };\n}();\n\nvar dotColorMatrix = function dotColorMatrix(a, b) {\n var res = new Array(20); // R\n\n res[0] = a[0] * b[0] + a[1] * b[5] + a[2] * b[10] + a[3] * b[15];\n res[1] = a[0] * b[1] + a[1] * b[6] + a[2] * b[11] + a[3] * b[16];\n res[2] = a[0] * b[2] + a[1] * b[7] + a[2] * b[12] + a[3] * b[17];\n res[3] = a[0] * b[3] + a[1] * b[8] + a[2] * b[13] + a[3] * b[18];\n res[4] = a[0] * b[4] + a[1] * b[9] + a[2] * b[14] + a[3] * b[19] + a[4]; // G\n\n res[5] = a[5] * b[0] + a[6] * b[5] + a[7] * b[10] + a[8] * b[15];\n res[6] = a[5] * b[1] + a[6] * b[6] + a[7] * b[11] + a[8] * b[16];\n res[7] = a[5] * b[2] + a[6] * b[7] + a[7] * b[12] + a[8] * b[17];\n res[8] = a[5] * b[3] + a[6] * b[8] + a[7] * b[13] + a[8] * b[18];\n res[9] = a[5] * b[4] + a[6] * b[9] + a[7] * b[14] + a[8] * b[19] + a[9]; // B\n\n res[10] = a[10] * b[0] + a[11] * b[5] + a[12] * b[10] + a[13] * b[15];\n res[11] = a[10] * b[1] + a[11] * b[6] + a[12] * b[11] + a[13] * b[16];\n res[12] = a[10] * b[2] + a[11] * b[7] + a[12] * b[12] + a[13] * b[17];\n res[13] = a[10] * b[3] + a[11] * b[8] + a[12] * b[13] + a[13] * b[18];\n res[14] = a[10] * b[4] + a[11] * b[9] + a[12] * b[14] + a[13] * b[19] + a[14]; // A\n\n res[15] = a[15] * b[0] + a[16] * b[5] + a[17] * b[10] + a[18] * b[15];\n res[16] = a[15] * b[1] + a[16] * b[6] + a[17] * b[11] + a[18] * b[16];\n res[17] = a[15] * b[2] + a[16] * b[7] + a[17] * b[12] + a[18] * b[17];\n res[18] = a[15] * b[3] + a[16] * b[8] + a[17] * b[13] + a[18] * b[18];\n res[19] = a[15] * b[4] + a[16] * b[9] + a[17] * b[14] + a[18] * b[19] + a[19];\n return res;\n};\n\nvar getColorMatrixFromColorMatrices = function getColorMatrixFromColorMatrices(colorMatrices) {\n return colorMatrices.length ? colorMatrices.reduce(function (previous, current) {\n return dotColorMatrix(_toConsumableArray(previous), current);\n }, colorMatrices.shift()) : [];\n};\n\nvar roundFraction = function roundFraction(value) {\n var fr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return Math.round(value * fr) / fr;\n};\n\nvar getImageRedactionScaleFactor = function getImageRedactionScaleFactor(imageSize, redactionShapes) {\n var imageRes = imageSize.width * imageSize.height;\n var maxShapeSize = redactionShapes.reduce(function (max, shape) {\n if (shape.width > max.width && shape.height > max.height) {\n max.width = shape.width;\n max.height = shape.height;\n }\n\n return max;\n }, {\n width: 0,\n height: 0\n });\n var maxShapeRes = maxShapeSize.width * maxShapeSize.height;\n var fraction = Math.max(0.5, 0.5 + (1 - maxShapeRes / imageRes) / 2);\n return roundFraction(fraction, 5);\n};\n\nfunction noop() {}\n\nvar identity = function identity(x) {\n return x;\n};\n\nfunction assign(tar, src) {\n // @ts-ignore\n for (var k in src) {\n tar[k] = src[k];\n }\n\n return tar;\n}\n\nfunction run(fn) {\n return fn();\n}\n\nfunction blank_object() {\n return Object.create(null);\n}\n\nfunction run_all(fns) {\n fns.forEach(run);\n}\n\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\n\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || a && _typeof(a) === 'object' || typeof a === 'function';\n}\n\nvar src_url_equal_anchor;\n\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\n\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction subscribe(store) {\n if (store == null) {\n return noop;\n }\n\n for (var _len = arguments.length, callbacks = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n callbacks[_key - 1] = arguments[_key];\n }\n\n var unsub = store.subscribe.apply(store, callbacks);\n return unsub.unsubscribe ? function () {\n return unsub.unsubscribe();\n } : unsub;\n}\n\nfunction get_store_value(store) {\n var value;\n subscribe(store, function (_) {\n return value = _;\n })();\n return value;\n}\n\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\n\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n var slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\n\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) : $$scope.ctx;\n}\n\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n var lets = definition[2](fn(dirty));\n\n if ($$scope.dirty === undefined) {\n return lets;\n }\n\n if (_typeof(lets) === 'object') {\n var merged = [];\n var len = Math.max($$scope.dirty.length, lets.length);\n\n for (var i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n\n return merged;\n }\n\n return $$scope.dirty | lets;\n }\n\n return $$scope.dirty;\n}\n\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n var slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\n\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n var dirty = [];\n var length = $$scope.ctx.length / 32;\n\n for (var i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n\n return dirty;\n }\n\n return -1;\n}\n\nfunction exclude_internal_props(props) {\n var result = {};\n\n for (var k in props) {\n if (k[0] !== '$') result[k] = props[k];\n }\n\n return result;\n}\n\nfunction compute_rest_props(props, keys) {\n var rest = {};\n keys = new Set(keys);\n\n for (var k in props) {\n if (!keys.has(k) && k[0] !== '$') rest[k] = props[k];\n }\n\n return rest;\n}\n\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\n\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nvar is_client = typeof window !== 'undefined';\nvar now = is_client ? function () {\n return window.performance.now();\n} : function () {\n return Date.now();\n};\nvar raf = is_client ? function (cb) {\n return requestAnimationFrame(cb);\n} : noop;\nvar tasks = new Set();\n\nfunction run_tasks(now) {\n tasks.forEach(function (task) {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0) raf(run_tasks);\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\n\n\nfunction loop(callback) {\n var task;\n if (tasks.size === 0) raf(run_tasks);\n return {\n promise: new Promise(function (fulfill) {\n tasks.add(task = {\n c: callback,\n f: fulfill\n });\n }),\n abort: function abort() {\n tasks.delete(task);\n }\n };\n}\n\nfunction append(target, node) {\n target.appendChild(node);\n}\n\nfunction get_root_for_style(node) {\n if (!node) return document;\n var root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n\n if (root && root.host) {\n return root;\n }\n\n return node.ownerDocument;\n}\n\nfunction append_empty_stylesheet(node) {\n var style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\n\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\n\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\n\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\n\nfunction element(name) {\n return document.createElement(name);\n}\n\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\nfunction text(data) {\n return document.createTextNode(data);\n}\n\nfunction space() {\n return text(' ');\n}\n\nfunction empty() {\n return text('');\n}\n\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return function () {\n return node.removeEventListener(event, handler, options);\n };\n}\n\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault(); // @ts-ignore\n\n return fn.call(this, event);\n };\n}\n\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation(); // @ts-ignore\n\n return fn.call(this, event);\n };\n}\n\nfunction attr(node, attribute, value) {\n if (value == null) node.removeAttribute(attribute);else if (node.getAttribute(attribute) !== value) node.setAttribute(attribute, value);\n}\n\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n var descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n\n for (var key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n } else if (key === 'style') {\n node.style.cssText = attributes[key];\n } else if (key === '__value') {\n node.value = node[key] = attributes[key];\n } else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n } else {\n attr(node, key, attributes[key]);\n }\n }\n}\n\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach(function (key) {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\n\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n } else {\n attr(node, prop, value);\n }\n}\n\nfunction children(element) {\n return Array.from(element.childNodes);\n}\n\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data) text.data = data;\n}\n\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\n\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n } else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\n\nfunction custom_event(type, detail) {\n var _ref62 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref62$bubbles = _ref62.bubbles,\n bubbles = _ref62$bubbles === void 0 ? false : _ref62$bubbles,\n _ref62$cancelable = _ref62.cancelable,\n cancelable = _ref62$cancelable === void 0 ? false : _ref62$cancelable;\n\n var e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\n\nvar HtmlTag = /*#__PURE__*/function () {\n function HtmlTag() {\n var is_svg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n _classCallCheck(this, HtmlTag);\n\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n\n _createClass(HtmlTag, [{\n key: \"c\",\n value: function c(html) {\n this.h(html);\n }\n }, {\n key: \"m\",\n value: function m(html, target) {\n var anchor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!this.e) {\n if (this.is_svg) this.e = svg_element(target.nodeName);else this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n\n this.i(anchor);\n }\n }, {\n key: \"h\",\n value: function h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n }, {\n key: \"i\",\n value: function i(anchor) {\n for (var i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n }, {\n key: \"p\",\n value: function p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n }, {\n key: \"d\",\n value: function d() {\n this.n.forEach(detach);\n }\n }]);\n\n return HtmlTag;\n}();\n\nfunction construct_svelte_component(component, props) {\n return new component(props);\n} // we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\n\n\nvar managed_styles = new Map();\nvar active = 0; // https://github.com/darkskyapp/string-hash/blob/master/index.js\n\nfunction hash(str) {\n var hash = 5381;\n var i = str.length;\n\n while (i--) {\n hash = (hash << 5) - hash ^ str.charCodeAt(i);\n }\n\n return hash >>> 0;\n}\n\nfunction create_style_information(doc, node) {\n var info = {\n stylesheet: append_empty_stylesheet(node),\n rules: {}\n };\n managed_styles.set(doc, info);\n return info;\n}\n\nfunction create_rule(node, a, b, duration, delay, ease, fn) {\n var uid = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 0;\n var step = 16.666 / duration;\n var keyframes = '{\\n';\n\n for (var p = 0; p <= 1; p += step) {\n var _t2 = a + (b - a) * ease(p);\n\n keyframes += p * 100 + \"%{\".concat(fn(_t2, 1 - _t2), \"}\\n\");\n }\n\n var rule = keyframes + \"100% {\".concat(fn(b, 1 - b), \"}\\n}\");\n var name = \"__svelte_\".concat(hash(rule), \"_\").concat(uid);\n var doc = get_root_for_style(node);\n\n var _ref63 = managed_styles.get(doc) || create_style_information(doc, node),\n stylesheet = _ref63.stylesheet,\n rules = _ref63.rules;\n\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(\"@keyframes \".concat(name, \" \").concat(rule), stylesheet.cssRules.length);\n }\n\n var animation = node.style.animation || '';\n node.style.animation = \"\".concat(animation ? \"\".concat(animation, \", \") : '').concat(name, \" \").concat(duration, \"ms linear \").concat(delay, \"ms 1 both\");\n active += 1;\n return name;\n}\n\nfunction delete_rule(node, name) {\n var previous = (node.style.animation || '').split(', ');\n var next = previous.filter(name ? function (anim) {\n return anim.indexOf(name) < 0;\n } // remove specific animation\n : function (anim) {\n return anim.indexOf('__svelte') === -1;\n } // remove all Svelte animations\n );\n var deleted = previous.length - next.length;\n\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active) clear_rules();\n }\n}\n\nfunction clear_rules() {\n raf(function () {\n if (active) return;\n managed_styles.forEach(function (info) {\n var ownerNode = info.stylesheet.ownerNode; // there is no ownerNode if it runs on jsdom.\n\n if (ownerNode) detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nvar current_component;\n\nfunction set_current_component(component) {\n current_component = component;\n}\n\nfunction get_current_component() {\n if (!current_component) throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\n\n\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\n\n\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\n\n\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\n\n\nfunction createEventDispatcher() {\n var component = get_current_component();\n return function (type, detail) {\n var _ref64 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref64$cancelable = _ref64.cancelable,\n cancelable = _ref64$cancelable === void 0 ? false : _ref64$cancelable;\n\n var callbacks = component.$$.callbacks[type];\n\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n var event = custom_event(type, detail, {\n cancelable: cancelable\n });\n callbacks.slice().forEach(function (fn) {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\n\n\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\n\n\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\n\n\nfunction getAllContexts() {\n return get_current_component().$$.context;\n} // TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\n\n\nfunction bubble(component, event) {\n var _this2 = this;\n\n var callbacks = component.$$.callbacks[event.type];\n\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(function (fn) {\n return fn.call(_this2, event);\n });\n }\n}\n\nvar dirty_components = [];\nvar binding_callbacks = [];\nvar render_callbacks = [];\nvar flush_callbacks = [];\nvar resolved_promise = Promise.resolve();\nvar update_scheduled = false;\n\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\n\nfunction tick$1() {\n schedule_update();\n return resolved_promise;\n}\n\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\n\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n} // flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\n\n\nvar seen_callbacks = new Set();\nvar flushidx = 0; // Do *not* move this inside the flush() function\n\nfunction flush() {\n var saved_component = current_component;\n\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n var component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n\n while (binding_callbacks.length) {\n binding_callbacks.pop()();\n } // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n\n\n for (var i = 0; i < render_callbacks.length; i += 1) {\n var callback = render_callbacks[i];\n\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n\n render_callbacks.length = 0;\n } while (dirty_components.length);\n\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\n\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n var dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nvar promise;\n\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(function () {\n promise = null;\n });\n }\n\n return promise;\n}\n\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(\"\".concat(direction ? 'intro' : 'outro').concat(kind)));\n}\n\nvar outroing = new Set();\nvar outros;\n\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n\n };\n}\n\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n\n outros = outros.p;\n}\n\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\n\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block)) return;\n outroing.add(block);\n outros.c.push(function () {\n outroing.delete(block);\n\n if (callback) {\n if (detach) block.d(1);\n callback();\n }\n });\n block.o(local);\n } else if (callback) {\n callback();\n }\n}\n\nvar null_transition = {\n duration: 0\n};\n\nfunction create_bidirectional_transition(node, fn, params, intro) {\n var config = fn(node, params);\n var t = intro ? 0 : 1;\n var running_program = null;\n var pending_program = null;\n var animation_name = null;\n\n function clear_animation() {\n if (animation_name) delete_rule(node, animation_name);\n }\n\n function init(program, duration) {\n var d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d: d,\n duration: duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n\n function go(b) {\n var _ref65 = config || null_transition,\n _ref65$delay = _ref65.delay,\n delay = _ref65$delay === void 0 ? 0 : _ref65$delay,\n _ref65$duration = _ref65.duration,\n duration = _ref65$duration === void 0 ? 300 : _ref65$duration,\n _ref65$easing = _ref65.easing,\n easing = _ref65$easing === void 0 ? identity : _ref65$easing,\n _ref65$tick = _ref65.tick,\n tick = _ref65$tick === void 0 ? noop : _ref65$tick,\n css = _ref65.css;\n\n var program = {\n start: now() + delay,\n b: b\n };\n\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n\n if (running_program || pending_program) {\n pending_program = program;\n } else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n\n if (b) tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(function () {\n return dispatch(node, b, 'start');\n });\n loop(function (now) {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n } else {\n // outro — needs to be coordinated\n if (! --running_program.group.r) run_all(running_program.group.c);\n }\n }\n\n running_program = null;\n } else if (now >= running_program.start) {\n var p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n\n return !!(running_program || pending_program);\n });\n }\n }\n\n return {\n run: function run(b) {\n if (is_function(config)) {\n wait().then(function () {\n // @ts-ignore\n config = config();\n go(b);\n });\n } else {\n go(b);\n }\n },\n end: function end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nvar globals = typeof window !== 'undefined' ? window : typeof globalThis !== 'undefined' ? globalThis : global;\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\n\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, function () {\n lookup.delete(block.key);\n });\n}\n\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n var o = old_blocks.length;\n var n = list.length;\n var i = o;\n var old_indexes = {};\n\n while (i--) {\n old_indexes[old_blocks[i].key] = i;\n }\n\n var new_blocks = [];\n var new_lookup = new Map();\n var deltas = new Map();\n i = n;\n\n while (i--) {\n var child_ctx = get_context(ctx, list, i);\n var key = get_key(child_ctx);\n var block = lookup.get(key);\n\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n } else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n\n var will_move = new Set();\n var did_move = new Set();\n\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n\n while (o && n) {\n var new_block = new_blocks[n - 1];\n var old_block = old_blocks[o - 1];\n var new_key = new_block.key;\n var old_key = old_block.key;\n\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n } else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n } else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n } else if (did_move.has(old_key)) {\n o--;\n } else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n } else {\n will_move.add(old_key);\n o--;\n }\n }\n\n while (o--) {\n var _old_block = old_blocks[o];\n if (!new_lookup.has(_old_block.key)) destroy(_old_block, lookup);\n }\n\n while (n) {\n insert(new_blocks[n - 1]);\n }\n\n return new_blocks;\n}\n\nfunction get_spread_update(levels, updates) {\n var update = {};\n var to_null_out = {};\n var accounted_for = {\n $$scope: 1\n };\n var i = levels.length;\n\n while (i--) {\n var o = levels[i];\n var n = updates[i];\n\n if (n) {\n for (var key in o) {\n if (!(key in n)) to_null_out[key] = 1;\n }\n\n for (var _key2 in n) {\n if (!accounted_for[_key2]) {\n update[_key2] = n[_key2];\n accounted_for[_key2] = 1;\n }\n }\n\n levels[i] = n;\n } else {\n for (var _key3 in o) {\n accounted_for[_key3] = 1;\n }\n }\n }\n\n for (var _key4 in to_null_out) {\n if (!(_key4 in update)) update[_key4] = undefined;\n }\n\n return update;\n}\n\nfunction get_spread_object(spread_props) {\n return _typeof(spread_props) === 'object' && spread_props !== null ? spread_props : {};\n}\n\nfunction bind(component, name, callback) {\n var index = component.$$.props[name];\n\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\n\nfunction create_component(block) {\n block && block.c();\n}\n\nfunction mount_component(component, target, anchor, customElement) {\n var _component$$$ = component.$$,\n fragment = _component$$$.fragment,\n after_update = _component$$$.after_update;\n fragment && fragment.m(target, anchor);\n\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(function () {\n var new_on_destroy = component.$$.on_mount.map(run).filter(is_function); // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n\n if (component.$$.on_destroy) {\n var _component$$$$on_dest;\n\n (_component$$$$on_dest = component.$$.on_destroy).push.apply(_component$$$$on_dest, _toConsumableArray(new_on_destroy));\n } else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n\n component.$$.on_mount = [];\n });\n }\n\n after_update.forEach(add_render_callback);\n}\n\nfunction destroy_component(component, detaching) {\n var $$ = component.$$;\n\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching); // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\n\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n\n component.$$.dirty[i / 31 | 0] |= 1 << i % 31;\n}\n\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles) {\n var dirty = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : [-1];\n var parent_component = current_component;\n set_current_component(component);\n var $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props: props,\n update: noop,\n not_equal: not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty: dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n var ready = false;\n $$.ctx = instance ? instance(component, options.props || {}, function (i, ret) {\n var value = (arguments.length <= 2 ? 0 : arguments.length - 2) ? arguments.length <= 2 ? undefined : arguments[2] : ret;\n\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i]) $$.bound[i](value);\n if (ready) make_dirty(component, i);\n }\n\n return ret;\n }) : [];\n $$.update();\n ready = true;\n run_all($$.before_update); // `false` as a special case of no DOM component\n\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n\n if (options.target) {\n if (options.hydrate) {\n var nodes = children(options.target); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n\n if (options.intro) transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n flush();\n }\n\n set_current_component(parent_component);\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\n\n\nvar SvelteComponent = /*#__PURE__*/function () {\n function SvelteComponent() {\n _classCallCheck(this, SvelteComponent);\n }\n\n _createClass(SvelteComponent, [{\n key: \"$destroy\",\n value: function $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n }, {\n key: \"$on\",\n value: function $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n\n var callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return function () {\n var index = callbacks.indexOf(callback);\n if (index !== -1) callbacks.splice(index, 1);\n };\n }\n }, {\n key: \"$set\",\n value: function $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n }]);\n\n return SvelteComponent;\n}();\n\nvar subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\n\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\n\n\nfunction writable(value) {\n var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var stop;\n var subscribers = new Set();\n\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n\n if (stop) {\n // store is ready\n var run_queue = !subscriber_queue.length;\n\n var _iterator5 = _createForOfIteratorHelper(subscribers),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var subscriber = _step5.value;\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n if (run_queue) {\n for (var i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n\n subscriber_queue.length = 0;\n }\n }\n }\n }\n\n function update(fn) {\n set(fn(value));\n }\n\n function subscribe(run) {\n var invalidate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var subscriber = [run, invalidate];\n subscribers.add(subscriber);\n\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n\n run(value);\n return function () {\n subscribers.delete(subscriber);\n\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n\n return {\n set: set,\n update: update,\n subscribe: subscribe\n };\n}\n\nfunction derived(stores, fn, initial_value) {\n var single = !Array.isArray(stores);\n var stores_array = single ? [stores] : stores;\n var auto = fn.length < 2;\n return readable(initial_value, function (set) {\n var inited = false;\n var values = [];\n var pending = 0;\n var cleanup = noop;\n\n var sync = function sync() {\n if (pending) {\n return;\n }\n\n cleanup();\n var result = fn(single ? values[0] : values, set);\n\n if (auto) {\n set(result);\n } else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n\n var unsubscribers = stores_array.map(function (store, i) {\n return subscribe(store, function (value) {\n values[i] = value;\n pending &= ~(1 << i);\n\n if (inited) {\n sync();\n }\n }, function () {\n pending |= 1 << i;\n });\n });\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nvar mergeObjects = function mergeObjects(objects) {\n return objects.reduce(function (prev, curr) {\n return Object.assign(prev, curr);\n }, {});\n}; // @ts-ignore\n\n\nvar UPDATE_VALUE = function UPDATE_VALUE(updateValue) {\n return {\n updateValue: updateValue\n };\n};\n\nvar DEFAULT_VALUE = function DEFAULT_VALUE(defaultValue) {\n return {\n defaultValue: defaultValue\n };\n};\n\nvar CUSTOM_STORE = function CUSTOM_STORE(fn) {\n return {\n store: fn\n };\n}; // @ts-ignore (fixes error thrown in karma typescript)\n\n\nvar DERIVED_STORE = function DERIVED_STORE(fn) {\n return {\n store: function store(defaultValue, stores) {\n return derived.apply(void 0, _toConsumableArray(fn(stores)));\n }\n };\n};\n\nvar UNIQUE_DERIVED_STORE = function UNIQUE_DERIVED_STORE(fn) {\n return {\n store: function store(defaultValue, stores) {\n var _fn = fn(stores),\n _fn2 = _slicedToArray(_fn, 3),\n selectedStores = _fn2[0],\n update = _fn2[1],\n _fn2$ = _fn2[2],\n isEqual = _fn2$ === void 0 ? function () {\n return false;\n } : _fn2$;\n\n var isFirst = true;\n var currentValue;\n return derived(selectedStores, function (storeValues, set) {\n update(storeValues, function (value) {\n if (!isFirst && isEqual(currentValue, value)) return;\n currentValue = value;\n isFirst = false;\n set(value);\n });\n });\n }\n };\n};\n\nvar MAP_STORE = function MAP_STORE(fn) {\n return {\n store: function store(defaultValue, stores) {\n var _fn3 = fn(stores),\n _fn4 = _slicedToArray(_fn3, 3),\n valueMapper = _fn4[0],\n _fn4$ = _fn4[1],\n observedStores = _fn4$ === void 0 ? {} : _fn4$,\n _fn4$2 = _fn4[2],\n sorter = _fn4$2 === void 0 ? undefined : _fn4$2;\n\n var storedItems = [];\n var $observedStores = {};\n\n var mapValue = function mapValue(item) {\n return valueMapper(item, $observedStores);\n }; // set default properties for each item\n\n\n var setValue = function setValue(items) {\n // was empty, still empty\n if (!storedItems.length && !items.length) return; // update value\n\n storedItems = items;\n updateValue();\n };\n\n var updateValue = function updateValue() {\n var mappedItems = storedItems.map(mapValue);\n if (sorter) mappedItems.sort(sorter);\n storedItems = _toConsumableArray(mappedItems);\n set(mappedItems);\n }; // TODO: need to at some point unsub from these stores\n\n\n Object.entries(observedStores).map(function (_ref66) {\n var _ref67 = _slicedToArray(_ref66, 2),\n name = _ref67[0],\n store = _ref67[1];\n\n return store.subscribe(function (value) {\n $observedStores[name] = value;\n if (!value) return;\n updateValue();\n });\n });\n\n var _writable = writable(defaultValue || []),\n subscribe = _writable.subscribe,\n set = _writable.set;\n\n return {\n set: setValue,\n update: function update(fn) {\n return setValue(fn(storedItems));\n },\n subscribe: subscribe\n };\n }\n };\n};\n\nvar createStore$1 = function createStore$1(accessors, stores, options) {\n var _options$store = options.store,\n store = _options$store === void 0 ? function (defaultValue) {\n return writable(defaultValue);\n } : _options$store,\n _options$defaultValue = options.defaultValue,\n defaultValue = _options$defaultValue === void 0 ? noop$1 : _options$defaultValue,\n _options$updateValue = options.updateValue,\n updateValue = _options$updateValue === void 0 ? undefined : _options$updateValue; // create our private store\n\n var storeInstance = store(defaultValue(), stores, accessors);\n var subscribe = storeInstance.subscribe,\n _storeInstance$update = storeInstance.update,\n update = _storeInstance$update === void 0 ? noop$1 : _storeInstance$update; // update = noop because not all stores can be updated\n // on update private store\n\n var unsub;\n\n var onUpdate = function onUpdate(cb) {\n var ignoreFirstCallback = true;\n if (unsub) unsub();\n unsub = subscribe(function (value) {\n // need to ignore first callback because that returns current value\n if (ignoreFirstCallback) return ignoreFirstCallback = false; // now we have the newly assigned value\n\n cb(value);\n unsub();\n unsub = undefined;\n });\n }; // create the value updater function, needs access to stores so can read all store values\n\n\n var updateStoreValue = updateValue ? updateValue(accessors) : passthrough; // set and validate value\n\n storeInstance.set = function (nextValue) {\n return update(function (previousValue) {\n return updateStoreValue(nextValue, previousValue, onUpdate);\n });\n }; // set default value for external reference\n\n\n storeInstance.defaultValue = defaultValue; // expose store api\n\n return storeInstance;\n};\n\nvar createStores = function createStores(props) {\n var stores = {};\n var accessors = {};\n props.forEach(function (_ref68) {\n var _ref69 = _toArray(_ref68),\n name = _ref69[0],\n options = _ref69.slice(1);\n\n var opts = mergeObjects(options);\n var store = stores[name] = createStore$1(accessors, stores, opts);\n var property = {\n get: function get() {\n return get_store_value(store);\n },\n set: store.set\n };\n Object.defineProperty(accessors, name, property);\n });\n return {\n stores: stores,\n accessors: accessors\n };\n}; // custom source store so we only trigger update when src changes\n\n\nvar sourceStore = function sourceStore() {\n // inner value\n var value;\n\n var _writable2 = writable(),\n subscribe = _writable2.subscribe,\n set = _writable2.set;\n\n var _set = function _set(newValue) {\n // is equal, bounce!\n if (value === newValue) return;\n value = newValue;\n set(value);\n };\n\n var _update = function _update(fn) {\n return _set(fn(value));\n };\n\n return {\n set: _set,\n subscribe: subscribe,\n update: _update\n };\n};\n\nvar props = [// io\n['src', CUSTOM_STORE(sourceStore)], ['imageReader'], ['imageWriter'], // will scramble image data for use with image redaction logic\n['imageScrambler'], // should we render a smooth or pixelated redaction\n['imageRedactionRendering', DEFAULT_VALUE(function () {\n return 'pixelated';\n})], // current images\n['images', DEFAULT_VALUE(function () {\n return [];\n})], // will process markup items before rendering, used by arrows and frames\n['shapePreprocessor'], // will be called when requesting a resource, return false to prevent loading, receives URL and XHR\n['willRequestResource']\n/* deprecated */\n, // will be called when requesting a resource, receives URL and requestType\n// return false to prevent loading\n// return object with options to update request\n// return undefined to continue as normal\n['willRequest'], // can contain `styleNonce`\n['csp']];\n\nvar capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nvar defineMethods = function defineMethods(object, api) {\n Object.keys(api).forEach(function (name) {\n var descriptor = isFunction(api[name]) ? {\n value: api[name],\n writable: false\n } : api[name];\n Object.defineProperty(object, name, descriptor);\n });\n}; // TODO: replace with pointInPoly from geom, this function works correctly with \"offsetRectToFitPolygon\" but doesn't always work correctly, the pointInPoly from geom does work correctly but causes offsetRectToFitPolygon to sometimes work incorrectly, needs to be cleaned up in the future\n\n\nvar pointInPoly = function pointInPoly(point, vertices) {\n var i;\n var a;\n var b;\n var aX;\n var aY;\n var bX;\n var bY;\n var edgeX;\n var edgeY;\n var d;\n var l = vertices.length;\n\n for (i = 0; i < l; i++) {\n // current vertex\n a = vertices[i]; // next vertex\n\n b = vertices[i + 1 > l - 1 ? 0 : i + 1]; // translate so that point is the origin of the calculation\n\n aX = a.x - point.x;\n aY = a.y - point.y;\n bX = b.x - point.x;\n bY = b.y - point.y;\n edgeX = aX - bX;\n edgeY = aY - bY;\n d = edgeX * aY - edgeY * aX; // 0 is ON the edge, but we check for -0.00001 to fix floating point errors\n\n if (d < -0.00001) return false;\n }\n\n return true;\n};\n\nvar scalar = 10000;\n\nvar offsetRectToFitPolygon = function offsetRectToFitPolygon(rect, poly) {\n var polyLines = quadLines(poly);\n var offset = vectorCreateEmpty();\n var rectVertexes = rectGetCorners(rect); // we can fit it\n\n rectVertexes.forEach(function (vertex) {\n // we update each corner by adding the current offset\n vectorAdd(vertex, offset); // test if point lies in polygon, if so, all is fine and we can exit\n\n if (pointInPoly(vertex, poly)) return;\n polyLines.forEach(function (line) {\n // get angle of edge and draw a ray from the corner perpendicular to the edge\n var a = Math.atan2(line.start.y - line.end.y, line.start.x - line.end.x);\n var x = Math.sin(Math.PI - a) * scalar;\n var y = Math.cos(Math.PI - a) * scalar;\n var ray = vectorCreate(vertex.x + x, vertex.y + y); // extend the poly line so even if we overshoot the polygon we hit it\n\n var lineExtended = lineExtend(lineClone(line), scalar); // get the resulting intersection (there's always an intersection)\n\n var intersection = lineLineIntersection(lineCreate(vertex, ray), lineExtended); // no intersection, no need to do anything\n\n if (!intersection) return; // update offset to move towards image\n\n vectorAdd(offset, vectorSubtract(vectorClone(intersection), vertex));\n });\n }); // test if any vertexes still fall outside of poly, if so, we can't fit the rect\n\n var rectOffset = rectClone$1(rect);\n vectorAdd(rectOffset, offset);\n var rectOffsetVertices = rectGetCorners(rectOffset);\n var fits = rectOffsetVertices.every(function (vertex) {\n return pointInPoly(vertex, poly);\n });\n\n if (fits) {\n rectUpdateWithRect(rect, rectOffset);\n return true;\n }\n\n return false;\n};\n\nvar limitCropRectToImage = function limitCropRectToImage(rect, poly) {\n // get crop rect polygon vertexes\n var rectVertexes = rectGetCorners(rect); // if we end up here it doesn't fit, we might need to adjust\n\n var polyLines = quadToLines(poly, 5);\n var rectCenterPosition = rectCenter(rect);\n var intersections = [];\n rectVertexes.forEach(function (rectVertex) {\n var ray = lineMultiply(lineCreate(vectorClone(rectCenterPosition), vectorClone(rectVertex)), 1000000);\n var intersectionFound = false;\n polyLines.map(lineClone).forEach(function (line) {\n var intersection = lineLineIntersection(ray, line);\n if (!intersection || intersectionFound) return;\n intersections.push(intersection);\n intersectionFound = true;\n });\n }); // top left -> bottom right\n\n var tlbr = vectorDistance(intersections[0], intersections[2]); // top right -> bottom left\n\n var trbl = vectorDistance(intersections[1], intersections[3]); // calculate smallest rectangle we can make, use that\n\n var rectLimitedVertices = tlbr < trbl ? [intersections[0], intersections[2]] : [intersections[1], intersections[3]];\n var rectLimitedToPolygon = rectCreateFromPoints(rectLimitedVertices); // only use our fitted crop rectangle if it's smaller than our current rectangle,\n // this would mean that our current rectangle couldn't be moved to make it fit\n\n if (rectLimitedToPolygon.width < rect.width) {\n // need to center on previous rect\n rectUpdateWithRect(rect, rectLimitedToPolygon);\n return true;\n }\n\n return false;\n};\n\nvar getImagePolygon = function getImagePolygon(image, imageRotation) {\n var imagePerspective = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n x: 0,\n y: 0\n };\n var imageRect = rectCreateFromSize(image);\n var imageCenter = rectCenter(imageRect);\n var imagePoly = rectApplyPerspective(imageRect, imagePerspective, imageCenter).map(function (imageVertex) {\n return vectorRotate(imageVertex, imageRotation, imageCenter);\n }); // get image poly bounds, we need this to offset the poly vertices from 0,0\n\n var imagePolyBounds = rectCreateFromPoints(imagePoly); // get image polygon vertexes\n\n return imagePoly.map(function (imageVertex) {\n return vectorSubtract(imageVertex, imagePolyBounds);\n });\n};\n\nvar getMaxSizeInRect = function getMaxSizeInRect(size) {\n var rotation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var aspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rectAspectRatio(size);\n var width;\n var height;\n\n if (rotation !== 0) {\n var innerAngle = Math.atan2(1, aspectRatio);\n var rotationSigned = Math.sign(rotation) * rotation;\n var rotationSignedMod = rotationSigned % Math.PI;\n var rotationSignedModHalf = rotationSigned % HALF_PI; // determine if is turned on side\n\n var _r3;\n\n if (rotationSignedMod > QUART_PI && rotationSignedMod < HALF_PI + QUART_PI) {\n _r3 = rotationSignedModHalf > QUART_PI ? rotationSigned : HALF_PI - rotationSignedModHalf;\n } else {\n _r3 = rotationSignedModHalf > QUART_PI ? HALF_PI - rotationSignedModHalf : rotationSigned;\n }\n\n var hyp = Math.min(Math.abs(size.height / Math.sin(innerAngle + _r3)), Math.abs(size.width / Math.cos(innerAngle - _r3)));\n width = Math.cos(innerAngle) * hyp;\n height = width / aspectRatio;\n } else {\n width = size.width;\n height = width / aspectRatio;\n\n if (height > size.height) {\n height = size.height;\n width = height * aspectRatio;\n }\n }\n\n return sizeCreate(width, height);\n};\n\nvar limitRectToImage = function limitRectToImage(rect, imageSize) {\n var imageRotation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var imagePerspective = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : vectorCreateEmpty();\n var minSize = arguments.length > 4 ? arguments[4] : undefined;\n\n // rotation and/or perspective, let's use the \"advanced\" collision detection method\n if (isNumber(imageRotation) && imageRotation !== 0 || imagePerspective.x || imagePerspective.y) {\n var inputAspectRatio = rectAspectRatio(rect); // test if crop can fit image, if it can, offset the crop so it fits\n\n var imagePolygon = getImagePolygon(imageSize, imageRotation, imagePerspective);\n var maxSizeInRect = getMaxSizeInRect(imageSize, imageRotation, inputAspectRatio);\n var canFit = rect.width < maxSizeInRect.width && rect.height < maxSizeInRect.height;\n\n if (!canFit) {\n var dx = rect.width * 0.5 - maxSizeInRect.width * 0.5;\n var dy = rect.height * 0.5 - maxSizeInRect.height * 0.5; // adjust crop rect to max size\n\n if (rect.width > maxSizeInRect.width) {\n rect.width = maxSizeInRect.width;\n rect.x += dx;\n }\n\n if (rect.height > maxSizeInRect.height) {\n rect.height = maxSizeInRect.height;\n rect.y += dy;\n } // test if has exceeded min size, if so we need to limit the size and recalculate the other edge\n\n /*\n -\\\n / ---\\\n h2 ---\\\n / ---\\\n +--------w---------+\\\n /| | ---\\\n / | | ---\\\n / | | ---\\\n / | | --\n h1 | | /\n / | | /\n / | | /\n -\\ | | /\n ---\\ | | /\n --+------------------+ /\n ---\\ /\n --\\ /\n ---\\ /\n ---\\ /\n ---\\ /\n --\n */\n\n }\n\n offsetRectToFitPolygon(rect, imagePolygon);\n var wasLimited = limitCropRectToImage(rect, imagePolygon); // this makes sure that after limiting the size, the crop rect is moved to a position that is inside the image\n\n if (wasLimited) offsetRectToFitPolygon(rect, imagePolygon);\n } // no rotation, no perspective, use simple bounds method\n else {\n // remember intended aspect ratio so we can try and recreate it\n var intendedAspectRatio = rectAspectRatio(rect); // limit to image size first, can never exceed that\n\n rect.width = Math.min(rect.width, imageSize.width);\n rect.height = Math.min(rect.height, imageSize.height); // reposition rect so it's always inside image bounds\n\n rect.x = Math.max(rect.x, 0);\n\n if (rect.x + rect.width > imageSize.width) {\n rect.x -= rect.x + rect.width - imageSize.width;\n }\n\n rect.y = Math.max(rect.y, 0);\n\n if (rect.y + rect.height > imageSize.height) {\n rect.y -= rect.y + rect.height - imageSize.height;\n } // we get the center of the current rect so we can center the contained rect to it\n\n\n var intendedCenter = rectCenter(rect); // make sure still adheres to aspect ratio\n\n var containedRect = rectContainRect(rect, intendedAspectRatio);\n containedRect.width = Math.max(minSize.width, containedRect.width);\n containedRect.height = Math.max(minSize.height, containedRect.height);\n containedRect.x = intendedCenter.x - containedRect.width * 0.5;\n containedRect.y = intendedCenter.y - containedRect.height * 0.5;\n rectUpdateWithRect(rect, containedRect);\n }\n};\n\nvar applyCropRectAction = function applyCropRectAction(cropRectPrevious, cropRectNext, imageSize, imageRotation, imagePerspective, cropLimitToImageBounds, cropMinSize, cropMaxSize) {\n // clone\n var minSize = sizeClone(cropMinSize); // set upper bounds to crop max size\n\n var maxSize = sizeClone(cropMaxSize); // limit max size (more important that min size is respected so first limit max size)\n\n var maxScalar = fixPrecision(Math.max(cropRectNext.width / maxSize.width, cropRectNext.height / maxSize.height));\n var minScalar = fixPrecision(Math.min(cropRectNext.width / minSize.width, cropRectNext.height / minSize.height)); // clone for resulting crop rect\n\n var cropRectOut = rectClone$1(cropRectNext); //\n // if exceeds min or max scale correct next crop rectangle to conform to bounds\n //\n\n if (minScalar < 1 || maxScalar > 1) {\n // center of both previous and next crop rects\n var previousCropRectCenter = rectCenter(cropRectPrevious);\n var nextCropRectCenter = rectCenter(cropRectNext); // calculate scales\n\n var _scalar3 = minScalar < 1 ? minScalar : maxScalar;\n\n var cx = (nextCropRectCenter.x + previousCropRectCenter.x) / 2;\n var cy = (nextCropRectCenter.y + previousCropRectCenter.y) / 2;\n var cw = cropRectOut.width / _scalar3;\n var ch = cropRectOut.height / _scalar3;\n rectUpdate(cropRectOut, cx - cw * 0.5, cy - ch * 0.5, cw, ch);\n } // no need to limit to bounds, let's go!\n\n\n if (!cropLimitToImageBounds) return {\n crop: cropRectOut\n }; //\n // make sure the crop is made inside the bounds of the image\n //\n\n limitRectToImage(cropRectOut, imageSize, imageRotation, imagePerspective, minSize);\n return {\n crop: cropRectOut\n };\n};\n\nvar getBaseCropRect = function getBaseCropRect(imageSize, transformedCropRect, imageRotation) {\n var imageRect = rectCreateFromSize(imageSize);\n var imageCenter = rectCenter(imageRect);\n var imageTransformedVertices = rectRotate(imageRect, imageRotation, imageCenter); // get the rotated image bounds center (offset isn't relevant as crop is relative to top left image position)\n\n var imageRotatedBoundsCenter = rectCenter(rectNormalizeOffset(rectCreateFromPoints(imageTransformedVertices))); // get the center of the crop inside the rotated image\n\n var cropCenterInTransformedImage = rectCenter(transformedCropRect); // invert the rotation of the crop center around the rotated image center\n\n var deRotatedCropCenter = vectorRotate(cropCenterInTransformedImage, -imageRotation, imageRotatedBoundsCenter); // calculate crop distance from rotated image center\n\n var cropFromCenterOfTransformedImage = vectorSubtract(deRotatedCropCenter, imageRotatedBoundsCenter); // calculate original crop offset (from untransformed image)\n\n var originalCropCenterOffset = vectorApply(vectorAdd(imageCenter, cropFromCenterOfTransformedImage), fixPrecision);\n return rectCreate(originalCropCenterOffset.x - transformedCropRect.width * 0.5, originalCropCenterOffset.y - transformedCropRect.height * 0.5, transformedCropRect.width, transformedCropRect.height);\n};\n\nvar clamp = function clamp(value, min, max) {\n return Math.max(min, Math.min(value, max));\n};\n\nvar applyRotationAction = function applyRotationAction(imageRotationPrevious, imageRotation, imageRotationRange, cropRect, imageSize, imagePerspective, cropLimitToImageBounds, cropRectOrigin, cropMinSize, cropMaxSize) {\n // clone\n var minSize = sizeClone(cropMinSize); // set upper bounds to crop max size if image is bigger than max size,\n // else if should limit to image bounds use image size as limit\n\n var maxSize = sizeClone(cropMaxSize);\n\n if (cropLimitToImageBounds) {\n maxSize.width = Math.min(cropMaxSize.width, imageSize.width);\n maxSize.height = Math.min(cropMaxSize.height, imageSize.height);\n }\n\n var didAttemptDoubleTurn = false;\n\n var rotate = function rotate(rotationPrevious, rotation) {\n // get the base crop rect (position of crop rect in untransformed image)\n // if we have the base crop rect we can apply the new rotation to it\n var cropRectBase = getBaseCropRect(imageSize, cropRect, rotationPrevious); // calculate transforms based on new rotation and base crop rect\n\n var imageRect = rectCreateFromSize(imageSize);\n var imageCenter = rectCenter(imageRect);\n var imageTransformedCorners = rectApplyPerspective(imageRect, imagePerspective, imageCenter); // need this to correct for perspective centroid displacement\n\n var perspectiveOffset = vectorSubtract(vectorClone(imageCenter), convexPolyCentroid(imageTransformedCorners)); // rotate around center of image\n\n var cropCenter = vectorRotate(rectCenter(cropRectBase), rotation, imageCenter);\n var rotateCropOffset = vectorSubtract(vectorClone(imageCenter), cropCenter); // get center of image bounds and move to correct position\n\n imageTransformedCorners.forEach(function (imageVertex) {\n return vectorRotate(imageVertex, rotation, imageCenter);\n });\n var imageBoundsRect = rectCreateFromPoints(imageTransformedCorners);\n var imageCentroid = convexPolyCentroid(imageTransformedCorners);\n var cropOffset = vectorAdd(vectorSubtract(vectorSubtract(imageCentroid, rotateCropOffset), imageBoundsRect), perspectiveOffset); // create output cropRect\n\n var cropRectOut = rectCreate(cropOffset.x - cropRectBase.width * 0.5, cropOffset.y - cropRectBase.height * 0.5, cropRectBase.width, cropRectBase.height); // if has size target, scale croprect to target size\n\n if (cropRectOrigin) {\n rectScale$1(cropRectOut, cropRectOrigin.width / cropRectOut.width);\n } // if should limit to image bounds\n\n\n if (cropLimitToImageBounds) {\n var imagePoly = getImagePolygon(imageSize, rotation, imagePerspective); // offsetRectToFitPolygon(cropRectOut, imagePoly);\n // commenting this fixes poly sliding problem when adjusting rotation\n\n limitCropRectToImage(cropRectOut, imagePoly);\n } //#region if exceeds min or max adjust rotation to conform to bounds\n\n\n var minScalar = fixPrecision(Math.min(cropRectOut.width / minSize.width, cropRectOut.height / minSize.height), 8);\n var maxScalar = fixPrecision(Math.max(cropRectOut.width / maxSize.width, cropRectOut.height / maxSize.height), 8);\n\n if (minScalar < 1 || maxScalar > 1) {\n // determine if is full image turn\n var isTurn = fixPrecision(Math.abs(rotation - rotationPrevious)) === fixPrecision(Math.PI / 2); // try another turn if is turning image\n\n if (isTurn && !didAttemptDoubleTurn) {\n didAttemptDoubleTurn = true;\n return rotate(imageRotationPrevious, imageRotationPrevious + Math.sign(rotation - rotationPrevious) * Math.PI);\n }\n } //#endregion\n\n\n return {\n rotation: rotation,\n crop: rectApply(cropRectOut, function (v) {\n return fixPrecision(v, 8);\n })\n };\n }; // amount of turns applied, we need this to correctly determine the allowed rotation range\n\n\n var imageTurns = Math.sign(imageRotation) * Math.round(Math.abs(imageRotation) / HALF_PI) * HALF_PI;\n var imageRotationClamped = clamp(imageRotation, imageTurns + imageRotationRange[0], imageTurns + imageRotationRange[1]); // set new crop position\n\n return rotate(imageRotationPrevious, imageRotationClamped);\n}; // @ts-ignore\n\n\nvar ORDERED_STATE_PROPS = [// requirements\n'cropLimitToImage', 'cropMinSize', 'cropMaxSize', 'cropAspectRatio', // selection -> flip -> rotate -> (perspective ->) crop\n'flipX', 'flipY', 'rotation', 'crop', // effects\n'colorMatrix', 'convolutionMatrix', 'gamma', 'vignette', // 'noise',\n// shapes\n'manipulation', 'redaction', 'annotation', 'decoration', 'selection', 'frame', // other\n'backgroundColor', 'backgroundImage', 'targetSize', 'metadata', // video\n'trim', 'volume', 'minDuration', 'maxDuration', 'currentTime'];\n\nvar clone = function clone(value) {\n if (isArray(value)) {\n return value.map(clone);\n } else if (isBlob(value) || isFile(value)) {\n return value;\n } else if (isObject(value)) {\n return _objectSpread({}, value);\n }\n\n return value;\n};\n\nvar filterShapeState = function filterShapeState(shapes) {\n return shapes.map(function (shape) {\n return Object.entries(shape).reduce(function (copy, _ref70) {\n var _ref71 = _slicedToArray(_ref70, 2),\n key = _ref71[0],\n value = _ref71[1];\n\n if (key.startsWith('_')) return copy;\n copy[key] = value;\n return copy;\n }, {});\n });\n};\n\nvar stateStore = function stateStore(_, stores, accessors) {\n var observedStores = ORDERED_STATE_PROPS.map(function (key) {\n return stores[key];\n }); // used to wait with deriving state until new state is fully assigned\n\n var isAssigningState = false;\n var forceState = writable({}); // can only subscribe, setting is done directly through store accessors\n // @ts-ignore (fixes error thrown in karma typescript)\n\n var _derived = derived([].concat(_toConsumableArray(observedStores), [forceState]), function (values, set) {\n // is setting state\n if (isAssigningState) return; // create new state by looping over props in certain order\n\n var state = ORDERED_STATE_PROPS.reduce(function (prev, curr, i) {\n prev[curr] = clone(values[i]);\n return prev;\n }, {}); // round crop if defined\n\n state.crop && rectApply(state.crop, Math.round); // remove internal state props from decoration and annotation\n\n state.manipulation = state.manipulation && filterShapeState(state.manipulation);\n state.redaction = state.redaction && filterShapeState(state.redaction);\n state.annotation = state.annotation && filterShapeState(state.annotation);\n state.decoration = state.decoration && filterShapeState(state.decoration);\n state.selection = state.selection && filterShapeState(state.selection); // set new state\n\n set(state);\n }),\n subscribe = _derived.subscribe;\n\n var setState = function setState(state) {\n // requires at least some state to be supplied\n if (!state) return; // now assigning state so don't derive state object untill done\n\n isAssigningState = true; // make sure crop origin is reset\n\n accessors.cropOrigin = undefined; // apply new values\n\n ORDERED_STATE_PROPS // remove keys that weren't set\n .filter(function (key) {\n return hasProp(state, key);\n }) // apply each key in order\n .forEach(function (key) {\n var value = state[key];\n accessors[key] = value === null ? undefined : clone(value);\n }); // now refresh state\n\n isAssigningState = false;\n forceState.set({});\n };\n\n return {\n set: setState,\n update: function update(fn) {\n return setState(fn(null));\n },\n subscribe: subscribe\n };\n};\n\nvar toNumericAspectRatio = function toNumericAspectRatio(v) {\n if (!v) return undefined;\n\n if (/:/.test(v)) {\n var _v$split = v.split(':'),\n _v$split2 = _slicedToArray(_v$split, 2),\n w = _v$split2[0],\n _h = _v$split2[1];\n\n return w / _h;\n }\n\n return parseFloat(v);\n};\n\nvar simpleEqual = function simpleEqual(a, b) {\n return a === b;\n};\n\nvar arrayEqual = function arrayEqual(a, b) {\n var itemEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : simpleEqual;\n // if length is different, it's always changed\n if (a.length !== b.length) return false; // need to test item equality\n\n for (var i = 0; i < a.length; i++) {\n if (!itemEqual(a[i], b[i])) return false;\n }\n\n return true;\n};\n\nvar padColorArray = function padColorArray() {\n var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [0, 0, 0, 0];\n var opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1.0;\n return color.length === 4 ? color : [].concat(_toConsumableArray(color), [opacity]);\n}; //\n// helper methods\n//\n\n\nvar isCropCentered = function isCropCentered(crop, imageSize, imageRotation) {\n var cropCenter = vectorApply(rectCenter(crop), function (v) {\n return fixPrecision(v, 8);\n });\n var imageRect = rectCreateFromSize(imageSize);\n var imageCenter = rectCenter(imageRect);\n var imageRotatedVertices = rectRotate(imageRect, imageRotation, imageCenter);\n var imageBoundsCenter = vectorApply(sizeCenter(rectCreateFromPoints(imageRotatedVertices)), function (v) {\n return fixPrecision(v, 8);\n });\n var dx = Math.abs(imageBoundsCenter.x - cropCenter.x);\n var dy = Math.abs(imageBoundsCenter.y - cropCenter.y);\n return dx < 1 && dy < 1;\n};\n\nvar isCropMaxSize = function isCropMaxSize(cropRect, imageSize, rotation) {\n var maxSize = getMaxSizeInRect(imageSize, rotation, rectAspectRatio(cropRect));\n return sizeEqual(sizeApply(maxSize, Math.round), sizeApply(sizeClone(cropRect), Math.round));\n}; //\n// updater methods\n//\n\n\nvar updateCropRect = function updateCropRect(props) {\n return function (cropNext) {\n var cropPrevious = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : cropNext;\n // wait for image to load\n var loadState = props.loadState,\n size = props.size,\n cropMinSize = props.cropMinSize,\n cropMaxSize = props.cropMaxSize,\n cropLimitToImage = props.cropLimitToImage,\n cropAspectRatio = props.cropAspectRatio,\n rotation = props.rotation,\n perspective = props.perspective; // image hasn't loaded yet, use supplied crop rect\n\n if (!cropNext && !cropPrevious || !loadState || !loadState.beforeComplete) return cropNext; // crop previous set, crop next set to undefined, set crop to fit image\n\n if (!cropNext) cropNext = rectCreateFromSize(getMaxSizeInRect(size, rotation, cropAspectRatio || rectAspectRatio(size))); // apply the action\n\n var res = applyCropRectAction(cropPrevious, cropNext, size, rotation, perspective, cropLimitToImage, cropMinSize, cropMaxSize);\n var cropOut = rectApply(res.crop, function (v) {\n return fixPrecision(v, 8);\n });\n if (rectEqual(cropPrevious, cropOut)) return cropPrevious;\n return cropOut;\n };\n};\n\nvar updateCropAspectRatio = function updateCropAspectRatio(props) {\n return function (aspectRatioNext, aspectRatioPrevious) {\n var loadState = props.loadState,\n crop = props.crop,\n size = props.size,\n rotation = props.rotation,\n cropLimitToImage = props.cropLimitToImage;\n var aspectRatio = toNumericAspectRatio(aspectRatioNext); // no aspect ratio means custom aspect ratio so set to undefined\n\n if (!aspectRatio) return undefined; // can't update crop if not defined yet\n\n if (!crop || !loadState || !loadState.beforeComplete) return aspectRatio; // calculate difference between aspect ratios, if big difference, re-align in image\n\n var aspectRatioDist = aspectRatioPrevious ? Math.abs(aspectRatioNext - aspectRatioPrevious) : 1; // if crop centered scale up\n\n if (isCropCentered(crop, size, rotation) && cropLimitToImage && aspectRatioDist >= 0.1) {\n var imageSize = sizeTurn(sizeClone(size), rotation);\n props.crop = rectApply(rectContainRect(rectCreateFromSize(imageSize), aspectRatioNext), fixPrecision);\n } else {\n var cropSize = {\n width: crop.height * aspectRatio,\n height: crop.height\n };\n var tx = (crop.width - cropSize.width) * 0.5;\n var ty = (crop.height - cropSize.height) * 0.5;\n props.crop = rectApply(rectCreate(crop.x + tx, crop.y + ty, cropSize.width, cropSize.height), fixPrecision);\n }\n\n return aspectRatio;\n };\n};\n\nvar updateCropLimitToImage = function updateCropLimitToImage(props) {\n return function (limitToImageNext, limitToImagePrevious, onUpdate) {\n // skip if no crop defined\n var crop = props.crop;\n if (!crop) return limitToImageNext; // if was not limiting previously and now set limiting make sure crop fits bounds\n\n if (!limitToImagePrevious && limitToImageNext) {\n onUpdate(function () {\n return props.crop = rectClone$1(props.crop);\n });\n }\n\n return limitToImageNext;\n };\n};\n\nvar updateRotation = function updateRotation(props) {\n return function (rotationNext, rotationPrevious, onUpdate) {\n // when image rotation is updated we need to adjust the\n // cropRect offset so rotation happens from cropRect center\n // no change\n if (rotationNext === rotationPrevious) return rotationNext; // get relevant data from store state\n\n var loadState = props.loadState,\n size = props.size,\n rotationRange = props.rotationRange,\n cropMinSize = props.cropMinSize,\n cropMaxSize = props.cropMaxSize,\n crop = props.crop,\n perspective = props.perspective,\n cropLimitToImage = props.cropLimitToImage,\n cropOrigin = props.cropOrigin; // image not ready, exit!\n\n if (!crop || !loadState || !loadState.beforeComplete) return rotationNext; // remember if current crop was at max size and centered, if so, resulting crop should also be at max size\n\n var cropWasAtMaxSize = cropLimitToImage && isCropMaxSize(crop, size, rotationPrevious);\n var cropWasCentered = cropLimitToImage && isCropCentered(crop, size, rotationPrevious); // get new state\n\n var res = applyRotationAction(rotationPrevious, rotationNext, rotationRange, crop, size, perspective, cropLimitToImage, cropOrigin, cropMinSize, cropMaxSize); // if is centered, and initial crop was at max size expand crop to max size\n\n if (cropWasAtMaxSize && cropWasCentered) {\n var rect = getMaxSizeInRect(size, rotationNext, rectAspectRatio(res.crop)); // move top left corner\n\n res.crop.x += res.crop.width * 0.5;\n res.crop.y += res.crop.height * 0.5;\n res.crop.x -= rect.width * 0.5;\n res.crop.y -= rect.height * 0.5; // update size to max size\n\n res.crop.width = rect.width;\n res.crop.height = rect.height;\n } // return validated rotation value, then, after we assign that value, we update the crop rect\n // we may only call onUpdate if a change was made\n\n\n onUpdate(function () {\n props.crop = rectApply(res.crop, function (v) {\n return fixPrecision(v, 8);\n });\n }); // return result rotation (might have been rotated twice to fit crop rectangle)\n\n return res.rotation;\n };\n}; // updates the range of valid rotation input\n\n\nvar updateRotationRange = function updateRotationRange(imageSize, imageIsRotatedSideways, cropMinSize, cropSize, cropLimitToImage) {\n if (!cropLimitToImage) return [-Infinity, Infinity];\n /*\n - 'a' is angle between diagonal and image height\n - 'b' is angle between diagonal and crop height\n - 'c' is angle between diagonal and image width\n - resulting range is then a - b\n +----------/\\------------------------+\n | / \\ \\ |\n | / \\ \\ |\n | / \\ \\ |\n | \\ \\ \\ |\n | \\ \\ \\ |\n | \\ \\ \\ |\n | \\ \\ / |\n | \\ \\ / |\n | \\ \\ / |\n | \\\\a/b |\n +---------------------\\--------------+\n */\n\n var scalar = Math.max(cropMinSize.width / cropSize.width, cropMinSize.height / cropSize.height);\n var minSize = sizeCreate(cropSize.width * scalar, cropSize.height * scalar); // the hypotenus is the length of the diagonal of the min crop size\n\n var requiredSpace = sizeHypotenuse(minSize); // minimum space available in horizontal / vertical direction\n\n var availableSpace = Math.min(imageSize.width, imageSize.height); // if there's enough space available, we can return the max range\n\n if (requiredSpace < availableSpace) return [-Infinity, Infinity]; // if the image is turned we need to swap the width and height\n\n var imageWidth = imageIsRotatedSideways ? imageSize.height : imageSize.width;\n var imageHeight = imageIsRotatedSideways ? imageSize.width : imageSize.height; // subtracting the angle between the hypotenuse and the crop itself\n\n var a = Math.acos(minSize.height / requiredSpace);\n var b = Math.acos(imageHeight / requiredSpace);\n var c = Math.asin(imageWidth / requiredSpace);\n var rangeHorizontal = a - b;\n var rangeVertical = c - a; // range is not a number, it means we can rotate as much as we want\n\n if (Number.isNaN(rangeHorizontal) && Number.isNaN(rangeVertical)) return [-Infinity, Infinity]; // get minimum range\n\n var range = Number.isNaN(rangeHorizontal) ? rangeVertical : Number.isNaN(rangeVertical) ? rangeHorizontal : Math.min(rangeHorizontal, rangeVertical); // if not, limit range to min and max rotation\n\n return [-range, range];\n}; // updates the range of valid crop rectangle input\n\n\nvar updateCropRange = function updateCropRange(imageSize, rotation, cropAspectRatio, cropMinSize, cropMaxSize, cropLimitToImage) {\n // ! rotation doesn't affect min size, only max size\n // set lower bounds to crop min size\n var minSize = sizeClone(cropMinSize); // set upper bounds to crop max size\n\n var maxSize = sizeClone(cropMaxSize); // now we got basic bounds, let's see if we should limit to the image bounds, else we done\n\n if (!cropLimitToImage) return [minSize, maxSize];\n return [minSize, sizeApply(getMaxSizeInRect(imageSize, rotation, cropAspectRatio), Math.round)];\n};\n\nvar formatShape = function formatShape(shape, options) {\n var context = options.context,\n props = options.props; // only auto-format once\n\n if (!shape._isFormatted) {\n shape = shapeFormat(shape);\n shape._isFormatted = true;\n Object.assign(shape, props);\n } // we need to make sure shape is still correctly positioned relative to parent context\n // draft cannot be relative\n // if context changed\n // if has left top right or bottom\n\n\n if (!shape._isDraft && shapeHasRelativeSize(shape) && (!shape._context || !rectEqual(context, shape._context))) {\n shapeComputeRect(shape, context);\n shape._context = _objectSpread({}, context);\n }\n\n return shape;\n};\n\nvar formatSelectionShape = function formatSelectionShape(shape, options) {\n if (!shape._isFormatted) {\n shape.disableMove = true;\n shape.disableSelect = true;\n shape.disableResize = true;\n shape.disableRotate = true;\n }\n\n return formatShape(shape, options);\n};\n\nvar updateFrame = function updateFrame() {\n return function (frameShapeNext) {\n if (!frameShapeNext) return;\n var shape = {\n frameStyle: undefined,\n x: 0,\n y: 0,\n width: '100%',\n height: '100%',\n disableStyle: ['backgroundColor', 'strokeColor', 'strokeWidth']\n };\n\n if (isString(frameShapeNext)) {\n shape.frameStyle = frameShapeNext;\n } else {\n Object.assign(shape, frameShapeNext);\n }\n\n return shape;\n };\n};\n\nvar ImageStorePropDescriptors = [// media info received from read\n['file'], ['size'], // loading and processing state\n['loadState'], ['processState'], // derived info\n['aspectRatio', DERIVED_STORE(function (_ref72) {\n var size = _ref72.size;\n return [size, function ($size) {\n return $size ? rectAspectRatio($size) : undefined;\n }];\n})], // image modifications\n['perspectiveX', DEFAULT_VALUE(function () {\n return 0;\n})], ['perspectiveY', DEFAULT_VALUE(function () {\n return 0;\n})], ['perspective', DERIVED_STORE(function (_ref73) {\n var perspectiveX = _ref73.perspectiveX,\n perspectiveY = _ref73.perspectiveY;\n return [[perspectiveX, perspectiveY], function (_ref74) {\n var _ref75 = _slicedToArray(_ref74, 2),\n x = _ref75[0],\n y = _ref75[1];\n\n return {\n x: x,\n y: y\n };\n }];\n})], ['rotation', DEFAULT_VALUE(function () {\n return 0;\n}), UPDATE_VALUE(updateRotation)], ['flipX', DEFAULT_VALUE(function () {\n return false;\n})], ['flipY', DEFAULT_VALUE(function () {\n return false;\n})], ['flip', DERIVED_STORE(function (_ref76) {\n var flipX = _ref76.flipX,\n flipY = _ref76.flipY;\n return [[flipX, flipY], function (_ref77) {\n var _ref78 = _slicedToArray(_ref77, 2),\n x = _ref78[0],\n y = _ref78[1];\n\n return {\n x: x,\n y: y\n };\n }];\n})], ['isRotatedSideways', UNIQUE_DERIVED_STORE(function (_ref79) {\n var rotation = _ref79.rotation;\n return [[rotation], function (_ref80, set) {\n var _ref81 = _slicedToArray(_ref80, 1),\n $rotation = _ref81[0];\n\n return set(isRotatedSideways($rotation));\n }, function (prevValue, nextValue) {\n return prevValue !== nextValue;\n }];\n})], ['crop', UPDATE_VALUE(updateCropRect)], ['cropAspectRatio', UPDATE_VALUE(updateCropAspectRatio)], ['cropOrigin'], ['cropMinSize', DEFAULT_VALUE(function () {\n return {\n width: 1,\n height: 1\n };\n})], ['cropMaxSize', DEFAULT_VALUE(function () {\n return {\n width: 32768,\n height: 32768\n };\n})], ['cropLimitToImage', DEFAULT_VALUE(function () {\n return true;\n}), UPDATE_VALUE(updateCropLimitToImage)], ['cropSize', UNIQUE_DERIVED_STORE(function (_ref82) {\n var crop = _ref82.crop;\n return [[crop], function (_ref83, set) {\n var _ref84 = _slicedToArray(_ref83, 1),\n $crop = _ref84[0];\n\n if (!$crop) return;\n set(sizeCreate($crop.width, $crop.height));\n }, // if is same as previous size, don't trigger update (happens when updating only the crop offset)\n function (prevValue, nextValue) {\n return sizeEqual(prevValue, nextValue);\n }];\n})], ['cropRectAspectRatio', DERIVED_STORE(function (_ref85) {\n var cropSize = _ref85.cropSize;\n return [[cropSize], function (_ref86, set) {\n var _ref87 = _slicedToArray(_ref86, 1),\n $cropSize = _ref87[0];\n\n if (!$cropSize) return;\n set(fixPrecision(rectAspectRatio($cropSize), 5));\n }];\n})], ['cropRange', UNIQUE_DERIVED_STORE(function (_ref88) {\n var size = _ref88.size,\n rotation = _ref88.rotation,\n cropRectAspectRatio = _ref88.cropRectAspectRatio,\n cropMinSize = _ref88.cropMinSize,\n cropMaxSize = _ref88.cropMaxSize,\n cropLimitToImage = _ref88.cropLimitToImage;\n return [[size, rotation, cropRectAspectRatio, cropMinSize, cropMaxSize, cropLimitToImage], function (_ref89, set) {\n var _ref90 = _slicedToArray(_ref89, 6),\n $size = _ref90[0],\n $rotation = _ref90[1],\n $cropRectAspectRatio = _ref90[2],\n $cropMinSize = _ref90[3],\n $cropMaxSize = _ref90[4],\n $cropLimitToImage = _ref90[5];\n\n // wait for image size\n if (!$size) return;\n var range = updateCropRange($size, $rotation, $cropRectAspectRatio, $cropMinSize, $cropMaxSize, $cropLimitToImage);\n set(range);\n }, // if is same range as previous range, don't trigger update\n function (prevRange, nextRange) {\n return arrayEqual(prevRange, nextRange);\n }];\n})], ['rotationRange', UNIQUE_DERIVED_STORE(function (_ref91) {\n var size = _ref91.size,\n isRotatedSideways = _ref91.isRotatedSideways,\n cropMinSize = _ref91.cropMinSize,\n cropSize = _ref91.cropSize,\n cropLimitToImage = _ref91.cropLimitToImage;\n return [[size, isRotatedSideways, cropMinSize, cropSize, cropLimitToImage], function (_ref92, set) {\n var _ref93 = _slicedToArray(_ref92, 5),\n $size = _ref93[0],\n $isRotatedSideways = _ref93[1],\n $cropMinSize = _ref93[2],\n $cropSize = _ref93[3],\n $cropLimitToImage = _ref93[4];\n\n // wait for image size\n if (!$size || !$cropSize) return;\n var range = updateRotationRange($size, $isRotatedSideways, $cropMinSize, $cropSize, $cropLimitToImage);\n set(range);\n }, // if is same range as previous range, don't trigger update\n function (prevRange, nextRange) {\n return arrayEqual(prevRange, nextRange);\n }];\n})], // canvas\n['backgroundColor', UPDATE_VALUE(function () {\n return function (color) {\n return padColorArray(color);\n };\n})], ['backgroundImage'], // size\n['targetSize'], // effects\n['colorMatrix'], ['convolutionMatrix'], ['gamma'], ['noise'], ['vignette'], // video\n['duration'], ['currentTime'], ['minDuration', DEFAULT_VALUE(function () {\n return 1 / 24;\n})], ['maxDuration', DEFAULT_VALUE(function () {\n return Infinity;\n})], ['volume', DEFAULT_VALUE(function () {\n return 1;\n})], ['trim'], // redaction lives in image space\n['redaction', MAP_STORE(function (_ref94) {\n var size = _ref94.size;\n return [formatShape, {\n context: size\n }];\n})], // modification lives in image space\n['manipulation', MAP_STORE(function (_ref95) {\n var size = _ref95.size;\n return [formatShape, {\n context: size\n }];\n})], // annotation lives in image space\n['annotation', MAP_STORE(function (_ref96) {\n var size = _ref96.size;\n return [formatShape, {\n context: size\n }];\n})], // decoration lives in crop space\n['decoration', MAP_STORE(function (_ref97) {\n var crop = _ref97.crop;\n return [formatShape, {\n context: crop\n }];\n})], // image selection\n['selection', MAP_STORE(function (_ref98) {\n var size = _ref98.size;\n return [formatSelectionShape, {\n context: size\n }];\n})], // frame to render on top of the image (or outside)\n['frame', UPDATE_VALUE(updateFrame)], // custom metadata\n['metadata'], // state of image, used to restore a previous state or request the current state\n['state', CUSTOM_STORE(stateStore)]];\n\nvar process = /*#__PURE__*/function () {\n var _ref99 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee39(value, chainTasks) {\n var chainOptions,\n processOptions,\n ontaskstart,\n ontaskprogress,\n ontaskend,\n token,\n cancelled,\n taskCancelToken,\n _iterator6,\n _step6,\n _loop,\n _ref101,\n _ret,\n _args39 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n chainOptions = _args39.length > 2 && _args39[2] !== undefined ? _args39[2] : {};\n processOptions = _args39.length > 3 ? _args39[3] : undefined;\n // options relevant to the process method itself\n ontaskstart = processOptions.ontaskstart, ontaskprogress = processOptions.ontaskprogress, ontaskend = processOptions.ontaskend, token = processOptions.token; // has been cancelled\n\n cancelled = false; // create token to pass to tasks\n\n taskCancelToken = {\n cancel: noop$1\n }; // set cancel handler method\n\n token.cancel = function () {\n // cancel called from outside of the process method\n cancelled = true; // assign cancel method to task\n\n taskCancelToken.cancel();\n }; // step through chain\n\n\n _iterator6 = _createForOfIteratorHelper(chainTasks.entries());\n _context39.prev = 7;\n _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _callee38() {\n var _ref100, index, task, _task, fn, id;\n\n return _regeneratorRuntime.wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n _ref100 = _step6.value;\n _ref101 = _slicedToArray(_ref100, 2);\n index = _ref101[0];\n task = _ref101[1];\n\n if (!cancelled) {\n _context38.next = 6;\n break;\n }\n\n return _context38.abrupt(\"return\", {\n v: void 0\n });\n\n case 6:\n // get the task function and the id so we can notify the callee of the task that is being started\n _task = _slicedToArray(task, 2), fn = _task[0], id = _task[1]; // start task\n\n ontaskstart(index, id);\n _context38.prev = 8;\n _context38.next = 11;\n return fn(value, _objectSpread(_objectSpread({}, chainOptions), {}, {\n taskCancelToken: taskCancelToken\n }), function (event) {\n return ontaskprogress(index, id, event);\n });\n\n case 11:\n value = _context38.sent;\n _context38.next = 18;\n break;\n\n case 14:\n _context38.prev = 14;\n _context38.t0 = _context38[\"catch\"](8);\n // stop processing more items in the chain\n cancelled = true; // pass error back to parent\n\n throw _context38.t0;\n\n case 18:\n ontaskend(index, id);\n\n case 19:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38, null, [[8, 14]]);\n });\n\n _iterator6.s();\n\n case 10:\n if ((_step6 = _iterator6.n()).done) {\n _context39.next = 17;\n break;\n }\n\n return _context39.delegateYield(_loop(), \"t0\", 12);\n\n case 12:\n _ret = _context39.t0;\n\n if (!(_typeof(_ret) === \"object\")) {\n _context39.next = 15;\n break;\n }\n\n return _context39.abrupt(\"return\", _ret.v);\n\n case 15:\n _context39.next = 10;\n break;\n\n case 17:\n _context39.next = 22;\n break;\n\n case 19:\n _context39.prev = 19;\n _context39.t1 = _context39[\"catch\"](7);\n\n _iterator6.e(_context39.t1);\n\n case 22:\n _context39.prev = 22;\n\n _iterator6.f();\n\n return _context39.finish(22);\n\n case 25:\n return _context39.abrupt(\"return\", value);\n\n case 26:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39, null, [[7, 19, 22, 25]]);\n }));\n\n return function process(_x73, _x74) {\n return _ref99.apply(this, arguments);\n };\n}(); // TODO: find better location for minSize / file load validation\n\n\nvar createImageCore = function createImageCore() {\n var _ref102 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref102$minSize = _ref102.minSize,\n minSize = _ref102$minSize === void 0 ? {\n width: 1,\n height: 1\n } : _ref102$minSize,\n _ref102$minDuration = _ref102.minDuration,\n minDuration = _ref102$minDuration === void 0 ? 0 : _ref102$minDuration;\n\n // create default store\n var _createStores = createStores(ImageStorePropDescriptors),\n stores = _createStores.stores,\n accessors = _createStores.accessors; // pub/sub\n\n\n var _pubsub2 = pubsub(),\n pub = _pubsub2.pub,\n sub = _pubsub2.sub; // processing handler\n\n\n var createProcessingHandler = function createProcessingHandler(stateProp, eventKey) {\n var getStore = function getStore() {\n return accessors[stateProp] || {};\n };\n\n var setStore = function setStore(obj) {\n accessors[stateProp] = _objectSpread(_objectSpread(_objectSpread({}, getStore()), obj), {}, {\n timeStamp: Date.now()\n });\n };\n\n var hasError = function hasError() {\n return getStore().error;\n };\n\n var handleError = function handleError(error) {\n if (hasError()) return;\n setStore({\n error: error\n });\n pub(\"\".concat(eventKey, \"error\"), _objectSpread({}, getStore()));\n };\n\n return {\n start: function start() {\n pub(\"\".concat(eventKey, \"start\"));\n },\n onabort: function onabort() {\n setStore({\n abort: true\n });\n pub(\"\".concat(eventKey, \"abort\"), _objectSpread({}, getStore()));\n },\n ontaskstart: function ontaskstart(index, id) {\n if (hasError()) return;\n setStore({\n index: index,\n task: id,\n taskProgress: undefined,\n taskLengthComputable: undefined\n });\n pub(\"\".concat(eventKey, \"taskstart\"), _objectSpread({}, getStore()));\n },\n ontaskprogress: function ontaskprogress(index, id, event) {\n if (hasError()) return;\n setStore({\n index: index,\n task: id,\n taskProgress: event.loaded / event.total,\n taskLengthComputable: event.lengthComputable\n });\n pub(\"\".concat(eventKey, \"taskprogress\"), _objectSpread({}, getStore()));\n pub(\"\".concat(eventKey, \"progress\"), _objectSpread({}, getStore()));\n },\n ontaskend: function ontaskend(index, id) {\n if (hasError()) return;\n setStore({\n index: index,\n task: id\n });\n pub(\"\".concat(eventKey, \"taskend\"), _objectSpread({}, getStore()));\n },\n ontaskerror: function ontaskerror(error) {\n handleError(error);\n },\n error: function error(_error) {\n handleError(_error);\n },\n beforeComplete: function beforeComplete(data) {\n if (hasError()) return;\n setStore({\n beforeComplete: true\n });\n pub(\"before\".concat(eventKey), data);\n },\n complete: function complete(data) {\n if (hasError()) return;\n setStore({\n complete: true\n });\n pub(eventKey, data);\n }\n };\n }; //#region read image\n\n\n var read = function read(src, _ref103) {\n var reader = _ref103.reader;\n var readerOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // exit if no reader supplied\n if (!reader) return; // reset file data to undefined as we're loading a new image\n\n Object.assign(accessors, {\n file: undefined,\n size: undefined,\n loadState: undefined\n }); // our cancel token so we can abort load if needed, cancel will be set by process\n\n var imageReadToken = {\n cancel: noop$1\n };\n var imageReadCancelled = false;\n var imageReadHandler = createProcessingHandler('loadState', 'load');\n\n var processOptions = _objectSpread({\n token: imageReadToken\n }, imageReadHandler);\n\n var readerState = {\n src: src,\n size: undefined,\n dest: undefined,\n duration: undefined\n }; // wait a tick before starting image read so the read can be cancelled in loadstart\n\n Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee40() {\n var output, _ref105, size, duration, dest;\n\n return _regeneratorRuntime.wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n _context40.prev = 0;\n imageReadHandler.start();\n\n if (!imageReadCancelled) {\n _context40.next = 4;\n break;\n }\n\n return _context40.abrupt(\"return\", imageReadHandler.onabort());\n\n case 4:\n _context40.next = 6;\n return process(readerState, reader, readerOptions, processOptions);\n\n case 6:\n output = _context40.sent;\n\n if (!imageReadCancelled) {\n _context40.next = 9;\n break;\n }\n\n return _context40.abrupt(\"return\", imageReadHandler.onabort());\n\n case 9:\n // get shortcuts for validation\n _ref105 = output || {}, size = _ref105.size, duration = _ref105.duration, dest = _ref105.dest; // if we don't have a size\n\n if (!(!size || !size.width || !size.height)) {\n _context40.next = 12;\n break;\n }\n\n throw new EditorError('Image size missing', 'IMAGE_SIZE_MISSING', output);\n\n case 12:\n if (!(duration > 0 && duration < minDuration)) {\n _context40.next = 14;\n break;\n }\n\n throw new EditorError('Video too short', 'VIDEO_TOO_SHORT', _objectSpread(_objectSpread({}, output), {}, {\n minDuration: minDuration\n }));\n\n case 14:\n if (!(size.width < minSize.width || size.height < minSize.height)) {\n _context40.next = 16;\n break;\n }\n\n throw new EditorError('Image too small', 'IMAGE_TOO_SMALL', _objectSpread(_objectSpread({}, output), {}, {\n minWidth: minSize.width,\n minHeight: minSize.height\n }));\n\n case 16:\n // update internal data\n Object.assign(accessors, {\n file: dest,\n size: size,\n duration: duration\n }); // before load complete\n\n imageReadHandler.beforeComplete(output); // done loading image\n\n imageReadHandler.complete(output);\n _context40.next = 24;\n break;\n\n case 21:\n _context40.prev = 21;\n _context40.t0 = _context40[\"catch\"](0);\n imageReadHandler.error(_context40.t0);\n\n case 24:\n _context40.prev = 24;\n imageReadToken = undefined;\n return _context40.finish(24);\n\n case 27:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40, null, [[0, 21, 24, 27]]);\n }))); // call to abort load\n\n return function () {\n imageReadCancelled = true;\n imageReadToken && imageReadToken.cancel();\n imageReadHandler.onabort();\n };\n }; //#endregion\n //#region write image\n\n\n var write = function write(writer, options) {\n // not ready to start processing\n if (!accessors.loadState.complete) return; // reset process state to undefined\n\n accessors.processState = undefined;\n var imageWriteHandler = createProcessingHandler('processState', 'process');\n var writerState = {\n src: accessors.file,\n imageState: accessors.state,\n dest: undefined\n }; // writer is function, let's get the actual writer\n\n if (isFunction(writer)) {\n writer = writer(accessors.file, accessors.state);\n } // willProcessImageState\n\n\n if (!writer) {\n imageWriteHandler.start();\n imageWriteHandler.complete(writerState);\n return;\n } // we need this token to be a blet to cancel the processing operation\n\n\n var imageWriteToken = {\n cancel: noop$1\n };\n var imageWriteCancelled = false;\n var writerOptions = options;\n\n var processOptions = _objectSpread({\n token: imageWriteToken\n }, imageWriteHandler); // wait a tick before starting image write so the write can be cancelled in processtart\n\n\n Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee41() {\n var output;\n return _regeneratorRuntime.wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n _context41.prev = 0;\n imageWriteHandler.start(); // could be cancelled before processing started\n\n if (!imageWriteCancelled) {\n _context41.next = 4;\n break;\n }\n\n return _context41.abrupt(\"return\", imageWriteHandler.onabort());\n\n case 4:\n _context41.next = 6;\n return process(writerState, writer, writerOptions, processOptions);\n\n case 6:\n output = _context41.sent;\n\n if (!imageWriteCancelled) {\n _context41.next = 9;\n break;\n }\n\n return _context41.abrupt(\"return\", imageWriteHandler.onabort());\n\n case 9:\n imageWriteHandler.complete(output);\n _context41.next = 15;\n break;\n\n case 12:\n _context41.prev = 12;\n _context41.t0 = _context41[\"catch\"](0);\n imageWriteHandler.error(_context41.t0);\n\n case 15:\n _context41.prev = 15;\n imageWriteToken = undefined;\n return _context41.finish(15);\n\n case 18:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41, null, [[0, 12, 15, 18]]);\n }))); // call to abort processing\n\n return function () {\n imageWriteCancelled = true;\n imageWriteToken && imageWriteToken.cancel();\n };\n }; //#endregion\n //#region api\n\n\n defineMethods(accessors, {\n read: read,\n write: write,\n on: sub\n }); //#endregion\n // expose store API\n\n return {\n accessors: accessors,\n stores: stores\n };\n};\n\nvar warnRequiredProp = function warnRequiredProp(prop) {\n return console.warn(\"Pintura: \".concat(prop, \" is a required prop.\"));\n}; // @ts-ignore\n\n\nvar editorEventsToBubble = ['loadstart', 'loadabort', 'loaderror', 'loadprogress', 'load', 'processstart', 'processabort', 'processerror', 'processprogress', 'process'];\nvar imagePrivateProps = ['flip', 'cropOrigin', 'isRotatedSideways', 'perspective', 'perspectiveX', 'perspectiveY', 'cropRange'];\nvar editorPrivateProps = ['images'];\nvar imagePublicProps = ImageStorePropDescriptors.map(function (_ref107) {\n var _ref108 = _slicedToArray(_ref107, 1),\n prop = _ref108[0];\n\n return prop;\n}).filter(function (prop) {\n return !imagePrivateProps.includes(prop);\n});\n\nvar getImagePropGroupedName = function getImagePropGroupedName(prop) {\n return \"image\".concat(capitalizeFirstLetter(prop));\n};\n\nvar getEditorProps$1 = function getEditorProps$1() {\n var imageProperties = imagePublicProps.map(getImagePropGroupedName);\n var editorProperties = props.map(function (_ref109) {\n var _ref110 = _slicedToArray(_ref109, 1),\n prop = _ref110[0];\n\n return prop;\n }).filter(function (prop) {\n return !editorPrivateProps.includes(prop);\n });\n return imageProperties.concat(editorProperties);\n};\n\nvar isImageSource = function isImageSource(src) {\n return isString(src) || isBinary(src) || isElement(src);\n};\n\nvar isImageState = function isImageState(obj) {\n return hasProp(obj, 'crop');\n};\n\nvar createImageEditor = function createImageEditor() {\n // create default stores\n var _createStores2 = createStores(props),\n stores = _createStores2.stores,\n accessors = _createStores2.accessors; // set up pub/sub for the app layer\n\n\n var _pubsub3 = pubsub(),\n sub = _pubsub3.sub,\n pub = _pubsub3.pub;\n\n var bubble = function bubble(name) {\n return function (value) {\n return pub(name, value);\n };\n }; // helper method\n\n\n var getImageObjSafe = function getImageObjSafe() {\n return accessors.images ? accessors.images[0] : {};\n }; // initialImageProps is the list of transforms to apply when the image loads\n\n\n var initialImageProps = {};\n var initialImagePropsBackup = {}; // create shortcuts to image props : `crop` -> `imageCrop`\n\n imagePublicProps.forEach(function (prop) {\n Object.defineProperty(accessors, getImagePropGroupedName(prop), {\n get: function get() {\n // no image, can't get\n var image = getImageObjSafe();\n if (!image) return; // return from image state\n\n return image.accessors[prop];\n },\n set: function set(value) {\n // always use as initial prop when loading a new image without reset\n initialImageProps[getImagePropGroupedName(prop)] = value; // set to props backup so we can read it later when loading a new image\n\n initialImagePropsBackup[getImagePropGroupedName(prop)] = value; // no image, we can't update\n\n var image = getImageObjSafe();\n if (!image) return; // update the image immidiately\n\n image.accessors[prop] = value;\n }\n });\n }); // internal helper method to get active image\n\n var getImage = function getImage() {\n return accessors.images && accessors.images[0];\n }; // timeout for image reader warning\n\n\n var imageReaderTestTimeout; // handling loading an image if a src is set\n\n var unsubSrc = stores.src.subscribe(function (src) {\n // no image set, means clear active image\n if (!src) return accessors.images = []; // exit here if we don't have an imageReader we'll wait for an imageReader to be defined\n\n if (!accessors.imageReader) {\n // we're setting a src without an image reader, need to warn\n imageReaderTestTimeout = setTimeout(function () {\n return warnRequiredProp('imageReader');\n }, 32);\n return;\n } // reset initial image props if an image is already loaded, so props applied to previous image aren't applied to the new one\n\n\n if (accessors.images.length) initialImageProps = {}; // load image in src prop\n\n loadSrc(src);\n });\n var unsubReader = stores.imageReader.subscribe(function (reader) {\n // can't do anything without an image reader\n if (!reader) return; // image reader now set, no need to warn\n\n clearTimeout(imageReaderTestTimeout); // an image has already been loaded no need to load images that were set earlier\n\n if (accessors.images.length) return; // no image to load, we'll wait for images to be set to the `src` prop\n\n if (!accessors.src) return; // src is waiting to be loaded so let's pick it up,\n\n loadSrc(accessors.src);\n });\n\n var loadSrc = function loadSrc(src) {\n // push it back a tick so we know initialImageProps are set\n Promise.resolve().then(function () {\n // load with initial props\n return loadImage(src, initialImageProps);\n }).catch(function () {// fail silently, any errors are handled with 'loaderror' event\n });\n }; //#endregion\n //#region public method (note that these are also called from UI, name of method is name of dispatched event in UI)\n\n\n var applyImageOptionsOrState = function applyImageOptionsOrState(image, options) {\n // test if options is image state, if so, apply and exit\n if (isImageState(options)) {\n accessors.imageState = options;\n return;\n } // create an initial crop rect if no crop supplied\n\n\n if (!options.imageCrop) {\n var imageSize = image.accessors.size;\n var imageRotation = options.imageRotation || 0;\n var imageRotatedSize = sizeRotate(sizeClone(imageSize), imageRotation);\n var cropRect = rectCreateFromSize(imageRotatedSize); // prevent negative width/height\n\n cropRect.width = fixPrecision(Math.abs(cropRect.width), 6);\n cropRect.height = fixPrecision(Math.abs(cropRect.height), 6);\n var aspectRatio = options.imageCropAspectRatio || (options.imageCropLimitToImage ? rectAspectRatio(imageSize) // use image size if should limit to image\n : rectAspectRatio(cropRect)); // use rotated crop rect bounds if no limit\n\n var crop;\n\n if (options.imageCropLimitToImage) {\n crop = rectContainRect(cropRect, aspectRatio);\n } else {\n crop = rectCoverRect(cropRect, aspectRatio); // center the image in the crop rectangle\n\n crop.x = (imageSize.width - crop.width) / 2;\n crop.y = (imageSize.height - crop.height) / 2;\n }\n\n options.imageCrop = crop;\n } // trim not set, let's make sure we respect max duration\n\n\n if (image.accessors.duration && !options.imageTrim && options.imageMaxDuration) {\n var duration = image.accessors.duration; // if duration is longer than max duration we need to set a trim\n\n options.imageTrim = [[0, Math.min(options.imageMaxDuration / duration, 1)]];\n } // we need to apply these props in the correct order\n\n\n var propKeys = ['imageCropLimitToImage', 'imageCrop', 'imageCropAspectRatio', 'imageRotation'];\n propKeys.filter(function (prop) {\n return hasProp(options, prop);\n }).forEach(function (prop) {\n // assign to `image`\n accessors[prop] = options[prop]; // remove from normalizedOptions so it's not set twice\n\n delete options[prop];\n }); // don't set the above options for a second time\n\n var filteredOptions = Object.keys(options).filter(function (key) {\n return !propKeys.includes(key);\n }).reduce(function (filtered, prop) {\n filtered[prop] = options[prop];\n return filtered;\n }, {}); // trigger setState\n\n Object.assign(accessors, filteredOptions);\n }; // load image, resolve when image is loaded\n\n\n var imageLoadAbort;\n\n var loadImage = function loadImage(src) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function (resolve, reject) {\n // get current image\n var image = getImage(); // determine min defined image size (is crop min size)\n\n var cropLimitedToImage = !(options.cropLimitToImage === false || options.imageCropLimitToImage === false || initialImagePropsBackup.imageCropLmitedToImage === false);\n var cropMinSize = options.cropMinSize || options.imageCropMinSize || initialImagePropsBackup.imageCropMinSize;\n var minImageSize = cropLimitedToImage ? cropMinSize : image && image.accessors.cropMinSize;\n var minVideoDuration = options.minDuration || options.imageMinDuration; // if already has image, remove existing image\n\n if (image) removeImage(); // access image props and stores\n\n image = createImageCore({\n minSize: minImageSize,\n minDuration: minVideoDuration\n });\n editorEventsToBubble.map(function (event) {\n return image.accessors.on(event, bubble(event));\n }); // done, clean up listeners\n\n var fin = function fin() {\n // reset initial props (as now applied)\n initialImageProps = {};\n unsubs.forEach(function (unsub) {\n return unsub();\n });\n };\n\n var unsubs = [];\n unsubs.push(image.accessors.on('loaderror', function (error) {\n fin();\n reject(error);\n }));\n unsubs.push(image.accessors.on('loadabort', function () {\n fin();\n reject({\n name: 'AbortError'\n });\n }));\n unsubs.push(image.accessors.on('load', function (output) {\n imageLoadAbort = undefined;\n fin();\n resolve(output);\n }));\n unsubs.push(image.accessors.on('beforeload', function () {\n return applyImageOptionsOrState(image, options);\n })); // set new image\n\n accessors.images = [image]; // assign passed options to editor accessors, we ignore 'src'\n\n if (options.imageReader) accessors.imageReader = options.imageReader;\n if (options.imageWriter) accessors.imageWriter = options.imageWriter; // start reading image\n\n imageLoadAbort = image.accessors.read(src, {\n reader: accessors.imageReader\n }, {\n willRequest: accessors.willRequest\n });\n });\n }; // start processing a loaded image, resolve when image is processed\n\n\n var imageProcessAbort;\n\n var processImage = function processImage(src, options) {\n return new Promise(function (resolve, reject) {\n try {\n var unsubs = []; // done, clean up listeners\n\n var fin = function fin() {\n imageProcessAbort = undefined;\n unsubs.forEach(function (unsub) {\n return unsub();\n });\n };\n\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee42() {\n var image;\n return _regeneratorRuntime.wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n if (!isImageSource(src)) {\n _context42.next = 11;\n break;\n }\n\n _context42.prev = 1;\n _context42.next = 4;\n return loadImage(src, options);\n\n case 4:\n _context42.next = 9;\n break;\n\n case 6:\n _context42.prev = 6;\n _context42.t0 = _context42[\"catch\"](1);\n reject(_context42.t0);\n\n case 9:\n _context42.next = 12;\n break;\n\n case 11:\n if (src) {\n if (isImageState(src)) {\n accessors.imageState = src;\n } else {\n Object.assign(accessors, src);\n }\n }\n\n case 12:\n // get current active image\n image = getImage(); // needs image for processing\n\n if (image) {\n _context42.next = 15;\n break;\n }\n\n return _context42.abrupt(\"return\", reject('no image'));\n\n case 15:\n unsubs.push(image.accessors.on('processerror', function (error) {\n fin();\n reject(error);\n }));\n unsubs.push(image.accessors.on('processabort', function () {\n fin();\n reject({\n name: 'AbortError'\n });\n }));\n unsubs.push(image.accessors.on('process', function (output) {\n fin();\n resolve(output);\n }));\n imageProcessAbort = image.accessors.write(accessors.imageWriter, {\n redactionRenderStyle: accessors.imageRedactionRendering,\n shapePreprocessor: accessors.shapePreprocessor || passthrough,\n imageScrambler: accessors.imageScrambler,\n willRequest: accessors.willRequest,\n csp: accessors.csp || {},\n willRequestResource: accessors.willRequestResource // deprecated\n\n });\n\n case 19:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42, null, [[1, 6]]);\n }))();\n } catch (err) {\n reject(err);\n }\n });\n };\n\n var abortProcessImage = function abortProcessImage() {\n var image = getImage();\n if (!image) return;\n if (imageProcessAbort) imageProcessAbort();\n image.accessors.processState = undefined;\n }; // used internally (triggered by 'x' button when error loading image in UI)\n\n\n var abortLoadImage = function abortLoadImage() {\n if (imageLoadAbort) imageLoadAbort();\n accessors.images = [];\n }; // edit image, loads an image and resolve when image is processed\n\n\n var editImage = function editImage(src, options) {\n return new Promise(function (resolve, reject) {\n loadImage(src, options).then(function () {\n // access image props and stores\n var images = accessors.images;\n var image = images[0]; // done, clean up listeners\n\n var done = function done() {\n unsubReject();\n unsubResolve();\n };\n\n var unsubReject = image.accessors.on('processerror', function (error) {\n done();\n reject(error);\n });\n var unsubResolve = image.accessors.on('process', function (output) {\n done();\n resolve(output);\n });\n }).catch(reject);\n });\n };\n\n var removeImage = function removeImage() {\n // no images, nothing to remove\n var image = getImage();\n if (!image) return; // try to abort image load\n\n if (imageLoadAbort) imageLoadAbort();\n image.accessors.loadState = undefined; // clear images\n\n accessors.images = [];\n }; //#endregion\n\n\n Object.defineProperty(accessors, 'stores', {\n get: function get() {\n return stores;\n }\n }); //#region API\n\n defineMethods(accessors, {\n on: sub,\n loadImage: loadImage,\n abortLoadImage: abortLoadImage,\n editImage: editImage,\n removeImage: removeImage,\n processImage: processImage,\n abortProcessImage: abortProcessImage,\n destroy: function destroy() {\n unsubSrc && unsubSrc();\n unsubReader && unsubReader();\n }\n });\n return accessors; //#endregion\n};\n\nvar processImage = function processImage(src, options) {\n var _createImageEditor = createImageEditor(),\n processImage = _createImageEditor.processImage;\n\n return processImage(src, options);\n};\n\nvar getCanvasMemoryLimit = function getCanvasMemoryLimit() {\n if (!isSafari()) return Infinity;\n\n if (isIOS()) {\n // limit resolution a little bit further to prevent drawing issues on iOS Safari 15 and 16\n if (/15_|16_/.test(navigator.userAgent)) return 3840 * 3840; // old iOS can deal with 4096 * 4096 without issues\n\n return 4096 * 4096;\n } // limit resolution a little bit further to prevent drawing issues on MacOS Safari 15 (no problems on 16)\n\n\n return /15_/.test(navigator.userAgent) ? 4096 * 4096 : Infinity;\n};\n\nvar filterObjectProperties = function filterObjectProperties(obj, props) {\n return Object.keys(obj).filter(function (key) {\n return !props.includes(key);\n }).reduce(function (prev, curr) {\n prev[curr] = obj[curr];\n return prev;\n }, {});\n};\n\nvar videoFixDuration = function videoFixDuration(video) {\n return new Promise(function (resolve) {\n // https://bugs.chromium.org/p/chromium/issues/detail?id=656426\n // https://bugs.chromium.org/p/chromium/issues/detail?id=642012\n if (video.duration === Infinity) {\n video.ontimeupdate = function () {\n video.ontimeupdate = undefined;\n resolve(video);\n };\n\n video.currentTime = Number.MAX_SAFE_INTEGER;\n return;\n }\n\n resolve(video);\n });\n};\n\nvar getVideoElementDuration = function getVideoElementDuration(element) {\n return new Promise(function (resolve, reject) {\n var done = function done() {\n videoFixDuration(element).then(function () {\n resolve(element.duration);\n });\n };\n\n if (element.readyState >= 1) return done();\n element.onloadedmetadata = done;\n\n element.onerror = function () {\n return reject(element.error);\n };\n });\n};\n\nvar arrayFlatten = function arrayFlatten(arr) {\n return arr.reduce(function (flat, item) {\n var arr = Array.isArray(item) ? _toConsumableArray(item) : [item];\n return [].concat(_toConsumableArray(flat), _toConsumableArray(arr));\n }, []);\n};\n\nvar getVideoFileRotationMetadata = /*#__PURE__*/function () {\n var _ref112 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee43(file) {\n var buffer, view;\n return _regeneratorRuntime.wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n _context43.next = 2;\n return blobToArrayBuffer(file);\n\n case 2:\n buffer = _context43.sent;\n view = new DataView(buffer);\n return _context43.abrupt(\"return\", getRotationMetadataInDataView(view));\n\n case 5:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43);\n }));\n\n return function getVideoFileRotationMetadata(_x75) {\n return _ref112.apply(this, arguments);\n };\n}();\n\nvar blobToArrayBuffer = function blobToArrayBuffer(blob) {\n return new Promise(function (resolve) {\n var reader = new FileReader();\n\n reader.onload = function () {\n return resolve(reader.result);\n };\n\n reader.readAsArrayBuffer(blob);\n });\n}; //#region mp4\n\n\nvar getRotationMetadataInMP4 = function getRotationMetadataInMP4(view, offset, limit) {\n // Bytes for degree metadata\n // 0 degrees\n // 00010000 00000000 00000000 00000000\n // 00010000 00000000 00000000 00000000\n // 40\n // 90 degrees\n // 00000000 00010000 00000000 FFFF0000\n // 00000000 00000000 00000000 00000000\n // 40\n // 180 degrees\n // FFFF0000 00000000 00000000 00000000\n // FFFF0000 00000000 00000000 00000000\n // 40\n // 270 degrees\n // 00000000 FFFF0000 00000000 00010000\n // 00000000 00000000 00000000 00000000\n // 40\n var TRAK_MARKER = 0x7472616b; // Video track\n\n var ROTA_MARKER = 0x40; // Rotation byte\n\n var inTrack = false; // rotation marker offset\n\n var r = -1;\n\n for (var i = offset; i < limit; i++) {\n // find start of video track\n if (!inTrack && view.getUint32(i) === TRAK_MARKER) {\n inTrack = true;\n i += 4;\n } // not found yet, skip to next byte\n\n\n if (!inTrack) continue; // found, let's search rotation marker\n\n var value = view.getUint8(i); // now looking for rotation marker offset\n\n if (value == ROTA_MARKER) {\n r = i;\n break;\n }\n } // rotation marker not found, exit\n\n\n if (r < 0) return 0; // Let's read bytes preceding the rotation marker entry to check rotation value\n\n var B = view.getUint32(r - 28);\n var D = view.getUint32(r - 20);\n var A = view.getUint32(r - 32);\n var E = view.getUint32(r - 16);\n if (B === 0x00010000 && D === 0xffff0000) return 90;else if (A === 0xffff0000 && E === 0xffff0000) return 180;else if (B === 0xffff0000 && D === 0x00010000) return 270;\n return 0;\n}; //#endregion\n//#region mov\n\n\nvar MOOV_ATOM = 0x6d6f6f76;\nvar MVHD_ATOM = 0x6d766864;\nvar TKHD_ATOM = 0x746b6864;\nvar TRAK_ATOM = 0x7472616b;\n\nvar getAtoms = function getAtoms(view) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var size = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : view.byteLength;\n var atoms = [];\n var end = offset + size;\n\n while (offset < end) {\n var _size = view.getUint32(offset);\n\n if (_size < 0) break;\n var type = view.getUint32(offset + 4);\n atoms.push({\n type: type,\n size: _size,\n offset: offset,\n bodyOffset: offset + 8,\n bodySize: _size - 8\n });\n if (_size < 8) break;\n offset += _size;\n }\n\n return atoms;\n};\n\nvar getRotationMetadataInMOV = function getRotationMetadataInMOV(view) {\n // find container atoms\n var atoms = getAtoms(view); // exit no moov atom find\n\n var moov = atoms.find(function (atom) {\n return atom.type === MOOV_ATOM;\n });\n if (!moov) return 0; // get moov child atoms\n\n var moovChildAtoms = getAtoms(view, moov.bodyOffset, moov.bodySize); // get all relevant atoms\n\n moovChildAtoms.filter(function (atom) {\n return atom.type === TRAK_ATOM;\n }).forEach(function (atom) {\n moovChildAtoms.push.apply(moovChildAtoms, _toConsumableArray(getAtoms(view, atom.bodyOffset, atom.bodySize)));\n }); // filter out irrelevant atoms\n\n var neededAtoms = [MVHD_ATOM, TKHD_ATOM];\n var relevantAtoms = moovChildAtoms.filter(function (atom) {\n return neededAtoms.includes(atom.type);\n });\n\n var _iterator7 = _createForOfIteratorHelper(relevantAtoms),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _ref114 = _step7.value;\n var type = _ref114.type;\n var bodyOffset = _ref114.bodyOffset;\n // read first byte of body to get version\n var version = view.getUint8(bodyOffset); // skip version/tags header\n\n var offset = bodyOffset + 4; // move pointer based on atom type and version\n\n offset += type === MVHD_ATOM ? 32 : 36; // 'mvhd'\n\n offset += version === 1 ? 12 : 0; // get relevant part of matrix\n\n var A = view.getInt32(offset);\n var B = view.getInt32(offset + 4);\n if (A === 0 && B > 0) return 90;\n if (A < 0 && B === 0) return 180;\n if (A === 0 && B < 0) return 270;\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return 0;\n}; //#endregion\n\n\nvar getRotationMetadataInDataView = function getRotationMetadataInDataView(view) {\n var _ref115 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref115$limit = _ref115.limit,\n limit = _ref115$limit === void 0 ? 1024 : _ref115$limit;\n\n var FTYP_MARKER = 0x66747970; // QuickTime Container File Type\n\n var MP42_MARKER = 0x6d703432; // MP4 format\n\n var QT_MARKER = 0x71742020; // QT format\n\n var offset = 0;\n offset += 4;\n var container = view.getUint32(offset);\n if (container !== FTYP_MARKER) return 0;\n offset += 4;\n var format = view.getUint32(offset);\n if (format === MP42_MARKER) return getRotationMetadataInMP4(view, offset, limit);\n if (format === QT_MARKER) return getRotationMetadataInMOV(view);\n return 0;\n};\n\nvar blobToVideo = function blobToVideo(src) {\n return new Promise(function (resolve, reject) {\n // read metadata\n var metadataReader = isFirefox() ? getVideoFileRotationMetadata(src) : Promise.resolve(0); // if rotated need to correct video\n\n metadataReader.then(function (rotation) {\n // let's load this source as a video file\n var video = document.createElement('video');\n\n video.onerror = function () {\n return reject(video.error);\n };\n\n video.playsInline = true;\n video.preload = 'auto';\n\n video.onseeked = function () {\n video.onseeked = undefined;\n resolve(video);\n };\n\n video.onloadeddata = function () {\n video.onloadeddata = undefined;\n video.dataset.rotation = rotation ? \"\".concat(rotation) : '0';\n videoFixDuration(video).then(resolve); // if we use onloadedmetadata safari doesn't render the frame\n\n video.currentTime = 0;\n }; // we need to do this otherwise video won't load on iOS Safari, tested up to iOS 17.5\n // please note that using #t= will work in iOS Simulator but won't work on a real device\n // we can use srcObject instead as it's only supported on Safari\n\n\n if (isIOS() && isSafari()) {\n video.srcObject = src;\n video.load();\n } else {\n video.src = URL.createObjectURL(src);\n }\n });\n });\n};\n\nvar seekTo = function seekTo(video, targetTime) {\n return new Promise(function (resolve) {\n // already at target time\n if (video.currentTime === targetTime) return resolve(video); // backup current fn\n\n var onseeked = video.onseeked;\n\n video.onseeked = function () {\n // restore backup\n video.onseeked = onseeked; // done!\n\n resolve(video);\n };\n\n video.currentTime = clamp(targetTime, 0, video.duration);\n });\n}; // TODO: VIDEO cleanup?\n\n\nvar videoToImageData = function videoToImageData(file) {\n var currentTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return new Promise(function (resolve, reject) {\n // turn blob into video element\n blobToVideo(file).then(function (video) {\n // now seek to the intended frame\n seekTo(video, currentTime).then(function (video) {\n // let's turn that frame into a canvas\n var frame = h('canvas');\n getVideoElementSize(video).then(function (_ref116) {\n var width = _ref116.width,\n height = _ref116.height;\n // resize canvas to fit video size\n frame.width = width;\n frame.height = height; // get context to draw on, we're going to read from this canvas, no need to hardware accelerate it\n\n var ctx = frame.getContext('2d', {\n willReadFrequently: true\n }); // draw to canvas context\n\n var drawFrame = function drawFrame() {\n ctx.drawImage(video, 0, 0, frame.width, frame.height);\n var imageData = ctx.getImageData(0, 0, frame.width, frame.height); // after draw release canvas memory\n\n releaseCanvas(frame); // after draw, release video file memory\n\n URL.revokeObjectURL(video.src);\n resolve(imageData);\n }; // if we don't use setTimeout for safari sometimes it doesn't draw the frame\n\n\n isSafari() ? setTimeout(drawFrame, 16) : drawFrame();\n });\n });\n });\n });\n};\n\nvar isVideoFile = function isVideoFile(blob) {\n return /video/.test(blob.type);\n}; // custom method to draw images\n\n\nvar createCanvasImageDrawer = function createCanvasImageDrawer() {\n var _ref117 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n imageDataResizer = _ref117.imageDataResizer,\n canvasMemoryLimit = _ref117.canvasMemoryLimit;\n\n return /*#__PURE__*/function () {\n var _ref118 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee44(ctx, image, srcRect, destRect, options) {\n var _yield$processImage, dest, _ref119, _ref119$feather, feather, featherCanvas, featherCtx, opacityStep, i, opacity, destCtx;\n\n return _regeneratorRuntime.wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n // min size of src is 1x1\n srcRect.width = Math.max(srcRect.width, 1);\n srcRect.height = Math.max(srcRect.height, 1); // min size of dest is 1x1\n\n destRect.width = Math.max(destRect.width, 1);\n destRect.height = Math.max(destRect.height, 1); // get resized image\n\n _context44.next = 6;\n return processImage(image, {\n imageReader: createDefaultImageReader$1(),\n imageWriter: createDefaultImageWriter$1({\n format: 'canvas',\n targetSize: _objectSpread(_objectSpread({}, destRect), {}, {\n upscale: true\n }),\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit\n }),\n imageCrop: srcRect\n });\n\n case 6:\n _yield$processImage = _context44.sent;\n dest = _yield$processImage.dest;\n // feather the canvas\n _ref119 = options || {}, _ref119$feather = _ref119.feather, feather = _ref119$feather === void 0 ? 0 : _ref119$feather;\n\n if (feather > 0) {\n featherCanvas = h('canvas');\n featherCanvas.width = dest.width;\n featherCanvas.height = dest.height;\n featherCtx = featherCanvas.getContext('2d', {\n // this prevents Chrome issue where Chrome doesn't correctly apply the mask in composition operation\n willReadFrequently: true\n });\n opacityStep = 1 / feather;\n i = 0;\n\n for (i = 0; i < feather; i++) {\n opacity = i * opacityStep;\n featherCtx.strokeStyle = \"rgba(0,0,0,\".concat(opacity * opacity, \")\");\n featherCtx.strokeRect(i + 0.5, i + 0.5, dest.width - i * 2 - 1.0, dest.height - i * 2 - 1.0);\n }\n\n featherCtx.fillStyle = '#000';\n featherCtx.fillRect(i, i, dest.width + 0.5 - i * 2, dest.height + 0.5 - i * 2);\n destCtx = dest.getContext('2d');\n destCtx.globalCompositeOperation = 'destination-in';\n destCtx.drawImage(featherCanvas, 0, 0); // release image canvas to free up memory\n\n releaseCanvas(featherCanvas);\n } // draw processed image\n\n\n ctx.drawImage(dest, destRect.x, destRect.y, destRect.width, destRect.height); // release image canvas to free up memory\n\n releaseCanvas(dest);\n\n case 12:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44);\n }));\n\n return function (_x76, _x77, _x78, _x79, _x80) {\n return _ref118.apply(this, arguments);\n };\n }();\n}; // connect function in process chain\n\n\nvar connect = function connect(fn) {\n var getter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key5 = 0; _key5 < _len2; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return args;\n };\n var setter = arguments.length > 2 ? arguments[2] : undefined;\n return /*#__PURE__*/function () {\n var _ref120 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee45(state, options, onprogress) {\n var progressUpdated, res;\n return _regeneratorRuntime.wrap(function _callee45$(_context45) {\n while (1) {\n switch (_context45.prev = _context45.next) {\n case 0:\n // will hold function result\n // at this point we don't know if the length of this task can be computed\n onprogress(createProgressEvent(0, false)); // try to run the function\n\n progressUpdated = false;\n _context45.next = 4;\n return fn.apply(void 0, _toConsumableArray(getter(state, options, function (event) {\n progressUpdated = true;\n onprogress(event);\n })));\n\n case 4:\n res = _context45.sent;\n // a setter isn't required\n setter && setter(state, res); // if progress was updated, we expect the connected function to fire the 1/1 event, else we fire it here\n\n if (!progressUpdated) onprogress(createProgressEvent(1, false));\n return _context45.abrupt(\"return\", state);\n\n case 8:\n case \"end\":\n return _context45.stop();\n }\n }\n }, _callee45);\n }));\n\n return function (_x81, _x82, _x83) {\n return _ref120.apply(this, arguments);\n };\n }();\n}; //\n// Reader/Writer Presets\n//\n\n\nvar AnyToFile = function AnyToFile() {\n var _ref121 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref121$willRequest = _ref121.willRequest,\n willRequest = _ref121$willRequest === void 0 ? undefined : _ref121$willRequest,\n _ref121$srcProp = _ref121.srcProp,\n srcProp = _ref121$srcProp === void 0 ? 'src' : _ref121$srcProp,\n _ref121$destProp = _ref121.destProp,\n destProp = _ref121$destProp === void 0 ? 'dest' : _ref121$destProp;\n\n return [connect(srcToFile, function (state, options, onprogress) {\n return [state[srcProp], onprogress, _objectSpread(_objectSpread({}, options), {}, {\n willRequest: willRequest\n })];\n }, function (state, file) {\n return state[destProp] = file;\n }), 'any-to-file'];\n};\n\nvar BlobGuardMimeType = function BlobGuardMimeType() {\n var _ref122 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref122$srcProp = _ref122.srcProp,\n srcProp = _ref122$srcProp === void 0 ? 'dest' : _ref122$srcProp,\n _ref122$destProp = _ref122.destProp,\n destProp = _ref122$destProp === void 0 ? 'dest' : _ref122$destProp;\n\n return [connect( /*#__PURE__*/function () {\n var _ref123 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee46(src) {\n var mediaType, el, propertyBag;\n return _regeneratorRuntime.wrap(function _callee46$(_context46) {\n while (1) {\n switch (_context46.prev = _context46.next) {\n case 0:\n if (!/octet-stream/.test(src.type)) {\n _context46.next = 9;\n break;\n }\n\n console.warn(\"Pintura: File has unknown mime type \\\"\".concat(src.type, \"\\\", make sure your server sets the correct Content-Type header.\")); // assume is image\n\n mediaType = 'image'; // test if is possibly video\n\n _context46.next = 5;\n return getAsVideoOrImageElement(src);\n\n case 5:\n el = _context46.sent;\n if (/video/i.test(el.nodeName)) mediaType = 'video'; // set unknown media type\n\n propertyBag = {\n type: mediaType + '/unknown'\n };\n return _context46.abrupt(\"return\", isFile(src) ? new File([src], src.name, _objectSpread(_objectSpread({}, propertyBag), {}, {\n lastModified: src.lastModified\n })) : new Blob([src], propertyBag));\n\n case 9:\n return _context46.abrupt(\"return\", src);\n\n case 10:\n case \"end\":\n return _context46.stop();\n }\n }\n }, _callee46);\n }));\n\n return function (_x84) {\n return _ref123.apply(this, arguments);\n };\n }(), function (state) {\n return [state[srcProp]];\n }, function (state, file) {\n return state[destProp] = file;\n }), 'any-to-file'];\n};\n\nvar BlobReadImageSize = function BlobReadImageSize() {\n var _ref124 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref124$srcProp = _ref124.srcProp,\n srcProp = _ref124$srcProp === void 0 ? 'src' : _ref124$srcProp,\n _ref124$destProp = _ref124.destProp,\n destProp = _ref124$destProp === void 0 ? 'size' : _ref124$destProp;\n\n return [connect(getImageSize, function (state) {\n return [state[srcProp]];\n }, function (state, size) {\n return state[destProp] = size;\n }), 'read-image-size'];\n};\n\nvar getMediaDuration = /*#__PURE__*/function () {\n var _ref125 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee47(src) {\n var mediaElement;\n return _regeneratorRuntime.wrap(function _callee47$(_context47) {\n while (1) {\n switch (_context47.prev = _context47.next) {\n case 0:\n _context47.next = 2;\n return getAsVideoOrImageElement(src);\n\n case 2:\n mediaElement = _context47.sent;\n\n if (!isVideoElement(mediaElement)) {\n _context47.next = 7;\n break;\n }\n\n _context47.next = 6;\n return getVideoElementDuration(mediaElement);\n\n case 6:\n return _context47.abrupt(\"return\", _context47.sent);\n\n case 7:\n return _context47.abrupt(\"return\", undefined);\n\n case 8:\n case \"end\":\n return _context47.stop();\n }\n }\n }, _callee47);\n }));\n\n return function getMediaDuration(_x85) {\n return _ref125.apply(this, arguments);\n };\n}();\n\nvar BlobReadMediaDuration = function BlobReadMediaDuration() {\n var _ref126 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref126$srcProp = _ref126.srcProp,\n srcProp = _ref126$srcProp === void 0 ? 'src' : _ref126$srcProp,\n _ref126$destProp = _ref126.destProp,\n destProp = _ref126$destProp === void 0 ? 'duration' : _ref126$destProp;\n\n return [connect(getMediaDuration, function (state) {\n return [state[srcProp]];\n }, function (state, duration) {\n return state[destProp] = duration;\n }), 'read-media-duration'];\n};\n\nvar ImageSizeMatchOrientation = function ImageSizeMatchOrientation() {\n var _ref127 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref127$srcSize = _ref127.srcSize,\n srcSize = _ref127$srcSize === void 0 ? 'size' : _ref127$srcSize,\n _ref127$srcOrientatio = _ref127.srcOrientation,\n srcOrientation = _ref127$srcOrientatio === void 0 ? 'orientation' : _ref127$srcOrientatio,\n _ref127$destSize = _ref127.destSize,\n destSize = _ref127$destSize === void 0 ? 'size' : _ref127$destSize;\n\n return [connect(orientImageSize, function (state) {\n return [state[srcSize], state[srcOrientation]];\n }, function (state, size) {\n return state[destSize] = size;\n }), 'image-size-match-orientation'];\n};\n\nvar BlobCopy = function BlobCopy() {\n var _ref128 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref128$srcProp = _ref128.srcProp,\n srcProp = _ref128$srcProp === void 0 ? 'src' : _ref128$srcProp,\n _ref128$destProp = _ref128.destProp,\n destProp = _ref128$destProp === void 0 ? 'copy' : _ref128$destProp;\n\n return [connect(function (blob, onprogress) {\n return isJPEG(blob) ? readFile(blob, onprogress) : undefined;\n }, function (state) {\n return [state[srcProp], onprogress];\n }, function (state, head) {\n return state[destProp] = head;\n }), 'read-image-head'];\n};\n\nvar ImageHeadReadExifOrientationTag = function ImageHeadReadExifOrientationTag() {\n var _ref129 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref129$srcProp = _ref129.srcProp,\n srcProp = _ref129$srcProp === void 0 ? 'copy' : _ref129$srcProp,\n _ref129$destProp = _ref129.destProp,\n destProp = _ref129$destProp === void 0 ? 'orientation' : _ref129$destProp;\n\n return [connect(arrayBufferImageExif, function (state) {\n return [state[srcProp], ORIENTATION_TAG];\n }, function (state) {\n var orientation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return state[destProp] = orientation;\n }), 'read-exif-orientation-tag'];\n};\n\nvar ImageHeadClearExifOrientationTag = function ImageHeadClearExifOrientationTag() {\n var _ref130 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref130$srcProp = _ref130.srcProp,\n srcProp = _ref130$srcProp === void 0 ? 'copy' : _ref130$srcProp;\n\n return [connect(arrayBufferImageExif, function (state) {\n return [state[srcProp], ORIENTATION_TAG, 1];\n }), 'clear-exif-orientation-tag'];\n};\n\nvar CalculateCanvasScalar = function CalculateCanvasScalar() {\n var _ref131 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref131$srcImageSize = _ref131.srcImageSize,\n srcImageSize = _ref131$srcImageSize === void 0 ? 'size' : _ref131$srcImageSize,\n _ref131$srcCanvasSize = _ref131.srcCanvasSize,\n srcCanvasSize = _ref131$srcCanvasSize === void 0 ? 'imageData' : _ref131$srcCanvasSize,\n _ref131$srcImageState = _ref131.srcImageState,\n srcImageState = _ref131$srcImageState === void 0 ? 'imageState' : _ref131$srcImageState,\n _ref131$destImageSize = _ref131.destImageSize,\n destImageSize = _ref131$destImageSize === void 0 ? 'size' : _ref131$destImageSize,\n _ref131$destScalar = _ref131.destScalar,\n destScalar = _ref131$destScalar === void 0 ? 'scalar' : _ref131$destScalar;\n\n return [connect(function (naturalSize, canvasSize) {\n return [Math.min(canvasSize.width / naturalSize.width, canvasSize.height / naturalSize.height), sizeCreateFromAny(canvasSize)];\n }, function (state) {\n return [state[srcImageSize], state[srcCanvasSize], state[srcImageState]];\n }, function (state, _ref132) {\n var _ref133 = _slicedToArray(_ref132, 2),\n scalar = _ref133[0],\n imageSize = _ref133[1];\n\n state[destScalar] = scalar;\n state[destImageSize] = imageSize;\n }), 'calculate-canvas-scalar'];\n};\n\nvar BlobToImageData = function BlobToImageData() {\n var _ref134 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref134$srcProp = _ref134.srcProp,\n srcProp = _ref134$srcProp === void 0 ? 'src' : _ref134$srcProp,\n _ref134$destProp = _ref134.destProp,\n destProp = _ref134$destProp === void 0 ? 'imageData' : _ref134$destProp,\n _ref134$canvasMemoryL = _ref134.canvasMemoryLimit,\n canvasMemoryLimit = _ref134$canvasMemoryL === void 0 ? undefined : _ref134$canvasMemoryL,\n _ref134$srcImageState = _ref134.srcImageState,\n srcImageState = _ref134$srcImageState === void 0 ? 'imageState' : _ref134$srcImageState;\n\n return [connect(function (src, canvasMemoryLimit, imageState) {\n // can now deal with video files\n if (isVideoFile(src)) return videoToImageData(src, imageState.currentTime); // handle images\n\n return blobToImageData(src, canvasMemoryLimit);\n }, function (state) {\n return [state[srcProp], canvasMemoryLimit, state[srcImageState]];\n }, function (state, imageData) {\n return state[destProp] = imageData;\n }), 'blob-to-image-data'];\n};\n\nvar ImageDataMatchOrientation = function ImageDataMatchOrientation() {\n var _ref135 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref135$srcImageData = _ref135.srcImageData,\n srcImageData = _ref135$srcImageData === void 0 ? 'imageData' : _ref135$srcImageData,\n _ref135$srcOrientatio = _ref135.srcOrientation,\n srcOrientation = _ref135$srcOrientatio === void 0 ? 'orientation' : _ref135$srcOrientatio;\n\n return [connect(orientImageData, function (state) {\n return [state[srcImageData], state[srcOrientation]];\n }, function (state, imageData) {\n return state.imageData = imageData;\n }), 'image-data-match-orientation'];\n};\n\nvar ImageDataFill = function ImageDataFill() {\n var _ref136 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref136$srcImageData = _ref136.srcImageData,\n srcImageData = _ref136$srcImageData === void 0 ? 'imageData' : _ref136$srcImageData,\n _ref136$srcImageState = _ref136.srcImageState,\n srcImageState = _ref136$srcImageState === void 0 ? 'imageState' : _ref136$srcImageState;\n\n return [connect(fillImageData, function (state) {\n return [state[srcImageData], {\n backgroundColor: state[srcImageState].backgroundColor,\n backgroundImage: state[srcImageState].backgroundImage\n }];\n }, function (state, imageData) {\n return state.imageData = imageData;\n }), 'image-data-fill'];\n};\n\nvar ImageDataCrop = function ImageDataCrop() {\n var _ref137 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref137$srcImageData = _ref137.srcImageData,\n srcImageData = _ref137$srcImageData === void 0 ? 'imageData' : _ref137$srcImageData,\n _ref137$srcImageState = _ref137.srcImageState,\n srcImageState = _ref137$srcImageState === void 0 ? 'imageState' : _ref137$srcImageState,\n _ref137$destScalar = _ref137.destScalar,\n destScalar = _ref137$destScalar === void 0 ? 'scalar' : _ref137$destScalar;\n\n return [connect(cropImageData, function (state) {\n // scale crop if needed\n var scalar = state[destScalar];\n var crop = state[srcImageState].crop;\n\n if (crop && scalar !== 1) {\n crop = rectScale$1(rectClone$1(crop), scalar, vectorCreateEmpty());\n } // apply crop\n\n\n return [state[srcImageData], {\n crop: crop,\n rotation: state[srcImageState].rotation,\n flipX: state[srcImageState].flipX,\n flipY: state[srcImageState].flipY\n }];\n }, function (state, imageData) {\n return state.imageData = imageData;\n }), 'image-data-crop'];\n};\n\nvar hasTargetSize = function hasTargetSize(imageState) {\n return !!(imageState.targetSize && imageState.targetSize.width || imageState.targetSize && imageState.targetSize.height);\n};\n\nvar ImageDataResize = function ImageDataResize(_ref138) {\n var _ref138$targetSize = _ref138.targetSize,\n targetSize = _ref138$targetSize === void 0 ? {\n width: undefined,\n height: undefined,\n fit: undefined,\n upscale: undefined\n } : _ref138$targetSize,\n _ref138$imageDataResi = _ref138.imageDataResizer,\n imageDataResizer = _ref138$imageDataResi === void 0 ? undefined : _ref138$imageDataResi,\n _ref138$srcProp = _ref138.srcProp,\n srcProp = _ref138$srcProp === void 0 ? 'imageData' : _ref138$srcProp,\n _ref138$srcImageState = _ref138.srcImageState,\n srcImageState = _ref138$srcImageState === void 0 ? 'imageState' : _ref138$srcImageState,\n _ref138$destImageScal = _ref138.destImageScaledSize,\n destImageScaledSize = _ref138$destImageScal === void 0 ? 'imageScaledSize' : _ref138$destImageScal;\n return [connect(resizeImageData, function (state) {\n var width = Math.min(targetSize.width || Number.MAX_SAFE_INTEGER, state[srcImageState].targetSize && state[srcImageState].targetSize.width || Number.MAX_SAFE_INTEGER);\n var height = Math.min(targetSize.height || Number.MAX_SAFE_INTEGER, state[srcImageState].targetSize && state[srcImageState].targetSize.height || Number.MAX_SAFE_INTEGER);\n return [state[srcProp], {\n width: width,\n height: height,\n fit: targetSize.fit || 'contain',\n upscale: hasTargetSize(state[srcImageState]) ? true : targetSize.upscale || false\n }, imageDataResizer];\n }, function (state, imageData) {\n // if did resize we need to set scalar\n if (!sizeEqual(state.imageData, imageData)) {\n state[destImageScaledSize] = sizeCreateFromAny(imageData);\n }\n\n state.imageData = imageData;\n }), 'image-data-resize'];\n};\n\nvar ImageDataFilter = function ImageDataFilter() {\n var _ref139 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref139$srcImageData = _ref139.srcImageData,\n srcImageData = _ref139$srcImageData === void 0 ? 'imageData' : _ref139$srcImageData,\n _ref139$srcImageState = _ref139.srcImageState,\n srcImageState = _ref139$srcImageState === void 0 ? 'imageState' : _ref139$srcImageState,\n _ref139$destImageData = _ref139.destImageData,\n destImageData = _ref139$destImageData === void 0 ? 'imageData' : _ref139$destImageData;\n\n return [connect(filterImageData, function (state) {\n var colorMatrix = state[srcImageState].colorMatrix;\n var colorMatrices = colorMatrix && Object.keys(colorMatrix).map(function (name) {\n return colorMatrix[name];\n }).filter(Boolean);\n return [state[srcImageData], {\n colorMatrix: colorMatrices && getColorMatrixFromColorMatrices(colorMatrices),\n convolutionMatrix: state[srcImageState].convolutionMatrix,\n gamma: state[srcImageState].gamma,\n noise: state[srcImageState].noise,\n vignette: state[srcImageState].vignette\n }];\n }, function (state, imageData) {\n return state[destImageData] = imageData;\n }), 'image-data-filter'];\n};\n\nvar ImageDataRedact = function ImageDataRedact() {\n var _ref140 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref140$srcImageData = _ref140.srcImageData,\n srcImageData = _ref140$srcImageData === void 0 ? 'imageData' : _ref140$srcImageData,\n _ref140$srcImageState = _ref140.srcImageState,\n srcImageState = _ref140$srcImageState === void 0 ? 'imageState' : _ref140$srcImageState,\n _ref140$destImageData = _ref140.destImageData,\n destImageData = _ref140$destImageData === void 0 ? 'imageData' : _ref140$destImageData,\n _ref140$destScalar = _ref140.destScalar,\n destScalar = _ref140$destScalar === void 0 ? 'scalar' : _ref140$destScalar;\n\n return [connect( /*#__PURE__*/function () {\n var _ref141 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee48(imageData, imageScrambler, imageBackgroundColor, shapes, scalar, redactionRenderStyle) {\n var scrambledCanvas, options, canvas, ctx, size, path, imageDataOut;\n return _regeneratorRuntime.wrap(function _callee48$(_context48) {\n while (1) {\n switch (_context48.prev = _context48.next) {\n case 0:\n if (!(!imageScrambler || !shapes.length)) {\n _context48.next = 2;\n break;\n }\n\n return _context48.abrupt(\"return\", imageData);\n\n case 2:\n _context48.prev = 2;\n options = {\n dataSizeScalar: getImageRedactionScaleFactor(imageData, shapes)\n };\n\n if (imageBackgroundColor && imageBackgroundColor[3] > 0) {\n options.backgroundColor = _toConsumableArray(imageBackgroundColor);\n }\n\n _context48.next = 7;\n return imageScrambler(imageData, options);\n\n case 7:\n scrambledCanvas = _context48.sent;\n _context48.next = 12;\n break;\n\n case 10:\n _context48.prev = 10;\n _context48.t0 = _context48[\"catch\"](2);\n\n case 12:\n // create drawing context\n canvas = h('canvas');\n canvas.width = imageData.width;\n canvas.height = imageData.height;\n ctx = canvas.getContext('2d', {\n willReadFrequently: true\n });\n ctx.putImageData(imageData, 0, 0); // blur\n\n if (redactionRenderStyle === 'auto') {\n size = Math.sqrt(imageData.width * imageData.height);\n ctx.filter = \"blur(\".concat(Math.round(size / 100), \"px)\");\n } // set up a clip path so we only draw scrambled image within path\n\n\n path = new Path2D();\n shapes.forEach(function (shape) {\n var rect = rectCreate(shape.x, shape.y, shape.width, shape.height);\n rectMultiply(rect, scalar);\n var corners = rectRotate(rectClone$1(rect), shape.rotation);\n var poly = new Path2D();\n corners.forEach(function (corner, i) {\n if (i === 0) return poly.moveTo(corner.x, corner.y);\n poly.lineTo(corner.x, corner.y);\n });\n path.addPath(poly);\n });\n ctx.clip(path, 'nonzero');\n ctx.imageSmoothingEnabled = false;\n ctx.drawImage(scrambledCanvas, 0, 0, canvas.width, canvas.height);\n releaseCanvas(scrambledCanvas); // done\n\n imageDataOut = ctx.getImageData(0, 0, canvas.width, canvas.height); // clean up memory usage\n\n releaseCanvas(canvas);\n return _context48.abrupt(\"return\", imageDataOut);\n\n case 27:\n case \"end\":\n return _context48.stop();\n }\n }\n }, _callee48, null, [[2, 10]]);\n }));\n\n return function (_x86, _x87, _x88, _x89, _x90, _x91) {\n return _ref141.apply(this, arguments);\n };\n }(), function (state, _ref142) {\n var imageScrambler = _ref142.imageScrambler,\n redactionRenderStyle = _ref142.redactionRenderStyle;\n return [state[srcImageData], imageScrambler, state[srcImageState].backgroundColor, state[srcImageState].redaction, state[destScalar], redactionRenderStyle];\n }, function (state, imageData) {\n return state[destImageData] = imageData;\n }), 'image-data-redact'];\n};\n\nvar ImageDataAnnotate = function ImageDataAnnotate() {\n var _ref143 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref143$srcImageData = _ref143.srcImageData,\n srcImageData = _ref143$srcImageData === void 0 ? 'imageData' : _ref143$srcImageData,\n _ref143$srcSize = _ref143.srcSize,\n srcSize = _ref143$srcSize === void 0 ? 'size' : _ref143$srcSize,\n _ref143$srcImageState = _ref143.srcImageState,\n srcImageState = _ref143$srcImageState === void 0 ? 'imageState' : _ref143$srcImageState,\n _ref143$srcShapes = _ref143.srcShapes,\n srcShapes = _ref143$srcShapes === void 0 ? 'annotation' : _ref143$srcShapes,\n _ref143$destImageData = _ref143.destImageData,\n destImageData = _ref143$destImageData === void 0 ? 'imageData' : _ref143$destImageData,\n _ref143$destImageScal = _ref143.destImageScaledSize,\n destImageScaledSize = _ref143$destImageScal === void 0 ? 'imageScaledSize' : _ref143$destImageScal,\n _ref143$destScalar = _ref143.destScalar,\n destScalar = _ref143$destScalar === void 0 ? 'scalar' : _ref143$destScalar,\n _ref143$imageDataResi = _ref143.imageDataResizer,\n imageDataResizer = _ref143$imageDataResi === void 0 ? undefined : _ref143$imageDataResi,\n _ref143$canvasMemoryL = _ref143.canvasMemoryLimit,\n canvasMemoryLimit = _ref143$canvasMemoryL === void 0 ? undefined : _ref143$canvasMemoryL,\n _ref143$shapeFilter = _ref143.shapeFilter,\n shapeFilter = _ref143$shapeFilter === void 0 ? passthrough : _ref143$shapeFilter,\n _ref143$shapeClip = _ref143.shapeClip,\n shapeClip = _ref143$shapeClip === void 0 ? true : _ref143$shapeClip,\n _ref143$destImageCont = _ref143.destImageContext,\n destImageContext = _ref143$destImageCont === void 0 ? 'imageContext' : _ref143$destImageCont;\n\n return [connect(drawImageData, function (state, _ref144) {\n var shapePreprocessor = _ref144.shapePreprocessor,\n willRequestResource = _ref144.willRequestResource,\n csp = _ref144.csp,\n willRequest = _ref144.willRequest;\n // scale annotations if needed\n var shapes = state[srcImageState][srcShapes].filter(shapeFilter); // skip if no annotations\n\n if (!shapes.length) return [state[srcImageData]];\n var canvasScalar = state[destScalar];\n var crop = state[srcImageState].crop;\n var imageSize = state[srcSize]; // image is scaled\n\n var imageSizeScalar = canvasScalar;\n var imageTargetSize = state[destImageScaledSize];\n\n if (imageTargetSize) {\n // calculate shapes scalar\n imageSizeScalar = Math.min(imageTargetSize.width / crop.width, imageTargetSize.height / crop.height);\n }\n\n var imageSizeScaled = {\n width: imageSize.width / canvasScalar,\n height: imageSize.height / canvasScalar\n }; // go\n\n return [state[srcImageData], {\n shapes: shapes,\n computeShape: function computeShape(shape) {\n shape = shapeComputeDisplay(shape, imageSizeScaled);\n shape = filterObjectProperties(shape, ['left', 'right', 'top', 'bottom']);\n shape = shapeScale(shape, imageSizeScalar);\n return shape;\n },\n transform: function transform(ctx) {\n var imageSize = state[srcSize];\n var _state$srcImageState = state[srcImageState],\n _state$srcImageState$ = _state$srcImageState.rotation,\n rotation = _state$srcImageState$ === void 0 ? 0 : _state$srcImageState$,\n flipX = _state$srcImageState.flipX,\n flipY = _state$srcImageState.flipY,\n cropLimitToImage = _state$srcImageState.cropLimitToImage; // scale crop if needed\n\n var _state$srcImageState$2 = state[srcImageState].crop,\n crop = _state$srcImageState$2 === void 0 ? rectCreateFromSize(imageSize) : _state$srcImageState$2; // calculate image scalar so we can scale annotations accordingly\n\n var scaledSize = state[destImageScaledSize];\n var scalar = 1;\n\n if (scaledSize) {\n scalar = imageSizeScalar;\n } else {\n scalar = canvasScalar;\n }\n\n var imageScaledSize = {\n width: imageSize.width / canvasScalar * scalar,\n height: imageSize.height / canvasScalar * scalar\n };\n var rotatedRect = getImageTransformedRect(imageScaledSize, rotation);\n var rotatedSize = {\n width: rotatedRect.width,\n height: rotatedRect.height\n }; // calculate center\n\n var dx = imageScaledSize.width * 0.5 - rotatedSize.width * 0.5;\n var dy = imageScaledSize.height * 0.5 - rotatedSize.height * 0.5;\n var center = sizeCenter(imageScaledSize); // offset\n\n ctx.translate(-dx, -dy);\n ctx.translate(-crop.x * scalar, -crop.y * scalar); // rotation\n\n ctx.translate(center.x, center.y);\n ctx.rotate(rotation);\n ctx.translate(-center.x, -center.y); // translate shapes if rendered in outside frame context (for example polaroid)\n\n var shapeTranslation = state[destImageContext] || {\n x: 0,\n y: 0\n };\n ctx.translate(shapeTranslation.x, shapeTranslation.y); // flipping\n\n ctx.scale(flipX ? -1 : 1, flipY ? -1 : 1);\n ctx.translate(flipX ? -imageScaledSize.width * canvasScalar : 0, flipY ? -imageScaledSize.height * canvasScalar : 0); // annotations are clipped to image\n\n if (cropLimitToImage && shapeClip) {\n ctx.rect(0, 0, imageScaledSize.width, imageScaledSize.height);\n ctx.clip();\n }\n },\n drawImage: createCanvasImageDrawer({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit\n }),\n preprocessShape: function preprocessShape(shape) {\n return shapePreprocessor(shape, _objectSpread({\n isPreview: false\n }, state[srcImageState]));\n },\n canvasMemoryLimit: canvasMemoryLimit,\n willRequest: willRequest || willRequestResource,\n styleNonce: csp.styleNonce\n }];\n }, function (state, imageData) {\n return state[destImageData] = imageData;\n }), 'image-data-annotate'];\n};\n\nvar ImageDataDecorate = function ImageDataDecorate() {\n var _ref145 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref145$srcImageData = _ref145.srcImageData,\n srcImageData = _ref145$srcImageData === void 0 ? 'imageData' : _ref145$srcImageData,\n _ref145$srcImageState = _ref145.srcImageState,\n srcImageState = _ref145$srcImageState === void 0 ? 'imageState' : _ref145$srcImageState,\n _ref145$destImageData = _ref145.destImageData,\n destImageData = _ref145$destImageData === void 0 ? 'imageData' : _ref145$destImageData,\n _ref145$destImageScal = _ref145.destImageScaledSize,\n destImageScaledSize = _ref145$destImageScal === void 0 ? 'imageScaledSize' : _ref145$destImageScal,\n _ref145$imageDataResi = _ref145.imageDataResizer,\n imageDataResizer = _ref145$imageDataResi === void 0 ? undefined : _ref145$imageDataResi,\n _ref145$canvasMemoryL = _ref145.canvasMemoryLimit,\n canvasMemoryLimit = _ref145$canvasMemoryL === void 0 ? undefined : _ref145$canvasMemoryL,\n _ref145$destScalar = _ref145.destScalar,\n destScalar = _ref145$destScalar === void 0 ? 'scalar' : _ref145$destScalar,\n _ref145$shapeFilter = _ref145.shapeFilter,\n shapeFilter = _ref145$shapeFilter === void 0 ? passthrough : _ref145$shapeFilter,\n _ref145$destImageCont = _ref145.destImageContext,\n destImageContext = _ref145$destImageCont === void 0 ? 'imageContext' : _ref145$destImageCont;\n\n return [connect(drawImageData, function (state, _ref146) {\n var shapePreprocessor = _ref146.shapePreprocessor,\n willRequestResource = _ref146.willRequestResource,\n willRequest = _ref146.willRequest,\n csp = _ref146.csp;\n // scale annotations if needed\n // is `let` on purpose\n var decoration = state[srcImageState].decoration.filter(shapeFilter); // skip if no annotations\n\n if (!decoration.length) return [state[srcImageData]]; // scale decoration and crop if needed\n\n var scalar = state[destScalar];\n var crop = state[srcImageState].crop; // image is scaled\n\n var imageTargetSize = state[destImageScaledSize];\n\n if (imageTargetSize) {\n var imageSizeScalar = Math.min(imageTargetSize.width / crop.width, imageTargetSize.height / crop.height);\n scalar = imageSizeScalar;\n } // go\n\n\n return [state[srcImageData], {\n shapes: decoration,\n drawImage: createCanvasImageDrawer({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit\n }),\n computeShape: function computeShape(shape) {\n shape = shapeComputeDisplay(shape, crop);\n shape = filterObjectProperties(shape, ['left', 'right', 'top', 'bottom']);\n shape = shapeScale(shape, scalar);\n return shape;\n },\n preprocessShape: function preprocessShape(shape) {\n return shapePreprocessor(shape, _objectSpread({\n isPreview: false\n }, state[srcImageState]));\n },\n canvasMemoryLimit: canvasMemoryLimit,\n willRequest: willRequest || willRequestResource,\n styleNonce: csp.styleNonce,\n transform: function transform(ctx) {\n var shapeTranslation = state[destImageContext] || {\n x: 0,\n y: 0\n };\n ctx.translate(shapeTranslation.x, shapeTranslation.y);\n }\n }];\n }, function (state, imageData) {\n return state[destImageData] = imageData;\n }), 'image-data-decorate'];\n};\n\nvar ImageDataFrame = function ImageDataFrame() {\n var _ref147 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref147$srcImageData = _ref147.srcImageData,\n srcImageData = _ref147$srcImageData === void 0 ? 'imageData' : _ref147$srcImageData,\n _ref147$srcImageState = _ref147.srcImageState,\n srcImageState = _ref147$srcImageState === void 0 ? 'imageState' : _ref147$srcImageState,\n _ref147$destImageData = _ref147.destImageData,\n destImageData = _ref147$destImageData === void 0 ? 'imageData' : _ref147$destImageData,\n _ref147$destImageScal = _ref147.destImageScaledSize,\n destImageScaledSize = _ref147$destImageScal === void 0 ? 'imageScaledSize' : _ref147$destImageScal,\n _ref147$imageDataResi = _ref147.imageDataResizer,\n imageDataResizer = _ref147$imageDataResi === void 0 ? undefined : _ref147$imageDataResi,\n _ref147$canvasMemoryL = _ref147.canvasMemoryLimit,\n canvasMemoryLimit = _ref147$canvasMemoryL === void 0 ? undefined : _ref147$canvasMemoryL,\n _ref147$destScalar = _ref147.destScalar,\n destScalar = _ref147$destScalar === void 0 ? 'scalar' : _ref147$destScalar,\n _ref147$destImageCont = _ref147.destImageContext,\n destImageContext = _ref147$destImageCont === void 0 ? 'imageContext' : _ref147$destImageCont;\n\n return [connect(function (imageData, options) {\n return new Promise(function (resolve) {\n if (!options) return resolve([imageData]);\n drawImageData(imageData, options).then(function (imageData) {\n resolve([imageData, options.contextBounds]);\n });\n });\n }, function (state, _ref148) {\n var shapePreprocessor = _ref148.shapePreprocessor,\n willRequestResource = _ref148.willRequestResource,\n willRequest = _ref148.willRequest,\n csp = _ref148.csp;\n var frame = state[srcImageState].frame;\n if (!frame) return [state[srcImageData]]; // scale crop if needed\n\n var scalar = state[destScalar];\n var crop = state[srcImageState].crop;\n\n if (crop && scalar !== 1) {\n crop = rectScale$1(rectClone$1(crop), scalar, vectorCreateEmpty());\n }\n\n var context = _objectSpread({}, crop);\n\n var bounds = shapesBounds(shapesFromCompositShape(frame, context, shapePreprocessor), context);\n context.x = Math.abs(bounds.left);\n context.y = Math.abs(bounds.top);\n context.width += Math.abs(bounds.left) + Math.abs(bounds.right);\n context.height += Math.abs(bounds.top) + Math.abs(bounds.bottom);\n var scaledSize = state[destImageScaledSize];\n var contaxtScalar = scaledSize ? Math.min(scaledSize.width / crop.width, scaledSize.height / crop.height) : 1;\n rectMultiply(context, contaxtScalar); // use floor because we can't fill up half pixels\n\n context.x = Math.floor(context.x);\n context.y = Math.floor(context.y);\n context.width = Math.floor(context.width);\n context.height = Math.floor(context.height);\n return [state[srcImageData], {\n shapes: [frame],\n contextBounds: context,\n computeShape: function computeShape(shape) {\n return shapeComputeDisplay(shape, state[srcImageData]);\n },\n transform: function transform(ctx) {\n ctx.translate(context.x, context.y);\n },\n drawImage: createCanvasImageDrawer({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit\n }),\n preprocessShape: function preprocessShape(shape) {\n return shapePreprocessor(shape, _objectSpread({\n isPreview: false\n }, state[srcImageState]));\n },\n canvasMemoryLimit: canvasMemoryLimit,\n willRequest: willRequest || willRequestResource,\n styleNonce: csp.styleNonce\n }];\n }, function (state, _ref149) {\n var _ref150 = _slicedToArray(_ref149, 2),\n imageData = _ref150[0],\n context = _ref150[1];\n\n state[destImageContext] = context;\n state[destImageData] = imageData;\n }), 'image-data-frame'];\n};\n\nvar ImageDataToBlob = function ImageDataToBlob() {\n var _ref151 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref151$mimeType = _ref151.mimeType,\n mimeType = _ref151$mimeType === void 0 ? undefined : _ref151$mimeType,\n _ref151$quality = _ref151.quality,\n quality = _ref151$quality === void 0 ? undefined : _ref151$quality,\n _ref151$srcImageData = _ref151.srcImageData,\n srcImageData = _ref151$srcImageData === void 0 ? 'imageData' : _ref151$srcImageData,\n _ref151$srcFile = _ref151.srcFile,\n srcFile = _ref151$srcFile === void 0 ? 'src' : _ref151$srcFile,\n _ref151$destBlob = _ref151.destBlob,\n destBlob = _ref151$destBlob === void 0 ? 'blob' : _ref151$destBlob;\n\n return [connect(imageDataToBlob, function (state) {\n return [state[srcImageData], mimeType || getMimeTypeFromFilename(state[srcFile].name) || state[srcFile].type, quality];\n }, function (state, blob) {\n return state[destBlob] = blob;\n }), 'image-data-to-blob'];\n};\n\nvar ImageDataToCanvas = function ImageDataToCanvas() {\n var _ref152 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref152$srcImageData = _ref152.srcImageData,\n srcImageData = _ref152$srcImageData === void 0 ? 'imageData' : _ref152$srcImageData,\n _ref152$srcOrientatio = _ref152.srcOrientation,\n srcOrientation = _ref152$srcOrientatio === void 0 ? 'orientation' : _ref152$srcOrientatio,\n _ref152$destCanvas = _ref152.destCanvas,\n destCanvas = _ref152$destCanvas === void 0 ? 'dest' : _ref152$destCanvas;\n\n return [connect(imageDataToCanvas, function (state) {\n return [state[srcImageData], state[srcOrientation]];\n }, function (state, canvas) {\n return state[destCanvas] = canvas;\n }), 'image-data-to-canvas'];\n};\n\nvar writeImageHead = /*#__PURE__*/function () {\n var _ref153 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee49(blob, head) {\n var eachMarker, isAppHeader, getAppHeaders, insertAppHeaders, srcAppHeaders, destUintArray;\n return _regeneratorRuntime.wrap(function _callee49$(_context49) {\n while (1) {\n switch (_context49.prev = _context49.next) {\n case 0:\n if (!(!isJPEG(blob) || !head)) {\n _context49.next = 2;\n break;\n }\n\n return _context49.abrupt(\"return\", blob);\n\n case 2:\n eachMarker = function eachMarker(ab, cb) {\n // Skip JPEG identifier\n var offset = 2;\n var dataView = new DataView(ab);\n var byteLength = dataView.byteLength; // start\n\n cb(dataView.getUint8(0), 0, 2, byteLength); // loop over bytes\n\n while (offset < byteLength) {\n if (dataView.getUint8(offset) != 0xff) break;\n var marker = dataView.getUint8(offset + 1);\n var length = dataView.getUint16(offset + 2) + 2; // can exit if returns false\n\n if (cb(marker, offset, length, byteLength) === false) break;\n offset += length;\n }\n };\n\n isAppHeader = function isAppHeader(marker) {\n return marker >= 224 && marker <= 237; // APP0 to APP13\n };\n\n getAppHeaders = function getAppHeaders(arrayBuffer) {\n var headers = [];\n eachMarker(arrayBuffer, function (marker, offset, length) {\n // start of scan\n if (marker === 0xda) return false; // app header\n\n if (isAppHeader(marker)) {\n headers.push(new Uint8Array(arrayBuffer, offset, length));\n }\n });\n return headers;\n };\n\n insertAppHeaders = function insertAppHeaders(arrayBuffer, appHeaders) {\n var segments = [];\n eachMarker(arrayBuffer, function (marker, offset, length, totalLength) {\n // start of image marker\n if (offset === 0) {\n // add start header\n segments.push(new Uint8Array(arrayBuffer, offset, length)); // add original app headers\n\n segments.push.apply(segments, _toConsumableArray(appHeaders));\n return;\n } // start of scan\n\n\n if (marker === 0xda) {\n segments.push(new Uint8Array(arrayBuffer, offset, totalLength - offset));\n return false;\n } // app header\n\n\n if (!isAppHeader(marker)) {\n segments.push(new Uint8Array(arrayBuffer, offset, length));\n }\n }); // created new file\n\n var combinedLength = segments.reduce(function (acc, seg) {\n return acc + seg.length;\n }, 0);\n var combinedArray = new Uint8Array(combinedLength);\n var currentOffset = 0;\n segments.forEach(function (segment) {\n combinedArray.set(segment, currentOffset);\n currentOffset += segment.length;\n });\n return combinedArray;\n }; // gets app headers from original file\n\n\n srcAppHeaders = getAppHeaders(head); // removes any app headers from this file (Chrome recently (2024) started adding these)\n\n _context49.t0 = insertAppHeaders;\n _context49.next = 10;\n return readFile(blob);\n\n case 10:\n _context49.t1 = _context49.sent;\n _context49.t2 = srcAppHeaders;\n destUintArray = (0, _context49.t0)(_context49.t1, _context49.t2);\n return _context49.abrupt(\"return\", new Blob([destUintArray], {\n type: 'image/jpeg'\n }));\n\n case 14:\n case \"end\":\n return _context49.stop();\n }\n }\n }, _callee49);\n }));\n\n return function writeImageHead(_x92, _x93) {\n return _ref153.apply(this, arguments);\n };\n}();\n\nvar BlobWriteImageHead = function BlobWriteImageHead() {\n var srcBlob = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'blob';\n var srcHead = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'copy';\n var destBlob = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'blob';\n return [connect(writeImageHead, function (state) {\n return [state[srcBlob], state[srcHead]];\n }, function (state, blob) {\n return state[destBlob] = blob;\n }), 'blob-write-image-head'];\n};\n\nvar BlobToFile = function BlobToFile() {\n var _ref154 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref154$renameFile = _ref154.renameFile,\n renameFile = _ref154$renameFile === void 0 ? undefined : _ref154$renameFile,\n _ref154$srcBlob = _ref154.srcBlob,\n srcBlob = _ref154$srcBlob === void 0 ? 'blob' : _ref154$srcBlob,\n _ref154$srcFile = _ref154.srcFile,\n srcFile = _ref154$srcFile === void 0 ? 'src' : _ref154$srcFile,\n _ref154$destFile = _ref154.destFile,\n destFile = _ref154$destFile === void 0 ? 'dest' : _ref154$destFile,\n _ref154$defaultFilena = _ref154.defaultFilename,\n defaultFilename = _ref154$defaultFilena === void 0 ? undefined : _ref154$defaultFilena;\n\n return [connect(blobToFile, function (state) {\n return [state[srcBlob], renameFile ? renameFile(state[srcFile]) : state[srcFile].name || \"\".concat(defaultFilename, \".\").concat(getExtensionFromMimeType(state[srcBlob].type))];\n }, function (state, file) {\n return state[destFile] = file;\n }), 'blob-to-file'];\n};\n\nvar Store = function Store(_ref155) {\n var _ref155$url = _ref155.url,\n url = _ref155$url === void 0 ? './' : _ref155$url,\n _ref155$dataset = _ref155.dataset,\n dataset = _ref155$dataset === void 0 ? function (state) {\n return [['dest', state.dest, state.dest.name], ['imageState', state.imageState]];\n } : _ref155$dataset,\n _ref155$destStore = _ref155.destStore,\n destStore = _ref155$destStore === void 0 ? 'store' : _ref155$destStore,\n credentials = _ref155.credentials,\n _ref155$headers = _ref155.headers,\n headers = _ref155$headers === void 0 ? {} : _ref155$headers;\n return [connect(\n /*#__PURE__*/\n // upload function\n function () {\n var _ref156 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee50(dataset, onprogress) {\n return _regeneratorRuntime.wrap(function _callee50$(_context50) {\n while (1) {\n switch (_context50.prev = _context50.next) {\n case 0:\n _context50.next = 2;\n return post(url, dataset, {\n onprogress: onprogress,\n beforeSend: function beforeSend(xhr) {\n return configureXHR(xhr, {\n headers: headers,\n credentials: credentials\n });\n }\n });\n\n case 2:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 3:\n case \"end\":\n return _context50.stop();\n }\n }\n }, _callee50);\n }));\n\n return function (_x94, _x95) {\n return _ref156.apply(this, arguments);\n };\n }(), // get state values\n function (state, options, onprogress) {\n return [dataset(state), onprogress];\n }, // set state values\n function (state, xhr) {\n return state[destStore] = xhr;\n } // logs XHR request returned by `post`\n ), 'store'];\n};\n\nvar PropFilter = function PropFilter(allowlist) {\n return [connect(function (state) {\n // if no allowlist suppleid or is empty array we don't filter\n if (!allowlist || !allowlist.length) return state; // else we only allow the props defined in the list and delete non matching props\n\n Object.keys(state).forEach(function (key) {\n if (allowlist.includes(key)) return;\n delete state[key];\n });\n return state;\n }), 'prop-filter'];\n}; // Generic image reader, suitable for most use cases\n\n\nvar createDefaultImageReader$1 = function createDefaultImageReader$1() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$orientImage = options.orientImage,\n orientImage = _options$orientImage === void 0 ? true : _options$orientImage,\n _options$outputProps = options.outputProps,\n outputProps = _options$outputProps === void 0 ? ['src', 'dest', 'size', 'duration'] : _options$outputProps,\n preprocessImageFile = options.preprocessImageFile,\n _options$request = options.request,\n request = _options$request === void 0 ? {} : _options$request;\n return [// can read most source files and turn them into blobs\n AnyToFile({\n willRequest: function willRequest() {\n return request;\n }\n }), // test if supported mime/type\n BlobGuardMimeType(), // called when file created, can be used to read unrecognized files\n preprocessImageFile && [connect(preprocessImageFile, function (state, options, onprogress) {\n return [state.dest, options, onprogress];\n }, function (state, file) {\n return state.dest = file;\n }), 'preprocess-image-file'], // quickly read size (only reads first part of image)\n BlobReadImageSize({\n srcProp: 'dest'\n }), // quickly read duration\n BlobReadMediaDuration({\n srcProp: 'dest'\n }), // fix image orientation\n orientImage && BlobCopy({\n srcProp: 'dest'\n }), orientImage && ImageHeadReadExifOrientationTag(), orientImage && ImageSizeMatchOrientation(), // remove unwanted props\n PropFilter(outputProps)].filter(Boolean);\n};\n\nvar createStore = function createStore(store) {\n return store && (isString(store) ? // a basic store to post to\n Store({\n url: store\n }) : // see if is fully custom or store config\n isFunction(store) ? // fully custom store function\n [store, 'store'] : // a store configuration object\n Store(store));\n};\n\nvar createDefaultImageWriter$1 = function createDefaultImageWriter$1() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function (src, imageState) {\n var genericOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // let's go!\n var _options$genericOptio = _objectSpread(_objectSpread({}, options), genericOptions),\n _options$genericOptio2 = _options$genericOptio.canvasMemoryLimit,\n canvasMemoryLimit = _options$genericOptio2 === void 0 ? getCanvasMemoryLimit() : _options$genericOptio2,\n _options$genericOptio3 = _options$genericOptio.orientImage,\n orientImage = _options$genericOptio3 === void 0 ? true : _options$genericOptio3,\n _options$genericOptio4 = _options$genericOptio.copyImageHead,\n copyImageHead = _options$genericOptio4 === void 0 ? true : _options$genericOptio4,\n _options$genericOptio5 = _options$genericOptio.mimeType,\n mimeType = _options$genericOptio5 === void 0 ? undefined : _options$genericOptio5,\n _options$genericOptio6 = _options$genericOptio.quality,\n quality = _options$genericOptio6 === void 0 ? undefined : _options$genericOptio6,\n _options$genericOptio7 = _options$genericOptio.renameFile,\n renameFile = _options$genericOptio7 === void 0 ? undefined : _options$genericOptio7,\n _options$genericOptio8 = _options$genericOptio.targetSize,\n targetSize = _options$genericOptio8 === void 0 ? undefined : _options$genericOptio8,\n _options$genericOptio9 = _options$genericOptio.imageDataResizer,\n imageDataResizer = _options$genericOptio9 === void 0 ? undefined : _options$genericOptio9,\n _options$genericOptio10 = _options$genericOptio.store,\n store = _options$genericOptio10 === void 0 ? undefined : _options$genericOptio10,\n _options$genericOptio11 = _options$genericOptio.format,\n format = _options$genericOptio11 === void 0 ? 'file' : _options$genericOptio11,\n _options$genericOptio12 = _options$genericOptio.outputProps,\n outputProps = _options$genericOptio12 === void 0 ? ['src', 'dest', 'imageState', 'store'] : _options$genericOptio12,\n _options$genericOptio13 = _options$genericOptio.preprocessImageSource,\n preprocessImageSource = _options$genericOptio13 === void 0 ? undefined : _options$genericOptio13,\n _options$genericOptio14 = _options$genericOptio.preprocessImageState,\n preprocessImageState = _options$genericOptio14 === void 0 ? undefined : _options$genericOptio14,\n _options$genericOptio15 = _options$genericOptio.postprocessImageData,\n postprocessImageData = _options$genericOptio15 === void 0 ? undefined : _options$genericOptio15,\n _options$genericOptio16 = _options$genericOptio.postprocessImageBlob,\n postprocessImageBlob = _options$genericOptio16 === void 0 ? undefined : _options$genericOptio16,\n _options$genericOptio17 = _options$genericOptio.testSrcSupport,\n testSrcSupport = _options$genericOptio17 === void 0 ? false : _options$genericOptio17; // if doesn't pass src filter, skip\n\n\n if (testSrcSupport && !isImage(src)) return; // use 'file' format if defined as 'blob'\n\n if (format === 'blob') format = 'file';\n return [// allow preprocessing of image blob, should return a new blob, for example to automatically make image background transparent\n preprocessImageSource && [connect(preprocessImageSource, function (state, options, onprogress) {\n return [state.src, options, onprogress, state.imageState];\n }, function (state, src) {\n return state.src = src;\n }), 'preprocess-image-source'], // get orientation info (if is jpeg)\n (orientImage || copyImageHead) && BlobCopy(), orientImage && ImageHeadReadExifOrientationTag(), // get image size\n BlobReadImageSize(), // allow preproccesing of image state for example to replace placeholders\n preprocessImageState && [connect(preprocessImageState, function (state, options, onprogress, metadata) {\n return [state.imageState, options, onprogress, {\n size: state.size,\n orientation: state.orientation\n }];\n }, function (state, imageState) {\n return state.imageState = imageState;\n }), 'preprocess-image-state'], // get image data\n BlobToImageData({\n canvasMemoryLimit: canvasMemoryLimit\n }), // fix image orientation\n orientImage && ImageSizeMatchOrientation(), orientImage && ImageDataMatchOrientation(), // apply canvas scalar to data\n CalculateCanvasScalar(), // apply image state\n ImageDataRedact(), ImageDataCrop(), ImageDataResize({\n imageDataResizer: imageDataResizer,\n targetSize: targetSize\n }), ImageDataAnnotate({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit,\n srcShapes: 'manipulation'\n }), ImageDataFilter(), ImageDataFill(), ImageDataAnnotate({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit,\n srcShapes: 'annotation',\n shapeFilter: function shapeFilter(shape) {\n return !shape.aboveFrame;\n }\n }), ImageDataDecorate({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit,\n shapeFilter: function shapeFilter(shape) {\n return !shape.aboveFrame;\n }\n }), ImageDataFrame({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit\n }), // Draw on top of frame\n ImageDataAnnotate({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit,\n srcShapes: 'annotation',\n shapeFilter: function shapeFilter(shape) {\n return shape.aboveFrame;\n },\n shapeClip: false\n }), ImageDataDecorate({\n imageDataResizer: imageDataResizer,\n canvasMemoryLimit: canvasMemoryLimit,\n shapeFilter: function shapeFilter(shape) {\n return shape.aboveFrame;\n }\n }), // run post processing on image data, for example to apply circular crop\n postprocessImageData && [connect(postprocessImageData, function (state, options, onprogress) {\n return [state.imageData, options, onprogress];\n }, function (state, imageData) {\n return state.imageData = imageData;\n }), 'postprocess-image-data'], // convert to correct output format\n format === 'file' ? ImageDataToBlob({\n mimeType: mimeType,\n quality: quality\n }) : format === 'canvas' ? ImageDataToCanvas() : [function (state) {\n state.dest = state.imageData;\n return state;\n }], // we overwite the exif orientation tag so the image is oriented correctly\n format === 'file' && orientImage && ImageHeadClearExifOrientationTag(), // we write the new image head to the target blob\n format === 'file' && copyImageHead && BlobWriteImageHead(), // allow converting the blob to a different format\n postprocessImageBlob && [connect(postprocessImageBlob, function (_ref157, options, onprogress) {\n var blob = _ref157.blob,\n imageData = _ref157.imageData,\n src = _ref157.src;\n return [{\n blob: blob,\n imageData: imageData,\n src: src\n }, options, onprogress];\n }, function (state, blob) {\n return state.blob = blob;\n }), 'postprocess-image-file'], // turn the image blob into a file, will also rename the file\n format === 'file' && BlobToFile({\n defaultFilename: 'image',\n renameFile: renameFile\n }), // upload or process data if is a file\n format === 'file' ? // used for file output formats\n createStore(store) : // used for imageData and canvas output formats\n isFunction(store) && [store, 'store'], // remove unwanted props\n PropFilter(outputProps)].filter(Boolean);\n };\n};\n\nvar isWriter = function isWriter(param) {\n return Array.isArray(param) || isFunction(param);\n};\n\nvar createDefaultMediaWriter$1 = function createDefaultMediaWriter$1(genericWriterOptions) {\n for (var _len3 = arguments.length, writers = new Array(_len3 > 1 ? _len3 - 1 : 0), _key6 = 1; _key6 < _len3; _key6++) {\n writers[_key6 - 1] = arguments[_key6];\n }\n\n return function (src, imageState) {\n // no generic options passed\n if (isWriter(genericWriterOptions)) writers = [genericWriterOptions].concat(_toConsumableArray(writers));\n var genericOptions = isObject(genericWriterOptions) ? genericWriterOptions : {}; // if used in media writer the sub writers need to test if they support the source file\n\n genericOptions.testSrcSupport = true; // currently assigned writers\n\n writers = Array.isArray(writers) ? arrayFlatten(writers) : writers; // loop over writers and return first that is a match\n\n for (var i = 0; i < writers.length; i++) {\n var res = writers[i](src, imageState, genericOptions);\n if (Array.isArray(res)) return res;\n }\n };\n};\n\nvar calculateImageTransforms = function calculateImageTransforms(stageRect, rootRect, imageSize, cropRect, imageSelectionRect, imageSelectionRectScalar, imageSelectionRectTranslation, imageScale, imageRotation, imageFlipX, imageFlipY) {\n if (!stageRect || !rootRect || !imageSize || !cropRect || !imageScale) return undefined; // scale presentation\n\n imageScale *= imageSelectionRectScalar;\n var viewRect = rectNormalizeOffset(rectClone$1(rootRect));\n var viewCenter = rectCenter(viewRect);\n var stageCenter = rectCenter(stageRect);\n var imageRect = rectCreateFromSize(imageSize);\n var imageCenter = rectCenter(imageRect); // get base crop rect so we can correctly apply transforms\n\n var cropRectBase = getBaseCropRect(imageSize, cropRect, imageRotation);\n var cropRectBaseCenter = rectCenter(cropRectBase);\n var imageTranslation = vectorSubtract(vectorClone(imageCenter), cropRectBaseCenter); // calculate stage center offset from view center\n\n var imageOffset = vectorSubtract(vectorClone(stageCenter), viewCenter); // correct for stage offset\n\n imageTranslation.x += imageOffset.x;\n imageTranslation.y += imageOffset.y; // set origin of translation (so rotates around center of selection)\n\n var imageOrigin = vectorInvert(vectorClone(imageTranslation)); // correct for stage offset\n\n imageOrigin.x += imageOffset.x;\n imageOrigin.y += imageOffset.y; // correct for image selection offset relative to view\n\n var imageSelectionCenter = rectCenter(rectTranslate$1(rectTranslate$1(rectClone$1(imageSelectionRect), imageSelectionRectTranslation), stageRect));\n var imageSelectionOffset = vectorSubtract(imageSelectionCenter, stageCenter);\n vectorAdd(imageTranslation, imageSelectionOffset);\n return {\n origin: imageOrigin,\n translation: imageTranslation,\n rotation: {\n x: imageFlipY ? Math.PI : 0,\n y: imageFlipX ? Math.PI : 0,\n z: imageRotation\n },\n scale: imageScale\n };\n};\n\nvar result$6 = null;\n\nvar supportsWebGL2 = function supportsWebGL2() {\n if (result$6 === null) {\n if ('WebGL2RenderingContext' in window) {\n var canvas;\n\n try {\n canvas = h('canvas');\n result$6 = !!canvas.getContext('webgl2');\n } catch (err) {\n result$6 = false;\n }\n\n canvas && releaseCanvas(canvas);\n canvas = undefined;\n } else {\n result$6 = false;\n }\n }\n\n return result$6;\n};\n\nvar isPowerOf2 = function isPowerOf2(value) {\n return (value & value - 1) === 0;\n};\n\nvar stringReplace = function stringReplace(str) {\n var entries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var postfix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n return Object.keys(entries).filter(function (key) {\n return !isObject(entries[key]);\n }).reduce(function (prev, curr) {\n return prev.replace(new RegExp(prefix + curr + postfix), entries[curr]);\n }, str);\n};\n\nvar SHADER_FRAG_HEAD = \"#version 300 es\\nprecision highp float;\\n\\nout vec4 fragColor;\"; // eslint-disable-line\n\nvar SHADER_FRAG_INIT = \"\\nfloat a=1.0;vec4 fillColor=uColor;vec4 textureColor=texture(uTexture,vTexCoord);textureColor*=(1.0-step(uRepeat.y,vTexCoord.y))*step(0.0,vTexCoord.y)*(1.0-step(uRepeat.x,vTexCoord.x))*step(0.0,vTexCoord.x);\"; // eslint-disable-line\n\nvar SHADER_FRAG_MASK = \"\\nuniform float uMaskFeather[8];uniform float uMaskBounds[4];uniform float uMaskOpacity;float mask(float x,float y,float bounds[4],float opacity){return 1.0-(1.0-(smoothstep(bounds[3],bounds[3]+1.0,x)*(1.0-smoothstep(bounds[1]-1.0,bounds[1],x))*(1.0-step(bounds[0],y))*step(bounds[2],y)))*(1.0-opacity);}\"; // eslint-disable-line\n\nvar SHADER_FRAG_MASK_APPLY = \"\\nfloat m=mask(gl_FragCoord.x,gl_FragCoord.y,uMaskBounds,uMaskOpacity);\"; // eslint-disable-line\n\nvar SHADER_FRAG_MASK_FEATHER_APPLY = \"\\nfloat leftFeatherOpacity=step(uMaskFeather[1],gl_FragCoord.x)*uMaskFeather[0]+((1.0-uMaskFeather[0])*smoothstep(uMaskFeather[1],uMaskFeather[3],gl_FragCoord.x));float rightFeatherOpacity=(1.0-step(uMaskFeather[7],gl_FragCoord.x))*uMaskFeather[4]+((1.0-uMaskFeather[4])*smoothstep(uMaskFeather[7],uMaskFeather[5],gl_FragCoord.x));a*=leftFeatherOpacity*rightFeatherOpacity;\"; // eslint-disable-line\n\nvar SHADER_FRAG_RECT_AA = \"\\nvec2 scaledPoint=vec2(vRectCoord.x*uSize.x,vRectCoord.y*uSize.y);a*=smoothstep(0.0,uEdgeFeather,uSize.x-scaledPoint.x);a*=smoothstep(0.0,uEdgeFeather,uSize.y-scaledPoint.y);a*=smoothstep(0.0,uEdgeFeather,scaledPoint.x);a*=smoothstep(0.0,uEdgeFeather,scaledPoint.y);\"; // eslint-disable-line\n\nvar SHADER_FRAG_CORNER_RADIUS = \"\\nvec2 s=(uSize-2.0)*.5;vec2 r=(vRectCoord*uSize)-1.0;vec2 p=r-s;float cornerRadius=uCornerRadius[0];bool left=r.x0.0){vec3 colorFlattened=textureColor.rgb/textureColor.a;if(colorFlattened.r>=.9999&&colorFlattened.g==0.0&&colorFlattened.b>=.9999){textureColor.rgb=uTextureColor.rgb*textureColor.a;}textureColor*=uTextureColor.a;}\"; // eslint-disable-line\n\nvar SHADER_VERT_HEAD = \"#version 300 es\\n\\nin vec4 aPosition;uniform mat4 uMatrix;\"; // eslint-disable-line\n\nvar SHADER_VERT_MULTIPLY_MATRUX = \"\\ngl_Position=uMatrix*vec4(aPosition.x,aPosition.y,0,1);\"; // eslint-disable-line\n\nvar SHADER_VERT_TEXTURE = \"\\nin vec2 aTexCoord;out vec2 vTexCoord;\"; // eslint-disable-line\n\nvar SHADER_VERT_SNIPPETS = {\n head: SHADER_VERT_HEAD,\n text: SHADER_VERT_TEXTURE,\n matrix: SHADER_VERT_MULTIPLY_MATRUX\n};\nvar SHADER_FRAG_SNIPPETS = {\n head: SHADER_FRAG_HEAD,\n mask: SHADER_FRAG_MASK,\n init: SHADER_FRAG_INIT,\n colorize: SHADER_FRAG_TEXTURE_COLORIZE,\n maskapply: SHADER_FRAG_MASK_APPLY,\n maskfeatherapply: SHADER_FRAG_MASK_FEATHER_APPLY,\n rectaa: SHADER_FRAG_RECT_AA,\n cornerradius: SHADER_FRAG_CORNER_RADIUS,\n fragcolor: SHADER_FRAG_SHAPE_BLEND_COLOR\n};\n\nvar transpileShader = function transpileShader(gl, src, type) {\n src = stringReplace(src, type === gl.VERTEX_SHADER ? SHADER_VERT_SNIPPETS : SHADER_FRAG_SNIPPETS, '##').trim(); // ready if supports webgl\n\n if (supportsWebGL2()) return src;\n src = src.replace(/#version.+/gm, '').trim();\n src = src.replace(/^\\/\\/\\#/gm, '#');\n\n if (type === gl.VERTEX_SHADER) {\n src = src.replace(/in /gm, 'attribute ').replace(/out /g, 'varying ');\n }\n\n if (type === gl.FRAGMENT_SHADER) {\n src = src.replace(/in /gm, 'varying ').replace(/out.*?;/gm, '').replace(/texture\\(/g, 'texture2D(').replace(/fragColor/g, 'gl_FragColor');\n }\n\n return \"\".concat(src);\n};\n\nvar compileShader = function compileShader(gl, src, type) {\n var shader = gl.createShader(type);\n var transpiledSrc = transpileShader(gl, src, type);\n gl.shaderSource(shader, transpiledSrc);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n console.error(gl.getShaderInfoLog(shader));\n }\n\n return shader;\n};\n\nvar createShader = function createShader(gl, vertexShaderCode, fragmentShaderCode, attribs, uniforms) {\n var vertexShader = compileShader(gl, vertexShaderCode, gl.VERTEX_SHADER);\n var fragmentShader = compileShader(gl, fragmentShaderCode, gl.FRAGMENT_SHADER);\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n var locations = {};\n attribs.forEach(function (name) {\n locations[name] = gl.getAttribLocation(program, name);\n });\n uniforms.forEach(function (name) {\n locations[name] = gl.getUniformLocation(program, name);\n });\n return {\n program: program,\n locations: locations,\n destroy: function destroy() {\n gl.detachShader(program, vertexShader);\n gl.detachShader(program, fragmentShader);\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n gl.deleteProgram(program);\n }\n };\n};\n\nvar canMipMap = function canMipMap(source) {\n if (source['nodeName'] === 'VIDEO') return false;\n if (supportsWebGL2()) return true;\n return isPowerOf2(source.width) && isPowerOf2(source.height);\n};\n\nvar applyTextureProperties = function applyTextureProperties(gl, source, options) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, canMipMap(source) ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, options.filterParam);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, options.wrapParam);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, options.wrapParam);\n if (canMipMap(source)) gl.generateMipmap(gl.TEXTURE_2D);\n};\n\nvar updateTexture = function updateTexture(gl, texture, source, options) {\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, source);\n applyTextureProperties(gl, source, options);\n gl.bindTexture(gl.TEXTURE_2D, null);\n return texture;\n};\n\nvar applyOpacity = function applyOpacity(color) {\n var opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return color ? [color[0], color[1], color[2], isNumber(color[3]) ? opacity * color[3] : opacity] : [0, 0, 0, 0];\n};\n\nvar mat4Create = function mat4Create() {\n var mat = new Float32Array(16);\n mat[0] = 1;\n mat[5] = 1;\n mat[10] = 1;\n mat[15] = 1;\n return mat;\n};\n\nvar mat4Perspective = function mat4Perspective(mat, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2);\n var nf = 1 / (near - far);\n mat[0] = f / aspect;\n mat[1] = 0;\n mat[2] = 0;\n mat[3] = 0;\n mat[4] = 0;\n mat[5] = f;\n mat[6] = 0;\n mat[7] = 0;\n mat[8] = 0;\n mat[9] = 0;\n mat[10] = (far + near) * nf;\n mat[11] = -1;\n mat[12] = 0;\n mat[13] = 0;\n mat[14] = 2 * far * near * nf;\n mat[15] = 0;\n};\n\nvar mat4Ortho = function mat4Ortho(mat, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n mat[0] = -2 * lr;\n mat[1] = 0;\n mat[2] = 0;\n mat[3] = 0;\n mat[4] = 0;\n mat[5] = -2 * bt;\n mat[6] = 0;\n mat[7] = 0;\n mat[8] = 0;\n mat[9] = 0;\n mat[10] = 2 * nf;\n mat[11] = 0;\n mat[12] = (left + right) * lr;\n mat[13] = (top + bottom) * bt;\n mat[14] = (far + near) * nf;\n mat[15] = 1;\n};\n\nvar mat4Translate = function mat4Translate(mat, x, y, z) {\n mat[12] = mat[0] * x + mat[4] * y + mat[8] * z + mat[12];\n mat[13] = mat[1] * x + mat[5] * y + mat[9] * z + mat[13];\n mat[14] = mat[2] * x + mat[6] * y + mat[10] * z + mat[14];\n mat[15] = mat[3] * x + mat[7] * y + mat[11] * z + mat[15];\n};\n\nvar mat4Scale = function mat4Scale(mat, s) {\n mat[0] *= s;\n mat[1] *= s;\n mat[2] *= s;\n mat[3] *= s;\n mat[4] *= s;\n mat[5] *= s;\n mat[6] *= s;\n mat[7] *= s;\n mat[8] *= s;\n mat[9] *= s;\n mat[10] *= s;\n mat[11] *= s;\n};\n\nvar mat4ScaleX = function mat4ScaleX(mat, s) {\n mat[0] *= s;\n mat[1] *= s;\n mat[2] *= s;\n mat[3] *= s;\n};\n\nvar mat4ScaleY = function mat4ScaleY(mat, s) {\n mat[4] *= s;\n mat[5] *= s;\n mat[6] *= s;\n mat[7] *= s;\n};\n\nvar mat4RotateX = function mat4RotateX(mat, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = mat[4];\n var a11 = mat[5];\n var a12 = mat[6];\n var a13 = mat[7];\n var a20 = mat[8];\n var a21 = mat[9];\n var a22 = mat[10];\n var a23 = mat[11];\n mat[4] = a10 * c + a20 * s;\n mat[5] = a11 * c + a21 * s;\n mat[6] = a12 * c + a22 * s;\n mat[7] = a13 * c + a23 * s;\n mat[8] = a20 * c - a10 * s;\n mat[9] = a21 * c - a11 * s;\n mat[10] = a22 * c - a12 * s;\n mat[11] = a23 * c - a13 * s;\n};\n\nvar mat4RotateY = function mat4RotateY(mat, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = mat[0];\n var a01 = mat[1];\n var a02 = mat[2];\n var a03 = mat[3];\n var a20 = mat[8];\n var a21 = mat[9];\n var a22 = mat[10];\n var a23 = mat[11];\n mat[0] = a00 * c - a20 * s;\n mat[1] = a01 * c - a21 * s;\n mat[2] = a02 * c - a22 * s;\n mat[3] = a03 * c - a23 * s;\n mat[8] = a00 * s + a20 * c;\n mat[9] = a01 * s + a21 * c;\n mat[10] = a02 * s + a22 * c;\n mat[11] = a03 * s + a23 * c;\n};\n\nvar mat4RotateZ = function mat4RotateZ(mat, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = mat[0];\n var a01 = mat[1];\n var a02 = mat[2];\n var a03 = mat[3];\n var a10 = mat[4];\n var a11 = mat[5];\n var a12 = mat[6];\n var a13 = mat[7];\n mat[0] = a00 * c + a10 * s;\n mat[1] = a01 * c + a11 * s;\n mat[2] = a02 * c + a12 * s;\n mat[3] = a03 * c + a13 * s;\n mat[4] = a10 * c - a00 * s;\n mat[5] = a11 * c - a01 * s;\n mat[6] = a12 * c - a02 * s;\n mat[7] = a13 * c - a03 * s;\n};\n\nvar degToRad = function degToRad(degrees) {\n return degrees * Math.PI / 180;\n};\n\nvar getWebGLContext = function getWebGLContext(canvas, attrs) {\n if (supportsWebGL2()) return canvas.getContext('webgl2', attrs);\n return canvas.getContext('webgl', attrs) || canvas.getContext('experimental-webgl', attrs);\n};\n\nvar imageFragmentShader = \"\\n##head\\nin vec2 vTexCoord;uniform sampler2D uTexture;uniform sampler2D uTextureOverlay;uniform sampler2D uTextureBlend;uniform vec2 uTextureSize;uniform float uOpacity;uniform int uAntialias;uniform vec4 uOverlayColor;uniform mat4 uColorMatrix;uniform vec4 uColorOffset;uniform float uClarityKernel[9];uniform float uClarityKernelWeight;uniform float uColorGamma;uniform float uColorVignette;uniform float uMaskClip;uniform float uMaskOpacity;uniform float uMaskBounds[4];uniform float uMaskCornerRadius[4];uniform float uMaskFeather[8];vec4 applyGamma(vec4 c,float g){c.r=pow(c.r,g);c.g=pow(c.g,g);c.b=pow(c.b,g);return c;}vec4 applyColorMatrix(vec4 c,mat4 m,vec4 o){vec4 res=(c*m)+(o*c.a);res=clamp(res,0.0,1.0);return res;}vec4 applyConvolutionMatrix(vec4 c,float k0,float k1,float k2,float k3,float k4,float k5,float k6,float k7,float k8,float w){vec2 pixel=vec2(1)/uTextureSize;vec4 colorSum=texture(uTexture,vTexCoord-pixel)*k0+texture(uTexture,vTexCoord+pixel*vec2(0.0,-1.0))*k1+texture(uTexture,vTexCoord+pixel*vec2(1.0,-1.0))*k2+texture(uTexture,vTexCoord+pixel*vec2(-1.0,0.0))*k3+texture(uTexture,vTexCoord)*k4+texture(uTexture,vTexCoord+pixel*vec2(1.0,0.0))*k5+texture(uTexture,vTexCoord+pixel*vec2(-1.0,1.0))*k6+texture(uTexture,vTexCoord+pixel*vec2(0.0,1.0))*k7+texture(uTexture,vTexCoord+pixel)*k8;vec4 color=vec4(clamp((colorSum/w),0.0,1.0).rgb,c.a);return color;}vec4 blendPremultipliedAlpha(vec4 back,vec4 front){return front+(back*(1.0-front.a));}vec4 applyVignette(vec4 c,vec2 pos,vec2 center,float v){float d=distance(pos,center)/length(center);float f=1.0-(d*abs(v));if(v>0.0){c.rgb*=f;}else if(v<0.0){c.rgb+=(1.0-f)*(1.0-c.rgb);}return c;}void main(){float x=gl_FragCoord.x;float y=gl_FragCoord.y;float a=1.0;float maskTop=uMaskBounds[0];float maskRight=uMaskBounds[1];float maskBottom=uMaskBounds[2];float maskLeft=uMaskBounds[3];float leftFeatherOpacity=step(uMaskFeather[1],x)*uMaskFeather[0]+((1.0-uMaskFeather[0])*smoothstep(uMaskFeather[1],uMaskFeather[3],x));float rightFeatherOpacity=(1.0-step(uMaskFeather[7],x))*uMaskFeather[4]+((1.0-uMaskFeather[4])*smoothstep(uMaskFeather[7],uMaskFeather[5],x));a*=leftFeatherOpacity*rightFeatherOpacity;float overlayColorAlpha=(smoothstep(maskLeft,maskLeft+1.0,x)*(1.0-smoothstep(maskRight-1.0,maskRight,x))*(1.0-step(maskTop,y))*step(maskBottom,y));if(uOverlayColor.a==0.0){a*=overlayColorAlpha;}vec2 offset=vec2(maskLeft,maskBottom);vec2 size=vec2(maskRight-maskLeft,maskTop-maskBottom)*.5;vec2 center=offset.xy+size.xy;int pixelX=int(step(center.x,x));int pixelY=int(step(y,center.y));float cornerRadius=0.0;if(pixelX==0&&pixelY==0)cornerRadius=uMaskCornerRadius[0];if(pixelX==1&&pixelY==0)cornerRadius=uMaskCornerRadius[1];if(pixelX==0&&pixelY==1)cornerRadius=uMaskCornerRadius[2];if(pixelX==1&&pixelY==1)cornerRadius=uMaskCornerRadius[3];float cornerOffset=sign(cornerRadius)*length(max(abs(gl_FragCoord.xy-size-offset)-size+cornerRadius,0.0))-cornerRadius;float cornerOpacity=1.0-smoothstep(0.0,1.0,cornerOffset);a*=cornerOpacity;if(uAntialias==1){vec2 scaledPoint=vec2(vTexCoord.x*uTextureSize.x,vTexCoord.y*uTextureSize.y);a*=smoothstep(0.0,1.0,uTextureSize.x-scaledPoint.x);a*=smoothstep(0.0,1.0,uTextureSize.y-scaledPoint.y);a*=smoothstep(0.0,1.0,scaledPoint.x);a*=smoothstep(0.0,1.0,scaledPoint.y);}vec4 color=texture(uTexture,vTexCoord);if(uClarityKernelWeight!=-1.0){color=applyConvolutionMatrix(color,uClarityKernel[0],uClarityKernel[1],uClarityKernel[2],uClarityKernel[3],uClarityKernel[4],uClarityKernel[5],uClarityKernel[6],uClarityKernel[7],uClarityKernel[8],uClarityKernelWeight);}color=blendPremultipliedAlpha(color,texture(uTextureBlend,vTexCoord));color=applyGamma(color,uColorGamma);color=applyColorMatrix(color,uColorMatrix,uColorOffset);color*=a;if(uColorVignette!=0.0){vec2 pos=gl_FragCoord.xy-offset;color=applyVignette(color,pos,center-offset,uColorVignette);}color=blendPremultipliedAlpha(color,texture(uTextureOverlay,vTexCoord));if(overlayColorAlpha<=0.0){color*=1.0-uOverlayColor.a;}color*=uOpacity;fragColor=color;}\"; // eslint-disable-line\n\nvar imageVertexShader = \"\\n##head\\n##text\\nvoid main(){vTexCoord=aTexCoord;gl_Position=uMatrix*aPosition;}\"; // eslint-disable-line\n\nvar pathVertexShader = \"#version 300 es\\n\\nin vec4 aPosition;in vec2 aNormal;in float aMiter;out vec2 vNormal;out float vMiter;out float vWidth;uniform float uWidth;uniform float uSharpness;uniform mat4 uMatrix;void main(){vMiter=aMiter;vNormal=aNormal;vWidth=(uWidth*.5)+uSharpness;gl_Position=uMatrix*vec4(aPosition.x+(aNormal.x*vWidth*aMiter),aPosition.y+(aNormal.y*vWidth*aMiter),0,1);}\"; // eslint-disable-line\n\nvar pathFragmentShader = \"\\n##head\\n##mask\\nin vec2 vNormal;in float vMiter;in float vWidth;uniform float uWidth;uniform vec4 uColor;uniform vec4 uCanvasColor;void main(){vec4 fillColor=uColor;float m=mask(gl_FragCoord.x,gl_FragCoord.y,uMaskBounds,uMaskOpacity);if(m<=0.0)discard;fillColor.a*=clamp(smoothstep(vWidth-.5,vWidth-1.0,abs(vMiter)*vWidth),0.0,1.0);fillColor.rgb*=fillColor.a;fillColor.rgb*=m;fillColor.rgb+=(1.0-m)*(uCanvasColor.rgb*fillColor.a);fragColor=fillColor;}\"; // eslint-disable-line\n\nvar rectVertexShader = \"\\n##head\\n##text\\nin vec2 aRectCoord;out vec2 vRectCoord;void main(){vTexCoord=aTexCoord;vRectCoord=aRectCoord;\\n##matrix\\n}\"; // eslint-disable-line\n\nvar rectFragmentShader = \"\\n##head\\n##mask\\nin vec2 vTexCoord;in vec2 vRectCoord;uniform sampler2D uTexture;uniform vec4 uTextureColor;uniform float uTextureOpacity;uniform vec2 uRepeat;uniform vec4 uColor;uniform float uCornerRadius[4];uniform vec2 uSize;uniform vec2 uPosition;uniform vec4 uCanvasColor;uniform int uInverted;uniform float uEdgeFeather;void main(){\\n##init\\n##colorize\\n##rectaa\\n##cornerradius\\n##maskfeatherapply\\nif(uInverted==1)a=1.0-a;\\n##maskapply\\n##fragcolor\\n}\"; // eslint-disable-line\n\nvar ellipseVertexShader = \"\\n##head\\n##text\\nout vec2 vTexCoordDouble;void main(){vTexCoordDouble=vec2(aTexCoord.x*2.0-1.0,aTexCoord.y*2.0-1.0);vTexCoord=aTexCoord;\\n##matrix\\n}\"; // eslint-disable-line\n\nvar ellipseFragmentShader = \"\\n##head\\n##mask\\nin vec2 vTexCoord;in vec2 vTexCoordDouble;uniform sampler2D uTexture;uniform float uTextureOpacity;uniform vec2 uTextureAdjust;uniform vec2 uRepeat;uniform vec2 uRadius;uniform vec4 uColor;uniform int uInverted;uniform vec4 uCanvasColor;void main(){\\n##init\\nfloat ar=uRadius.x/uRadius.y;vec2 rAA=vec2(uRadius.x-1.0,uRadius.y-(1.0/ar));vec2 scaledPointSq=vec2((vTexCoordDouble.x*uTextureAdjust.x*uRadius.x)*(vTexCoordDouble.x*uTextureAdjust.x*uRadius.x),(vTexCoordDouble.y*uTextureAdjust.y*uRadius.y)*(vTexCoordDouble.y*uTextureAdjust.y*uRadius.y));float p=(scaledPointSq.x/(uRadius.x*uRadius.x))+(scaledPointSq.y/(uRadius.y*uRadius.y));float pAA=(scaledPointSq.x/(rAA.x*rAA.x))+(scaledPointSq.y/(rAA.y*rAA.y));a=smoothstep(1.0,p/pAA,p);if(uInverted==1)a=1.0-a;\\n##maskapply\\n##fragcolor\\n}\"; // eslint-disable-line\n\nvar triangleVertexShader = \"\\n##head\\nvoid main(){\\n##matrix\\n}\"; // eslint-disable-line\n\nvar triangleFragmentShader = \"\\n##head\\n##mask\\nuniform vec4 uColor;uniform vec4 uCanvasColor;void main(){vec4 fillColor=uColor;\\n##maskapply\\nfillColor.rgb*=fillColor.a;fillColor.rgb*=m;fillColor.rgb+=(1.0-m)*(uCanvasColor.rgb*fillColor.a);fragColor=fillColor;}\"; // eslint-disable-line\n\nvar getIndex = function getIndex(arr, index) {\n var l = arr.length;\n if (index >= l) return arr[index % l];\n if (index < 0) return arr[index % l + l];\n return arr[index];\n};\n\nvar getPolygonArea = function getPolygonArea(vertices) {\n var area = 0,\n i,\n va,\n vb,\n w,\n h;\n var l = vertices.length;\n\n for (i = 0; i < l; i++) {\n va = vertices[i];\n vb = vertices[(i + 1) % l];\n w = vb.x - va.x;\n h = (vb.y + va.y) / 2;\n area += w * h;\n }\n\n return area;\n};\n\nvar isPointInTriangle = function isPointInTriangle(p, a, b, c) {\n var ab = vectorCreate(b.x - a.x, b.y - a.y);\n var bc = vectorCreate(c.x - b.x, c.y - b.y);\n var ca = vectorCreate(a.x - c.x, a.y - c.y);\n var ap = vectorCreate(p.x - a.x, p.y - a.y);\n var bp = vectorCreate(p.x - b.x, p.y - b.y);\n var cp = vectorCreate(p.x - c.x, p.y - c.y);\n var c1 = vectorCross(ab, ap);\n var c2 = vectorCross(bc, bp);\n var c3 = vectorCross(ca, cp);\n return c1 <= 0 && c2 <= 0 && c3 <= 0;\n};\n\nvar isIntersectingSelf = function isIntersectingSelf(vertices) {\n // test if lines intersect\n var l = vertices.length;\n\n for (var i = 0; i < l; i++) {\n var line = lineCreate(vertices[i], getIndex(vertices, i + 1));\n var intersections = linePointsIntersection(line, vertices, {\n ignoreIdenticalLines: true,\n breakOnIntersection: true\n }); // is intersecting\n\n if (intersections) return true;\n }\n\n return false;\n};\n\nvar triangulate = function triangulate(vertices) {\n // not enough vertices\n if (vertices.length < 3) return []; // test if is simple polygon\n\n if (isIntersectingSelf(vertices)) return []; // if vertices aren't clockwise, reverse\n\n if (getPolygonArea(vertices) < 0) vertices.reverse(); // TODO: remove 180 degree corners, vertices should either be convex (< 180) or reflex (> 180), this happens when three vertices are in the same line\n // triangulate\n\n var totalVertices = vertices.length;\n\n var indexList = _toConsumableArray(Array(totalVertices).keys());\n\n var triangles = []; // faster to declare vars out of loop\n\n var i, j, a, b, c, va, vb, vc, vaToVb, vaToVc, isEar, p;\n var safe = 1024;\n\n while (indexList.length > 3) {\n // safeguard against infinite loops\n if (safe <= 0) return []; // lower safeguard\n\n safe--; // start calculating triangles\n\n for (i = 0; i < indexList.length; i++) {\n a = indexList[i];\n b = getIndex(indexList, i - 1);\n c = getIndex(indexList, i + 1);\n va = vertices[a];\n vb = vertices[b];\n vc = vertices[c];\n vaToVb = vectorCreate(vb.x - va.x, vb.y - va.y);\n vaToVc = vectorCreate(vc.x - va.x, vc.y - va.y); // is not an ear if is reflex corner (angle > 180)\n\n if (vectorCross(vaToVb, vaToVc) < 0) continue;\n isEar = true;\n\n for (j = 0; j < totalVertices; j++) {\n // skip as is me\n if (j === a || j === b || j === c) continue; // is not an ear if another vertex falls in this triangle\n\n p = vertices[j];\n\n if (isPointInTriangle(p, vb, va, vc)) {\n isEar = false;\n break;\n }\n } // skip\n\n\n if (!isEar) continue; // found ear\n\n triangles.push([vb, va, vc]); // no longer interested in this index\n\n indexList.splice(i, 1);\n break;\n }\n } // finale triangle\n\n\n triangles.push([vertices[indexList[0]], vertices[indexList[1]], vertices[indexList[2]]]);\n return triangles;\n};\n\nvar createPathSegment = function createPathSegment(vertices, index, a, b, c) {\n var ab = vectorNormalize(vectorCreate(b.x - a.x, b.y - a.y));\n var bc = vectorNormalize(vectorCreate(c.x - b.x, c.y - b.y));\n var tangent = vectorNormalize(vectorCreate(ab.x + bc.x, ab.y + bc.y));\n var miter = vectorCreate(-tangent.y, tangent.x);\n var normal = vectorCreate(-ab.y, ab.x); // limit miter length (TEMP fix to prevent spikes, should eventually add caps)\n\n var miterLength = Math.min(1 / vectorDot(miter, normal), 5);\n vertices[index] = b.x;\n vertices[index + 1] = b.y;\n vertices[index + 2] = miter.x * miterLength;\n vertices[index + 3] = miter.y * miterLength;\n vertices[index + 4] = -1;\n vertices[index + 5] = b.x;\n vertices[index + 6] = b.y;\n vertices[index + 7] = miter.x * miterLength;\n vertices[index + 8] = miter.y * miterLength;\n vertices[index + 9] = 1;\n};\n\nvar createPathVertices = function createPathVertices(points, close) {\n var a,\n b,\n c,\n i = 0;\n var l = points.length;\n var stride = 10;\n var vertices = new Float32Array((close ? l + 1 : l) * stride);\n var first = points[0];\n var last = points[l - 1];\n\n for (i = 0; i < l; i++) {\n a = points[i - 1];\n b = points[i];\n c = points[i + 1]; // if previous point not available use inverse vector to next point\n\n if (!a) a = close ? last : vectorCreate(b.x + (b.x - c.x), b.y + (b.y - c.y)); // if next point not available use inverse vector from previous point\n\n if (!c) c = close ? first : vectorCreate(b.x + (b.x - a.x), b.y + (b.y - a.y));\n createPathSegment(vertices, i * stride, a, b, c);\n }\n\n if (close) createPathSegment(vertices, l * stride, last, first, points[1]);\n return vertices;\n};\n\nvar rectPointsToVertices = function rectPointsToVertices(points) {\n // [tl, tr, br, bl]\n // B D\n // | \\ |\n // A C\n var vertices = new Float32Array(8);\n vertices[0] = points[3].x;\n vertices[1] = points[3].y;\n vertices[2] = points[0].x;\n vertices[3] = points[0].y;\n vertices[4] = points[2].x;\n vertices[5] = points[2].y;\n vertices[6] = points[1].x;\n vertices[7] = points[1].y;\n return vertices;\n};\n\nvar createRectPoints = function createRectPoints(rect) {\n var rotation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var flipX = arguments.length > 2 ? arguments[2] : undefined;\n var flipY = arguments.length > 3 ? arguments[3] : undefined;\n var corners = rectGetCorners(rect);\n var cx = rect.x + rect.width * 0.5;\n var cy = rect.y + rect.height * 0.5;\n if (flipX || flipY) vectorsFlip(corners, flipX, flipY, cx, cy);\n if (rotation !== 0) vectorsRotate(corners, rotation, cx, cy);\n return corners;\n};\n\nvar createEllipseOutline = function createEllipseOutline(x, y, width, height, rotation, flipX, flipY) {\n var rx = Math.abs(width) * 0.5;\n var ry = Math.abs(height) * 0.5;\n var size = Math.abs(width) + Math.abs(height);\n var precision = Math.max(20, Math.round(size / 6));\n return ellipseToPolygon(vectorCreate(x + rx, y + ry), rx, ry, rotation, flipX, flipY, precision);\n};\n\nvar createRectOutline = function createRectOutline(x, y, width, height, rotation, cornerRadius, flipX, flipY) {\n var points = [];\n\n if (cornerRadius.every(function (v) {\n return v === 0;\n })) {\n points.push(vectorCreate(x, y), // top left corner\n vectorCreate(x + width, y), // top right corner\n vectorCreate(x + width, y + height), // bottom right corner\n vectorCreate(x, y + height) // bottom left corner\n );\n } else {\n var _cornerRadius = _slicedToArray(cornerRadius, 4),\n tl = _cornerRadius[0],\n tr = _cornerRadius[1],\n bl = _cornerRadius[2],\n br = _cornerRadius[3];\n\n var l = x;\n\n var _r4 = x + width;\n\n var _t3 = y;\n var b = y + height; // start at end of top left corner\n\n points.push(vectorCreate(l + tl, _t3));\n pushRectCornerPoints(points, _r4 - tr, _t3 + tr, tr, -1); // move to bottom right corner\n\n points.push(vectorCreate(_r4, _t3 + tr));\n pushRectCornerPoints(points, _r4 - br, b - br, br, 0); // move to bottom left corner\n\n points.push(vectorCreate(_r4 - br, b));\n pushRectCornerPoints(points, l + bl, b - bl, bl, 1); // move to top left corner\n\n points.push(vectorCreate(l, b - bl));\n pushRectCornerPoints(points, l + tl, _t3 + tl, tl, 2);\n }\n\n if (flipX || flipY) vectorsFlip(points, flipX, flipY, x + width * 0.5, y + height * 0.5);\n if (rotation) vectorsRotate(points, rotation, x + width * 0.5, y + height * 0.5);\n return points;\n};\n\nvar pushRectCornerPoints = function pushRectCornerPoints(points, x, y, radius, offset) {\n var precision = Math.min(20, Math.max(4, Math.round(radius / 2)));\n var p = 0;\n var s = 0;\n var rx = 0;\n var ry = 0;\n var i = 0;\n\n for (; i < precision; i++) {\n p = i / precision;\n s = offset * HALF_PI + p * HALF_PI;\n rx = radius * Math.cos(s);\n ry = radius * Math.sin(s);\n points.push(vectorCreate(x + rx, y + ry));\n }\n};\n\nvar limit = null;\n\nvar getWebGLTextureSizeLimit = function getWebGLTextureSizeLimit() {\n if (limit !== null) return limit;\n var canvas = h('canvas');\n var gl = getWebGLContext(canvas);\n limit = gl ? gl.getParameter(gl.MAX_TEXTURE_SIZE) : undefined;\n releaseCanvas(canvas);\n canvas = undefined;\n return limit;\n};\n\nvar isChrome = function isChrome() {\n return isBrowser() && !!window['chrome'];\n}; // prettier-ignore\n// B D\n// | \\ |\n// A C\n\n\nvar RECT_UV = new Float32Array([0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0 // D\n]); // prettier-ignore\n// BROWSER BUG FIX: Here to fix Firefox video texture rotation issue\n\nvar RECT_UV_ROTATED = new Float32Array([1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0 // D\n]);\nvar SHOULD_APPLY_ROTATED_UV_TO_VIDEO_TEXTURES = isBrowser() && isFirefox();\nvar CLARITY_IDENTITY = [0, 0, 0, 0, 1, 0, 0, 0, 0];\nvar COLOR_MATRIX_IDENTITY$1 = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];\nvar TEXTURE_TRANSPARENT_INDEX = 0;\nvar TEXTURE_PREVIEW_BLEND_INDEX = 1;\nvar TEXTURE_PREVIEW_OVERLAY_INDEX = 2;\nvar TEXTURE_PREVIEW_INDEX = 3;\nvar TEXTURE_SHAPE_INDEX = 4;\nvar COLOR_TRANSPARENT = [0, 0, 0, 0];\nvar NO_CORNERS = [0, 0, 0, 0];\n\nvar calculateBackgroundUVMap = function calculateBackgroundUVMap(width, height, backgroundSize, backgroundPosition, viewPixelDensity) {\n if (!backgroundSize || !backgroundPosition) return RECT_UV;\n var x = backgroundPosition.x / backgroundSize.width;\n var y = backgroundPosition.y / backgroundSize.height;\n var w = width / backgroundSize.width / viewPixelDensity;\n var h = height / backgroundSize.height / viewPixelDensity;\n w -= x;\n h -= y; // prettier-ignore\n // B D\n // | \\ |\n // A C\n // bottom left\n\n var ax = -x;\n var ay = h; // top left\n\n var bx = -x;\n var by = -y; // bottom right\n\n var cx = w;\n var cy = h; // top right\n\n var dx = w;\n var dy = -y;\n return new Float32Array([ax, ay, bx, by, cx, cy, dx, dy // D\n ]);\n};\n\nvar limitCornerRadius = function limitCornerRadius(r, size) {\n return Math.floor(clamp(r, 0, Math.min((size.width - 1) * 0.5, (size.height - 1) * 0.5)));\n};\n\nvar createWebGLCanvas = function createWebGLCanvas(canvas) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // defaults\n var _options$alpha = options.alpha,\n alpha = _options$alpha === void 0 ? false : _options$alpha; // go\n\n var viewSize = {\n width: 0,\n height: 0\n };\n var viewSizeVisual = {\n width: 0,\n height: 0\n };\n var textureSizeLimit = getWebGLTextureSizeLimit() || 1024;\n var viewAspectRatio;\n var viewPixelDensity;\n var pathSharpness;\n var overlayMatrixCanvas = mat4Create();\n var imageFrameBuffer = mat4Create();\n var overlayMatrix;\n var maskTop;\n var maskRight;\n var maskBottom;\n var maskLeft;\n var maskOpacity;\n var maskBounds;\n var IMAGE_MASK_FEATHER; // updated when viewport is resized\n\n var RECT_MASK_FEATHER;\n var CANVAS_COLOR_R = 0;\n var CANVAS_COLOR_G = 0;\n var CANVAS_COLOR_B = 0;\n var CANVAS_COLOR_A = 1;\n var indexTextureMap = new Map([]); // resize view\n\n var resize = function resize(width, height, pixelDensity) {\n // density (min is 1 to prevent draw issues when zooming out webview)\n viewPixelDensity = Math.max(1, pixelDensity); // set path sharpness factor so paths look a little nicer on low res displays\n\n pathSharpness = viewPixelDensity === 1 ? 0.75 : 1; // visual size\n\n viewSizeVisual.width = width;\n viewSizeVisual.height = height; // size\n\n viewSize.width = width * viewPixelDensity;\n viewSize.height = height * viewPixelDensity; // calculate the aspect ratio, we use this to determine quad size\n\n viewAspectRatio = getAspectRatio(viewSize.width, viewSize.height); // sync dimensions with image data\n\n canvas.width = viewSize.width;\n canvas.height = viewSize.height; // update canvas markup matrix\n\n mat4Ortho(overlayMatrixCanvas, 0, viewSize.width, viewSize.height, 0, -1, 1);\n IMAGE_MASK_FEATHER = [1, 0, 1, 0, 1, viewSizeVisual.width, 1, viewSizeVisual.width];\n };\n\n var enablePreviewStencil = function enablePreviewStencil() {\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.REPLACE);\n gl.stencilFunc(gl.ALWAYS, 1, 0xff);\n gl.stencilMask(0xff);\n };\n\n var applyPreviewStencil = function applyPreviewStencil() {\n gl.stencilFunc(gl.EQUAL, 1, 0xff);\n gl.stencilMask(0x00);\n };\n\n var disablePreviewStencil = function disablePreviewStencil() {\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n gl.stencilFunc(gl.ALWAYS, 1, 0xff);\n gl.stencilMask(0xff);\n }; // fov is fixed\n\n\n var FOV = degToRad(30);\n var FOV_TAN_HALF = Math.tan(FOV / 2); // get gl drawing context\n\n var gl = getWebGLContext(canvas, {\n alpha: alpha,\n antialias: false,\n premultipliedAlpha: true,\n stencil: true\n }); // no drawing context received, exit\n\n if (!gl) return; // enable derivatives\n\n gl.getExtension('OES_standard_derivatives'); // toggle gl settings\n\n gl.disable(gl.DEPTH_TEST); // need stencil to draw overlay on preview only\n\n gl.enable(gl.STENCIL_TEST); // set blend mode, we need it for alpha blending\n\n gl.enable(gl.BLEND);\n /*\n https://webglfundamentals.org/webgl/lessons/webgl-and-alpha.html\n most if not all Canvas 2D implementations work with pre-multiplied alpha.\n That means when you transfer them to WebGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL\n is false WebGL will convert them back to un-premultipiled.\n With pre-multiplied alpha on, [1, .5, .5, 0] does not exist, it's always [0, 0, 0, 0]\n */\n\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !alpha && isFirefox() ? false : true); // something to look into:\n // gl.UNPACK_COLORSPACE_CONVERSION_WEBGL\n // stencil test always passes\n\n disablePreviewStencil(); // let's create textures\n\n var transparentTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, transparentTexture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, // width\n 1, // height\n 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(COLOR_TRANSPARENT) // transparent background\n );\n indexTextureMap.set(TEXTURE_TRANSPARENT_INDEX, transparentTexture); // create image markup texture and framebuffer\n\n var imageOverlayTexture = gl.createTexture();\n indexTextureMap.set(TEXTURE_PREVIEW_OVERLAY_INDEX, imageOverlayTexture);\n var overlayFramebuffer = gl.createFramebuffer(); // create image blend texture and framebuffer\n\n var imageBlendTexture = gl.createTexture();\n indexTextureMap.set(TEXTURE_PREVIEW_BLEND_INDEX, imageBlendTexture);\n var blendFramebuffer = gl.createFramebuffer(); // #region image\n // create default pixel drawing program, supports what we need\n\n var imageShader = createShader(gl, imageVertexShader, imageFragmentShader, ['aPosition', 'aTexCoord'], ['uMatrix', 'uTexture', 'uTextureBlend', 'uTextureOverlay', 'uTextureSize', 'uColorGamma', 'uColorVignette', 'uColorOffset', 'uColorMatrix', 'uClarityKernel', 'uClarityKernelWeight', 'uOpacity', 'uMaskOpacity', 'uMaskBounds', 'uMaskCornerRadius', 'uMaskFeather', 'uOverlayColor', 'uAntialias']); // create image buffers\n\n var imagePositionsBuffer = gl.createBuffer();\n var texturePositionsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texturePositionsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, RECT_UV, gl.STATIC_DRAW); // BROWSER BUG FIX: here to fix firefox video texture rotation issue\n\n var texturePositionsRotatedBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texturePositionsRotatedBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, RECT_UV_ROTATED, gl.STATIC_DRAW);\n\n var drawImage = function drawImage(texture, textureSize, originX, originY, translateX, translateY, rotateX, rotateY, rotateZ, scale) {\n var colorMatrix = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : COLOR_MATRIX_IDENTITY$1;\n var opacity = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : 1;\n var clarity = arguments.length > 12 ? arguments[12] : undefined;\n var gamma = arguments.length > 13 && arguments[13] !== undefined ? arguments[13] : 1;\n var vignette = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : 0;\n var maskFeather = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : IMAGE_MASK_FEATHER;\n var maskCornerRadius = arguments.length > 16 && arguments[16] !== undefined ? arguments[16] : NO_CORNERS;\n var imageOverlayColor = arguments.length > 17 && arguments[17] !== undefined ? arguments[17] : COLOR_TRANSPARENT;\n var enableOverlay = arguments.length > 18 && arguments[18] !== undefined ? arguments[18] : false;\n var enableBlend = arguments.length > 19 && arguments[19] !== undefined ? arguments[19] : false;\n var enableAntialiasing = arguments.length > 20 && arguments[20] !== undefined ? arguments[20] : true;\n // update image texture\n var imageWidth = textureSize.width * viewPixelDensity;\n var imageHeight = textureSize.height * viewPixelDensity;\n var l = imageWidth * -0.5;\n var t = imageHeight * 0.5;\n var r = imageWidth * 0.5;\n var b = imageHeight * -0.5; // prettier-ignore\n // B D\n // | \\ |\n // A C\n\n var imagePositions = new Float32Array([l, b, 0, l, t, 0, r, b, 0, r, t, 0 // D\n ]);\n gl.bindBuffer(gl.ARRAY_BUFFER, imagePositionsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, imagePositions, gl.STATIC_DRAW); // move image backwards so it's presented in actual pixel size\n\n var viewZ = // 1. we calculate the z offset required to have the\n // image height match the view height\n\n /* /|\n / |\n / | height / 2\n / |\n f / 2 /__z_|\n \\ |\n \\ |\n \\ |\n \\ |\n \\|\n */\n textureSize.height / 2 / FOV_TAN_HALF * ( // 2. we want to render the image at the actual height, viewsize / height gets us results in a 1:1 presentation\n viewSize.height / textureSize.height) * // 3. z has to be negative, therefor multiply by -1\n -1; // convert to pixel density\n\n translateX *= viewPixelDensity;\n translateY *= viewPixelDensity;\n originX *= viewPixelDensity;\n originY *= viewPixelDensity; // get shader params\n\n var program = imageShader.program,\n locations = imageShader.locations; // apply\n\n var matrix = mat4Create();\n mat4Perspective(matrix, FOV, viewAspectRatio, 1, -viewZ * 2); // move image\n\n mat4Translate(matrix, translateX, -translateY, viewZ); // set rotation origin in view\n\n mat4Translate(matrix, originX, -originY, 0); // rotate image\n\n mat4RotateZ(matrix, -rotateZ); // resize\n\n mat4Scale(matrix, scale); // reset rotation origin\n\n mat4Translate(matrix, -originX, originY, 0); // flip\n\n mat4RotateY(matrix, rotateY);\n mat4RotateX(matrix, rotateX); //\n // tell context to draw preview\n //\n\n gl.useProgram(program);\n gl.enableVertexAttribArray(locations.aPosition);\n gl.enableVertexAttribArray(locations.aTexCoord); // set up texture\n\n gl.uniform1i(locations.uTexture, TEXTURE_PREVIEW_INDEX);\n gl.uniform2f(locations.uTextureSize, textureSize.width, textureSize.height);\n gl.activeTexture(gl.TEXTURE0 + TEXTURE_PREVIEW_INDEX);\n gl.bindTexture(gl.TEXTURE_2D, texture); // set up blend texture\n\n var blendTextureIndex = enableBlend ? TEXTURE_PREVIEW_BLEND_INDEX : TEXTURE_TRANSPARENT_INDEX;\n var blendTexture = indexTextureMap.get(blendTextureIndex);\n gl.uniform1i(locations.uTextureBlend, blendTextureIndex);\n gl.activeTexture(gl.TEXTURE0 + blendTextureIndex);\n gl.bindTexture(gl.TEXTURE_2D, blendTexture); // set up markup texture\n\n var overlayTextureIndex = enableOverlay ? TEXTURE_PREVIEW_OVERLAY_INDEX : TEXTURE_TRANSPARENT_INDEX;\n var overlayTexture = indexTextureMap.get(overlayTextureIndex);\n gl.uniform1i(locations.uTextureOverlay, overlayTextureIndex);\n gl.activeTexture(gl.TEXTURE0 + overlayTextureIndex);\n gl.bindTexture(gl.TEXTURE_2D, overlayTexture); // set up buffers\n\n gl.bindBuffer(gl.ARRAY_BUFFER, imagePositionsBuffer);\n gl.vertexAttribPointer(locations.aPosition, 3, gl.FLOAT, false, 0, 0); // BROWSER BUG FIX: Here to fix Firefox bug with rotated video textures\n\n var rotateUV = SHOULD_APPLY_ROTATED_UV_TO_VIDEO_TEXTURES && textureIsRotatedVideo(texture);\n gl.bindBuffer(gl.ARRAY_BUFFER, rotateUV ? texturePositionsRotatedBuffer : texturePositionsBuffer);\n gl.vertexAttribPointer(locations.aTexCoord, 2, gl.FLOAT, false, 0, 0); // update matrix\n\n gl.uniformMatrix4fv(locations.uMatrix, false, matrix); // overlay color\n\n gl.uniform4fv(locations.uOverlayColor, imageOverlayColor); // convolution\n\n var clarityWeight;\n\n if (!clarity || arrayEqual(clarity, CLARITY_IDENTITY)) {\n clarity = CLARITY_IDENTITY;\n clarityWeight = -1;\n } else {\n clarityWeight = clarity.reduce(function (prev, curr) {\n return prev + curr;\n }, 0);\n clarityWeight = clarityWeight <= 0 ? 1 : clarityWeight;\n }\n\n gl.uniform1fv(locations.uClarityKernel, clarity);\n gl.uniform1f(locations.uClarityKernelWeight, clarityWeight);\n gl.uniform1f(locations.uColorGamma, 1.0 / gamma);\n gl.uniform1f(locations.uColorVignette, vignette);\n gl.uniform1i(locations.uAntialias, enableAntialiasing ? 1 : 0); // set color matrix values\n\n gl.uniform4f(locations.uColorOffset, colorMatrix[4], colorMatrix[9], colorMatrix[14], colorMatrix[19]);\n gl.uniformMatrix4fv(locations.uColorMatrix, false, [colorMatrix[0], colorMatrix[1], colorMatrix[2], colorMatrix[3], colorMatrix[5], colorMatrix[6], colorMatrix[7], colorMatrix[8], colorMatrix[10], colorMatrix[11], colorMatrix[12], colorMatrix[13], colorMatrix[15], colorMatrix[16], colorMatrix[17], colorMatrix[18]]); // opacity level\n\n gl.uniform1f(locations.uOpacity, opacity); // mask\n\n gl.uniform1f(locations.uMaskOpacity, maskOpacity);\n gl.uniform1fv(locations.uMaskBounds, maskBounds);\n gl.uniform1fv(locations.uMaskCornerRadius, maskCornerRadius.map(function (v) {\n return v * viewPixelDensity;\n }));\n gl.uniform1fv(locations.uMaskFeather, maskFeather.map(function (v, i) {\n return i % 2 === 0 ? v : v * viewPixelDensity;\n }));\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n gl.disableVertexAttribArray(locations.aPosition);\n gl.disableVertexAttribArray(locations.aTexCoord);\n }; //#endregion\n // #region path\n\n\n var pathShader = createShader(gl, pathVertexShader, pathFragmentShader, ['aPosition', 'aNormal', 'aMiter'], ['uColor', 'uCanvasColor', 'uMatrix', 'uWidth', 'uSharpness', 'uMaskBounds', 'uMaskOpacity']);\n var pathBuffer = gl.createBuffer(); // this fixes a render issue with Chrome 113 (#1176)\n // issue was that a line is drawn from crop corner to top left\n\n if (isChrome()) {\n gl.bindBuffer(gl.ARRAY_BUFFER, pathBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, 1, gl.DYNAMIC_DRAW);\n }\n\n var strokePath = function strokePath(points, width, color) {\n var close = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var program = pathShader.program,\n locations = pathShader.locations;\n gl.useProgram(program);\n gl.enableVertexAttribArray(locations.aPosition);\n gl.enableVertexAttribArray(locations.aNormal);\n gl.enableVertexAttribArray(locations.aMiter);\n var vertices = createPathVertices(points, close);\n var stride = Float32Array.BYTES_PER_ELEMENT * 5;\n var normalOffset = Float32Array.BYTES_PER_ELEMENT * 2; // at position 2\n\n var miterOffset = Float32Array.BYTES_PER_ELEMENT * 4; // at position 4\n\n gl.uniform1f(locations.uWidth, width);\n gl.uniform1f(locations.uSharpness, pathSharpness);\n gl.uniform4fv(locations.uColor, color);\n gl.uniformMatrix4fv(locations.uMatrix, false, overlayMatrix);\n gl.uniform4f(locations.uCanvasColor, CANVAS_COLOR_R, CANVAS_COLOR_G, CANVAS_COLOR_B, CANVAS_COLOR_A);\n gl.uniform1fv(locations.uMaskBounds, maskBounds);\n gl.uniform1f(locations.uMaskOpacity, maskOpacity);\n gl.bindBuffer(gl.ARRAY_BUFFER, pathBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.vertexAttribPointer(locations.aPosition, 2, gl.FLOAT, false, stride, 0);\n gl.vertexAttribPointer(locations.aNormal, 2, gl.FLOAT, false, stride, normalOffset);\n gl.vertexAttribPointer(locations.aMiter, 1, gl.FLOAT, false, stride, miterOffset);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertices.length / 5);\n gl.disableVertexAttribArray(locations.aPosition);\n gl.disableVertexAttribArray(locations.aNormal);\n gl.disableVertexAttribArray(locations.aMiter);\n }; //#endregion\n // #region triangle\n\n\n var triangleShader = createShader(gl, triangleVertexShader, triangleFragmentShader, ['aPosition'], ['uColor', 'uCanvasColor', 'uMatrix', 'uMaskBounds', 'uMaskOpacity']);\n var trianglesBuffer = gl.createBuffer();\n\n var fillTriangles = function fillTriangles(vertices, backgroundColor) {\n var program = triangleShader.program,\n locations = triangleShader.locations;\n gl.useProgram(program);\n gl.enableVertexAttribArray(locations.aPosition);\n gl.uniform4fv(locations.uColor, backgroundColor);\n gl.uniformMatrix4fv(locations.uMatrix, false, overlayMatrix);\n gl.uniform1fv(locations.uMaskBounds, maskBounds);\n gl.uniform1f(locations.uMaskOpacity, maskOpacity);\n gl.uniform4f(locations.uCanvasColor, CANVAS_COLOR_R, CANVAS_COLOR_G, CANVAS_COLOR_B, CANVAS_COLOR_A);\n gl.bindBuffer(gl.ARRAY_BUFFER, trianglesBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.vertexAttribPointer(locations.aPosition, 2, gl.FLOAT, false, 0, 0);\n gl.drawArrays(gl.TRIANGLES, 0, vertices.length / 2);\n gl.disableVertexAttribArray(locations.aPosition);\n return vertices;\n }; // const fillTriangles: (vertices: Float32Array, backgroundColor: number[]) => {};\n //#endregion\n // #region rect\n\n\n var rectShaderAttributes = ['aPosition', 'aTexCoord', 'aRectCoord'];\n var rectShaderUniforms = ['uTexture', 'uColor', 'uMatrix', 'uCanvasColor', 'uTextureColor', 'uTextureOpacity', 'uRepeat', 'uPosition', 'uSize', 'uMaskBounds', 'uMaskOpacity', 'uMaskFeather', 'uCornerRadius', 'uInverted', 'uEdgeFeather'];\n var rectShader = createShader(gl, rectVertexShader, rectFragmentShader, rectShaderAttributes, rectShaderUniforms);\n var rectBuffer = gl.createBuffer();\n var rectTextureBuffer = gl.createBuffer();\n var rectCornerBuffer = gl.createBuffer();\n\n var fillRect = function fillRect(vertices, width, height, cornerRadius, backgroundColor) {\n var backgroundImage = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : transparentTexture;\n var backgroundRepeat = arguments.length > 6 ? arguments[6] : undefined;\n var opacity = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1.0;\n var colorFilter = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : COLOR_TRANSPARENT;\n var uv = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : RECT_UV;\n var maskFeather = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : RECT_MASK_FEATHER;\n var feather = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : 1;\n var inverted = arguments.length > 12 ? arguments[12] : undefined;\n var program = rectShader.program,\n locations = rectShader.locations;\n gl.useProgram(program);\n gl.enableVertexAttribArray(locations.aPosition);\n gl.enableVertexAttribArray(locations.aTexCoord);\n gl.enableVertexAttribArray(locations.aRectCoord);\n gl.uniform4fv(locations.uColor, backgroundColor);\n gl.uniform2fv(locations.uSize, [width, height]);\n gl.uniform2fv(locations.uPosition, [vertices[2], vertices[3]]);\n gl.uniform2fv(locations.uRepeat, backgroundRepeat);\n gl.uniform1i(locations.uInverted, inverted ? 1 : 0);\n gl.uniform1fv(locations.uCornerRadius, cornerRadius);\n gl.uniform4f(locations.uCanvasColor, CANVAS_COLOR_R, CANVAS_COLOR_G, CANVAS_COLOR_B, CANVAS_COLOR_A); // mask\n\n gl.uniform1fv(locations.uMaskFeather, maskFeather.map(function (v, i) {\n return i % 2 === 0 ? v : v * viewPixelDensity;\n }));\n gl.uniform1fv(locations.uMaskBounds, maskBounds);\n gl.uniform1f(locations.uMaskOpacity, maskOpacity);\n gl.uniform1f(locations.uEdgeFeather, Math.max(0, feather));\n gl.uniformMatrix4fv(locations.uMatrix, false, overlayMatrix);\n gl.uniform1i(locations.uTexture, TEXTURE_SHAPE_INDEX);\n gl.uniform4fv(locations.uTextureColor, colorFilter);\n gl.uniform1f(locations.uTextureOpacity, opacity);\n gl.activeTexture(gl.TEXTURE0 + TEXTURE_SHAPE_INDEX);\n gl.bindTexture(gl.TEXTURE_2D, backgroundImage);\n gl.bindBuffer(gl.ARRAY_BUFFER, rectTextureBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, uv, gl.STATIC_DRAW);\n gl.vertexAttribPointer(locations.aTexCoord, 2, gl.FLOAT, false, 0, 0); // we use these coordinates combined with the size of the rect to interpolate and alias edges\n\n gl.bindBuffer(gl.ARRAY_BUFFER, rectCornerBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, RECT_UV, gl.STATIC_DRAW);\n gl.vertexAttribPointer(locations.aRectCoord, 2, gl.FLOAT, false, 0, 0);\n gl.bindBuffer(gl.ARRAY_BUFFER, rectBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.vertexAttribPointer(locations.aPosition, 2, gl.FLOAT, false, 0, 0);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertices.length / 2);\n gl.disableVertexAttribArray(locations.aPosition);\n gl.disableVertexAttribArray(locations.aTexCoord);\n gl.disableVertexAttribArray(locations.aRectCoord);\n return vertices;\n }; //#endregion\n // #region ellipse\n\n\n var ellipseShader = createShader(gl, ellipseVertexShader, ellipseFragmentShader, ['aPosition', 'aTexCoord'], ['uTexture', 'uTextureOpacity', 'uTextureAdjust', 'uRepeat', 'uColor', 'uCanvasColor', 'uMatrix', 'uRadius', 'uInverted', 'uMaskBounds', 'uMaskOpacity']);\n var ellipseBuffer = gl.createBuffer();\n var ellipseTextureBuffer = gl.createBuffer();\n\n var fillEllipse = function fillEllipse(vertices, width, height, backgroundColor) {\n var backgroundImage = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : transparentTexture;\n var backgroundSize = arguments.length > 5 ? arguments[5] : undefined;\n var uv = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : RECT_UV;\n var opacity = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1.0;\n var inverted = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n var program = ellipseShader.program,\n locations = ellipseShader.locations;\n gl.useProgram(program);\n gl.enableVertexAttribArray(locations.aPosition);\n gl.enableVertexAttribArray(locations.aTexCoord);\n gl.uniformMatrix4fv(locations.uMatrix, false, overlayMatrix);\n gl.uniform2fv(locations.uRadius, [width * 0.5, height * 0.5]);\n gl.uniform2fv(locations.uTextureAdjust, [backgroundSize.width / (width / viewPixelDensity), backgroundSize.height / (height / viewPixelDensity)]);\n gl.uniform1i(locations.uInverted, inverted ? 1 : 0);\n gl.uniform4fv(locations.uColor, backgroundColor);\n gl.uniform4f(locations.uCanvasColor, CANVAS_COLOR_R, CANVAS_COLOR_G, CANVAS_COLOR_B, CANVAS_COLOR_A);\n gl.uniform2fv(locations.uRepeat, [1, 1]);\n gl.uniform1fv(locations.uMaskBounds, maskBounds);\n gl.uniform1f(locations.uMaskOpacity, maskOpacity);\n gl.uniform1i(locations.uTexture, TEXTURE_SHAPE_INDEX);\n gl.uniform1f(locations.uTextureOpacity, opacity);\n gl.activeTexture(gl.TEXTURE0 + TEXTURE_SHAPE_INDEX);\n gl.bindTexture(gl.TEXTURE_2D, backgroundImage);\n gl.bindBuffer(gl.ARRAY_BUFFER, ellipseTextureBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, uv, gl.STATIC_DRAW);\n gl.vertexAttribPointer(locations.aTexCoord, 2, gl.FLOAT, false, 0, 0);\n gl.bindBuffer(gl.ARRAY_BUFFER, ellipseBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.vertexAttribPointer(locations.aPosition, 2, gl.FLOAT, false, 0, 0);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertices.length / 2);\n gl.disableVertexAttribArray(locations.aPosition);\n gl.disableVertexAttribArray(locations.aTexCoord);\n }; //#endregion\n //\n // draw calls\n //\n\n\n var drawPath = function drawPath(points) {\n var rotation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var flipX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var flipY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var // not implemented yet\n strokeWidth = arguments.length > 4 ? arguments[4] : undefined;\n var strokeColor = arguments.length > 5 ? arguments[5] : undefined;\n var strokeClose = arguments.length > 6 ? arguments[6] : undefined;\n var backgroundColor = arguments.length > 7 ? arguments[7] : undefined;\n var opacity = arguments.length > 8 ? arguments[8] : undefined;\n // is no line\n if (points.length < 2) return; // manipulate points\n\n var computedPoints = points.map(function (p) {\n return {\n x: p.x * viewPixelDensity,\n y: p.y * viewPixelDensity\n };\n });\n var computedStrokeWidth = strokeWidth * viewPixelDensity; // stroke\n\n if (computedStrokeWidth > 0) strokePath(computedPoints, computedStrokeWidth, applyOpacity(strokeColor, opacity), strokeClose); // need to fill polygon?\n\n if (computedPoints.length < 3 || !backgroundColor || backgroundColor[3] === 0 || !strokeClose) return;\n var triangles = triangulate(computedPoints);\n var vertices = new Float32Array(triangles.length * 6);\n triangles.forEach(function (_ref158, i) {\n var _ref159 = _slicedToArray(_ref158, 3),\n a = _ref159[0],\n b = _ref159[1],\n c = _ref159[2];\n\n var index = i * 6;\n vertices[index + 0] = a.x;\n vertices[index + 1] = a.y;\n vertices[index + 2] = b.x;\n vertices[index + 3] = b.y;\n vertices[index + 4] = c.x;\n vertices[index + 5] = c.y;\n });\n fillTriangles(vertices, applyOpacity(backgroundColor, opacity));\n };\n\n var drawRect = function drawRect(rect) {\n var rotation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var flipX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var flipY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var cornerRadius = arguments.length > 4 ? arguments[4] : undefined;\n var backgroundColor = arguments.length > 5 ? arguments[5] : undefined;\n var backgroundImage = arguments.length > 6 ? arguments[6] : undefined;\n var backgroundSize = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;\n var backgroundPosition = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : undefined;\n var backgroundRepeat = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n var backgroundUVMap = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : undefined;\n var strokeWidth = arguments.length > 11 ? arguments[11] : undefined;\n var strokeColor = arguments.length > 12 ? arguments[12] : undefined;\n var opacity = arguments.length > 13 ? arguments[13] : undefined;\n var maskFeather = arguments.length > 14 && arguments[14] !== undefined ? arguments[14] : undefined;\n var feather = arguments.length > 15 && arguments[15] !== undefined ? arguments[15] : 1 / viewPixelDensity;\n var colorize = arguments.length > 16 ? arguments[16] : undefined;\n var inverted = arguments.length > 17 ? arguments[17] : undefined;\n // clone first\n var rectOut = rectMultiply(rectClone$1(rect), viewPixelDensity); // has radius, doesn't matter for coordinates\n\n var cornerRadiusOut = cornerRadius.map(function (r) {\n return limitCornerRadius(r || 0, rect);\n }).map(function (r) {\n return r * viewPixelDensity;\n }); // should fill\n\n if (backgroundColor || backgroundImage) {\n // adjust for edge anti-aliasing, if we don't do this the\n // visible rectangle will be 1 pixel smaller than the actual rectangle\n var rectFill = rectClone$1(rectOut);\n rectFill.x -= 0.5;\n rectFill.y -= 0.5;\n rectFill.width += 1;\n rectFill.height += 1;\n var points = createRectPoints(rectFill, rotation, flipX, flipY);\n var vertices = rectPointsToVertices(points);\n var color;\n\n if (colorize) {\n color = applyOpacity(colorize); // as 0 transparancy is used to test if the colorize filter should be applied we set it to 0.001\n\n if (color[3] === 0) color[3] = 0.001;\n } // calculate repeat count\n\n\n var fillRepeat = backgroundSize && backgroundRepeat ? [rectFill.width / backgroundSize.width, rectFill.height / backgroundSize.height] : [1, 1];\n fillRect(vertices, rectFill.width, rectFill.height, cornerRadiusOut, applyOpacity(backgroundColor, opacity), backgroundImage, fillRepeat, opacity, color, backgroundUVMap ? new Float32Array(backgroundUVMap) : calculateBackgroundUVMap(rectFill.width, rectFill.height, backgroundSize, backgroundPosition, viewPixelDensity), maskFeather, feather * viewPixelDensity, inverted);\n } // should draw outline\n\n\n if (strokeWidth) {\n // fixes issue where stroke would render weirdly\n strokeWidth = Math.min(strokeWidth, rectOut.width, rectOut.height);\n strokePath( // rect out is already multiplied by pixel density\n createRectOutline(rectOut.x, rectOut.y, rectOut.width, rectOut.height, rotation, cornerRadiusOut, flipX, flipY), strokeWidth * viewPixelDensity, applyOpacity(strokeColor, opacity), true);\n }\n };\n\n var drawEllipse = function drawEllipse(center, rx, ry, rotation, flipX, flipY, backgroundColor, backgroundImage) {\n var backgroundSize = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : undefined;\n var backgroundPosition = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : undefined;\n var backgroundUVMap = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : undefined;\n var strokeWidth = arguments.length > 11 ? arguments[11] : undefined;\n var strokeColor = arguments.length > 12 ? arguments[12] : undefined;\n var opacity = arguments.length > 13 ? arguments[13] : undefined;\n var inverted = arguments.length > 14 ? arguments[14] : undefined;\n var rectOut = rectMultiply(rectCreate(center.x - rx, center.y - ry, rx * 2, ry * 2), viewPixelDensity);\n\n if (backgroundColor || backgroundImage) {\n // adjust for edge anti-aliasing, if we don't do this the\n // visible rectangle will be 1 pixel smaller than the actual rectangle\n var rectFill = rectClone$1(rectOut);\n\n if (!inverted) {\n rectFill.x -= 0.5;\n rectFill.y -= 0.5;\n rectFill.width += 1.0;\n rectFill.height += 1.0;\n }\n\n var points = createRectPoints(rectFill, rotation, flipX, flipY);\n var vertices = rectPointsToVertices(points);\n fillEllipse(vertices, rectFill.width, rectFill.height, applyOpacity(backgroundColor, opacity), backgroundImage, backgroundSize || sizeCreate(rectFill.width / viewPixelDensity, rectFill.height / viewPixelDensity), backgroundUVMap ? new Float32Array(backgroundUVMap) : calculateBackgroundUVMap(rectFill.width, rectFill.height, backgroundSize, backgroundPosition, viewPixelDensity), opacity, inverted);\n }\n\n if (strokeWidth) {\n strokePath( // rect out is already multiplied by pixeldensity\n createEllipseOutline(rectOut.x, rectOut.y, rectOut.width, rectOut.height, rotation, flipX, flipY), strokeWidth * viewPixelDensity, applyOpacity(strokeColor, opacity), true);\n }\n }; //#endregion\n\n\n var glTextures = new Map();\n var imageFramebufferSize = {};\n imageFramebufferSize[TEXTURE_PREVIEW_OVERLAY_INDEX] = {\n width: 0,\n height: 0\n };\n imageFramebufferSize[TEXTURE_PREVIEW_BLEND_INDEX] = {\n width: 0,\n height: 0\n };\n var imageFrameBufferMaxSize = 4096;\n\n var drawToImageFramebuffer = function drawToImageFramebuffer(index, buffer, imageSize) {\n var pixelDensity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var textureScalar = Math.min(Math.min(imageFrameBufferMaxSize, textureSizeLimit) / imageSize.width, Math.min(imageFrameBufferMaxSize, textureSizeLimit) / imageSize.height, pixelDensity);\n var textureWidth = Math.floor(textureScalar * imageSize.width);\n var textureHeight = Math.floor(textureScalar * imageSize.height);\n\n if (!sizeEqual(imageSize, imageFramebufferSize[index])) {\n // update preview markup texture\n gl.bindTexture(gl.TEXTURE_2D, indexTextureMap.get(index));\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, textureWidth, textureHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); // set the filtering, we don't need mips\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.bindFramebuffer(gl.FRAMEBUFFER, buffer);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, indexTextureMap.get(index), 0); // remember so we know when to update the framebuffer\n\n imageFramebufferSize[index] = imageSize;\n } else {\n gl.bindFramebuffer(gl.FRAMEBUFFER, buffer);\n } // switch transformMatrix\n\n\n var w = imageSize.width * viewPixelDensity;\n var h = imageSize.height * viewPixelDensity;\n mat4Ortho(imageFrameBuffer, 0, w, h, 0, -1, 1);\n mat4Translate(imageFrameBuffer, 0, h, 0);\n mat4ScaleX(imageFrameBuffer, 1);\n mat4ScaleY(imageFrameBuffer, -1);\n overlayMatrix = imageFrameBuffer; // framebuffer lives in image space\n\n gl.viewport(0, 0, textureWidth, textureHeight); // always transparent\n\n gl.colorMask(true, true, true, true);\n gl.clearColor(0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT); // update rect mask\n\n RECT_MASK_FEATHER = [1, 0, 1, 0, 1, Math.max(viewSize.width, imageSize.width), 1, Math.max(viewSize.width, imageSize.width)];\n };\n\n var textureDelete = function textureDelete(texture, options) {\n var _ref160 = options || {},\n _ref160$forceRelease = _ref160.forceRelease,\n forceRelease = _ref160$forceRelease === void 0 ? false : _ref160$forceRelease;\n\n var _glTextures$get = glTextures.get(texture),\n src = _glTextures$get.src; // need to force release canvas elements when they're no longer used\n\n\n if (src instanceof HTMLCanvasElement) {\n if (!forceRelease && !src.dataset.retain) {\n releaseCanvas(src);\n }\n }\n\n glTextures.delete(texture);\n gl.deleteTexture(texture);\n };\n\n var resetCanvasMatrix = function resetCanvasMatrix() {\n mat4Ortho(overlayMatrixCanvas, 0, viewSize.width, viewSize.height, 0, -1, 1);\n };\n\n var textureIsRotatedVideo = function textureIsRotatedVideo(texture) {\n return glTextures.get(texture).isRotatedVideo;\n };\n\n return {\n // draw api\n drawPath: drawPath,\n drawRect: drawRect,\n drawEllipse: drawEllipse,\n drawImage: drawImage,\n // texture filters\n textureFilterNearest: gl.NEAREST,\n textureFilterLinear: gl.LINEAR,\n textureClamp: gl.CLAMP_TO_EDGE,\n textureRepeat: gl.REPEAT,\n //#region texture management\n textureCreate: function textureCreate() {\n return gl.createTexture();\n },\n textureUpdate: function textureUpdate(texture, source, options) {\n glTextures.set(texture, {\n src: source,\n options: options,\n isRotatedVideo: source.nodeName === 'VIDEO' && (source.dataset && source.dataset.rotation == 90 || source.dataset.rotation == 270)\n });\n return updateTexture(gl, texture, source, options);\n },\n textureGetSize: function textureGetSize(texture) {\n var _glTextures$get2 = glTextures.get(texture),\n src = _glTextures$get2.src,\n options = _glTextures$get2.options;\n\n var size = sizeCreateFromAny(src);\n if (options.scalar) return sizeApply(size, function (v) {\n return v / options.scalar;\n });\n return size;\n },\n textureDelete: textureDelete,\n //#endregion\n enablePreviewStencil: enablePreviewStencil,\n applyPreviewStencil: applyPreviewStencil,\n disablePreviewStencil: disablePreviewStencil,\n setCanvasColor: function setCanvasColor(color) {\n CANVAS_COLOR_R = color[0];\n CANVAS_COLOR_G = color[1];\n CANVAS_COLOR_B = color[2];\n CANVAS_COLOR_A = alpha ? color[3] : 1;\n gl.clear(gl.COLOR_BUFFER_BIT);\n },\n resetCanvasMatrix: resetCanvasMatrix,\n updateCanvasMatrix: function updateCanvasMatrix(imageSize, origin, translation, scale, rotate) {\n var imageWidth = imageSize.width;\n var imageHeight = imageSize.height;\n var originX = viewSize.width * (0.5 / viewPixelDensity);\n var originY = viewSize.height * (0.5 / viewPixelDensity);\n var imageOrigin = {\n x: originX + (translation.x + origin.x),\n y: originY + (translation.y + origin.y)\n };\n var imageVisualCenter = {\n x: imageOrigin.x - origin.x,\n y: imageOrigin.y - origin.y\n };\n var imageAbsoluteCenter = {\n x: imageWidth * 0.5,\n y: imageHeight * 0.5\n };\n vectorRotate(imageVisualCenter, rotate.z, imageOrigin);\n vectorScale(imageVisualCenter, scale, imageOrigin);\n var imageTranslation = {\n x: imageVisualCenter.x - imageAbsoluteCenter.x,\n y: imageVisualCenter.y - imageAbsoluteCenter.y\n };\n mat4Translate(overlayMatrixCanvas, imageTranslation.x * viewPixelDensity, imageTranslation.y * viewPixelDensity, 0); // we apply transforms from center of image\n\n mat4Translate(overlayMatrixCanvas, imageAbsoluteCenter.x * viewPixelDensity, imageAbsoluteCenter.y * viewPixelDensity, 0);\n mat4RotateZ(overlayMatrixCanvas, rotate.z);\n var flipX = rotate.x > Math.PI / 2;\n mat4RotateX(overlayMatrixCanvas, flipX ? Math.PI : 0);\n var flipY = rotate.y > Math.PI / 2;\n mat4RotateY(overlayMatrixCanvas, flipY ? Math.PI : 0);\n mat4Scale(overlayMatrixCanvas, scale);\n mat4Translate(overlayMatrixCanvas, -imageAbsoluteCenter.x * viewPixelDensity, -imageAbsoluteCenter.y * viewPixelDensity, 0);\n },\n drawToCanvas: function drawToCanvas() {\n gl.bindFramebuffer(gl.FRAMEBUFFER, null); // switch transformMatrix\n\n overlayMatrix = overlayMatrixCanvas; // tell webgl about the viewport\n\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); // black (or other color depending on background)\n\n gl.colorMask(true, true, true, true);\n gl.clearColor(CANVAS_COLOR_R, CANVAS_COLOR_G, CANVAS_COLOR_B, CANVAS_COLOR_A); // gl.clearColor(0.25, 0.25, 0.25, 1); // for debugging\n\n gl.clear(gl.COLOR_BUFFER_BIT); // update rect mask\n\n RECT_MASK_FEATHER = [1, 0, 1, 0, 1, viewSize.width, 1, viewSize.width];\n },\n drawToImageBlendBuffer: function drawToImageBlendBuffer(imageSize, pixelDensity) {\n drawToImageFramebuffer(TEXTURE_PREVIEW_BLEND_INDEX, blendFramebuffer, imageSize, pixelDensity);\n },\n drawToImageOverlayBuffer: function drawToImageOverlayBuffer(imageSize, pixelDensity) {\n drawToImageFramebuffer(TEXTURE_PREVIEW_OVERLAY_INDEX, overlayFramebuffer, imageSize, pixelDensity);\n },\n // set mask\n enableMask: function enableMask(rect, opacity) {\n var maskX = rect.x * viewPixelDensity;\n var maskY = rect.y * viewPixelDensity;\n var maskWidth = rect.width * viewPixelDensity;\n var maskHeight = rect.height * viewPixelDensity;\n maskLeft = maskX;\n maskRight = maskLeft + maskWidth;\n maskTop = viewSize.height - maskY;\n maskBottom = viewSize.height - (maskY + maskHeight);\n maskOpacity = 1.0 - opacity;\n maskBounds = [maskTop, maskRight, maskBottom, maskLeft];\n },\n disableMask: function disableMask() {\n maskLeft = 0;\n maskRight = viewSize.width;\n maskTop = viewSize.height;\n maskBottom = 0;\n maskOpacity = 1;\n maskBounds = [maskTop, maskRight, maskBottom, maskLeft];\n },\n // canvas\n resize: resize,\n release: function release() {\n // remove all stored textures\n var textures = Array.from(glTextures.keys());\n textures.forEach(function (texture) {\n return textureDelete(texture, {\n forceRelease: true\n });\n });\n glTextures.clear(); // remove indexed textures\n\n indexTextureMap.forEach(function (texture) {\n gl.deleteTexture(texture);\n });\n indexTextureMap.clear(); // clean up shaders\n\n imageShader.destroy();\n pathShader.destroy();\n triangleShader.destroy();\n rectShader.destroy();\n ellipseShader.destroy(); // clear canvas\n\n canvas.width = 1;\n canvas.height = 1;\n canvas = undefined;\n }\n };\n};\n\nvar numberToEven = function numberToEven(n) {\n return n % 2 == 0 ? n : n + 1;\n}; // quickly reads canvas data to editor state, replaces createDefaultImageReader\n\n\nvar createCanvasReader = function createCanvasReader() {\n return [[/*#__PURE__*/function () {\n var _ref161 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee51(state, options, onprogress) {\n var src, width, height, dest;\n return _regeneratorRuntime.wrap(function _callee51$(_context51) {\n while (1) {\n switch (_context51.prev = _context51.next) {\n case 0:\n src = state.src;\n width = parseInt(src.width, 10);\n height = parseInt(src.height, 10);\n _context51.next = 5;\n return canvasToBlob(src);\n\n case 5:\n dest = _context51.sent;\n return _context51.abrupt(\"return\", _objectSpread(_objectSpread({}, state), {}, {\n dest: dest,\n size: {\n width: width,\n height: height\n }\n }));\n\n case 7:\n case \"end\":\n return _context51.stop();\n }\n }\n }, _callee51);\n }));\n\n return function (_x96, _x97, _x98) {\n return _ref161.apply(this, arguments);\n };\n }(), 'read-canvas']];\n};\n\nvar imageStateToCanvas = function imageStateToCanvas(src, imageState, options) {\n var _ref162 = options || {},\n targetCanvas = _ref162.targetCanvas,\n targetSize = _ref162.targetSize,\n _ref162$disableDraw = _ref162.disableDraw,\n disableDraw = _ref162$disableDraw === void 0 ? false : _ref162$disableDraw,\n shapePreprocessor = _ref162.shapePreprocessor;\n\n var canvas = targetCanvas || document.createElement('canvas');\n var crop = imageState.crop,\n colorMatrix = imageState.colorMatrix,\n convolutionMatrix = imageState.convolutionMatrix;\n var isVideoSrc = isVideoElement(src);\n var srcSize = {\n width: isVideoSrc ? src.videoWidth : src.width,\n height: isVideoSrc ? src.videoHeight : src.height\n }; // calculate target bounds dimensions\n\n var _ref163 = targetSize || {},\n _ref163$upscale = _ref163.upscale,\n upscale = _ref163$upscale === void 0 ? false : _ref163$upscale,\n _ref163$fit = _ref163.fit,\n fit = _ref163$fit === void 0 ? 'contain' : _ref163$fit,\n targetWidth = _ref163.width,\n targetHeight = _ref163.height; // scale canvas\n\n\n var canvasScalar = 1;\n\n if (fit === 'contain') {\n canvasScalar = Math.min((targetWidth || Number.MAX_SAFE_INTEGER) / crop.width, (targetHeight || Number.MAX_SAFE_INTEGER) / crop.height);\n } else if (fit === 'cover') {\n canvasScalar = Math.max((targetWidth || crop.width) / crop.width, (targetHeight || crop.height) / crop.height);\n } // can't upscale, let's limit scalar to 1\n\n\n if (!upscale) canvasScalar = Math.min(canvasScalar, 1);\n var canvasScaledWidth = fit === 'force' ? targetWidth : Math.floor(crop.width * canvasScalar);\n var canvasScaledHeight = fit === 'force' ? targetHeight : Math.floor(crop.height * canvasScalar);\n var canvasWidth = isVideoSrc ? numberToEven(canvasScaledWidth) : canvasScaledWidth;\n var canvasHeight = isVideoSrc ? numberToEven(canvasScaledHeight) : canvasScaledHeight;\n var glCanvas = createWebGLCanvas(canvas, {\n alpha: true\n });\n glCanvas.resize(canvasWidth, canvasHeight, 1);\n var glTexture = glCanvas.textureCreate();\n glCanvas.setCanvasColor([0, 0, 0, 0]);\n glCanvas.drawToCanvas();\n glCanvas.disableMask();\n glCanvas.disablePreviewStencil(); // color matrix\n\n var computedColorMatrix;\n {\n var colorMatrices = Object.values(colorMatrix || {}).filter(Boolean);\n if (colorMatrices.length) computedColorMatrix = getColorMatrixFromColorMatrices(colorMatrices);\n }\n var canvasRect = {\n x: 0,\n y: 0,\n width: canvasWidth,\n height: canvasHeight\n };\n\n var _calculateImageTransf = calculateImageTransforms(canvasRect, canvasRect, srcSize, crop, {\n x: 0,\n y: 0,\n width: canvasWidth,\n height: canvasHeight\n }, canvasScalar, {\n x: 0,\n y: 0\n }, 1, imageState.rotation, imageState.flipX, imageState.flipY),\n origin = _calculateImageTransf.origin,\n translation = _calculateImageTransf.translation,\n rotation = _calculateImageTransf.rotation,\n scale = _calculateImageTransf.scale;\n\n var glTransforms = [srcSize, origin.x, origin.y, translation.x, translation.y, rotation.x, rotation.y, rotation.z, scale, computedColorMatrix, 1, // @ts-ignore\n convolutionMatrix && convolutionMatrix.clarity, isNumber(imageState.gamma) ? imageState.gamma : 1, imageState.vignette || 0, [1, 0, 1, 0, 1, canvasHeight, 1, canvasWidth], undefined, undefined, undefined, undefined, false]; // shapes\n\n var shapesOverlayDrawn = false;\n var hasShapes = imageState.decoration.length || imageState.annotation.length;\n var glShapeTexture = hasShapes && glCanvas.textureCreate(); // api\n\n var updateTexture = function updateTexture() {\n glCanvas.textureUpdate(glTexture, src, {\n filterParam: glCanvas.textureFilterLinear,\n wrapParam: glCanvas.textureClamp\n });\n };\n\n var draw = function draw() {\n // make sure texture is at the correct frame when it's a video\n updateTexture(); // draw to the canvas\n\n glCanvas.drawImage.apply(glCanvas, [glTexture].concat(glTransforms)); // draw to the canvas\n\n if (!hasShapes || !shapesOverlayDrawn) return;\n glCanvas.drawRect(canvasRect, 0, false, false, [0, 0, 0, 0], undefined, glShapeTexture);\n };\n\n var prepare = /*#__PURE__*/function () {\n var _ref164 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee52() {\n var _yield$processImage2, dest;\n\n return _regeneratorRuntime.wrap(function _callee52$(_context52) {\n while (1) {\n switch (_context52.prev = _context52.next) {\n case 0:\n if (hasShapes) {\n _context52.next = 2;\n break;\n }\n\n return _context52.abrupt(\"return\");\n\n case 2:\n _context52.next = 4;\n return processImage(h('canvas', srcSize), {\n shapePreprocessor: shapePreprocessor,\n imageReader: createCanvasReader(),\n imageWriter: createDefaultImageWriter$1({\n format: 'canvas'\n }),\n imageState: _objectSpread(_objectSpread({}, imageState), {}, {\n redaction: [],\n frame: undefined,\n gamma: undefined,\n convolutionMatrix: undefined,\n colorMatrix: undefined,\n backgroundColor: [0, 0, 0, 0],\n backgroundImage: undefined,\n trim: undefined,\n vignette: undefined,\n volume: undefined\n })\n });\n\n case 4:\n _yield$processImage2 = _context52.sent;\n dest = _yield$processImage2.dest;\n // only needs to run once\n glCanvas.textureUpdate(glShapeTexture, dest, {\n filterParam: glCanvas.textureFilterLinear,\n wrapParam: glCanvas.textureClamp\n }); // now ready to draw shapes texture\n\n shapesOverlayDrawn = true; // first draw\n\n !disableDraw && draw();\n\n case 9:\n case \"end\":\n return _context52.stop();\n }\n }\n }, _callee52);\n }));\n\n return function prepare() {\n return _ref164.apply(this, arguments);\n };\n }(); // load texture\n\n\n updateTexture(); // first draw\n\n !disableDraw && draw();\n return {\n canvas: canvas,\n prepare: prepare,\n redraw: draw,\n destroy: function destroy() {\n glCanvas.release();\n }\n };\n};\n\nvar scrambleEffect = function scrambleEffect(options, done) {\n var imageData = options.imageData,\n _options$amount = options.amount,\n amount = _options$amount === void 0 ? 1 : _options$amount;\n var intensity = Math.round(Math.max(1, amount) * 2);\n var range = Math.round(intensity * 0.5);\n var inputWidth = imageData.width;\n var inputHeight = imageData.height;\n var outputData = new Uint8ClampedArray(inputWidth * inputHeight * 4);\n var inputData = imageData.data;\n var randomData;\n var i = 0,\n x,\n y,\n r;\n var xoffset = 0;\n var yoffset = 0;\n var index;\n var l = inputWidth * inputHeight * 4 - 4;\n\n for (y = 0; y < inputHeight; y++) {\n randomData = crypto.getRandomValues(new Uint8ClampedArray(inputHeight));\n\n for (x = 0; x < inputWidth; x++) {\n r = randomData[y] / 255;\n xoffset = 0;\n yoffset = 0;\n\n if (r < 0.5) {\n xoffset = (-range + Math.round(Math.random() * intensity)) * 4;\n }\n\n if (r > 0.5) {\n yoffset = (-range + Math.round(Math.random() * intensity)) * (inputWidth * 4);\n } // limit to image data\n\n\n index = Math.min(Math.max(0, i + xoffset + yoffset), l);\n outputData[i] = inputData[index];\n outputData[i + 1] = inputData[index + 1];\n outputData[i + 2] = inputData[index + 2];\n outputData[i + 3] = inputData[index + 3];\n i += 4;\n }\n } // @ts-ignore\n\n\n done(null, {\n data: outputData,\n width: imageData.width,\n height: imageData.height\n });\n}; // basic blur covolution matrix\n\n\nvar BLUR_MATRIX = [0.0625, 0.125, 0.0625, 0.125, 0.25, 0.125, 0.0625, 0.125, 0.0625];\n\nvar imageDataScramble = /*#__PURE__*/function () {\n var _ref165 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee53(inputData) {\n var options,\n width,\n height,\n _options$dataSize,\n dataSize,\n _options$dataSizeScal,\n dataSizeScalar,\n _options$scrambleAmou,\n scrambleAmount,\n _options$blurAmount,\n blurAmount,\n _options$outputFormat,\n outputFormat,\n _options$backgroundCo,\n backgroundColor,\n size,\n scalar,\n outputWidth,\n outputHeight,\n scaledOutputCanvas,\n ctx,\n transferCanvas,\n imageData,\n filters,\n i,\n imageDataScrambled,\n _chain,\n filterChain,\n imageDataObjectScrambled,\n _args53 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee53$(_context53) {\n while (1) {\n switch (_context53.prev = _context53.next) {\n case 0:\n options = _args53.length > 1 && _args53[1] !== undefined ? _args53[1] : {};\n\n if (inputData) {\n _context53.next = 3;\n break;\n }\n\n return _context53.abrupt(\"return\");\n\n case 3:\n width = inputData.width, height = inputData.height;\n _options$dataSize = options.dataSize, dataSize = _options$dataSize === void 0 ? 96 : _options$dataSize, _options$dataSizeScal = options.dataSizeScalar, dataSizeScalar = _options$dataSizeScal === void 0 ? 1 : _options$dataSizeScal, _options$scrambleAmou = options.scrambleAmount, scrambleAmount = _options$scrambleAmou === void 0 ? 4 : _options$scrambleAmou, _options$blurAmount = options.blurAmount, blurAmount = _options$blurAmount === void 0 ? 6 : _options$blurAmount, _options$outputFormat = options.outputFormat, outputFormat = _options$outputFormat === void 0 ? 'canvas' : _options$outputFormat, _options$backgroundCo = options.backgroundColor, backgroundColor = _options$backgroundCo === void 0 ? [0, 0, 0] : _options$backgroundCo;\n size = Math.round(dataSize * dataSizeScalar);\n scalar = Math.min(size / width, size / height);\n outputWidth = Math.floor(width * scalar);\n outputHeight = Math.floor(height * scalar); // draw low res preview, add margin so blur isn't transparent\n\n scaledOutputCanvas = h('canvas', {\n width: outputWidth,\n height: outputHeight\n });\n ctx = scaledOutputCanvas.getContext('2d', {\n willReadFrequently: true\n }); // fill background on transparent images\n\n backgroundColor.length = 3; // prevent transparent colors\n\n ctx.fillStyle = colorArrayToRGBA(backgroundColor);\n ctx.fillRect(0, 0, outputWidth, outputHeight);\n\n if (isImageData(inputData)) {\n // temporarily draw to canvas so we can draw image data to scaled context\n transferCanvas = h('canvas', {\n width: width,\n height: height\n });\n transferCanvas.getContext('2d', {\n willReadFrequently: true\n }).putImageData(inputData, 0, 0); // draw to scaled context\n\n ctx.drawImage(transferCanvas, 0, 0, outputWidth, outputHeight); // release memory\n\n releaseCanvas(transferCanvas);\n } else {\n // bitmap data\n ctx.drawImage(inputData, 0, 0, outputWidth, outputHeight);\n } // get scaled image data for scrambling\n\n\n imageData = ctx.getImageData(0, 0, outputWidth, outputHeight); // filters to apply\n\n filters = []; // add scramble filter\n\n if (scrambleAmount > 0) filters.push([scrambleEffect, {\n amount: scrambleAmount\n }]); // add blur filters\n\n if (blurAmount > 0) for (i = 0; i < blurAmount; i++) {\n filters.push([convolutionEffect, {\n matrix: BLUR_MATRIX\n }]);\n }\n\n if (!filters.length) {\n _context53.next = 28;\n break;\n }\n\n // builds effect chain\n _chain = function _chain(transforms, i) {\n return \"(err, imageData) => {\\n(\".concat(transforms[i][0].toString(), \")(Object.assign({ imageData: imageData }, filterInstructions[\").concat(i, \"]), \\n\").concat(transforms[i + 1] ? _chain(transforms, i + 1) : 'done', \")\\n}\");\n };\n\n filterChain = \"function (options, done) {\\nconst filterInstructions = options.filterInstructions;\\nconst imageData = options.imageData;\\n(\".concat(_chain(filters, 0), \")(null, imageData)\\n}\"); // scramble image data in separate thread\n\n _context53.next = 24;\n return thread(filterChain, [{\n imageData: imageData,\n filterInstructions: filters.map(function (t) {\n return t[1];\n })\n }], [imageData.data.buffer]);\n\n case 24:\n imageDataObjectScrambled = _context53.sent;\n imageDataScrambled = imageDataObjectToImageData(imageDataObjectScrambled);\n _context53.next = 29;\n break;\n\n case 28:\n imageDataScrambled = imageData;\n\n case 29:\n if (!(outputFormat === 'canvas')) {\n _context53.next = 32;\n break;\n }\n\n // put back scrambled data\n ctx.putImageData(imageDataScrambled, 0, 0); // return canvas\n\n return _context53.abrupt(\"return\", scaledOutputCanvas);\n\n case 32:\n return _context53.abrupt(\"return\", imageDataScrambled);\n\n case 33:\n case \"end\":\n return _context53.stop();\n }\n }\n }, _callee53);\n }));\n\n return function imageDataScramble(_x99) {\n return _ref165.apply(this, arguments);\n };\n}();\n\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nfunction is_date(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n}\n\nfunction get_interpolator(a, b) {\n if (a === b || a !== a) return function () {\n return a;\n };\n\n var type = _typeof(a);\n\n if (type !== _typeof(b) || Array.isArray(a) !== Array.isArray(b)) {\n throw new Error('Cannot interpolate values of different type');\n }\n\n if (Array.isArray(a)) {\n var arr = b.map(function (bi, i) {\n return get_interpolator(a[i], bi);\n });\n return function (t) {\n return arr.map(function (fn) {\n return fn(t);\n });\n };\n }\n\n if (type === 'object') {\n if (!a || !b) throw new Error('Object cannot be null');\n\n if (is_date(a) && is_date(b)) {\n a = a.getTime();\n b = b.getTime();\n var delta = b - a;\n return function (t) {\n return new Date(a + t * delta);\n };\n }\n\n var keys = Object.keys(b);\n var interpolators = {};\n keys.forEach(function (key) {\n interpolators[key] = get_interpolator(a[key], b[key]);\n });\n return function (t) {\n var result = {};\n keys.forEach(function (key) {\n result[key] = interpolators[key](t);\n });\n return result;\n };\n }\n\n if (type === 'number') {\n var _delta = b - a;\n\n return function (t) {\n return a + t * _delta;\n };\n }\n\n throw new Error(\"Cannot interpolate \".concat(type, \" values\"));\n}\n\nfunction tweened(value) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var store = writable(value);\n var task;\n var target_value = value;\n\n function set(new_value, opts) {\n if (value == null) {\n store.set(value = new_value);\n return Promise.resolve();\n }\n\n target_value = new_value;\n var previous_task = task;\n var started = false;\n\n var _assign = assign(assign({}, defaults), opts),\n _assign$delay = _assign.delay,\n delay = _assign$delay === void 0 ? 0 : _assign$delay,\n _assign$duration = _assign.duration,\n duration = _assign$duration === void 0 ? 400 : _assign$duration,\n _assign$easing = _assign.easing,\n easing = _assign$easing === void 0 ? identity : _assign$easing,\n _assign$interpolate = _assign.interpolate,\n interpolate = _assign$interpolate === void 0 ? get_interpolator : _assign$interpolate;\n\n if (duration === 0) {\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n\n store.set(value = target_value);\n return Promise.resolve();\n }\n\n var start = now() + delay;\n var fn;\n task = loop(function (now) {\n if (now < start) return true;\n\n if (!started) {\n fn = interpolate(value, new_value);\n if (typeof duration === 'function') duration = duration(value, new_value);\n started = true;\n }\n\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n\n var elapsed = now - start;\n\n if (elapsed > duration) {\n store.set(value = new_value);\n return false;\n } // @ts-ignore\n\n\n store.set(value = fn(easing(elapsed / duration)));\n return true;\n });\n return task.promise;\n }\n\n return {\n set: set,\n update: function update(fn, opts) {\n return set(fn(target_value, value), opts);\n },\n subscribe: store.subscribe\n };\n} // @ts-ignore\n\n\nfunction tick_spring(ctx, last_value, current_value, target_value) {\n if (typeof current_value === 'number') {\n // @ts-ignore\n var delta = target_value - current_value; // @ts-ignore\n\n var velocity = (current_value - last_value) / (ctx.dt || 1 / 60); // guard div by 0\n\n var _spring = ctx.opts.stiffness * delta;\n\n var damper = ctx.opts.damping * velocity;\n var acceleration = (_spring - damper) * ctx.inv_mass;\n var d = (velocity + acceleration) * ctx.dt;\n\n if (Math.abs(d) < ctx.opts.precision && Math.abs(delta) < ctx.opts.precision) {\n return target_value; // settled\n } else {\n ctx.settled = false; // signal loop to keep ticking\n // @ts-ignore\n\n return current_value + d;\n }\n } else if (isArray(current_value)) {\n // @ts-ignore\n return current_value.map(function (_, i) {\n return tick_spring(ctx, last_value[i], current_value[i], target_value[i]);\n });\n } else if (_typeof(current_value) === 'object') {\n var next_value = {}; // @ts-ignore\n\n for (var k in current_value) {\n // @ts-ignore\n next_value[k] = tick_spring(ctx, last_value[k], current_value[k], target_value[k]);\n } // @ts-ignore\n\n\n return next_value;\n } else {\n throw new Error(\"Cannot spring \".concat(_typeof(current_value), \" values\"));\n }\n} // export interface Spring {\n// set: (new_value: any, opts?: SpringUpdateOpts) => Promise;\n// update: (fn: Function, opts?: SpringUpdateOpts) => Promise;\n// subscribe: Function;\n// precision: number;\n// damping: number;\n// stiffness: number;\n// }\n\n\nfunction spring(value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var store = writable(value);\n var _opts$stiffness = opts.stiffness,\n stiffness = _opts$stiffness === void 0 ? 0.15 : _opts$stiffness,\n _opts$damping = opts.damping,\n damping = _opts$damping === void 0 ? 0.8 : _opts$damping,\n _opts$precision = opts.precision,\n precision = _opts$precision === void 0 ? 0.01 : _opts$precision;\n var last_time;\n var task;\n var current_token;\n var last_value = value;\n var target_value = value;\n var inv_mass = 1;\n var inv_mass_recovery_rate = 0;\n var cancel_task = false;\n\n function set(new_value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n target_value = new_value;\n var token = current_token = {};\n\n if (value == null || opts.hard || spring.stiffness >= 1 && spring.damping >= 1) {\n cancel_task = true; // cancel any running animation\n\n last_time = null;\n last_value = new_value;\n store.set(value = target_value);\n return Promise.resolve();\n } else if (opts.soft) {\n var rate = opts.soft === true ? 0.5 : +opts.soft;\n inv_mass_recovery_rate = 1 / (rate * 60);\n inv_mass = 0; // infinite mass, unaffected by spring forces\n }\n\n if (!task) {\n last_time = null;\n cancel_task = false;\n var ctx = {\n inv_mass: undefined,\n opts: spring,\n settled: true,\n dt: undefined\n };\n task = loop(function (now) {\n if (last_time === null) last_time = now;\n\n if (cancel_task) {\n cancel_task = false;\n task = null;\n return false;\n }\n\n inv_mass = Math.min(inv_mass + inv_mass_recovery_rate, 1); // altered so doesn't create a new object\n\n ctx.inv_mass = inv_mass;\n ctx.opts = spring;\n ctx.settled = true; // tick_spring may signal false\n\n ctx.dt = (now - last_time) * 60 / 1000;\n var next_value = tick_spring(ctx, last_value, value, target_value);\n last_time = now;\n last_value = value;\n store.set(value = next_value);\n if (ctx.settled) task = null;\n return !ctx.settled;\n });\n }\n\n return new Promise(function (fulfil) {\n task.promise.then(function () {\n if (token === current_token) fulfil();\n });\n });\n }\n\n var spring = {\n set: set,\n update: function update(fn, opts) {\n return set(fn(target_value, value), opts);\n },\n subscribe: store.subscribe,\n stiffness: stiffness,\n damping: damping,\n precision: precision\n };\n return spring;\n}\n\nvar prefersReducedMotion = readable(false, function (set) {\n var mql = window.matchMedia('(prefers-reduced-motion:reduce)');\n\n var test = function test() {\n return set(mql.matches);\n };\n\n test();\n mql.addListener(test);\n return function () {\n return mql.removeListener(test);\n };\n});\n\nvar hasResizeObserver = function hasResizeObserver() {\n return 'ResizeObserver' in window;\n}; //\n\n\nvar rectNext = rectCreateEmpty();\n\nvar updateNodeRect = function updateNodeRect(node, x, y, width, height) {\n if (!node.rect) node.rect = rectCreateEmpty();\n var rect = node.rect;\n rectUpdate(rectNext, x, y, width, height);\n if (rectEqual(rect, rectNext)) return;\n rectUpdateWithRect(rect, rectNext);\n node.dispatchEvent(new CustomEvent('measure', {\n detail: rect\n }));\n}; // measures the element\n\n\nvar r = Math.round;\n\nvar measureViewRect = function measureViewRect(node) {\n var clientRect = node.getBoundingClientRect(); // no frame because root has zero size\n\n if (!frame) return;\n updateNodeRect(node, r(clientRect.x), r(clientRect.y), r(clientRect.width), r(clientRect.height));\n};\n\nvar measureOffset = function measureOffset(node) {\n // no frame because root has zero size\n if (!frame) return;\n updateNodeRect(node, node.offsetLeft, node.offsetTop, node.offsetWidth, node.offsetHeight);\n}; // holds all the elements to measure using requestAnimationFrame\n\n\nvar elements = []; // draw loop\n\nvar frame = undefined;\n/* is false when paused, is undefined when not initialised */\n\nfunction tick() {\n if (!elements.length) {\n frame = undefined;\n return;\n }\n\n elements.forEach(function (node) {\n return node.measure(node);\n });\n frame = requestAnimationFrame(tick);\n}\n\nvar observer; // ResizeObserver API not known by TypeScript\n// root observer\n\nvar rootObserver;\nvar rootRects = new Map([]);\nvar observedRoots = 0; // total observed elements so we know when we can unload observer\n\nvar observedNodes = 0;\n\nvar measurable = function measurable(node) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$observePosit = options.observePosition,\n observePosition = _options$observePosit === void 0 ? false : _options$observePosit,\n _options$observeViewR = options.observeViewRect,\n observeViewRect = _options$observeViewR === void 0 ? false : _options$observeViewR,\n _options$once = options.once,\n once = _options$once === void 0 ? false : _options$once,\n _options$disabled = options.disabled,\n disabled = _options$disabled === void 0 ? false : _options$disabled,\n _options$isMeasureRoo = options.isMeasureRoot,\n isMeasureRoot = _options$isMeasureRoo === void 0 ? false : _options$isMeasureRoo; // if is measure root we pause all measuring if this element doesn't have a size and no other roots actively measuring\n\n if (hasResizeObserver() && isMeasureRoot) {\n if (!rootObserver) {\n rootObserver = new ResizeObserver(function (entries) {\n // update root rects\n entries.forEach(function (entry) {\n rootRects.set(entry.target, entry.contentRect);\n }); // loop over all observed roots, if all roots don't have a size we pause measuring\n\n var someVisible = Array.from(rootRects.values()).some(function (_ref166) {\n var width = _ref166.width,\n height = _ref166.height;\n return width > 0 && height > 0;\n }); // if no roots visible, halt draw loop\n\n if (!someVisible) {\n frame && cancelAnimationFrame(frame);\n frame = false;\n } // if no draw loop and a root became visible\n else if (someVisible && frame === false) {\n tick();\n }\n });\n } // increase amount of observed roots so we know when no more roots are observed\n\n\n rootObserver.observe(node);\n observedRoots++;\n } // exit\n\n\n if (disabled) return; // use resize observe if available\n\n if (hasResizeObserver() && !observePosition && !observeViewRect) {\n // we only create one observer, it will observe all registered elements\n if (!observer) {\n observer = new ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n // no frame because root has zero size\n if (!frame) return;\n measureOffset(entry.target);\n });\n });\n } // start observing this node\n\n\n observer.observe(node); // measure our node for the first time\n\n measureOffset(node); // if should only measure once, remove now\n\n if (once) {\n observer.unobserve(node);\n } else {\n observedNodes++;\n } // and we done, need to return a clean up method for when our node is destroyed\n\n\n return {\n destroy: function destroy() {\n // if is root\n if (isMeasureRoot && rootObserver) {\n rootRects.delete(node);\n rootObserver.unobserve(node);\n observedRoots--;\n\n if (observedRoots === 0) {\n rootObserver.disconnect();\n rootObserver = undefined;\n }\n } // already unobserved this node\n\n\n if (once) return; // stop observing this node\n\n observer.unobserve(node); // test if all nodes have been removed, if so, remove observer\n\n observedNodes--;\n\n if (observedNodes === 0) {\n observer.disconnect();\n observer = undefined;\n }\n }\n };\n } // set measure function\n\n\n node.measure = observeViewRect ? measureViewRect : measureOffset; // add so the element is measured\n\n elements.push(node); // start measuring on next frame, we set up a single measure loop,\n // the loop will check if there's still elements that need to be measured,\n // else it will stop running\n\n if (frame === undefined) frame = requestAnimationFrame(tick); // measure this element now\n\n node.measure(node); // remove method\n\n return {\n destroy: function destroy() {\n // if is root\n if (isMeasureRoot && rootObserver) {\n rootRects.delete(node);\n rootObserver.unobserve(node);\n observedRoots--;\n\n if (observedRoots === 0) {\n rootObserver.disconnect();\n rootObserver = undefined;\n }\n } // clean up element\n\n\n var index = elements.indexOf(node);\n elements.splice(index, 1);\n delete node.measure;\n }\n };\n};\n\nvar focusvisible = function focusvisible(element) {\n var isKeyboardInteraction = undefined;\n\n var handlePointerdown = function handlePointerdown() {\n isKeyboardInteraction = false;\n };\n\n var handleKeydown = function handleKeydown() {\n isKeyboardInteraction = true;\n };\n\n var handleKeyup = function handleKeyup() {\n isKeyboardInteraction = false;\n };\n\n var handleFocus = function handleFocus(e) {\n if (isKeyboardInteraction === false) return;\n e.target.dataset.focusVisible = '';\n };\n\n var handleBlur = function handleBlur(e) {\n delete e.target.dataset.focusVisible;\n };\n\n var map = {\n pointerdown: handlePointerdown,\n keydown: handleKeydown,\n keyup: handleKeyup,\n focus: handleFocus,\n blur: handleBlur\n };\n Object.keys(map).forEach(function (event) {\n return element.addEventListener(event, map[event], true);\n });\n return {\n destroy: function destroy() {\n Object.keys(map).forEach(function (event) {\n return element.removeEventListener(event, map[event], true);\n });\n }\n };\n};\n\nvar isURL = function isURL(str) {\n return /^http/.test(str);\n};\n\nvar getResourceFromItem = function getResourceFromItem(item) {\n return new Promise(function (resolve, reject) {\n if (item.kind === 'file') return resolve(item.getAsFile());\n if (item.kind === 'string') return item.getAsString(resolve); // can't handle other kinds right now\n\n reject();\n });\n};\n\nvar getResourcesFromEvent = function getResourcesFromEvent(e) {\n return new Promise(function (resolve, reject) {\n var items = e.dataTransfer.items;\n if (!items) return resolve([]); // if is URI list we only return one URL or one FILE\n\n var isUriList = Array.from(items).some(function (item) {\n return item.type === 'text/uri-list';\n });\n var itemPromises = Array.from(items).filter(function (item) {\n return (item.kind === 'file' || item.kind === 'string') && // this contains two urls which messes with the isURL test\n item.type !== 'text/x-moz-url';\n }).map(getResourceFromItem);\n Promise.all(itemPromises).then(function (res) {\n // if is URI list we only use first URL, when dragging dropping an image tag on Windows Chrome we receive 3 URLs and a File\n if (isUriList) return resolve([res.find(isURL)].filter(Boolean)); // filter out non images\n\n var resources = res.filter(function (item) {\n return isBinary(item) && isImage(item) || isURL(item);\n }); // only urls\n\n resolve(resources);\n }).catch(reject);\n });\n};\n\nvar dropable = function dropable(node) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var handleDragOver = function handleDragOver(e) {\n // need to be prevent default to allow drop\n e.preventDefault();\n };\n\n var handleDrop = /*#__PURE__*/function () {\n var _ref167 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee54(e) {\n var resources;\n return _regeneratorRuntime.wrap(function _callee54$(_context54) {\n while (1) {\n switch (_context54.prev = _context54.next) {\n case 0:\n e.preventDefault();\n e.stopPropagation(); // prevents parents from catching this drop\n\n _context54.prev = 2;\n _context54.next = 5;\n return getResourcesFromEvent(e);\n\n case 5:\n resources = _context54.sent;\n node.dispatchEvent(new CustomEvent('dropfiles', _objectSpread({\n detail: {\n event: e,\n resources: resources\n }\n }, options)));\n _context54.next = 11;\n break;\n\n case 9:\n _context54.prev = 9;\n _context54.t0 = _context54[\"catch\"](2);\n\n case 11:\n case \"end\":\n return _context54.stop();\n }\n }\n }, _callee54, null, [[2, 9]]);\n }));\n\n return function handleDrop(_x100) {\n return _ref167.apply(this, arguments);\n };\n }();\n\n node.addEventListener('drop', handleDrop);\n node.addEventListener('dragover', handleDragOver); // remove method\n\n return {\n destroy: function destroy() {\n node.removeEventListener('drop', handleDrop);\n node.removeEventListener('dragover', handleDragOver);\n }\n };\n};\n\nvar result$5 = null;\n\nvar isSoftwareRendering = function isSoftwareRendering() {\n if (result$5 === null) {\n if (isBrowser()) {\n var canvas = h('canvas');\n result$5 = !getWebGLContext(canvas, {\n failIfMajorPerformanceCaveat: true\n });\n releaseCanvas(canvas);\n } else {\n result$5 = false;\n }\n }\n\n return result$5;\n};\n\nvar createTransparencyGrid = function createTransparencyGrid(size) {\n var sizeHalf = size * 0.5;\n var canvas = h('canvas', {\n 'data-retain': true,\n width: size,\n height: size\n });\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#f0f';\n ctx.fillRect(0, 0, sizeHalf, sizeHalf);\n ctx.fillRect(sizeHalf, sizeHalf, sizeHalf, sizeHalf);\n return canvas;\n};\n\nvar durationToMilliseconds = function durationToMilliseconds(duration) {\n var f = parseFloat(duration);\n if (/^[0-9]+s$/.test(duration)) return f * 1000;\n return f;\n};\n\nvar isTexture = function isTexture(texture) {\n return texture instanceof WebGLTexture;\n};\n\nvar backgroundCornersToUVMap = function backgroundCornersToUVMap(_ref168) {\n var _ref169 = _slicedToArray(_ref168, 4),\n tl = _ref169[0],\n tr = _ref169[1],\n br = _ref169[2],\n bl = _ref169[3];\n\n // tl, tr, br, bl -> bl, tl, br, tr\n // prettier-ignore\n // B D\n // | \\ |\n // A C\n return [bl.x, bl.y, tl.x, tl.y, br.x, br.y, tr.x, tr.y];\n};\n\nvar isVideoPlaying = function isVideoPlaying(video) {\n return video.currentTime > 0 && !video.paused && !video.ended && video.readyState > 2;\n};\n\nvar ctxDrawSelection = function ctxDrawSelection(ctx, shapes, options) {\n var _ref170 = options || {},\n _ref170$selectionColo = _ref170.selectionColor,\n selectionColor = _ref170$selectionColo === void 0 ? [1, 1, 1] : _ref170$selectionColo,\n _ref170$scalar = _ref170.scalar,\n scalar = _ref170$scalar === void 0 ? 1 : _ref170$scalar;\n\n var didDraw = false;\n\n var _iterator8 = _createForOfIteratorHelper(shapes),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var shape = _step8.value;\n var shouldSubtract = shape.drawMode === 'subtract'; // skip if can't subtract (this prevents first shape from drawing when subtract is set to true)\n\n if (shouldSubtract && !didDraw) continue;\n ctx.globalCompositeOperation = shouldSubtract ? 'destination-out' : 'source-over'; // remember context state\n\n ctx.save(); // clears previous shape's path\n\n ctx.beginPath(); // center, needed for transforms\n\n var center = shapeGetCenter(shape); // scale context so we adjust for scaled down selection canvas (2048 max size)\n\n ctxScale(ctx, scalar, scalar); // rotate context\n\n ctxRotate(ctx, shape.rotation, center); // flip context\n\n ctxFlip(ctx, shape.flipX, shape.flipY, center); // draw rect\n\n if (shape.width) {\n drawRect(ctx, _objectSpread(_objectSpread({}, shape), {}, {\n backgroundColor: selectionColor\n }));\n } // draw line\n else if (shape.points) {\n drawPath(ctx, Object.assign({}, shape, shape.pathClose ? {\n backgroundColor: selectionColor,\n strokeColor: [0, 0, 0, 0]\n } : {\n strokeColor: selectionColor,\n strokeJoin: 'round',\n strokeCap: 'round'\n }));\n } // draw circle\n else if (shape.rx) {\n drawEllipse(ctx, _objectSpread(_objectSpread({}, shape), {}, {\n backgroundColor: selectionColor,\n strokeColor: [0, 0, 0, 0],\n strokeJoin: 'round',\n strokeCap: 'round'\n }));\n }\n\n ctx.restore();\n didDraw = true;\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n};\n/* src/core/ui/components/Canvas.svelte generated by Svelte v3.52.0 */\n\n\nfunction create_fragment$T(ctx) {\n var div;\n var canvas_1;\n var mounted;\n var dispose;\n return {\n c: function c() {\n div = element(\"div\");\n canvas_1 = element(\"canvas\");\n attr(div, \"class\", \"PinturaCanvas\");\n },\n m: function m(target, anchor) {\n insert(target, div, anchor);\n append(div, canvas_1);\n /*canvas_1_binding*/\n\n ctx[37](canvas_1);\n\n if (!mounted) {\n dispose = [listen(canvas_1, \"measure\",\n /*measure_handler*/\n ctx[38]), action_destroyer(measurable.call(null, canvas_1))];\n mounted = true;\n }\n },\n p: noop,\n i: noop,\n o: noop,\n d: function d(detaching) {\n if (detaching) detach(div);\n /*canvas_1_binding*/\n\n ctx[37](null);\n mounted = false;\n run_all(dispose);\n }\n };\n}\n\nvar SELECTION_MAX_SIZE = 2048;\nvar throttledMinRedrawDist = 48;\n\nfunction instance$U($$self, $$props, $$invalidate) {\n var canDraw;\n var drawUpdate;\n var $maskFrameOpacityStore;\n var $imageOverlayColor;\n var $maskOpacityStore;\n var $mask;\n var $background;\n var Vec4Empty = [0, 0, 0, 0]; // just so we can re-use one empty vector\n\n var EmptyVector = vectorCreateEmpty(); // create grid texture\n\n var TransparencyGrid = isBrowser() && createTransparencyGrid(128); // used to dispatch the 'measure' event\n\n var dispatch = createEventDispatcher();\n var isAnimated = $$props.isAnimated;\n var isTransparent = $$props.isTransparent;\n var maskRect = $$props.maskRect;\n var _$$props$maskOpacity = $$props.maskOpacity,\n maskOpacity = _$$props$maskOpacity === void 0 ? 1 : _$$props$maskOpacity;\n var _$$props$maskFrameOpa = $$props.maskFrameOpacity,\n maskFrameOpacity = _$$props$maskFrameOpa === void 0 ? 0.95 : _$$props$maskFrameOpa;\n var _$$props$maskMarkupOp = $$props.maskMarkupOpacity,\n maskMarkupOpacity = _$$props$maskMarkupOp === void 0 ? 1 : _$$props$maskMarkupOp;\n var _$$props$clipAnnotati = $$props.clipAnnotationsToImage,\n clipAnnotationsToImage = _$$props$clipAnnotati === void 0 ? true : _$$props$clipAnnotati;\n var _$$props$pixelRatio = $$props.pixelRatio,\n pixelRatio = _$$props$pixelRatio === void 0 ? 1 : _$$props$pixelRatio;\n var _$$props$textPixelRat = $$props.textPixelRatio,\n textPixelRatio = _$$props$textPixelRat === void 0 ? pixelRatio : _$$props$textPixelRat;\n var backgroundColor = $$props.backgroundColor;\n var _$$props$willRender = $$props.willRender,\n willRender = _$$props$willRender === void 0 ? passthrough : _$$props$willRender;\n var _$$props$didRender = $$props.didRender,\n didRender = _$$props$didRender === void 0 ? passthrough : _$$props$didRender;\n var _$$props$willRequest = $$props.willRequest,\n willRequest = _$$props$willRequest === void 0 ? undefined : _$$props$willRequest;\n var _$$props$csp = $$props.csp,\n csp = _$$props$csp === void 0 ? undefined : _$$props$csp;\n var _$$props$loadImageDat = $$props.loadImageData,\n loadImageData = _$$props$loadImageDat === void 0 ? passthrough : _$$props$loadImageDat;\n var _$$props$enableGrid = $$props.enableGrid,\n enableGrid = _$$props$enableGrid === void 0 ? false : _$$props$enableGrid;\n var _$$props$gridColors = $$props.gridColors,\n gridColors = _$$props$gridColors === void 0 ? undefined : _$$props$gridColors;\n var _$$props$gridSize = $$props.gridSize,\n gridSize = _$$props$gridSize === void 0 ? undefined : _$$props$gridSize;\n var _$$props$gridOpacity = $$props.gridOpacity,\n gridOpacity = _$$props$gridOpacity === void 0 ? 0 : _$$props$gridOpacity;\n var _$$props$images = $$props.images,\n images = _$$props$images === void 0 ? [] : _$$props$images;\n var _$$props$interfaceIma = $$props.interfaceImages,\n interfaceImages = _$$props$interfaceIma === void 0 ? [] : _$$props$interfaceIma;\n var _$$props$selectionCol = $$props.selectionColor,\n selectionColor = _$$props$selectionCol === void 0 ? undefined : _$$props$selectionCol; // internal props\n\n var canvas;\n var canvasGL = null;\n var width = null;\n var height = null; // springyness for main preview\n\n var updateSpring = function updateSpring(spring, value) {\n return spring.set(value, {\n hard: !isAnimated\n });\n };\n\n var SPRING_PROPS = {\n precision: 0.0001\n };\n var SPRING_PROPS_FRACTION = {\n precision: SPRING_PROPS.precision * 0.01\n }; // Editor UI\n\n var backgroundColorAnimationDuration = 0;\n var background = tweened(undefined, {\n duration: 0\n });\n component_subscribe($$self, background, function (value) {\n return $$invalidate(36, $background = value);\n });\n var maskOpacityStore = spring(1, SPRING_PROPS_FRACTION);\n component_subscribe($$self, maskOpacityStore, function (value) {\n return $$invalidate(35, $maskOpacityStore = value);\n });\n var maskFrameOpacityStore = spring(1, SPRING_PROPS_FRACTION);\n component_subscribe($$self, maskFrameOpacityStore, function (value) {\n return $$invalidate(51, $maskFrameOpacityStore = value);\n });\n var mask = writable();\n component_subscribe($$self, mask, function (value) {\n return $$invalidate(53, $mask = value);\n });\n var imageOverlayColor = writable();\n component_subscribe($$self, imageOverlayColor, function (value) {\n return $$invalidate(52, $imageOverlayColor = value);\n }); //#region selection\n\n var selectionCache = {};\n\n var shouldRedrawSelection = function shouldRedrawSelection(previousActions, currentActions) {\n // length change, always redraw\n if (previousActions.total !== currentActions.length) return true; // we only have to compare last shape\n\n var previousLast = previousActions.last;\n var currentLast = currentActions[currentActions.length - 1]; // if not the same shape, redraw\n\n if (previousLast.drawMode !== currentLast.drawMode) return true;\n if (shapeIsRect(previousLast) && (!shapeIsRect(currentLast) || !rectEqual(previousLast, currentLast))) return true;\n if (shapeIsEllipse(previousLast) && (!shapeIsEllipse(currentLast) || !(previousLast.x === currentLast.x && previousLast.y === currentLast.y && previousLast.rx === currentLast.rx && previousLast.ry === currentLast.ry))) return true;\n if (shapeIsPath(previousLast) && (!shapeIsPath(currentLast) || currentLast.points.length !== previousLast.points.length)) return true; // no change\n\n return false;\n };\n\n var mapSelectionToShape = function mapSelectionToShape(selection, imageSize) {\n // reference to cached state\n var cachedSelection = selectionCache[selection.id]; // calculate selection scalar, this speeds up performance\n\n var scalar = Math.min(1, SELECTION_MAX_SIZE / imageSize.width);\n var selectionCanvas = cachedSelection ? cachedSelection.element : h('canvas', {\n width: imageSize.width * scalar,\n height: imageSize.height * scalar,\n 'data-retain': true\n }); // new actions, need to redraw\n\n if (!cachedSelection || shouldRedrawSelection(cachedSelection, selection.actions)) {\n // clone so texture is redrawn (TODO: make live canvas texture possible)\n selectionCanvas = selectionCanvas.cloneNode(); // draw actions\n\n ctxDrawSelection(selectionCanvas.getContext('2d'), selection.actions, {\n // magenta, is replaced in webgl layer\n selectionColor: [1, 0, 1],\n // scale of canvas relative to image\n scalar: scalar\n }); // store for next draw\n\n var total = selection.actions.length;\n selectionCache[selection.id] = {\n total: total,\n last: _objectSpread({}, selection.actions[total - 1]),\n element: selectionCanvas\n };\n } // create shape to hold texture\n\n\n return _objectSpread(_objectSpread({\n x: 0,\n y: 0\n }, imageSize), {}, {\n fillColor: selection.color || [1, 1, 1],\n backgroundImage: selectionCanvas\n });\n }; //#endregion\n //#region texture loading and binding\n\n\n var redrawRequest;\n\n var requestRedraw = function requestRedraw() {\n cancelAnimationFrame(redrawRequest);\n redrawRequest = requestAnimationFrame(function () {\n // this triggers redraw of items marked as non-dirty\n redrawForce = true; // this makes sure delayed redraw also works\n\n throttledLastDrawTime = 0; // draw the update\n\n drawUpdate();\n });\n };\n\n var Textures = new Map([]);\n var PlaceholderTextures = new Map([]);\n\n var isTextureResourceLoaded = function isTextureResourceLoaded(resource) {\n return (// not is url or dataurl\n !isString(resource) && ( // is something that is accepted as webgl texture\n isImageBitmap(resource) || isImageData(resource) || isCanvas(resource) || isVideoElement(resource))\n );\n };\n\n var getTextureParams = function getTextureParams(imageRendering, textureWrapping) {\n // get texture filter mode\n var filterParam = imageRendering === 'pixelated' ? canvasGL.textureFilterNearest : canvasGL.textureFilterLinear;\n var wrapParam = textureWrapping === 'repeat' ? canvasGL.textureRepeat : canvasGL.textureClamp;\n return {\n filterParam: filterParam,\n wrapParam: wrapParam\n };\n };\n\n var getImageTexture = function getImageTexture(image, imageRendering, textureWrapping) {\n // no texture yet for this source\n if (!Textures.has(image)) {\n // is in loading state when is same as source\n Textures.set(image, image); // get texture filter mode\n\n var textureParams = getTextureParams(imageRendering, textureWrapping); // already loaded\n\n if (isTextureResourceLoaded(image)) {\n // create texture\n var texture = canvasGL.textureCreate(); // udpate texture in gl canvas\n\n canvasGL.textureUpdate(texture, image, textureParams); // update state we now have a texture\n\n Textures.set(image, texture);\n } else // need to load the image\n {\n // start loading the image\n loadImageData(image).then(function (data) {\n // canvas destroyed while loading texture data, or no data returned\n if (!canvasGL || !data) return; // create texture\n\n var texture = canvasGL.textureCreate(); // udpate texture in gl canvas\n\n canvasGL.textureUpdate(texture, data, textureParams); // update state we now have a texture\n\n Textures.set(image, texture); // need to redraw because texture is now available\n\n requestRedraw();\n }).catch(function (err) {\n Textures.set(image, err);\n });\n }\n } // texture is a video and should be updated\n\n\n if (isVideoElement(image) && (isVideoPlaying(image) || image.dataset.redraw === 'true')) {\n var _texture = Textures.get(image); // get texture filter mode\n\n\n var _textureParams = getTextureParams(imageRendering, textureWrapping); // udpate texture in gl canvas\n\n\n canvasGL.textureUpdate(_texture, image, _textureParams); // done drawing\n\n image.dataset.redraw = false; // done!\n\n return _texture;\n } // get texture to return\n\n\n return Textures.get(image);\n };\n\n var getTextTexture = function getTextTexture(shape) {\n var shapeExtendedProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // this allows setting a custom id (for use with shadow and outline)\n var shapeId = shapeExtendedProps.id || shape.id; // skip very small shapes and shapes with not text\n\n if (shape.width && shape.width < 1 || shape.height && shape.height < 1 || !shape.text.length) {\n PlaceholderTextures.delete(shapeId);\n return undefined;\n }\n\n var text = shape.text,\n textAlign = shape.textAlign,\n fontFamily = shape.fontFamily,\n _shape$fontSize = shape.fontSize,\n fontSize = _shape$fontSize === void 0 ? 16 : _shape$fontSize,\n fontWeight = shape.fontWeight,\n fontVariant = shape.fontVariant,\n fontStyle = shape.fontStyle,\n letterSpacing = shape.letterSpacing,\n _shape$lineHeight = shape.lineHeight,\n lineHeight = _shape$lineHeight === void 0 ? fontSize : _shape$lineHeight,\n width = shape.width,\n height = shape.height;\n var _shapeExtendedProps$o = shapeExtendedProps.outline,\n outline = _shapeExtendedProps$o === void 0 ? 0 : _shapeExtendedProps$o,\n _shapeExtendedProps$b = shapeExtendedProps.blur,\n blur = _shapeExtendedProps$b === void 0 ? 0 : _shapeExtendedProps$b,\n _shapeExtendedProps$p = shapeExtendedProps.paddingTop,\n paddingTop = _shapeExtendedProps$p === void 0 ? 0 : _shapeExtendedProps$p,\n _shapeExtendedProps$p2 = shapeExtendedProps.paddingRight,\n paddingRight = _shapeExtendedProps$p2 === void 0 ? 0 : _shapeExtendedProps$p2,\n _shapeExtendedProps$p3 = shapeExtendedProps.paddingBottom,\n paddingBottom = _shapeExtendedProps$p3 === void 0 ? 0 : _shapeExtendedProps$p3,\n _shapeExtendedProps$p4 = shapeExtendedProps.paddingLeft,\n paddingLeft = _shapeExtendedProps$p4 === void 0 ? 0 : _shapeExtendedProps$p4; // this is the same as how contenteditable floors width/height\n\n width = isNumber(width) ? Math.floor(width) : width;\n height = isNumber(height) ? Math.floor(height) : height;\n\n var _textMeasure = textMeasure(text, _objectSpread(_objectSpread({}, shape), {}, {\n width: width,\n // we don't want to limit height so the texture can contain all vertical text,\n // when switching between text modes this makes it possible to use same texture\n // for auto-height and fixed-height\n height: undefined\n })),\n textSize = _textMeasure.textSize,\n signature = _textMeasure.signature;\n\n var textUID = objectUID({\n text: text,\n textAlign: textAlign,\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontVariant: fontVariant,\n fontStyle: fontStyle,\n lineHeight: lineHeight,\n letterSpacing: letterSpacing,\n outline: outline,\n blur: blur,\n signature: signature\n }); // get texture unit assigned to this specific text shape\n\n if (!Textures.has(textUID)) {\n // is in loading state when is same as source\n Textures.set(textUID, text); // defined size of text box\n // - line: undefined, undefined\n // - auto: width, undefined\n // - box: width, height\n\n var imageWidth = Math.ceil(textSize.width);\n var imageHeight = Math.ceil(textSize.height); // skip\n\n if (imageWidth === 0 || imageHeight === 0) return; // check if needs to scale texture\n\n var textureSizeLimit = getWebGLTextureSizeLimit();\n var textureSizeScalar = Math.min(1, // x\n (textureSizeLimit - (paddingLeft + paddingRight) * textPixelRatio) / (imageWidth * textPixelRatio), // y\n (textureSizeLimit - (paddingTop + paddingBottom) * textPixelRatio) / (imageHeight * textPixelRatio)); // create texture\n\n textToImage(text, {\n fontSize: fontSize,\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontVariant: fontVariant,\n fontStyle: fontStyle,\n letterSpacing: letterSpacing,\n textAlign: textAlign,\n lineHeight: lineHeight,\n width: width,\n height: height,\n imageWidth: imageWidth,\n imageHeight: imageHeight,\n paddingLeft: paddingLeft,\n paddingTop: paddingTop,\n paddingRight: paddingRight,\n paddingBottom: paddingBottom,\n pixelRatio: textPixelRatio * textureSizeScalar,\n willRequest: willRequest,\n outline: outline,\n blur: blur,\n styleNonce: csp.styleNonce,\n color: [1, 0, 1] // purple will be replaced in render method\n\n }).then(function (image) {\n // canvas destroyed while loading texture data\n if (!canvasGL) return; // create texture\n\n var texture = canvasGL.textureCreate(); // update texture in gl canvas\n\n canvasGL.textureUpdate(texture, image, {\n filterParam: canvasGL.textureFilterLinear,\n wrapParam: canvasGL.textureClamp,\n scalar: textureSizeScalar\n }); // update state we now have a texture\n\n Textures.set(textUID, texture); // use as fallback texture for next update\n\n PlaceholderTextures.set(shapeId, texture); // need to redraw because texture is now available\n\n requestRedraw();\n }).catch(console.error);\n }\n\n var texture = Textures.get(textUID);\n return isTexture(texture) ? texture : PlaceholderTextures.get(shapeId);\n };\n\n var canvasCache = new Map();\n\n var getBitmapTexture = function getBitmapTexture(shape) {\n var id = shape.id,\n points = shape.points,\n strokeWidth = shape.strokeWidth,\n strokeCap = shape.strokeCap,\n strokeJoin = shape.strokeJoin,\n strokeColor = shape.strokeColor,\n strokeDash = shape.strokeDash;\n var texture = Textures.get(id);\n var canvasState = canvasCache.get(id); // unique id for shape (currently only supports path)\n\n var hash = objectUID({\n points: points.map(function (p) {\n return \"\".concat(p.x, \",\").concat(p.y);\n }).join(','),\n strokeWidth: strokeWidth,\n strokeCap: strokeCap,\n strokeJoin: strokeJoin,\n strokeColor: strokeColor,\n strokeDash: (strokeDash || []).join(',')\n }); // test if should redraw\n\n if (canvasState) {\n var _canvasState = canvasState,\n previousHash = _canvasState.hash; // it's possible the texture has been removed so in that case\n // we need to reset canvas state so the texture is recreated\n\n if (!Textures.has(id)) {\n canvasState = undefined;\n } else // same texture\n if (hash === previousHash) {\n return Textures.get(id);\n }\n } // if is new bitmap shape we need to add a canvas\n\n\n if (!canvasState) {\n // initial canvas\n var _canvas = h('canvas', {\n width: 1,\n height: 1\n });\n\n canvasState = {\n canvas: _canvas,\n hash: undefined\n }; // remember\n\n canvasCache.set(shape.id, canvasState); // create texture\n\n texture = canvasGL.textureCreate(); // udpate texture in gl canvas\n\n canvasGL.textureUpdate(texture, _canvas, {\n filterParam: canvasGL.textureFilterLinear,\n wrapParam: canvasGL.textureClamp\n }); // store texture\n\n Textures.set(id, texture);\n } // get canvas reference\n\n\n var _canvasState2 = canvasState,\n canvas = _canvasState2.canvas; // calculate canvas rectangle\n\n var padding = Math.ceil(shape.strokeWidth);\n var rect = rectCreateFromPoints(points);\n var x = Math.floor(rect.x) - padding * 0.5;\n var y = Math.floor(rect.y) - padding * 0.5;\n var width = Math.ceil(rect.width + padding);\n var height = Math.ceil(rect.height + padding);\n canvas.width = Math.max(width, 1);\n canvas.height = Math.max(height, 1);\n var ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (width >= 1 && height >= 1) {\n ctx.translate(-x, -y);\n drawPath(ctx, shape);\n ctx.resetTransform();\n } // redraw texture in webgl\n\n\n canvasGL.textureUpdate(texture, canvas, {\n filterParam: canvasGL.textureFilterLinear,\n wrapParam: canvasGL.textureClamp\n }); // cache new state\n\n canvasCache.set(id, {\n canvas: canvas,\n hash: hash\n });\n return Textures.get(id);\n };\n\n var getShapeTexture = function getShapeTexture(shape) {\n var texture; // let's create textures for backgrounds\n\n if (shape.backgroundImage) {\n texture = getImageTexture(shape.backgroundImage, shape.backgroundImageRendering, shape.backgroundRepeat === 'repeat' ? 'repeat' : undefined);\n } else // is bitmap drawn shape (path only for now)\n if (shape.bitmap && shape.points) {\n texture = getBitmapTexture(shape);\n }\n\n return texture;\n };\n\n var releaseUnusedTextures = function releaseUnusedTextures(usedTextures) {\n Textures.forEach(function (registeredTexture, key) {\n var isUsed = !!usedTextures.find(function (usedTexture) {\n return usedTexture === registeredTexture;\n }); // stil used, no need to release\n\n if (isUsed || !isTexture(registeredTexture)) return; // skip if used as placeholder texture\n\n if (Array.from(PlaceholderTextures.values()).includes(registeredTexture)) return; // remove this texture\n\n Textures.delete(key);\n canvasGL.textureDelete(registeredTexture);\n });\n }; //#endregion\n //#region drawing\n\n\n var drawImage = function drawImage(_ref171) {\n var texture = _ref171.texture,\n size = _ref171.size,\n origin = _ref171.origin,\n translation = _ref171.translation,\n rotation = _ref171.rotation,\n scale = _ref171.scale,\n colorMatrix = _ref171.colorMatrix,\n opacity = _ref171.opacity,\n convolutionMatrix = _ref171.convolutionMatrix,\n gamma = _ref171.gamma,\n vignette = _ref171.vignette,\n maskFeather = _ref171.maskFeather,\n maskCornerRadius = _ref171.maskCornerRadius,\n overlayColor = _ref171.overlayColor,\n enableOverlay = _ref171.enableOverlay,\n enableManipulation = _ref171.enableManipulation,\n enableAntialiasing = _ref171.enableAntialiasing;\n // this makes sure the image renders extra crisp on low res screens\n var sharpenOffsetX = 0;\n var sharpenOffsetY = 0;\n\n if (pixelRatio === 1) {\n var atActualSize = Math.abs(1 - scale) < Number.EPSILON;\n sharpenOffsetX = atActualSize && width % 2 !== 0 ? 0.5 : 0;\n sharpenOffsetY = atActualSize && height % 2 !== 0 ? 0.5 : 0;\n } // draw the image\n\n\n canvasGL.drawImage(texture, size, origin.x, origin.y, translation.x + sharpenOffsetX, translation.y + sharpenOffsetY, rotation.x, rotation.y, rotation.z, scale, colorMatrix, clamp(opacity, 0, 1), convolutionMatrix, gamma, vignette, maskFeather, maskCornerRadius, overlayColor, enableOverlay, enableManipulation, enableAntialiasing);\n return texture;\n };\n\n var getTextRotationTranslation = function getTextRotationTranslation(textboxRect, shapeRect, rotation) {\n var shapeRectCenter = rectCenter(shapeRect);\n var textboxRectCenter = rectCenter(textboxRect);\n var shapeTranslation = {\n x: shapeRectCenter.x - textboxRectCenter.x,\n y: shapeRectCenter.y - textboxRectCenter.y\n };\n var rotatedTranslation = vectorRotate(shapeRectCenter, rotation, textboxRectCenter);\n return {\n x: rotatedTranslation.x - textboxRectCenter.x - shapeTranslation.x,\n y: rotatedTranslation.y - textboxRectCenter.y - shapeTranslation.y\n };\n };\n\n var transformCornerRadius = function transformCornerRadius(cornerRadius, scalar) {\n return [cornerRadius, cornerRadius, cornerRadius, cornerRadius].map(function (v) {\n return v * scalar;\n });\n };\n\n var computeBackgroundProps = function computeBackgroundProps(shape, shapeRect, textureSize) {\n var backgroundSize = undefined;\n var backgroundPosition = undefined; // always respect texture aspect ratio\n\n var textureAspectRatio = getAspectRatio(textureSize.width, textureSize.height); // if repeat is set, set position to 0,0 and size to textures size\n\n if (shape.backgroundRepeat === 'repeat') {\n backgroundSize = _objectSpread({}, textureSize);\n backgroundPosition = {\n x: 0,\n y: 0\n };\n } // contain in rect\n\n\n if (shape.backgroundSize === 'contain') {\n var rect = rectContainRect(shapeRect, textureAspectRatio, shapeRect);\n backgroundSize = sizeCreateFromRect(rect);\n\n if (shape.backgroundPosition) {\n backgroundPosition = shape.backgroundPosition;\n } else {\n backgroundPosition = vectorCreate((shapeRect.width - backgroundSize.width) * 0.5, (shapeRect.height - backgroundSize.height) * 0.5);\n }\n } else // cover rect\n if (shape.backgroundSize === 'cover') {\n var _rect = rectCoverRect(shapeRect, textureAspectRatio, shapeRect);\n\n backgroundSize = sizeCreateFromRect(_rect);\n\n if (shape.backgroundPosition) {\n backgroundPosition = shape.backgroundPosition;\n } else {\n backgroundPosition = vectorCreate(_rect.x, _rect.y);\n backgroundPosition = vectorCreate((shapeRect.width - backgroundSize.width) * 0.5, (shapeRect.height - backgroundSize.height) * 0.5);\n }\n } else // fixed size\n if (shape.backgroundSize) {\n backgroundSize = shape.backgroundSize;\n backgroundPosition = shape.backgroundPosition || {\n x: 0,\n y: 0\n };\n } else // no size set but position is set\n if (shape.backgroundPosition) {\n backgroundSize = _objectSpread({}, textureSize);\n backgroundPosition = shape.backgroundPosition;\n }\n\n return {\n backgroundSize: backgroundSize,\n backgroundPosition: backgroundPosition\n };\n };\n\n var drawShapes = function drawShapes() {\n var shapes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var usedTextures = arguments.length > 1 ? arguments[1] : undefined;\n // return\n shapes.forEach(function (shape) {\n // only show texture if shape is finished loading\n var shapeTexture = getShapeTexture(shape); // is loading texture\n\n var isLoadingBackgroundImage = shape.status === 'complete' ? false : shape.status === 'loading' ? true : shape.backgroundImage && shapeTexture === shape.backgroundImage;\n if (isLoadingBackgroundImage) requestRedraw();\n var isBackgroundLoadError = shape.status === 'error' ? true : shape.backgroundImage && shapeTexture instanceof Error; // get the webgl texture\n\n var texture = isTexture(shapeTexture) ? shapeTexture : undefined; // transforms\n\n var scalar = shape._scale || 1;\n var translation = shape._translate || EmptyVector; // scale stroke width\n\n var strokeWidth = shape.strokeWidth && shape.strokeWidth * scalar;\n var cornerRadius = shape.cornerRadius ? transformCornerRadius(shape.cornerRadius, scalar) : Vec4Empty;\n var isRect = !!shape.width;\n var isText = isString(shape.text);\n var isPath = isArray(shape.points);\n var isEllipse = shapeIsEllipse(shape);\n\n if (isPath) {\n // transform points\n var points = shape.points.map(function (point) {\n return vectorCreate(point.x * scalar + translation.x, point.y * scalar + translation.y);\n }); // if is bitmap\n\n if (shape.bitmap) {\n // need to add to used textures so we can know when no longer used\n if (shapeTexture) usedTextures.push(shapeTexture);\n var rect = rectCreateFromPoints(points);\n var padding = Math.ceil(shape.strokeWidth * scalar);\n canvasGL.drawRect({\n x: Math.floor(rect.x) - padding * 0.5,\n y: Math.floor(rect.y) - padding * 0.5,\n width: Math.ceil(rect.width + padding),\n height: Math.ceil(rect.height + padding)\n }, shape.rotation, shape.flipX, shape.flipY, [0, 0, 0, 0], undefined, texture, undefined, undefined, undefined, undefined, undefined, undefined, shape.opacity, undefined, undefined, false, false);\n } else {\n canvasGL.drawPath(points, shape.rotation, shape.flipX, shape.flipY, strokeWidth, shape.strokeColor, shape.pathClose, shape.backgroundColor, shape.opacity);\n }\n } else if (isEllipse) {\n var _x101 = shape.x;\n var _y = shape.y;\n _x101 *= scalar;\n _y *= scalar;\n _x101 += translation.x;\n _y += translation.y; // apply shape transforms\n\n var shapeRect = rectCreateFromEllipse({\n x: _x101,\n y: _y,\n rx: shape.rx * scalar,\n ry: shape.ry * scalar\n });\n var center = vectorCreate(_x101, _y);\n var textureSize = texture && canvasGL.textureGetSize(texture);\n var backgroundSize;\n var backgroundPosition;\n\n if (textureSize && shape.backgroundImage && (shape.backgroundSize || shape.backgroundPosition || shape.backgroundRepeat)) {\n var backgroundProps = computeBackgroundProps(shape, shapeRect, textureSize);\n backgroundSize = backgroundProps.backgroundSize;\n backgroundPosition = backgroundProps.backgroundPosition;\n }\n\n canvasGL.drawEllipse(center, shape.rx * scalar, shape.ry * scalar, shape.rotation, shape.flipX, shape.flipY, shape.backgroundColor, texture, backgroundSize, backgroundPosition, shape.backgroundCorners && backgroundCornersToUVMap(shape.backgroundCorners), strokeWidth, shape.strokeColor, shape.opacity, shape.inverted); // need to add to used textures so we can know when no longer used\n\n if (shapeTexture) usedTextures.push(shapeTexture); // draw loading indicator\n\n if (isLoadingBackgroundImage || isBackgroundLoadError) {\n if (!shape.backgroundColor && (!shape.strokeColor || !shape.strokeWidth)) {\n var opacity = shape.opacity || 1;\n canvasGL.drawEllipse(center, shape.rx * scalar, shape.ry * scalar, shape.rotation, shape.flipX, shape.flipY, isBackgroundLoadError ? [1, 0.2549, 0.2118, 0.25 * opacity] : [0, 0, 0, 0.25 * opacity]);\n }\n\n isBackgroundLoadError && drawErrorIndicator(center);\n isLoadingBackgroundImage && drawLoadingIndicator(center);\n }\n } else if (isText) {\n // get fontsize ref and fallback to default\n var _shape$fontSize2 = shape.fontSize,\n _fontSize = _shape$fontSize2 === void 0 ? 16 : _shape$fontSize2; // adjust font scalar\n\n\n var fontScalar = _fontSize > 1000 && isFirefox() ? _fontSize / 1000 : 1; // calculate text padding\n\n var textPadding = Math.max(16, Math.ceil(_fontSize / fontScalar * 0.25)); // get text size\n\n var textboxIsRotated = Math.abs(shape.rotation) > 0;\n\n var _width2 = isNumber(shape.width) ? Math.floor(shape.width) : shape.width;\n\n var _height3 = isNumber(shape.height) ? Math.floor(shape.height) : shape.height;\n\n var textboxSize = textToSize(shape.text, _objectSpread(_objectSpread({}, shape), {}, {\n width: _width2,\n height: _height3\n }));\n var textboxWidth = Math.ceil(textboxSize.width);\n var textboxHeight = Math.ceil(textboxSize.height);\n var textboxRect = {\n x: shape.x * scalar + translation.x,\n y: shape.y * scalar + translation.y,\n width: textboxWidth * scalar,\n height: textboxHeight * scalar\n }; // should clip\n\n var shouldClipTextEffects = !!shape.height; //\n // 1. Draw text background\n //\n\n if (shape.backgroundColor || shape.strokeColor) {\n // draw background\n canvasGL.drawRect(textboxRect, shape.rotation, shape.flipX, shape.flipY, cornerRadius, shape.backgroundColor, undefined, undefined, undefined, false, undefined, strokeWidth, shape.strokeColor, shape.opacity, undefined, undefined, undefined, shape.inverted);\n } //\n // 2. Draw text shadow\n //\n\n\n var textShadowX = shape.textShadowX,\n textShadowY = shape.textShadowY,\n textShadowBlur = shape.textShadowBlur;\n\n if (textShadowX || textShadowY || textShadowBlur) {\n // generate texture\n var textShadowBlurHalf = Math.ceil(textShadowBlur * 0.5);\n\n var _padding = Math.max(textPadding, shouldClipTextEffects ? 0 : textShadowBlurHalf);\n\n var shadowTexture = getTextTexture(shape, {\n id: shape.id + 'shadow',\n blur: textShadowBlur,\n paddingTop: _padding,\n paddingRight: _padding,\n paddingBottom: _padding,\n paddingLeft: _padding\n }); // when received texture\n\n if (shadowTexture && !shape._prerender) {\n usedTextures.push(shadowTexture);\n var shadowTextureSize = canvasGL.textureGetSize(shadowTexture); // where to position\n\n var _backgroundPosition = {\n x: 0,\n y: 0\n }; // size of background\n\n var _backgroundSize = {\n width: shadowTextureSize.width / textPixelRatio * scalar,\n height: shadowTextureSize.height / textPixelRatio * scalar\n };\n var scaledPadding = textPadding * scalar / fontScalar; // will hold shape rect to draw\n\n var _shapeRect; // when clipping text effects the shadow texture rect is the same as the text box rect so we done\n\n\n if (shouldClipTextEffects) {\n _shapeRect = _objectSpread({}, textboxRect); // adjust position based on shadow offset\n\n _backgroundPosition.x = textShadowX - scaledPadding;\n _backgroundPosition.y = textShadowY - scaledPadding;\n } else // offset shape rect\n {\n //\n _shapeRect = {\n x: shape.x * scalar + translation.x - scaledPadding,\n y: shape.y * scalar + translation.y - scaledPadding,\n width: _backgroundSize.width,\n height: _backgroundSize.height\n }; // find offset so we can calculate correct text shape position when rotated (texture rotates around different point than textbox)\n\n if (textboxIsRotated) {\n var rotationTranslation = getTextRotationTranslation(textboxRect, _shapeRect, shape.rotation);\n _shapeRect.x += rotationTranslation.x;\n _shapeRect.y += rotationTranslation.y; // calculate shadow offset\n\n var shadowOffset = vectorRotate(vectorCreate(textShadowX, textShadowY), shape.rotation); // apply shadow transforms\n\n _shapeRect.x += shadowOffset.x;\n _shapeRect.y += shadowOffset.y;\n } else {\n _shapeRect.x += textShadowX;\n _shapeRect.y += textShadowY;\n }\n } // draw shadow\n\n\n canvasGL.drawRect(_shapeRect, shape.rotation, shape.flipX, shape.flipY, [0, 0, 0, 0], undefined, shadowTexture, _backgroundSize, _backgroundPosition, false, undefined, undefined, undefined, shape.opacity, undefined, 0, shape.textShadowColor);\n }\n } //\n // 3. Draw text outline\n //\n\n\n if (shape.textOutlineWidth) {\n var textOutlineWidthHalf = Math.ceil(shape.textOutlineWidth * 0.5);\n var outlinePadding = textPadding + textOutlineWidthHalf;\n var outlineTexture = getTextTexture(shape, {\n id: shape.id + 'outline',\n outline: shape.textOutlineWidth,\n paddingTop: outlinePadding,\n paddingRight: outlinePadding,\n paddingBottom: outlinePadding,\n paddingLeft: outlinePadding\n });\n\n if (outlineTexture && !shape._prerender) {\n usedTextures.push(outlineTexture);\n var outlineTextureSize = canvasGL.textureGetSize(outlineTexture); // where to position\n\n var _backgroundPosition2 = {\n x: 0,\n y: 0\n }; // size of background\n\n var _backgroundSize2 = {\n width: outlineTextureSize.width / textPixelRatio * scalar,\n height: outlineTextureSize.height / textPixelRatio * scalar\n }; // build scaled shape rect\n\n var _scaledPadding = (textPadding + textOutlineWidthHalf) * scalar / fontScalar;\n\n var _shapeRect2 = {\n x: shape.x * scalar + translation.x - _scaledPadding,\n y: shape.y * scalar + translation.y - _scaledPadding,\n width: _backgroundSize2.width,\n // need to clip shape if height is set\n height: shape.height ? textboxHeight + _scaledPadding : _backgroundSize2.height\n }; // apply rotation translation\n\n if (textboxIsRotated) {\n var _rotationTranslation = getTextRotationTranslation(textboxRect, _shapeRect2, shape.rotation);\n\n _shapeRect2.x += _rotationTranslation.x;\n _shapeRect2.y += _rotationTranslation.y;\n }\n\n canvasGL.drawRect(_shapeRect2, shape.rotation, shape.flipX, shape.flipY, [0, 0, 0, 0], undefined, outlineTexture, _backgroundSize2, _backgroundPosition2, false, undefined, undefined, undefined, shape.opacity, undefined, 0, shape.textOutlineColor);\n }\n } //\n // 4. Draw text itself\n //\n\n\n var textTexture = getTextTexture(shape, {\n id: shape.id + 'text',\n paddingTop: textPadding,\n paddingRight: textPadding,\n paddingBottom: textPadding,\n paddingLeft: textPadding\n });\n\n if (textTexture && !shape._prerender) {\n usedTextures.push(textTexture);\n var textTextureSize = canvasGL.textureGetSize(textTexture); // where to position\n\n var _backgroundPosition3 = {\n x: 0,\n y: 0\n }; // size of background\n\n var _backgroundSize3 = {\n width: textTextureSize.width / textPixelRatio * scalar,\n height: textTextureSize.height / textPixelRatio * scalar\n };\n\n var _scaledPadding2 = textPadding * scalar / fontScalar;\n\n var _shapeRect3 = {\n x: shape.x * scalar + translation.x - _scaledPadding2,\n y: shape.y * scalar + translation.y - _scaledPadding2,\n width: _backgroundSize3.width,\n // need to clip shape if height is set\n height: shape.height ? textboxHeight + _scaledPadding2 : _backgroundSize3.height\n }; // find offset so we can calculate correct text shape position when rotated (texture rotates around different point than textbox)\n\n if (textboxIsRotated) {\n var _rotationTranslation2 = getTextRotationTranslation(textboxRect, _shapeRect3, shape.rotation);\n\n _shapeRect3.x += _rotationTranslation2.x;\n _shapeRect3.y += _rotationTranslation2.y;\n } // The text texture needs to be colorized (we don't regenerate it on color change as that would be too slow)\n\n\n var colorize = shape.color || [0, 0, 0]; // If we're pre-rendering we do request drawing the texture but we hide it from view\n\n if (shape._prerender) colorize[3] = 0;\n canvasGL.drawRect(_shapeRect3, shape.rotation, shape.flipX, shape.flipY, Vec4Empty, false, textTexture, _backgroundSize3, _backgroundPosition3, false, false, undefined, undefined, shape.opacity, undefined, shape.feather, colorize, shape.inverted);\n }\n } else if (isRect) {\n // need to add to used textures so we can know when no longer used\n if (shapeTexture) {\n usedTextures.push(shapeTexture);\n } // apply shape transforms\n\n\n var _shapeRect4 = rectCreateFromAny(shape);\n\n if (scalar && translation) {\n _shapeRect4.x *= scalar;\n _shapeRect4.y *= scalar;\n _shapeRect4.x += translation.x;\n _shapeRect4.y += translation.y;\n _shapeRect4.width *= scalar;\n _shapeRect4.height *= scalar;\n } // get texture\n\n\n var _backgroundSize4, _backgroundPosition4;\n\n var _shape$backgroundRepe = shape.backgroundRepeat,\n backgroundRepeat = _shape$backgroundRepe === void 0 ? 'no-repeat' : _shape$backgroundRepe;\n\n var _textureSize = texture && canvasGL.textureGetSize(texture);\n\n if (_textureSize && shape.backgroundImage && (shape.backgroundSize || shape.backgroundPosition || shape.backgroundRepeat)) {\n var _backgroundProps = computeBackgroundProps(shape, _shapeRect4, _textureSize);\n\n _backgroundSize4 = _backgroundProps.backgroundSize;\n _backgroundPosition4 = _backgroundProps.backgroundPosition;\n } // draw the rect\n\n\n canvasGL.drawRect(_shapeRect4, shape.rotation, shape.flipX, shape.flipY, cornerRadius, shape.backgroundColor || [0, 0, 0, 0], texture, _backgroundSize4, _backgroundPosition4, backgroundRepeat === 'repeat', shape.backgroundCorners && backgroundCornersToUVMap(shape.backgroundCorners), strokeWidth, shape.strokeColor, shape.opacity, undefined, shape.feather, shape.fillColor, shape.inverted); // draw loading indicator\n\n if (isLoadingBackgroundImage || isBackgroundLoadError) {\n if ((!shape.backgroundColor || shape.backgroundColor[3] === 0) && (!shape.strokeColor || !shape.strokeWidth)) {\n var _opacity = shape.opacity || 1;\n\n canvasGL.drawRect(_shapeRect4, shape.rotation, shape.flipX, shape.flipY, cornerRadius, isBackgroundLoadError ? [1, 0.2549, 0.2118, 0.25 * _opacity] : [0, 0, 0, 0.25 * _opacity]);\n }\n\n var position = rectCenter(_shapeRect4);\n isBackgroundLoadError && drawErrorIndicator(position);\n isLoadingBackgroundImage && drawLoadingIndicator(position);\n }\n } else if (shapeTexture) {\n // rect might have no width but we still want to remember texture for when it has a width in next draw cycle\n usedTextures.push(shapeTexture);\n }\n });\n }; // loading indicator\n\n\n var spinnerRotation = 0;\n var errorPointsTLBR = [{\n x: -5,\n y: -5\n }, {\n x: 5,\n y: 5\n }];\n var errorPointsTRBL = [{\n x: 5,\n y: -5\n }, {\n x: -5,\n y: 5\n }];\n var spinnerPoints = ellipseToPolygon({\n x: 0,\n y: 0\n }, 10, 10, 0, false, false, 16);\n spinnerPoints.length = 9;\n\n var drawLoadingIndicator = function drawLoadingIndicator(position) {\n // rotate based on date offset\n spinnerRotation = Date.now() / 50; // background fill\n\n canvasGL.drawEllipse(position, 15, 15, 0, false, false, [0, 0, 0, 0.5]); // animate infinity spinner points positions\n\n var points = vectorsRotate(spinnerPoints.map(function (p) {\n return {\n x: p.x + position.x,\n y: p.y + position.y\n };\n }), spinnerRotation, position.x, position.y); // draw the points\n\n canvasGL.drawPath(points, 0, false, false, 2, [1, 1, 1]);\n };\n\n var drawErrorIndicator = function drawErrorIndicator(position) {\n // background fill\n canvasGL.drawEllipse(position, 13, 13, 0, false, false, [1, 0.2549, 0.2118, 0.75]);\n var tlbr = errorPointsTLBR.map(function (p) {\n return {\n x: p.x + position.x,\n y: p.y + position.y\n };\n });\n var trbl = errorPointsTRBL.map(function (p) {\n return {\n x: p.x + position.x,\n y: p.y + position.y\n };\n }); // draw the points\n\n canvasGL.drawPath(tlbr, 0, false, false, 3, [1, 1, 1]);\n canvasGL.drawPath(trbl, 0, false, false, 3, [1, 1, 1]);\n };\n\n var drawTransparencyGridLayer = function drawTransparencyGridLayer(texture, rect, pos, size, color, opacity) {\n return canvasGL.drawRect(rect, 0, false, false, Vec4Empty, Vec4Empty, texture, // size\n size, // pos\n pos, // repeat\n true, undefined, 0, undefined, opacity, undefined, undefined, color);\n };\n\n var drawTransparencyGrid = function drawTransparencyGrid(rect, gridSize, colorEven, colorOdd, opacity) {\n var size = sizeCreate(gridSize, gridSize);\n var texture = getImageTexture(TransparencyGrid, 'pixelated', 'repeat');\n var posA = vectorCreate(-rect.x % gridSize, -rect.y % gridSize);\n var posB = vectorCreate(posA.x + size.width * 0.5, posA.y);\n drawTransparencyGridLayer(texture, rect, posA, size, colorEven, opacity);\n drawTransparencyGridLayer(texture, rect, posB, size, colorOdd, opacity);\n }; // redraws state\n\n\n var redrawForce = false; // forces a redraw of dirty shapes\n\n var isFirstDraw = true;\n var wasFlipping = false; // textures\n\n var usedManipulationTextures = [];\n var usedAnnotationTextures = [];\n var usedTextures = [];\n\n var removeShapesAboveFrame = function removeShapesAboveFrame(shape) {\n return !shape.aboveFrame;\n };\n\n var retainShapesAboveFrame = function retainShapesAboveFrame(shape) {\n return shape.aboveFrame;\n };\n\n var redraw = function redraw() {\n // reset array of textures used in this draw call\n usedTextures.length = 0; // get top image shortcut\n\n var imagesTop = images[0]; // allow dev to inject more shapes\n\n var _willRender = willRender({\n // top image state shortcut\n opacity: imagesTop.opacity,\n rotation: imagesTop.rotation,\n scale: imagesTop.scale,\n // active images\n images: images,\n // canvas size\n size: sizeCreate(width, height),\n // canvas background\n backgroundColor: _toConsumableArray($background),\n // preview selection rect\n selectionRect: $mask\n }),\n manipulationShapes = _willRender.manipulationShapes,\n manipulationShapesDirty = _willRender.manipulationShapesDirty,\n annotationShapes = _willRender.annotationShapes,\n annotationShapesDirty = _willRender.annotationShapesDirty,\n interfaceShapes = _willRender.interfaceShapes,\n decorationShapes = _willRender.decorationShapes,\n frameShapes = _willRender.frameShapes,\n selectionShapes = _willRender.selectionShapes;\n\n var canvasBackgroundColor = _toConsumableArray($background); // adjust mask a bit so bacckground color doesn't bleed through\n\n\n var imagesMask = $mask;\n var imagesMaskOpacity = clamp($maskOpacityStore, 0, 1);\n var imagesOverlayColor = $imageOverlayColor;\n var xFlipProgress = Math.abs(-1 + imagesTop.rotation.x / Math.PI * 2);\n var yFlipProgress = Math.abs(-1 + imagesTop.rotation.y / Math.PI * 2);\n var isFlipping = xFlipProgress < 0.99 || yFlipProgress < 0.99;\n\n var imagesSize = _objectSpread({}, imagesTop.size);\n\n var imagesBackgroundColor = imagesTop.backgroundColor;\n var imagesBackgroundImage = imagesTop.backgroundImage; // no need to draw to blend framebuffer if no redactions\n\n var hasManipulationShapes = manipulationShapes.length > 0; // no need to draw to markup framebuffer if no annotations\n\n var hasAnnotations = annotationShapes.length > 0;\n var hasAnnotationsAboveFrame = annotationShapes.filter(retainShapesAboveFrame).length > 0;\n var hasDecorationsAboveFrame = decorationShapes.filter(retainShapesAboveFrame).length > 0; // if image has background color\n\n var hasImageBackgroundColor = imagesBackgroundColor[3] > 0.0; // if the overlay is transparent so we can see the canvas\n\n var hasTransparentOverlay = imagesMaskOpacity < 1.0; // should mask annotations outside of preview\n\n var hasPreviewStencil = clipAnnotationsToImage ? maskMarkupOpacity >= 1 : false; //clipAnnotationsToImage || maskMarkupOpacity >= 1;\n // set canvas background color to image background color if is defined\n\n if (hasTransparentOverlay && hasImageBackgroundColor) {\n var backR = canvasBackgroundColor[0];\n var backG = canvasBackgroundColor[1];\n var backB = canvasBackgroundColor[2];\n var frontA = 1.0 - imagesMaskOpacity;\n var frontR = imagesBackgroundColor[0] * frontA;\n var frontG = imagesBackgroundColor[1] * frontA;\n var frontB = imagesBackgroundColor[2] * frontA;\n var fA = 1.0 - frontA;\n canvasBackgroundColor[0] = frontR + backR * fA;\n canvasBackgroundColor[1] = frontG + backG * fA;\n canvasBackgroundColor[2] = frontB + backB * fA;\n canvasBackgroundColor[3] = 1;\n } // make background transparent\n\n\n canvasGL.setCanvasColor(isTransparent ? Vec4Empty : canvasBackgroundColor); // if has blend shapes draw blend shapes to framebuffer\n\n var shouldDrawManipulations = hasManipulationShapes && (manipulationShapesDirty || redrawForce);\n\n if (shouldDrawManipulations) {\n canvasGL.disableMask();\n canvasGL.drawToImageBlendBuffer(imagesSize);\n usedManipulationTextures.length = 0;\n drawShapes(manipulationShapes, usedManipulationTextures);\n } else if (!hasManipulationShapes) {\n usedManipulationTextures.length = 0;\n }\n\n usedTextures.push.apply(usedTextures, usedManipulationTextures); // prepare overlay frame buffer\n\n if (isFirstDraw) {\n canvasGL.drawToImageOverlayBuffer(imagesSize, textPixelRatio);\n isFirstDraw = false;\n } // if has annotations draw annotation shapes to framebuffer\n\n\n var shouldDrawAnnotations = hasAnnotations && (annotationShapesDirty || redrawForce);\n\n if (isFlipping) {\n if (shouldDrawAnnotations || !wasFlipping) {\n canvasGL.disableMask();\n canvasGL.drawToImageOverlayBuffer(imagesSize, textPixelRatio);\n usedAnnotationTextures.length = 0;\n var filteredAnnotationShapes = hasAnnotationsAboveFrame ? annotationShapes.filter(removeShapesAboveFrame) : annotationShapes;\n drawShapes(filteredAnnotationShapes, usedAnnotationTextures);\n } else if (!hasAnnotations) {\n usedAnnotationTextures.length = 0;\n } // we use wasFlipping so we know when we should redraw the overlay framebuffer\n\n\n wasFlipping = true;\n } else {\n wasFlipping = false;\n } // switch to canvas drawing for other elements\n\n\n canvasGL.drawToCanvas();\n canvasGL.enableMask(imagesMask, imagesMaskOpacity);\n\n if (enableGrid && gridSize >= 1 && gridColors.length === 2 && gridOpacity) {\n drawTransparencyGrid(imagesMask, gridSize, gridColors[0], gridColors[1], gridOpacity);\n } // draw a colored rectangle behind main preview image\n\n\n if (hasImageBackgroundColor) {\n canvasGL.drawRect(imagesMask, 0, false, false, Vec4Empty, imagesBackgroundColor);\n }\n\n if (imagesBackgroundImage) {\n // hide background image outside of crop area\n canvasGL.enableMask(imagesMask, 1.0);\n\n var _scalar4 = Math.max(maskRect.width / imagesBackgroundImage.width, maskRect.height / imagesBackgroundImage.height);\n\n var _width3 = imagesBackgroundImage.width * _scalar4;\n\n var _height4 = imagesBackgroundImage.height * _scalar4;\n\n var rect = {\n x: maskRect.x + maskRect.width * 0.5 - _width3 * 0.5,\n y: maskRect.y + maskRect.height * 0.5 - _height4 * 0.5,\n width: _width3,\n height: _height4\n };\n canvasGL.drawRect(rect, 0, false, false, Vec4Empty, Vec4Empty, getImageTexture(imagesBackgroundImage, 'linear'));\n canvasGL.enableMask(imagesMask, imagesMaskOpacity);\n }\n\n hasPreviewStencil && canvasGL.enablePreviewStencil(); // draw main image(s)\n\n usedTextures.push.apply(usedTextures, _toConsumableArray(_toConsumableArray(images).reverse().map(function (image) {\n return drawImage(_objectSpread(_objectSpread({}, image), {}, {\n // the image texture\n texture: getImageTexture(image.data),\n // enable drawing markup if defined\n enableOverlay: isFlipping && hasAnnotations,\n // enable drawing redactions if defined\n enableManipulation: hasManipulationShapes,\n // antialias image edges\n enableAntialiasing: true,\n // mask and overlay positions\n mask: imagesMask,\n maskOpacity: imagesMaskOpacity,\n // overlay\n overlayColor: imagesOverlayColor\n }));\n }))); // TODO: move vignette here (draw with colorized circular gradient texture instead of in shader)\n // set markup mask\n\n canvasGL.enableMask(imagesMask, maskMarkupOpacity); // draw shapes in UI instead of framebuffer\n\n if (!isFlipping) {\n // only draw in image area\n hasPreviewStencil && canvasGL.applyPreviewStencil(); // draw shapes\n\n canvasGL.resetCanvasMatrix();\n canvasGL.updateCanvasMatrix(imagesSize, imagesTop.origin, imagesTop.translation, imagesTop.scale, imagesTop.rotation); // draw shapes\n\n usedAnnotationTextures.length = 0;\n\n var _filteredAnnotationShapes = hasAnnotationsAboveFrame ? annotationShapes.filter(removeShapesAboveFrame) : annotationShapes;\n\n drawShapes(_filteredAnnotationShapes, usedAnnotationTextures); // stencil no longer needed\n\n hasPreviewStencil && canvasGL.disablePreviewStencil();\n }\n\n usedTextures.push.apply(usedTextures, usedAnnotationTextures); // draw decorations shapes relative to crop\n\n canvasGL.resetCanvasMatrix();\n canvasGL.enableMask(imagesMask, maskMarkupOpacity);\n drawShapes(hasDecorationsAboveFrame ? decorationShapes.filter(removeShapesAboveFrame) : decorationShapes, usedTextures); // draw frames\n\n if (frameShapes.length) {\n // set frame mask\n canvasGL.enableMask(imagesMask, 1);\n var shapesInside = frameShapes.filter(function (shape) {\n return !shape.expandsCanvas;\n });\n var shapesOutside = frameShapes.filter(function (shape) {\n return shape.expandsCanvas;\n });\n\n if (shapesInside.length) {\n drawShapes(shapesInside, usedTextures);\n }\n\n if (shapesOutside.length) {\n // the half pixel helps mask the outside shapes at the correct position\n canvasGL.enableMask({\n x: imagesMask.x + 0.5,\n y: imagesMask.y + 0.5,\n width: imagesMask.width - 1,\n height: imagesMask.height - 1\n }, $maskFrameOpacityStore);\n drawShapes(shapesOutside, usedTextures);\n }\n } // draw annotation shapes on top of frames\n\n\n if (hasAnnotationsAboveFrame) {\n canvasGL.resetCanvasMatrix();\n canvasGL.updateCanvasMatrix(imagesSize, imagesTop.origin, imagesTop.translation, imagesTop.scale, imagesTop.rotation);\n drawShapes(annotationShapes.filter(retainShapesAboveFrame), usedTextures);\n canvasGL.resetCanvasMatrix();\n } // draw decoration shapes on top of frames\n\n\n if (hasDecorationsAboveFrame) {\n canvasGL.resetCanvasMatrix();\n drawShapes(decorationShapes.filter(retainShapesAboveFrame), usedTextures);\n canvasGL.resetCanvasMatrix();\n } // draw selection (but not when flipping)\n\n\n if (selectionColor && selectionShapes.length && !isFlipping) {\n // draw shapes\n canvasGL.resetCanvasMatrix();\n canvasGL.updateCanvasMatrix(imagesSize, imagesTop.origin, imagesTop.translation, imagesTop.scale, imagesTop.rotation); // selection color\n\n var color = _toConsumableArray(selectionColor);\n\n color[3] = 0.5; // convert selections to shapes\n\n var selectionRectShapes = [{\n id: 'selection',\n color: color,\n actions: _toConsumableArray(selectionShapes)\n }].map(function (selectionGroup) {\n return mapSelectionToShape(selectionGroup, imagesSize);\n }); // draw selections\n\n drawShapes(selectionRectShapes, usedTextures); // done\n\n canvasGL.resetCanvasMatrix();\n } // crop mask not used for interface\n\n\n canvasGL.disableMask(); // draw custom interface shapes\n\n drawShapes(interfaceShapes, usedTextures); // draw preview images (filters and video frame previews)\n\n interfaceImages.forEach(function (image) {\n canvasGL.enableMask(image.mask, image.maskOpacity); // draw background fill\n\n if (image.backgroundColor) {\n // calculate background image cover rect\n var backgroundRect = imagesBackgroundImage && rectCoverRect(_objectSpread({}, image.mask), imagesBackgroundImage.width / imagesBackgroundImage.height);\n var backgroundImage = imagesBackgroundImage && getImageTexture(imagesBackgroundImage, 'linear');\n canvasGL.drawRect(image.mask, 0, false, false, image.maskCornerRadius, image.backgroundColor, backgroundImage, backgroundRect, backgroundRect, undefined, undefined, undefined, undefined, image.opacity, image.maskFeather);\n backgroundImage && usedTextures.push(backgroundImage);\n } // draw image\n\n\n var texture = drawImage(_objectSpread(_objectSpread({}, image), {}, {\n texture: getImageTexture(image.data),\n // antialias edges\n enableAntialiasing: false,\n // update translation to apply `offset` from top left\n translation: {\n x: image.translation.x + image.offset.x - width * 0.5,\n y: image.translation.y + image.offset.y - height * 0.5\n }\n }));\n usedTextures.push(texture);\n });\n canvasGL.disableMask(); // determine which textures can be dropped\n\n releaseUnusedTextures(usedTextures); // done rendering\n\n didRender(); // redraw force flag\n\n redrawForce = false;\n }; //#endregion\n //#region set up\n // throttled redrawer\n\n\n var throttledLastDrawTime = 0;\n var throttledFinalRedrawTimeout;\n\n var redrawThrottled = function redrawThrottled() {\n clearTimeout(throttledFinalRedrawTimeout);\n var now = Date.now();\n var dist = now - throttledLastDrawTime;\n\n if (dist < throttledMinRedrawDist) {\n throttledFinalRedrawTimeout = setTimeout(redrawThrottled, throttledMinRedrawDist);\n return;\n }\n\n throttledLastDrawTime = now;\n redraw();\n }; // returns the render function to use for this browser context\n\n\n var selectFittingRenderFunction = function selectFittingRenderFunction() {\n return isSoftwareRendering() ? redrawThrottled : redraw;\n }; // after DOM has been altered, redraw to canvas\n\n\n afterUpdate(function () {\n return drawUpdate();\n }); // hook up canvas to WebGL drawer\n\n onMount(function () {\n return $$invalidate(31, canvasGL = createWebGLCanvas(canvas, {\n alpha: isTransparent\n }));\n }); // clean up canvas\n\n onDestroy(function () {\n // if canvas wasn't created we don't need to release it\n if (!canvasGL) return; // clear canvas cache\n\n canvasCache.forEach(function (_ref172) {\n var canvas = _ref172.canvas;\n return releaseCanvas(canvas);\n });\n canvasCache.clear(); // done drawing\n\n canvasGL.release(); // remove reference\n\n $$invalidate(31, canvasGL = undefined);\n $$invalidate(0, canvas = undefined);\n });\n\n function canvas_1_binding($$value) {\n binding_callbacks[$$value ? 'unshift' : 'push'](function () {\n canvas = $$value;\n $$invalidate(0, canvas);\n });\n }\n\n var measure_handler = function measure_handler(e) {\n $$invalidate(1, width = e.detail.width);\n $$invalidate(2, height = e.detail.height);\n dispatch('measure', {\n width: width,\n height: height\n });\n };\n\n $$self.$$set = function ($$props) {\n if ('isAnimated' in $$props) $$invalidate(9, isAnimated = $$props.isAnimated);\n if ('isTransparent' in $$props) $$invalidate(10, isTransparent = $$props.isTransparent);\n if ('maskRect' in $$props) $$invalidate(11, maskRect = $$props.maskRect);\n if ('maskOpacity' in $$props) $$invalidate(12, maskOpacity = $$props.maskOpacity);\n if ('maskFrameOpacity' in $$props) $$invalidate(13, maskFrameOpacity = $$props.maskFrameOpacity);\n if ('maskMarkupOpacity' in $$props) $$invalidate(14, maskMarkupOpacity = $$props.maskMarkupOpacity);\n if ('clipAnnotationsToImage' in $$props) $$invalidate(15, clipAnnotationsToImage = $$props.clipAnnotationsToImage);\n if ('pixelRatio' in $$props) $$invalidate(16, pixelRatio = $$props.pixelRatio);\n if ('textPixelRatio' in $$props) $$invalidate(17, textPixelRatio = $$props.textPixelRatio);\n if ('backgroundColor' in $$props) $$invalidate(18, backgroundColor = $$props.backgroundColor);\n if ('willRender' in $$props) $$invalidate(19, willRender = $$props.willRender);\n if ('didRender' in $$props) $$invalidate(20, didRender = $$props.didRender);\n if ('willRequest' in $$props) $$invalidate(21, willRequest = $$props.willRequest);\n if ('csp' in $$props) $$invalidate(22, csp = $$props.csp);\n if ('loadImageData' in $$props) $$invalidate(23, loadImageData = $$props.loadImageData);\n if ('enableGrid' in $$props) $$invalidate(24, enableGrid = $$props.enableGrid);\n if ('gridColors' in $$props) $$invalidate(25, gridColors = $$props.gridColors);\n if ('gridSize' in $$props) $$invalidate(26, gridSize = $$props.gridSize);\n if ('gridOpacity' in $$props) $$invalidate(27, gridOpacity = $$props.gridOpacity);\n if ('images' in $$props) $$invalidate(28, images = $$props.images);\n if ('interfaceImages' in $$props) $$invalidate(29, interfaceImages = $$props.interfaceImages);\n if ('selectionColor' in $$props) $$invalidate(30, selectionColor = $$props.selectionColor);\n };\n\n $$self.$$.update = function () {\n if ($$self.$$.dirty[0] &\n /*canvas*/\n 1) {\n if (canvas) {\n var propertyValue = getComputedStyle(canvas).getPropertyValue('--color-transition-duration');\n $$invalidate(32, backgroundColorAnimationDuration = durationToMilliseconds(propertyValue));\n }\n }\n\n if ($$self.$$.dirty[0] &\n /*backgroundColor, isAnimated*/\n 262656 | $$self.$$.dirty[1] &\n /*backgroundColorAnimationDuration*/\n 2) {\n backgroundColor && background.set(backgroundColor, {\n duration: isAnimated ? backgroundColorAnimationDuration : 0\n });\n }\n\n if ($$self.$$.dirty[0] &\n /*maskOpacity*/\n 4096) {\n updateSpring(maskOpacityStore, isNumber(maskOpacity) ? maskOpacity : 1);\n }\n\n if ($$self.$$.dirty[0] &\n /*maskFrameOpacity*/\n 8192) {\n updateSpring(maskFrameOpacityStore, isNumber(maskFrameOpacity) ? maskFrameOpacity : 1);\n }\n\n if ($$self.$$.dirty[0] &\n /*maskRect*/\n 2048) {\n maskRect && mask.set(maskRect);\n }\n\n if ($$self.$$.dirty[1] &\n /*$background, $maskOpacityStore*/\n 48) {\n $background && imageOverlayColor.set([$background[0], $background[1], $background[2], clamp($maskOpacityStore, 0, 1)]);\n }\n\n if ($$self.$$.dirty[0] &\n /*width, height, images*/\n 268435462 | $$self.$$.dirty[1] &\n /*canvasGL*/\n 1) {\n // can draw view\n $$invalidate(34, canDraw = !!(canvasGL && width && height && images.length));\n }\n\n if ($$self.$$.dirty[0] &\n /*width, height, pixelRatio*/\n 65542 | $$self.$$.dirty[1] &\n /*canvasGL*/\n 1) {\n // observe width and height changes and resize the canvas proportionally\n if (width && height && canvasGL) {\n // need to reset last draw date so throttled redraw always runs redraw logic after resize\n throttledLastDrawTime = 0; // resize canvas\n\n canvasGL.resize(width, height, pixelRatio);\n }\n }\n\n if ($$self.$$.dirty[1] &\n /*canDraw*/\n 8) {\n // switch to draw method when can draw\n $$invalidate(33, drawUpdate = canDraw ? selectFittingRenderFunction() : noop$1);\n }\n\n if ($$self.$$.dirty[1] &\n /*canDraw, drawUpdate*/\n 12) {\n // if can draw state is updated and we have a draw update function, time to redraw\n canDraw && drawUpdate && drawUpdate();\n }\n };\n\n return [canvas, width, height, dispatch, background, maskOpacityStore, maskFrameOpacityStore, mask, imageOverlayColor, isAnimated, isTransparent, maskRect, maskOpacity, maskFrameOpacity, maskMarkupOpacity, clipAnnotationsToImage, pixelRatio, textPixelRatio, backgroundColor, willRender, didRender, willRequest, csp, loadImageData, enableGrid, gridColors, gridSize, gridOpacity, images, interfaceImages, selectionColor, canvasGL, backgroundColorAnimationDuration, drawUpdate, canDraw, $maskOpacityStore, $background, canvas_1_binding, measure_handler];\n}\n\nvar Canvas = /*#__PURE__*/function (_SvelteComponent) {\n _inherits(Canvas, _SvelteComponent);\n\n var _super2 = _createSuper(Canvas);\n\n function Canvas(options) {\n var _this3;\n\n _classCallCheck(this, Canvas);\n\n _this3 = _super2.call(this);\n init(_assertThisInitialized(_this3), options, instance$U, create_fragment$T, safe_not_equal, {\n isAnimated: 9,\n isTransparent: 10,\n maskRect: 11,\n maskOpacity: 12,\n maskFrameOpacity: 13,\n maskMarkupOpacity: 14,\n clipAnnotationsToImage: 15,\n pixelRatio: 16,\n textPixelRatio: 17,\n backgroundColor: 18,\n willRender: 19,\n didRender: 20,\n willRequest: 21,\n csp: 22,\n loadImageData: 23,\n enableGrid: 24,\n gridColors: 25,\n gridSize: 26,\n gridOpacity: 27,\n images: 28,\n interfaceImages: 29,\n selectionColor: 30\n }, null, [-1, -1, -1]);\n return _this3;\n }\n\n return _createClass(Canvas);\n}(SvelteComponent);\n\nvar arrayJoin = function arrayJoin(arr) {\n var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;\n var str = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ' ';\n return arr.filter(filter).join(str);\n};\n/* src/core/ui/components/TabList.svelte generated by Svelte v3.52.0 */\n\n\nfunction get_each_context$8(ctx, list, i) {\n var child_ctx = ctx.slice();\n child_ctx[17] = list[i];\n return child_ctx;\n}\n\nvar get_default_slot_changes$1 = function get_default_slot_changes$1(dirty) {\n return {\n tab: dirty &\n /*tabNodes*/\n 4\n };\n};\n\nvar get_default_slot_context$1 = function get_default_slot_context$1(ctx) {\n return {\n tab:\n /*tab*/\n ctx[17]\n };\n}; // (52:0) {#if shouldRender}\n\n\nfunction create_if_block$n(ctx) {\n var div;\n var each_blocks = [];\n var each_1_lookup = new Map();\n var div_class_value;\n var current;\n var each_value =\n /*tabNodes*/\n ctx[2];\n\n var get_key = function get_key(ctx) {\n return (\n /*tab*/\n ctx[17].id\n );\n };\n\n for (var i = 0; i < each_value.length; i += 1) {\n var child_ctx = get_each_context$8(ctx, each_value, i);\n var key = get_key(child_ctx);\n each_1_lookup.set(key, each_blocks[i] = create_each_block$8(key, child_ctx));\n }\n\n return {\n c: function c() {\n div = element(\"div\");\n\n for (var _i3 = 0; _i3 < each_blocks.length; _i3 += 1) {\n each_blocks[_i3].c();\n }\n\n attr(div, \"class\", div_class_value = arrayJoin(['PinturaTabList',\n /*klass*/\n ctx[0]]));\n attr(div, \"role\", \"tablist\");\n attr(div, \"data-layout\",\n /*layout*/\n ctx[1]);\n },\n m: function m(target, anchor) {\n insert(target, div, anchor);\n\n for (var _i4 = 0; _i4 < each_blocks.length; _i4 += 1) {\n each_blocks[_i4].m(div, null);\n }\n /*div_binding*/\n\n\n ctx[14](div);\n current = true;\n },\n p: function p(ctx, dirty) {\n if (dirty &\n /*tabNodes, handleKeyTab, handleClickTab, $$scope*/\n 1124) {\n each_value =\n /*tabNodes*/\n ctx[2];\n group_outros();\n each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, div, outro_and_destroy_block, create_each_block$8, null, get_each_context$8);\n check_outros();\n }\n\n if (!current || dirty &\n /*klass*/\n 1 && div_class_value !== (div_class_value = arrayJoin(['PinturaTabList',\n /*klass*/\n ctx[0]]))) {\n attr(div, \"class\", div_class_value);\n }\n\n if (!current || dirty &\n /*layout*/\n 2) {\n attr(div, \"data-layout\",\n /*layout*/\n ctx[1]);\n }\n },\n i: function i(local) {\n if (current) return;\n\n for (var _i5 = 0; _i5 < each_value.length; _i5 += 1) {\n transition_in(each_blocks[_i5]);\n }\n\n current = true;\n },\n o: function o(local) {\n for (var _i6 = 0; _i6 < each_blocks.length; _i6 += 1) {\n transition_out(each_blocks[_i6]);\n }\n\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(div);\n\n for (var _i7 = 0; _i7 < each_blocks.length; _i7 += 1) {\n each_blocks[_i7].d();\n }\n /*div_binding*/\n\n\n ctx[14](null);\n }\n };\n} // (59:8) {#each tabNodes as tab (tab.id)}\n\n\nfunction create_each_block$8(key_1, ctx) {\n var button;\n var t;\n var button_id_value;\n var button_aria_controls_value;\n var button_aria_selected_value;\n var button_disabled_value;\n var current;\n var mounted;\n var dispose;\n var default_slot_template =\n /*#slots*/\n ctx[11].default;\n var default_slot = create_slot(default_slot_template, ctx,\n /*$$scope*/\n ctx[10], get_default_slot_context$1);\n\n function keydown_handler() {\n var _ctx5;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key7 = 0; _key7 < _len4; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return (\n /*keydown_handler*/\n (_ctx5 = ctx)[12].apply(_ctx5, [\n /*tab*/\n ctx[17]].concat(args))\n );\n }\n\n function click_handler() {\n var _ctx6;\n\n for (var _len5 = arguments.length, args = new Array(_len5), _key8 = 0; _key8 < _len5; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n return (\n /*click_handler*/\n (_ctx6 = ctx)[13].apply(_ctx6, [\n /*tab*/\n ctx[17]].concat(args))\n );\n }\n\n return {\n key: key_1,\n first: null,\n c: function c() {\n button = element(\"button\");\n if (default_slot) default_slot.c();\n t = space();\n attr(button, \"role\", \"tab\");\n attr(button, \"id\", button_id_value =\n /*tab*/\n ctx[17].tabId);\n attr(button, \"aria-controls\", button_aria_controls_value =\n /*tab*/\n ctx[17].href.substring(1));\n attr(button, \"aria-selected\", button_aria_selected_value =\n /*tab*/\n ctx[17].selected);\n button.disabled = button_disabled_value =\n /*tab*/\n ctx[17].disabled;\n attr(button, \"type\", \"button\");\n this.first = button;\n },\n m: function m(target, anchor) {\n insert(target, button, anchor);\n\n if (default_slot) {\n default_slot.m(button, null);\n }\n\n append(button, t);\n current = true;\n\n if (!mounted) {\n dispose = [listen(button, \"keydown\", keydown_handler), listen(button, \"click\", click_handler)];\n mounted = true;\n }\n },\n p: function p(new_ctx, dirty) {\n ctx = new_ctx;\n\n if (default_slot) {\n if (default_slot.p && (!current || dirty &\n /*$$scope, tabNodes*/\n 1028)) {\n update_slot_base(default_slot, default_slot_template, ctx,\n /*$$scope*/\n ctx[10], !current ? get_all_dirty_from_scope(\n /*$$scope*/\n ctx[10]) : get_slot_changes(default_slot_template,\n /*$$scope*/\n ctx[10], dirty, get_default_slot_changes$1), get_default_slot_context$1);\n }\n }\n\n if (!current || dirty &\n /*tabNodes*/\n 4 && button_id_value !== (button_id_value =\n /*tab*/\n ctx[17].tabId)) {\n attr(button, \"id\", button_id_value);\n }\n\n if (!current || dirty &\n /*tabNodes*/\n 4 && button_aria_controls_value !== (button_aria_controls_value =\n /*tab*/\n ctx[17].href.substring(1))) {\n attr(button, \"aria-controls\", button_aria_controls_value);\n }\n\n if (!current || dirty &\n /*tabNodes*/\n 4 && button_aria_selected_value !== (button_aria_selected_value =\n /*tab*/\n ctx[17].selected)) {\n attr(button, \"aria-selected\", button_aria_selected_value);\n }\n\n if (!current || dirty &\n /*tabNodes*/\n 4 && button_disabled_value !== (button_disabled_value =\n /*tab*/\n ctx[17].disabled)) {\n button.disabled = button_disabled_value;\n }\n },\n i: function i(local) {\n if (current) return;\n transition_in(default_slot, local);\n current = true;\n },\n o: function o(local) {\n transition_out(default_slot, local);\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(button);\n if (default_slot) default_slot.d(detaching);\n mounted = false;\n run_all(dispose);\n }\n };\n}\n\nfunction create_fragment$S(ctx) {\n var if_block_anchor;\n var current;\n var if_block =\n /*shouldRender*/\n ctx[4] && create_if_block$n(ctx);\n return {\n c: function c() {\n if (if_block) if_block.c();\n if_block_anchor = empty();\n },\n m: function m(target, anchor) {\n if (if_block) if_block.m(target, anchor);\n insert(target, if_block_anchor, anchor);\n current = true;\n },\n p: function p(ctx, _ref173) {\n var _ref174 = _slicedToArray(_ref173, 1),\n dirty = _ref174[0];\n\n if (\n /*shouldRender*/\n ctx[4]) {\n if (if_block) {\n if_block.p(ctx, dirty);\n\n if (dirty &\n /*shouldRender*/\n 16) {\n transition_in(if_block, 1);\n }\n } else {\n if_block = create_if_block$n(ctx);\n if_block.c();\n transition_in(if_block, 1);\n if_block.m(if_block_anchor.parentNode, if_block_anchor);\n }\n } else if (if_block) {\n group_outros();\n transition_out(if_block, 1, 1, function () {\n if_block = null;\n });\n check_outros();\n }\n },\n i: function i(local) {\n if (current) return;\n transition_in(if_block);\n current = true;\n },\n o: function o(local) {\n transition_out(if_block);\n current = false;\n },\n d: function d(detaching) {\n if (if_block) if_block.d(detaching);\n if (detaching) detach(if_block_anchor);\n }\n };\n}\n\nfunction instance$T($$self, $$props, $$invalidate) {\n var tabNodes;\n var shouldRender;\n var _$$props$$$slots = $$props.$$slots,\n slots = _$$props$$$slots === void 0 ? {} : _$$props$$$slots,\n $$scope = $$props.$$scope;\n var root;\n var _$$props$class = $$props.class,\n klass = _$$props$class === void 0 ? undefined : _$$props$class;\n var name = $$props.name;\n var selected = $$props.selected;\n var _$$props$tabs = $$props.tabs,\n tabs = _$$props$tabs === void 0 ? [] : _$$props$tabs;\n var _$$props$layout = $$props.layout,\n layout = _$$props$layout === void 0 ? undefined : _$$props$layout;\n var dispatch = createEventDispatcher();\n\n var focusTab = function focusTab(index) {\n var tab = root.querySelectorAll('[role=\"tab\"] button')[index];\n if (!tab) return;\n tab.focus();\n };\n\n var handleClickTab = function handleClickTab(e, id) {\n e.preventDefault();\n e.stopPropagation();\n dispatch('select', id);\n };\n\n var handleKeyTab = function handleKeyTab(_ref175, id) {\n var key = _ref175.key;\n if (!/arrow/i.test(key)) return;\n var index = tabs.findIndex(function (tab) {\n return tab.id === id;\n }); // next\n\n if (/right|down/i.test(key)) return focusTab(index < tabs.length - 1 ? index + 1 : 0); // prev\n\n if (/left|up/i.test(key)) return focusTab(index > 0 ? index - 1 : tabs.length - 1);\n };\n\n var keydown_handler = function keydown_handler(tab, e) {\n return handleKeyTab(e, tab.id);\n };\n\n var click_handler = function click_handler(tab, e) {\n return handleClickTab(e, tab.id);\n };\n\n function div_binding($$value) {\n binding_callbacks[$$value ? 'unshift' : 'push'](function () {\n root = $$value;\n $$invalidate(3, root);\n });\n }\n\n $$self.$$set = function ($$props) {\n if ('class' in $$props) $$invalidate(0, klass = $$props.class);\n if ('name' in $$props) $$invalidate(7, name = $$props.name);\n if ('selected' in $$props) $$invalidate(8, selected = $$props.selected);\n if ('tabs' in $$props) $$invalidate(9, tabs = $$props.tabs);\n if ('layout' in $$props) $$invalidate(1, layout = $$props.layout);\n if ('$$scope' in $$props) $$invalidate(10, $$scope = $$props.$$scope);\n };\n\n $$self.$$.update = function () {\n if ($$self.$$.dirty &\n /*tabs, selected, name*/\n 896) {\n $$invalidate(2, tabNodes = tabs.map(function (tab) {\n var isActive = tab.id === selected;\n return _objectSpread(_objectSpread({}, tab), {}, {\n tabId: \"tab-\".concat(name, \"-\").concat(tab.id),\n href: \"#panel-\".concat(name, \"-\").concat(tab.id),\n selected: isActive\n });\n }));\n }\n\n if ($$self.$$.dirty &\n /*tabNodes*/\n 4) {\n $$invalidate(4, shouldRender = tabNodes.length > 1);\n }\n };\n\n return [klass, layout, tabNodes, root, shouldRender, handleClickTab, handleKeyTab, name, selected, tabs, $$scope, slots, keydown_handler, click_handler, div_binding];\n}\n\nvar TabList = /*#__PURE__*/function (_SvelteComponent2) {\n _inherits(TabList, _SvelteComponent2);\n\n var _super3 = _createSuper(TabList);\n\n function TabList(options) {\n var _this4;\n\n _classCallCheck(this, TabList);\n\n _this4 = _super3.call(this);\n init(_assertThisInitialized(_this4), options, instance$T, create_fragment$S, safe_not_equal, {\n class: 0,\n name: 7,\n selected: 8,\n tabs: 9,\n layout: 1\n });\n return _this4;\n }\n\n return _createClass(TabList);\n}(SvelteComponent);\n\nvar styleable = function styleable(element, styles) {\n if (!styles) return;\n\n var update = function update(styles) {\n setElementStyles(element, styles);\n };\n\n update(styles);\n return {\n update: update\n };\n};\n/* src/core/ui/components/TabPanels.svelte generated by Svelte v3.52.0 */\n\n\nvar get_default_slot_changes_1 = function get_default_slot_changes_1(dirty) {\n return {\n panel: dirty &\n /*panelNodes*/\n 16\n };\n};\n\nvar get_default_slot_context_1 = function get_default_slot_context_1(ctx) {\n return {\n panel:\n /*panelNodes*/\n ctx[4][0].id,\n panelIsActive: true\n };\n};\n\nfunction get_each_context$7(ctx, list, i) {\n var child_ctx = ctx.slice();\n child_ctx[14] = list[i].id;\n child_ctx[15] = list[i].shouldDraw;\n child_ctx[16] = list[i].panelId;\n child_ctx[17] = list[i].labelledBy;\n child_ctx[18] = list[i].isActive;\n child_ctx[19] = list[i].hidden;\n child_ctx[3] = list[i].visible;\n return child_ctx;\n}\n\nvar get_default_slot_changes = function get_default_slot_changes(dirty) {\n return {\n panel: dirty &\n /*panelNodes*/\n 16,\n panelIsActive: dirty &\n /*panelNodes*/\n 16\n };\n};\n\nvar get_default_slot_context = function get_default_slot_context(ctx) {\n return {\n panel:\n /*id*/\n ctx[14],\n panelIsActive:\n /*isActive*/\n ctx[18]\n };\n}; // (63:0) {:else}\n\n\nfunction create_else_block$b(ctx) {\n var div1;\n var div0;\n var div0_class_value;\n var styleable_action;\n var current;\n var mounted;\n var dispose;\n var default_slot_template =\n /*#slots*/\n ctx[11].default;\n var default_slot = create_slot(default_slot_template, ctx,\n /*$$scope*/\n ctx[10], get_default_slot_context_1);\n return {\n c: function c() {\n div1 = element(\"div\");\n div0 = element(\"div\");\n if (default_slot) default_slot.c();\n attr(div0, \"class\", div0_class_value = arrayJoin([\n /*panelClass*/\n ctx[1]]));\n attr(div1, \"class\",\n /*klass*/\n ctx[0]);\n },\n m: function m(target, anchor) {\n insert(target, div1, anchor);\n append(div1, div0);\n\n if (default_slot) {\n default_slot.m(div0, null);\n }\n\n current = true;\n\n if (!mounted) {\n dispose = [action_destroyer(styleable_action = styleable.call(null, div1,\n /*style*/\n ctx[2])), listen(div1, \"measure\",\n /*measure_handler_1*/\n ctx[13]), action_destroyer(measurable.call(null, div1))];\n mounted = true;\n }\n },\n p: function p(ctx, dirty) {\n if (default_slot) {\n if (default_slot.p && (!current || dirty &\n /*$$scope, panelNodes*/\n 1040)) {\n update_slot_base(default_slot, default_slot_template, ctx,\n /*$$scope*/\n ctx[10], !current ? get_all_dirty_from_scope(\n /*$$scope*/\n ctx[10]) : get_slot_changes(default_slot_template,\n /*$$scope*/\n ctx[10], dirty, get_default_slot_changes_1), get_default_slot_context_1);\n }\n }\n\n if (!current || dirty &\n /*panelClass*/\n 2 && div0_class_value !== (div0_class_value = arrayJoin([\n /*panelClass*/\n ctx[1]]))) {\n attr(div0, \"class\", div0_class_value);\n }\n\n if (!current || dirty &\n /*klass*/\n 1) {\n attr(div1, \"class\",\n /*klass*/\n ctx[0]);\n }\n\n if (styleable_action && is_function(styleable_action.update) && dirty &\n /*style*/\n 4) styleable_action.update.call(null,\n /*style*/\n ctx[2]);\n },\n i: function i(local) {\n if (current) return;\n transition_in(default_slot, local);\n current = true;\n },\n o: function o(local) {\n transition_out(default_slot, local);\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(div1);\n if (default_slot) default_slot.d(detaching);\n mounted = false;\n run_all(dispose);\n }\n };\n} // (42:0) {#if shouldRender}\n\n\nfunction create_if_block$m(ctx) {\n var div;\n var each_blocks = [];\n var each_1_lookup = new Map();\n var div_class_value;\n var styleable_action;\n var current;\n var mounted;\n var dispose;\n var each_value =\n /*panelNodes*/\n ctx[4];\n\n var get_key = function get_key(ctx) {\n return (\n /*id*/\n ctx[14]\n );\n };\n\n for (var i = 0; i < each_value.length; i += 1) {\n var child_ctx = get_each_context$7(ctx, each_value, i);\n var key = get_key(child_ctx);\n each_1_lookup.set(key, each_blocks[i] = create_each_block$7(key, child_ctx));\n }\n\n return {\n c: function c() {\n div = element(\"div\");\n\n for (var _i8 = 0; _i8 < each_blocks.length; _i8 += 1) {\n each_blocks[_i8].c();\n }\n\n attr(div, \"class\", div_class_value = arrayJoin(['PinturaTabPanels',\n /*klass*/\n ctx[0]]));\n },\n m: function m(target, anchor) {\n insert(target, div, anchor);\n\n for (var _i9 = 0; _i9 < each_blocks.length; _i9 += 1) {\n each_blocks[_i9].m(div, null);\n }\n\n current = true;\n\n if (!mounted) {\n dispose = [action_destroyer(styleable_action = styleable.call(null, div,\n /*style*/\n ctx[2])), listen(div, \"measure\",\n /*measure_handler*/\n ctx[12]), action_destroyer(measurable.call(null, div, {\n observePosition: true\n }))];\n mounted = true;\n }\n },\n p: function p(ctx, dirty) {\n if (dirty &\n /*arrayJoin, panelClass, panelNodes, $$scope*/\n 1042) {\n each_value =\n /*panelNodes*/\n ctx[4];\n group_outros();\n each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, div, outro_and_destroy_block, create_each_block$7, null, get_each_context$7);\n check_outros();\n }\n\n if (!current || dirty &\n /*klass*/\n 1 && div_class_value !== (div_class_value = arrayJoin(['PinturaTabPanels',\n /*klass*/\n ctx[0]]))) {\n attr(div, \"class\", div_class_value);\n }\n\n if (styleable_action && is_function(styleable_action.update) && dirty &\n /*style*/\n 4) styleable_action.update.call(null,\n /*style*/\n ctx[2]);\n },\n i: function i(local) {\n if (current) return;\n\n for (var _i10 = 0; _i10 < each_value.length; _i10 += 1) {\n transition_in(each_blocks[_i10]);\n }\n\n current = true;\n },\n o: function o(local) {\n for (var _i11 = 0; _i11 < each_blocks.length; _i11 += 1) {\n transition_out(each_blocks[_i11]);\n }\n\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(div);\n\n for (var _i12 = 0; _i12 < each_blocks.length; _i12 += 1) {\n each_blocks[_i12].d();\n }\n\n mounted = false;\n run_all(dispose);\n }\n };\n} // (59:16) {#if shouldDraw}\n\n\nfunction create_if_block_1$h(ctx) {\n var current;\n var default_slot_template =\n /*#slots*/\n ctx[11].default;\n var default_slot = create_slot(default_slot_template, ctx,\n /*$$scope*/\n ctx[10], get_default_slot_context);\n return {\n c: function c() {\n if (default_slot) default_slot.c();\n },\n m: function m(target, anchor) {\n if (default_slot) {\n default_slot.m(target, anchor);\n }\n\n current = true;\n },\n p: function p(ctx, dirty) {\n if (default_slot) {\n if (default_slot.p && (!current || dirty &\n /*$$scope, panelNodes*/\n 1040)) {\n update_slot_base(default_slot, default_slot_template, ctx,\n /*$$scope*/\n ctx[10], !current ? get_all_dirty_from_scope(\n /*$$scope*/\n ctx[10]) : get_slot_changes(default_slot_template,\n /*$$scope*/\n ctx[10], dirty, get_default_slot_changes), get_default_slot_context);\n }\n }\n },\n i: function i(local) {\n if (current) return;\n transition_in(default_slot, local);\n current = true;\n },\n o: function o(local) {\n transition_out(default_slot, local);\n current = false;\n },\n d: function d(detaching) {\n if (default_slot) default_slot.d(detaching);\n }\n };\n} // (50:8) {#each panelNodes as { id, shouldDraw, panelId, labelledBy, isActive, hidden, visible }\n\n\nfunction create_each_block$7(key_1, ctx) {\n var div;\n var t;\n var div_class_value;\n var div_hidden_value;\n var div_id_value;\n var div_aria_labelledby_value;\n var div_data_inert_value;\n var current;\n var if_block =\n /*shouldDraw*/\n ctx[15] && create_if_block_1$h(ctx);\n return {\n key: key_1,\n first: null,\n c: function c() {\n div = element(\"div\");\n if (if_block) if_block.c();\n t = space();\n attr(div, \"class\", div_class_value = arrayJoin(['PinturaTabPanel',\n /*panelClass*/\n ctx[1]]));\n div.hidden = div_hidden_value =\n /*hidden*/\n ctx[19];\n attr(div, \"id\", div_id_value =\n /*panelId*/\n ctx[16]);\n attr(div, \"aria-labelledby\", div_aria_labelledby_value =\n /*labelledBy*/\n ctx[17]);\n attr(div, \"data-inert\", div_data_inert_value = !\n /*visible*/\n ctx[3]);\n attr(div, \"role\", \"tabpanel\");\n this.first = div;\n },\n m: function m(target, anchor) {\n insert(target, div, anchor);\n if (if_block) if_block.m(div, null);\n append(div, t);\n current = true;\n },\n p: function p(new_ctx, dirty) {\n ctx = new_ctx;\n\n if (\n /*shouldDraw*/\n ctx[15]) {\n if (if_block) {\n if_block.p(ctx, dirty);\n\n if (dirty &\n /*panelNodes*/\n 16) {\n transition_in(if_block, 1);\n }\n } else {\n if_block = create_if_block_1$h(ctx);\n if_block.c();\n transition_in(if_block, 1);\n if_block.m(div, t);\n }\n } else if (if_block) {\n group_outros();\n transition_out(if_block, 1, 1, function () {\n if_block = null;\n });\n check_outros();\n }\n\n if (!current || dirty &\n /*panelClass*/\n 2 && div_class_value !== (div_class_value = arrayJoin(['PinturaTabPanel',\n /*panelClass*/\n ctx[1]]))) {\n attr(div, \"class\", div_class_value);\n }\n\n if (!current || dirty &\n /*panelNodes*/\n 16 && div_hidden_value !== (div_hidden_value =\n /*hidden*/\n ctx[19])) {\n div.hidden = div_hidden_value;\n }\n\n if (!current || dirty &\n /*panelNodes*/\n 16 && div_id_value !== (div_id_value =\n /*panelId*/\n ctx[16])) {\n attr(div, \"id\", div_id_value);\n }\n\n if (!current || dirty &\n /*panelNodes*/\n 16 && div_aria_labelledby_value !== (div_aria_labelledby_value =\n /*labelledBy*/\n ctx[17])) {\n attr(div, \"aria-labelledby\", div_aria_labelledby_value);\n }\n\n if (!current || dirty &\n /*panelNodes*/\n 16 && div_data_inert_value !== (div_data_inert_value = !\n /*visible*/\n ctx[3])) {\n attr(div, \"data-inert\", div_data_inert_value);\n }\n },\n i: function i(local) {\n if (current) return;\n transition_in(if_block);\n current = true;\n },\n o: function o(local) {\n transition_out(if_block);\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(div);\n if (if_block) if_block.d();\n }\n };\n}\n\nfunction create_fragment$R(ctx) {\n var current_block_type_index;\n var if_block;\n var if_block_anchor;\n var current;\n var if_block_creators = [create_if_block$m, create_else_block$b];\n var if_blocks = [];\n\n function select_block_type(ctx, dirty) {\n if (\n /*shouldRender*/\n ctx[5]) return 0;\n return 1;\n }\n\n current_block_type_index = select_block_type(ctx);\n if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n return {\n c: function c() {\n if_block.c();\n if_block_anchor = empty();\n },\n m: function m(target, anchor) {\n if_blocks[current_block_type_index].m(target, anchor);\n insert(target, if_block_anchor, anchor);\n current = true;\n },\n p: function p(ctx, _ref176) {\n var _ref177 = _slicedToArray(_ref176, 1),\n dirty = _ref177[0];\n\n var previous_block_index = current_block_type_index;\n current_block_type_index = select_block_type(ctx);\n\n if (current_block_type_index === previous_block_index) {\n if_blocks[current_block_type_index].p(ctx, dirty);\n } else {\n group_outros();\n transition_out(if_blocks[previous_block_index], 1, 1, function () {\n if_blocks[previous_block_index] = null;\n });\n check_outros();\n if_block = if_blocks[current_block_type_index];\n\n if (!if_block) {\n if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);\n if_block.c();\n } else {\n if_block.p(ctx, dirty);\n }\n\n transition_in(if_block, 1);\n if_block.m(if_block_anchor.parentNode, if_block_anchor);\n }\n },\n i: function i(local) {\n if (current) return;\n transition_in(if_block);\n current = true;\n },\n o: function o(local) {\n transition_out(if_block);\n current = false;\n },\n d: function d(detaching) {\n if_blocks[current_block_type_index].d(detaching);\n if (detaching) detach(if_block_anchor);\n }\n };\n}\n\nfunction instance$S($$self, $$props, $$invalidate) {\n var panelNodes;\n var shouldRender;\n var _$$props$$$slots2 = $$props.$$slots,\n slots = _$$props$$$slots2 === void 0 ? {} : _$$props$$$slots2,\n $$scope = $$props.$$scope;\n var _$$props$class2 = $$props.class,\n klass = _$$props$class2 === void 0 ? undefined : _$$props$class2;\n var name = $$props.name;\n var selected = $$props.selected;\n var _$$props$panelClass = $$props.panelClass,\n panelClass = _$$props$panelClass === void 0 ? undefined : _$$props$panelClass;\n var _$$props$panels = $$props.panels,\n panels = _$$props$panels === void 0 ? [] : _$$props$panels;\n var _$$props$visible = $$props.visible,\n visible = _$$props$visible === void 0 ? undefined : _$$props$visible;\n var _$$props$style = $$props.style,\n style = _$$props$style === void 0 ? undefined : _$$props$style;\n var drawCache = {};\n\n function measure_handler(event) {\n bubble.call(this, $$self, event);\n }\n\n function measure_handler_1(event) {\n bubble.call(this, $$self, event);\n }\n\n $$self.$$set = function ($$props) {\n if ('class' in $$props) $$invalidate(0, klass = $$props.class);\n if ('name' in $$props) $$invalidate(6, name = $$props.name);\n if ('selected' in $$props) $$invalidate(7, selected = $$props.selected);\n if ('panelClass' in $$props) $$invalidate(1, panelClass = $$props.panelClass);\n if ('panels' in $$props) $$invalidate(8, panels = $$props.panels);\n if ('visible' in $$props) $$invalidate(3, visible = $$props.visible);\n if ('style' in $$props) $$invalidate(2, style = $$props.style);\n if ('$$scope' in $$props) $$invalidate(10, $$scope = $$props.$$scope);\n };\n\n $$self.$$.update = function () {\n if ($$self.$$.dirty &\n /*panels, selected, visible, name, drawCache*/\n 968) {\n $$invalidate(4, panelNodes = panels.map(function (id) {\n var isActive = id === selected; // remember that this tab was active so we keep it in DOM even when it's inactive, prevents constructing the node tree on re-render\n\n if (isActive) $$invalidate(9, drawCache[id] = true, drawCache);\n var isVisible = visible ? visible.indexOf(id) !== -1 : isActive;\n return {\n id: id,\n panelId: \"panel-\".concat(name, \"-\").concat(id),\n labelledBy: \"tab-\".concat(name, \"-\").concat(id),\n isActive: isActive,\n hidden: !isActive,\n visible: isVisible,\n shouldDraw: isActive || drawCache[id]\n }; // remove tabindex for now as every tab has elements to focus\n // tabindex: isActive ? 0 : -1,\n }));\n }\n\n if ($$self.$$.dirty &\n /*panelNodes*/\n 16) {\n $$invalidate(5, shouldRender = panelNodes.length > 1);\n }\n };\n\n return [klass, panelClass, style, visible, panelNodes, shouldRender, name, selected, panels, drawCache, $$scope, slots, measure_handler, measure_handler_1];\n}\n\nvar TabPanels = /*#__PURE__*/function (_SvelteComponent3) {\n _inherits(TabPanels, _SvelteComponent3);\n\n var _super4 = _createSuper(TabPanels);\n\n function TabPanels(options) {\n var _this5;\n\n _classCallCheck(this, TabPanels);\n\n _this5 = _super4.call(this);\n init(_assertThisInitialized(_this5), options, instance$S, create_fragment$R, safe_not_equal, {\n class: 0,\n name: 6,\n selected: 7,\n panelClass: 1,\n panels: 8,\n visible: 3,\n style: 2\n });\n return _this5;\n }\n\n return _createClass(TabPanels);\n}(SvelteComponent);\n\nvar getComponentExportedProps = function getComponentExportedProps(Component) {\n var descriptors = Object.getOwnPropertyDescriptors(Component.prototype);\n return Object.keys(descriptors).filter(function (key) {\n return !!descriptors[key]['get'];\n });\n};\n/* src/core/ui/components/UtilPanel.svelte generated by Svelte v3.52.0 */\n\n\nfunction create_if_block$l(ctx) {\n var switch_instance;\n var updating_name;\n var switch_instance_anchor;\n var current;\n var switch_instance_spread_levels = [\n /*componentProps*/\n ctx[5], {\n locale:\n /*locale*/\n ctx[1]\n }];\n\n function switch_instance_name_binding(value) {\n /*switch_instance_name_binding*/\n ctx[22](value);\n }\n\n var switch_value =\n /*ComponentView*/\n ctx[10];\n\n function switch_props(ctx) {\n var switch_instance_props = {};\n\n for (var i = 0; i < switch_instance_spread_levels.length; i += 1) {\n switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]);\n }\n\n if (\n /*panelName*/\n ctx[3] !== void 0) {\n switch_instance_props.name =\n /*panelName*/\n ctx[3];\n }\n\n return {\n props: switch_instance_props\n };\n }\n\n if (switch_value) {\n switch_instance = construct_svelte_component(switch_value, switch_props(ctx));\n binding_callbacks.push(function () {\n return bind(switch_instance, 'name', switch_instance_name_binding);\n });\n /*switch_instance_binding*/\n\n ctx[23](switch_instance);\n switch_instance.$on(\"measure\",\n /*handleMeasure*/\n ctx[11]);\n }\n\n return {\n c: function c() {\n if (switch_instance) create_component(switch_instance.$$.fragment);\n switch_instance_anchor = empty();\n },\n m: function m(target, anchor) {\n if (switch_instance) mount_component(switch_instance, target, anchor);\n insert(target, switch_instance_anchor, anchor);\n current = true;\n },\n p: function p(ctx, dirty) {\n var switch_instance_changes = dirty[0] &\n /*componentProps, locale*/\n 34 ? get_spread_update(switch_instance_spread_levels, [dirty[0] &\n /*componentProps*/\n 32 && get_spread_object(\n /*componentProps*/\n ctx[5]), dirty[0] &\n /*locale*/\n 2 && {\n locale:\n /*locale*/\n ctx[1]\n }]) : {};\n\n if (!updating_name && dirty[0] &\n /*panelName*/\n 8) {\n updating_name = true;\n switch_instance_changes.name =\n /*panelName*/\n ctx[3];\n add_flush_callback(function () {\n return updating_name = false;\n });\n }\n\n if (switch_value !== (switch_value =\n /*ComponentView*/\n ctx[10])) {\n if (switch_instance) {\n group_outros();\n var old_component = switch_instance;\n transition_out(old_component.$$.fragment, 1, 0, function () {\n destroy_component(old_component, 1);\n });\n check_outros();\n }\n\n if (switch_value) {\n switch_instance = construct_svelte_component(switch_value, switch_props(ctx));\n binding_callbacks.push(function () {\n return bind(switch_instance, 'name', switch_instance_name_binding);\n });\n /*switch_instance_binding*/\n\n ctx[23](switch_instance);\n switch_instance.$on(\"measure\",\n /*handleMeasure*/\n ctx[11]);\n create_component(switch_instance.$$.fragment);\n transition_in(switch_instance.$$.fragment, 1);\n mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor);\n } else {\n switch_instance = null;\n }\n } else if (switch_value) {\n switch_instance.$set(switch_instance_changes);\n }\n },\n i: function i(local) {\n if (current) return;\n if (switch_instance) transition_in(switch_instance.$$.fragment, local);\n current = true;\n },\n o: function o(local) {\n if (switch_instance) transition_out(switch_instance.$$.fragment, local);\n current = false;\n },\n d: function d(detaching) {\n /*switch_instance_binding*/\n ctx[23](null);\n if (detaching) detach(switch_instance_anchor);\n if (switch_instance) destroy_component(switch_instance, detaching);\n }\n };\n}\n\nfunction create_fragment$Q(ctx) {\n var div;\n var div_class_value;\n var current;\n var if_block =\n /*isLocal*/\n ctx[6] && create_if_block$l(ctx);\n return {\n c: function c() {\n div = element(\"div\");\n if (if_block) if_block.c();\n attr(div, \"data-util\",\n /*panelName*/\n ctx[3]);\n attr(div, \"class\", div_class_value = arrayJoin(['PinturaUtilPanel',\n /*klass*/\n ctx[2]]));\n set_style(div, \"opacity\",\n /*styleOpacity*/\n ctx[7]);\n },\n m: function m(target, anchor) {\n insert(target, div, anchor);\n if (if_block) if_block.m(div, null);\n /*div_binding*/\n\n ctx[24](div);\n current = true;\n },\n p: function p(ctx, dirty) {\n if (\n /*isLocal*/\n ctx[6]) {\n if (if_block) {\n if_block.p(ctx, dirty);\n\n if (dirty[0] &\n /*isLocal*/\n 64) {\n transition_in(if_block, 1);\n }\n } else {\n if_block = create_if_block$l(ctx);\n if_block.c();\n transition_in(if_block, 1);\n if_block.m(div, null);\n }\n } else if (if_block) {\n group_outros();\n transition_out(if_block, 1, 1, function () {\n if_block = null;\n });\n check_outros();\n }\n\n if (!current || dirty[0] &\n /*panelName*/\n 8) {\n attr(div, \"data-util\",\n /*panelName*/\n ctx[3]);\n }\n\n if (!current || dirty[0] &\n /*klass*/\n 4 && div_class_value !== (div_class_value = arrayJoin(['PinturaUtilPanel',\n /*klass*/\n ctx[2]]))) {\n attr(div, \"class\", div_class_value);\n }\n\n if (dirty[0] &\n /*styleOpacity*/\n 128) {\n set_style(div, \"opacity\",\n /*styleOpacity*/\n ctx[7]);\n }\n },\n i: function i(local) {\n if (current) return;\n transition_in(if_block);\n current = true;\n },\n o: function o(local) {\n transition_out(if_block);\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(div);\n if (if_block) if_block.d();\n /*div_binding*/\n\n ctx[24](null);\n }\n };\n}\n\nfunction instance$R($$self, $$props, $$invalidate) {\n var styleOpacity;\n var componentProps;\n var isLocal;\n var $opacityClamped;\n var $isAnimated;\n var dispatch = createEventDispatcher();\n var _$$props$isActive = $$props.isActive,\n isActive = _$$props$isActive === void 0 ? true : _$$props$isActive;\n var stores = $$props.stores;\n var view = $$props.view;\n var props = $$props.props;\n var component = $$props.component;\n var locale = $$props.locale;\n var _$$props$class3 = $$props.class,\n klass = _$$props$class3 === void 0 ? undefined : _$$props$class3; // context\n\n var isAnimated = getContext('isAnimated');\n component_subscribe($$self, isAnimated, function (value) {\n return $$invalidate(21, $isAnimated = value);\n }); // we remember the view rect in this variable\n\n var rect;\n var opacity = spring(0);\n var opacityClamped = derived(opacity, function ($opacity) {\n return clamp($opacity, 0, 1);\n });\n component_subscribe($$self, opacityClamped, function (value) {\n return $$invalidate(20, $opacityClamped = value);\n }); // throw hide / show events\n\n var isHidden = !isActive; // create active store so can be used in derived stores\n\n var isActivePrivateStore = writable(isActive);\n var isActiveStore = derived(isActivePrivateStore, /*#__PURE__*/function () {\n var _ref178 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee55($isActivePrivateStore, set) {\n return _regeneratorRuntime.wrap(function _callee55$(_context55) {\n while (1) {\n switch (_context55.prev = _context55.next) {\n case 0:\n if ($isActivePrivateStore) {\n _context55.next = 2;\n break;\n }\n\n return _context55.abrupt(\"return\", set($isActivePrivateStore));\n\n case 2:\n _context55.next = 4;\n return tick$1();\n\n case 4:\n set($isActivePrivateStore);\n\n case 5:\n case \"end\":\n return _context55.stop();\n }\n }\n }, _callee55);\n }));\n\n return function (_x102, _x103) {\n return _ref178.apply(this, arguments);\n };\n }(), // needs to be fale initially for the above to work\n false);\n var isActiveFractionStore = derived(opacityClamped, function ($opacityClamped) {\n return $opacityClamped;\n });\n var isVisibleStore = derived(opacityClamped, function ($opacityClamped) {\n return $opacityClamped > 0;\n });\n var stateProps = {\n // derived store to make isActive private\n isActive: isActiveStore,\n isActiveFraction: isActiveFractionStore,\n isVisible: isVisibleStore\n }; // build the component props\n // const ComponentView = content.view;\n\n var ComponentView = view;\n var componentExportedProps = getComponentExportedProps(ComponentView);\n var componentComputedProps = Object.keys(props || {}).reduce(function (computedProps, key) {\n // const componentComputedProps = Object.keys(content.props || {}).reduce((computedProps, key) => {\n if (!componentExportedProps.includes(key)) return computedProps; // computedProps[key] = content.props[key];\n\n computedProps[key] = props[key];\n return computedProps;\n }, {});\n var componentComputedStateProps = Object.keys(stateProps).reduce(function (computedStateProps, key) {\n if (!componentExportedProps.includes(key)) return computedStateProps;\n computedStateProps[key] = stateProps[key];\n return computedStateProps;\n }, {}); // class used on panel element\n\n var panelName; // used when loading external plugin\n\n var rootElement;\n\n var handleMeasure = function handleMeasure(e) {\n // not fully hidden, so store rect for next render\n $$invalidate(17, rect = _objectSpread({}, e.detail));\n if (!hasBeenMounted || !isActive) return;\n dispatch('measure', _objectSpread({}, rect));\n }; // we expose measurable in the context map\n\n\n setContext('measurable', measurable); // we get all context so we can pass them to external plugins\n\n var contextMap = getAllContexts(); // we use the `hasBeenMounted` bool to block rect updates until the entire panel is ready\n\n var hasBeenMounted = false;\n onMount(function () {\n $$invalidate(19, hasBeenMounted = true); // no special needs for local modules\n\n if (isLocal) return;\n $$invalidate(0, component = new ComponentView({\n target: rootElement,\n // pass custom props to external plugin\n props: _objectSpread(_objectSpread({}, componentProps), {}, {\n locale: locale\n }),\n // pass context to external plugin\n context: contextMap\n }));\n $$invalidate(3, panelName = component.name);\n var unsub = component.$on('measure', handleMeasure);\n return function () {\n unsub();\n component.$destroy();\n };\n });\n\n function switch_instance_name_binding(value) {\n panelName = value;\n $$invalidate(3, panelName);\n }\n\n function switch_instance_binding($$value) {\n binding_callbacks[$$value ? 'unshift' : 'push'](function () {\n component = $$value;\n $$invalidate(0, component);\n });\n }\n\n function div_binding($$value) {\n binding_callbacks[$$value ? 'unshift' : 'push'](function () {\n rootElement = $$value;\n $$invalidate(4, rootElement);\n });\n }\n\n $$self.$$set = function ($$props) {\n if ('isActive' in $$props) $$invalidate(12, isActive = $$props.isActive);\n if ('stores' in $$props) $$invalidate(13, stores = $$props.stores);\n if ('view' in $$props) $$invalidate(14, view = $$props.view);\n if ('props' in $$props) $$invalidate(15, props = $$props.props);\n if ('component' in $$props) $$invalidate(0, component = $$props.component);\n if ('locale' in $$props) $$invalidate(1, locale = $$props.locale);\n if ('class' in $$props) $$invalidate(2, klass = $$props.class);\n };\n\n $$self.$$.update = function () {\n if ($$self.$$.dirty[0] &\n /*rect, isActive, component*/\n 135169) {\n // when the view rect changes and the panel is in active state or became active, dispatch measure event\n if (rect && isActive && component) dispatch('measure', rect);\n }\n\n if ($$self.$$.dirty[0] &\n /*isActive, $isAnimated*/\n 2101248) {\n opacity.set(isActive ? 1 : 0, {\n hard: $isAnimated === false\n });\n }\n\n if ($$self.$$.dirty[0] &\n /*$opacityClamped, isHidden*/\n 1310720) {\n if ($opacityClamped <= 0 && !isHidden) {\n $$invalidate(18, isHidden = true);\n } else if ($opacityClamped > 0 && isHidden) {\n $$invalidate(18, isHidden = false);\n }\n }\n\n if ($$self.$$.dirty[0] &\n /*hasBeenMounted, isHidden*/\n 786432) {\n hasBeenMounted && dispatch(isHidden ? 'hide' : 'show');\n }\n\n if ($$self.$$.dirty[0] &\n /*$opacityClamped*/\n 1048576) {\n dispatch('fade', $opacityClamped);\n }\n\n if ($$self.$$.dirty[0] &\n /*$opacityClamped*/\n 1048576) {\n // only set opacity prop if is below 0\n $$invalidate(7, styleOpacity = $opacityClamped);\n }\n\n if ($$self.$$.dirty[0] &\n /*isActive*/\n 4096) {\n isActivePrivateStore.set(isActive);\n }\n\n if ($$self.$$.dirty[0] &\n /*stores*/\n 8192) {\n $$invalidate(5, componentProps = _objectSpread(_objectSpread(_objectSpread({}, componentComputedProps), componentComputedStateProps), {}, {\n stores: stores\n }));\n }\n };\n\n $$invalidate(6, isLocal = !componentExportedProps.includes('external'));\n return [component, locale, klass, panelName, rootElement, componentProps, isLocal, styleOpacity, isAnimated, opacityClamped, ComponentView, handleMeasure, isActive, stores, view, props, opacity, rect, isHidden, hasBeenMounted, $opacityClamped, $isAnimated, switch_instance_name_binding, switch_instance_binding, div_binding];\n}\n\nvar UtilPanel = /*#__PURE__*/function (_SvelteComponent4) {\n _inherits(UtilPanel, _SvelteComponent4);\n\n var _super5 = _createSuper(UtilPanel);\n\n function UtilPanel(options) {\n var _this6;\n\n _classCallCheck(this, UtilPanel);\n\n _this6 = _super5.call(this);\n init(_assertThisInitialized(_this6), options, instance$R, create_fragment$Q, safe_not_equal, {\n isActive: 12,\n stores: 13,\n view: 14,\n props: 15,\n component: 0,\n locale: 1,\n class: 2,\n opacity: 16\n }, null, [-1, -1]);\n return _this6;\n }\n\n _createClass(UtilPanel, [{\n key: \"opacity\",\n get: function get() {\n return this.$$.ctx[16];\n }\n }]);\n\n return UtilPanel;\n}(SvelteComponent);\n/* src/core/ui/components/Icon.svelte generated by Svelte v3.52.0 */\n\n\nfunction create_fragment$P(ctx) {\n var svg;\n var svg_viewBox_value;\n var styleable_action;\n var current;\n var mounted;\n var dispose;\n var default_slot_template =\n /*#slots*/\n ctx[5].default;\n var default_slot = create_slot(default_slot_template, ctx,\n /*$$scope*/\n ctx[4], null);\n return {\n c: function c() {\n svg = svg_element(\"svg\");\n if (default_slot) default_slot.c();\n attr(svg, \"class\",\n /*klass*/\n ctx[3]);\n attr(svg, \"width\",\n /*width*/\n ctx[0]);\n attr(svg, \"height\",\n /*height*/\n ctx[1]);\n attr(svg, \"viewBox\", svg_viewBox_value = \"0 0 \" +\n /*width*/\n ctx[0] + \"\\n \" +\n /*height*/\n ctx[1]);\n attr(svg, \"xmlns\", \"http://www.w3.org/2000/svg\");\n attr(svg, \"aria-hidden\", \"true\");\n attr(svg, \"focusable\", \"false\");\n attr(svg, \"stroke-linecap\", \"round\");\n attr(svg, \"stroke-linejoin\", \"round\");\n },\n m: function m(target, anchor) {\n insert(target, svg, anchor);\n\n if (default_slot) {\n default_slot.m(svg, null);\n }\n\n current = true;\n\n if (!mounted) {\n dispose = action_destroyer(styleable_action = styleable.call(null, svg,\n /*style*/\n ctx[2]));\n mounted = true;\n }\n },\n p: function p(ctx, _ref179) {\n var _ref180 = _slicedToArray(_ref179, 1),\n dirty = _ref180[0];\n\n if (default_slot) {\n if (default_slot.p && (!current || dirty &\n /*$$scope*/\n 16)) {\n update_slot_base(default_slot, default_slot_template, ctx,\n /*$$scope*/\n ctx[4], !current ? get_all_dirty_from_scope(\n /*$$scope*/\n ctx[4]) : get_slot_changes(default_slot_template,\n /*$$scope*/\n ctx[4], dirty, null), null);\n }\n }\n\n if (!current || dirty &\n /*klass*/\n 8) {\n attr(svg, \"class\",\n /*klass*/\n ctx[3]);\n }\n\n if (!current || dirty &\n /*width*/\n 1) {\n attr(svg, \"width\",\n /*width*/\n ctx[0]);\n }\n\n if (!current || dirty &\n /*height*/\n 2) {\n attr(svg, \"height\",\n /*height*/\n ctx[1]);\n }\n\n if (!current || dirty &\n /*width, height*/\n 3 && svg_viewBox_value !== (svg_viewBox_value = \"0 0 \" +\n /*width*/\n ctx[0] + \"\\n \" +\n /*height*/\n ctx[1])) {\n attr(svg, \"viewBox\", svg_viewBox_value);\n }\n\n if (styleable_action && is_function(styleable_action.update) && dirty &\n /*style*/\n 4) styleable_action.update.call(null,\n /*style*/\n ctx[2]);\n },\n i: function i(local) {\n if (current) return;\n transition_in(default_slot, local);\n current = true;\n },\n o: function o(local) {\n transition_out(default_slot, local);\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(svg);\n if (default_slot) default_slot.d(detaching);\n mounted = false;\n dispose();\n }\n };\n}\n\nfunction instance$Q($$self, $$props, $$invalidate) {\n var _$$props$$$slots3 = $$props.$$slots,\n slots = _$$props$$$slots3 === void 0 ? {} : _$$props$$$slots3,\n $$scope = $$props.$$scope;\n var _$$props$width = $$props.width,\n width = _$$props$width === void 0 ? 24 : _$$props$width;\n var _$$props$height = $$props.height,\n height = _$$props$height === void 0 ? 24 : _$$props$height;\n var _$$props$style2 = $$props.style,\n style = _$$props$style2 === void 0 ? undefined : _$$props$style2;\n var _$$props$class4 = $$props.class,\n klass = _$$props$class4 === void 0 ? undefined : _$$props$class4;\n\n $$self.$$set = function ($$props) {\n if ('width' in $$props) $$invalidate(0, width = $$props.width);\n if ('height' in $$props) $$invalidate(1, height = $$props.height);\n if ('style' in $$props) $$invalidate(2, style = $$props.style);\n if ('class' in $$props) $$invalidate(3, klass = $$props.class);\n if ('$$scope' in $$props) $$invalidate(4, $$scope = $$props.$$scope);\n };\n\n return [width, height, style, klass, $$scope, slots];\n}\n\nvar Icon = /*#__PURE__*/function (_SvelteComponent5) {\n _inherits(Icon, _SvelteComponent5);\n\n var _super6 = _createSuper(Icon);\n\n function Icon(options) {\n var _this7;\n\n _classCallCheck(this, Icon);\n\n _this7 = _super6.call(this);\n init(_assertThisInitialized(_this7), options, instance$Q, create_fragment$P, safe_not_equal, {\n width: 0,\n height: 1,\n style: 2,\n class: 3\n });\n return _this7;\n }\n\n return _createClass(Icon);\n}(SvelteComponent);\n\nvar _isEventTarget = function _isEventTarget(e, element) {\n return element === e.target || element.contains(e.target);\n};\n\nvar toKeyboardShortcut = function toKeyboardShortcut(keys) {\n return keys.map(function (key) {\n return key === 'CMD' ? isMac() ? '⌘' : 'Ctrl' : key;\n }).join('+');\n};\n/**\n * @param { string } label\n * @param { string } title\n * @param { string[] } shortcut\n * @returns { string }\n */\n\n\nvar toTitle = function toTitle(label, title, shortcut) {\n var text = isString(title) ? title : label;\n if (shortcut) return \"\".concat(text, \" (\").concat(toKeyboardShortcut(shortcut), \")\");\n return text;\n};\n/* src/core/ui/components/ImageButton.svelte generated by Svelte v3.52.0 */\n\n\nvar document_1$1 = globals.document;\n\nfunction create_fragment$O(ctx) {\n var t;\n var button;\n var mounted;\n var dispose;\n return {\n c: function c() {\n t = space();\n button = element(\"button\");\n attr(button, \"class\", \"PinturaImageButton\");\n attr(button, \"type\", \"button\");\n attr(button, \"title\",\n /*title*/\n ctx[1]);\n button.disabled =\n /*disabled*/\n ctx[2];\n },\n m: function m(target, anchor) {\n insert(target, t, anchor);\n insert(target, button, anchor);\n button.innerHTML =\n /*html*/\n ctx[0];\n /*button_binding*/\n\n ctx[11](button);\n\n if (!mounted) {\n dispose = [listen(document_1$1.body, \"load\",\n /*handleLoad*/\n ctx[5], true), listen(document_1$1.body, \"error\",\n /*handleError*/\n ctx[6], true), listen(button, \"pointerdown\",\n /*handleDown*/\n ctx[4])];\n mounted = true;\n }\n },\n p: function p(ctx, _ref181) {\n var _ref182 = _slicedToArray(_ref181, 1),\n dirty = _ref182[0];\n\n if (dirty &\n /*html*/\n 1) button.innerHTML =\n /*html*/\n ctx[0];\n\n if (dirty &\n /*title*/\n 2) {\n attr(button, \"title\",\n /*title*/\n ctx[1]);\n }\n\n if (dirty &\n /*disabled*/\n 4) {\n button.disabled =\n /*disabled*/\n ctx[2];\n }\n },\n i: noop,\n o: noop,\n d: function d(detaching) {\n if (detaching) detach(t);\n if (detaching) detach(button);\n /*button_binding*/\n\n ctx[11](null);\n mounted = false;\n run_all(dispose);\n }\n };\n}\n\nfunction instance$P($$self, $$props, $$invalidate) {\n var html = $$props.html;\n var title = $$props.title;\n var onclick = $$props.onclick;\n var _$$props$disabled = $$props.disabled,\n disabled = _$$props$disabled === void 0 ? false : _$$props$disabled;\n var _$$props$ongrab = $$props.ongrab,\n ongrab = _$$props$ongrab === void 0 ? noop$1 : _$$props$ongrab;\n var _$$props$ondrag = $$props.ondrag,\n ondrag = _$$props$ondrag === void 0 ? noop$1 : _$$props$ondrag;\n var _$$props$ondrop = $$props.ondrop,\n ondrop = _$$props$ondrop === void 0 ? noop$1 : _$$props$ondrop;\n var element;\n\n var isOverButton = function isOverButton(e) {\n return vectorDistanceSquared(downPosition, vectorCreate(e.pageX, e.pageY)) < 256;\n };\n\n var downPosition;\n\n var handleDown = function handleDown(e) {\n downPosition = vectorCreate(e.pageX, e.pageY);\n ongrab(e);\n document.documentElement.addEventListener('pointermove', handleMove);\n document.documentElement.addEventListener('pointerup', handleUp);\n };\n\n var handleUp = function handleUp(e) {\n document.documentElement.removeEventListener('pointermove', handleMove);\n document.documentElement.removeEventListener('pointerup', handleUp);\n var upPosition = vectorCreate(e.pageX, e.pageY); // must have moved enough distance to drop\n\n if (vectorDistanceSquared(downPosition, upPosition) < 32) return onclick(e); // cant drop in button\n\n if (isOverButton(e)) return; // was dragging\n\n ondrop(e);\n };\n\n var handleMove = function handleMove(e) {\n // must have moved enough distance from button\n if (isOverButton(e)) return; // dragging out of button\n\n ondrag(e);\n }; // image loading\n\n\n var isImageTarget = function isImageTarget(target) {\n return element && element.contains(target) && target.nodeName === 'IMG';\n };\n\n var handleLoad = function handleLoad(_ref183) {\n var target = _ref183.target;\n if (!isImageTarget(target)) return;\n $$invalidate(3, element.dataset.load = true, element);\n };\n\n var handleError = function handleError(_ref184) {\n var target = _ref184.target;\n if (!isImageTarget(target)) return;\n $$invalidate(3, element.dataset.error = true, element);\n };\n\n function button_binding($$value) {\n binding_callbacks[$$value ? 'unshift' : 'push'](function () {\n element = $$value;\n $$invalidate(3, element);\n });\n }\n\n $$self.$$set = function ($$props) {\n if ('html' in $$props) $$invalidate(0, html = $$props.html);\n if ('title' in $$props) $$invalidate(1, title = $$props.title);\n if ('onclick' in $$props) $$invalidate(7, onclick = $$props.onclick);\n if ('disabled' in $$props) $$invalidate(2, disabled = $$props.disabled);\n if ('ongrab' in $$props) $$invalidate(8, ongrab = $$props.ongrab);\n if ('ondrag' in $$props) $$invalidate(9, ondrag = $$props.ondrag);\n if ('ondrop' in $$props) $$invalidate(10, ondrop = $$props.ondrop);\n };\n\n $$self.$$.update = function () {\n if ($$self.$$.dirty &\n /*element*/\n 8) {\n if (element && element.querySelector('img')) $$invalidate(3, element.dataset.loader = true, element);\n }\n };\n\n return [html, title, disabled, element, handleDown, handleLoad, handleError, onclick, ongrab, ondrag, ondrop, button_binding];\n}\n\nvar ImageButton = /*#__PURE__*/function (_SvelteComponent6) {\n _inherits(ImageButton, _SvelteComponent6);\n\n var _super7 = _createSuper(ImageButton);\n\n function ImageButton(options) {\n var _this8;\n\n _classCallCheck(this, ImageButton);\n\n _this8 = _super7.call(this);\n init(_assertThisInitialized(_this8), options, instance$P, create_fragment$O, safe_not_equal, {\n html: 0,\n title: 1,\n onclick: 7,\n disabled: 2,\n ongrab: 8,\n ondrag: 9,\n ondrop: 10\n });\n return _this8;\n }\n\n return _createClass(ImageButton);\n}(SvelteComponent);\n/* src/core/ui/components/ImageButtonList.svelte generated by Svelte v3.52.0 */\n\n\nfunction get_each_context$6(ctx, list, i) {\n var child_ctx = ctx.slice();\n child_ctx[13] = list[i];\n return child_ctx;\n} // (23:4) {#each items as item (item.id)}\n\n\nfunction create_each_block$6(key_1, ctx) {\n var li;\n var imagebutton;\n var t;\n var didMountAction_action;\n var current;\n var mounted;\n var dispose;\n\n function func() {\n return (\n /*func*/\n ctx[9](\n /*item*/\n ctx[13])\n );\n }\n\n function func_1() {\n var _ctx7;\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key9 = 0; _key9 < _len6; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n return (\n /*func_1*/\n (_ctx7 = ctx)[10].apply(_ctx7, [\n /*item*/\n ctx[13]].concat(args))\n );\n }\n\n function func_2() {\n var _ctx8;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key10 = 0; _key10 < _len7; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n return (\n /*func_2*/\n (_ctx8 = ctx)[11].apply(_ctx8, [\n /*item*/\n ctx[13]].concat(args))\n );\n }\n\n function func_3() {\n var _ctx9;\n\n for (var _len8 = arguments.length, args = new Array(_len8), _key11 = 0; _key11 < _len8; _key11++) {\n args[_key11] = arguments[_key11];\n }\n\n return (\n /*func_3*/\n (_ctx9 = ctx)[12].apply(_ctx9, [\n /*item*/\n ctx[13]].concat(args))\n );\n }\n\n imagebutton = new ImageButton({\n props: {\n onclick: func,\n ongrab: func_1,\n ondrag: func_2,\n ondrop: func_3,\n disabled:\n /*disabled*/\n ctx[1] ||\n /*item*/\n ctx[13].disabled,\n title:\n /*item*/\n ctx[13].title,\n html:\n /*item*/\n ctx[13].thumb\n }\n });\n return {\n key: key_1,\n first: null,\n c: function c() {\n li = element(\"li\");\n create_component(imagebutton.$$.fragment);\n t = space();\n set_style(li, \"opacity\",\n /*$opacity*/\n ctx[6]);\n this.first = li;\n },\n m: function m(target, anchor) {\n insert(target, li, anchor);\n mount_component(imagebutton, li, null);\n append(li, t);\n current = true;\n\n if (!mounted) {\n dispose = action_destroyer(didMountAction_action =\n /*didMountAction*/\n ctx[8].call(null, li,\n /*item*/\n ctx[13]));\n mounted = true;\n }\n },\n p: function p(new_ctx, dirty) {\n ctx = new_ctx;\n var imagebutton_changes = {};\n if (dirty &\n /*onclickitem, items*/\n 5) imagebutton_changes.onclick = func;\n if (dirty &\n /*ongrabitem, items*/\n 9) imagebutton_changes.ongrab = func_1;\n if (dirty &\n /*ondragitem, items*/\n 17) imagebutton_changes.ondrag = func_2;\n if (dirty &\n /*ondropitem, items*/\n 33) imagebutton_changes.ondrop = func_3;\n if (dirty &\n /*disabled, items*/\n 3) imagebutton_changes.disabled =\n /*disabled*/\n ctx[1] ||\n /*item*/\n ctx[13].disabled;\n if (dirty &\n /*items*/\n 1) imagebutton_changes.title =\n /*item*/\n ctx[13].title;\n if (dirty &\n /*items*/\n 1) imagebutton_changes.html =\n /*item*/\n ctx[13].thumb;\n imagebutton.$set(imagebutton_changes);\n if (didMountAction_action && is_function(didMountAction_action.update) && dirty &\n /*items*/\n 1) didMountAction_action.update.call(null,\n /*item*/\n ctx[13]);\n\n if (dirty &\n /*$opacity*/\n 64) {\n set_style(li, \"opacity\",\n /*$opacity*/\n ctx[6]);\n }\n },\n i: function i(local) {\n if (current) return;\n transition_in(imagebutton.$$.fragment, local);\n current = true;\n },\n o: function o(local) {\n transition_out(imagebutton.$$.fragment, local);\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(li);\n destroy_component(imagebutton);\n mounted = false;\n dispose();\n }\n };\n}\n\nfunction create_fragment$N(ctx) {\n var ul;\n var each_blocks = [];\n var each_1_lookup = new Map();\n var current;\n var each_value =\n /*items*/\n ctx[0];\n\n var get_key = function get_key(ctx) {\n return (\n /*item*/\n ctx[13].id\n );\n };\n\n for (var i = 0; i < each_value.length; i += 1) {\n var child_ctx = get_each_context$6(ctx, each_value, i);\n var key = get_key(child_ctx);\n each_1_lookup.set(key, each_blocks[i] = create_each_block$6(key, child_ctx));\n }\n\n return {\n c: function c() {\n ul = element(\"ul\");\n\n for (var _i13 = 0; _i13 < each_blocks.length; _i13 += 1) {\n each_blocks[_i13].c();\n }\n\n attr(ul, \"class\", \"PinturaImageButtonList\");\n },\n m: function m(target, anchor) {\n insert(target, ul, anchor);\n\n for (var _i14 = 0; _i14 < each_blocks.length; _i14 += 1) {\n each_blocks[_i14].m(ul, null);\n }\n\n current = true;\n },\n p: function p(ctx, _ref185) {\n var _ref186 = _slicedToArray(_ref185, 1),\n dirty = _ref186[0];\n\n if (dirty &\n /*items, $opacity, onclickitem, ongrabitem, ondragitem, ondropitem, disabled*/\n 127) {\n each_value =\n /*items*/\n ctx[0];\n group_outros();\n each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, ul, outro_and_destroy_block, create_each_block$6, null, get_each_context$6);\n check_outros();\n }\n },\n i: function i(local) {\n if (current) return;\n\n for (var _i15 = 0; _i15 < each_value.length; _i15 += 1) {\n transition_in(each_blocks[_i15]);\n }\n\n current = true;\n },\n o: function o(local) {\n for (var _i16 = 0; _i16 < each_blocks.length; _i16 += 1) {\n transition_out(each_blocks[_i16]);\n }\n\n current = false;\n },\n d: function d(detaching) {\n if (detaching) detach(ul);\n\n for (var _i17 = 0; _i17 < each_blocks.length; _i17 += 1) {\n each_blocks[_i17].d();\n }\n }\n };\n}\n\nfunction instance$O($$self, $$props, $$invalidate) {\n var $opacity;\n var items = $$props.items;\n var _$$props$disabled2 = $$props.disabled,\n disabled = _$$props$disabled2 === void 0 ? undefined : _$$props$disabled2;\n var onclickitem = $$props.onclickitem;\n var _$$props$ongrabitem = $$props.ongrabitem,\n ongrabitem = _$$props$ongrabitem === void 0 ? undefined : _$$props$ongrabitem;\n var _$$props$ondragitem = $$props.ondragitem,\n ondragitem = _$$props$ondragitem === void 0 ? undefined : _$$props$ondragitem;\n var _$$props$ondropitem = $$props.ondropitem,\n ondropitem = _$$props$ondropitem === void 0 ? undefined : _$$props$ondropitem;\n var opacity = spring(0, {\n stiffness: 0.25,\n damping: 0.9\n });\n component_subscribe($$self, opacity, function (value) {\n return $$invalidate(6, $opacity = value);\n });\n\n var didMountAction = function didMountAction(element, item) {\n return item.mount && item.mount(element.firstChild, item);\n };\n\n onMount(function () {\n return opacity.set(1);\n });\n\n var func = function func(item) {\n return onclickitem(item.id);\n };\n\n var func_1 = function func_1(item, e) {\n return ongrabitem && ongrabitem(item.id, e);\n };\n\n var func_2 = function func_2(item, e) {\n return ondragitem && ondragitem(item.id, e);\n };\n\n var func_3 = function func_3(item, e) {\n return ondropitem && ondropitem(item.id, e);\n };\n\n $$self.$$set = function ($$props) {\n if ('items' in $$props) $$invalidate(0, items = $$props.items);\n if ('disabled' in $$props) $$invalidate(1, disabled = $$props.disabled);\n if ('onclickitem' in $$props) $$invalidate(2, onclickitem = $$props.onclickitem);\n if ('ongrabitem' in $$props) $$invalidate(3, ongrabitem = $$props.ongrabitem);\n if ('ondragitem' in $$props) $$invalidate(4, ondragitem = $$props.ondragitem);\n if ('ondropitem' in $$props) $$invalidate(5, ondropitem = $$props.ondropitem);\n };\n\n return [items, disabled, onclickitem, ongrabitem, ondragitem, ondropitem, $opacity, opacity, didMountAction, func, func_1, func_2, func_3];\n}\n\nvar ImageButtonList = /*#__PURE__*/function (_SvelteComponent7) {\n _inherits(ImageButtonList, _SvelteComponent7);\n\n var _super8 = _createSuper(ImageButtonList);\n\n function ImageButtonList(options) {\n var _this9;\n\n _classCallCheck(this, ImageButtonList);\n\n _this9 = _super8.call(this);\n init(_assertThisInitialized(_this9), options, instance$O, create_fragment$N, safe_not_equal, {\n items: 0,\n disabled: 1,\n onclickitem: 2,\n ongrabitem: 3,\n ondragitem: 4,\n ondropitem: 5\n });\n return _this9;\n }\n\n return _createClass(ImageButtonList);\n}(SvelteComponent);\n\nvar getDevicePixelRatio = function getDevicePixelRatio() {\n return isBrowser() && window.devicePixelRatio || 1;\n}; // if this is a non retina display snap to pixel\n\n\nvar fn = null;\n\nvar snapToPixel = function snapToPixel(v) {\n if (fn === null) fn = getDevicePixelRatio() === 1 ? Math.round : function (v) {\n return v;\n };\n return fn(v);\n};\n\nvar focus = function focus(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!element) return;\n\n if (options.preventScroll && isSafari()) {\n var scrollTop = document.body.scrollTop;\n element.focus();\n document.body.scrollTop = scrollTop;\n return;\n }\n\n element.focus(options);\n};\n\nvar isTextarea = function isTextarea(element) {\n return /textarea/i.test(element.nodeName);\n};\n\nvar isTextInput = function isTextInput(node) {\n return /date|email|number|search|text|url/.test(node.type);\n};\n\nvar isTextField = function isTextField(node) {\n return isTextarea(node) || isTextInput(node) || node.isContentEditable;\n};\n/* src/core/ui/components/Panel.svelte generated by Svelte v3.52.0 */\n\n\nvar get_details_slot_changes = function get_details_slot_changes(dirty) {\n return {};\n};\n\nvar get_details_slot_context = function get_details_slot_context(ctx) {\n return {};\n};\n\nvar get_label_slot_changes = function get_label_slot_changes(dirty) {\n return {};\n};\n\nvar get_label_slot_context = function get_label_slot_context(ctx) {\n return {};\n}; // (237:0) {:else}\n\n\nfunction create_else_block$a(ctx) {\n var button;\n var current;\n var button_spread_levels = [\n /*buttonProps*/\n ctx[7]];\n var button_props = {\n $$slots: {\n default: [create_default_slot$h]\n },\n $$scope: {\n ctx: ctx\n }\n };\n\n for (var i = 0; i < button_spread_levels.length; i += 1) {\n button_props = assign(button_props, button_spread_levels[i]);\n }\n\n button = new Button({\n props: button_props\n });\n /*button_binding_1*/\n\n ctx[54](button);\n return {\n c: function c() {\n create_component(button.$$.fragment);\n },\n m: function m(target, anchor) {\n mount_component(button, target, anchor);\n current = true;\n },\n p: function p(ctx, dirty) {\n var button_changes = dirty[0] &\n /*buttonProps*/\n 128 ? get_spread_update(button_spread_levels, [get_spread_object(\n /*buttonProps*/\n ctx[7])]) : {};\n\n if (dirty[1] &\n /*$$scope*/\n 134217728) {\n button_changes.$$scope = {\n dirty: dirty,\n ctx: ctx\n };\n }\n\n button.$set(button_changes);\n },\n i: function i(local) {\n if (current) return;\n transition_in(button.$$.fragment, local);\n current = true;\n },\n o: function o(local) {\n transition_out(button.$$.fragment, local);\n current = false;\n },\n d: function d(detaching) {\n /*button_binding_1*/\n ctx[54](null);\n destroy_component(button, detaching);\n }\n };\n} // (235:0) {#if buttonLabel}\n\n\nfunction create_if_block_2$c(ctx) {\n var button;\n var current;\n var button_spread_levels = [\n /*buttonProps*/\n ctx[7]];\n var button_props = {};\n\n for (var i = 0; i < button_spread_levels.length; i += 1) {\n button_props = assign(button_props, button_spread_levels[i]);\n }\n\n button = new Button({\n props: button_props\n });\n /*button_binding*/\n\n ctx[53](button);\n return {\n c: function c() {\n create_component(button.$$.fragment);\n },\n m: function m(target, anchor) {\n mount_component(button, target, anchor);\n current = true;\n },\n p: function p(ctx, dirty) {\n var button_changes = dirty[0] &\n /*buttonProps*/\n 128 ? get_spread_update(button_spread_levels, [get_spread_object(\n /*buttonProps*/\n ctx[7])]) : {};\n button.$set(button_changes);\n },\n i: function i(local) {\n if (current) return;\n transition_in(button.$$.fragment, local);\n current = true;\n },\n o: function o(local) {\n transition_out(button.$$.fragment, local);\n current = false;\n },\n d: function d(detaching) {\n /*button_binding*/\n ctx[53](null);\n destroy_component(button, detaching);\n }\n };\n} // (238:4)
,\n * The target will be the image, not the button, which we don't want here\n */\n\n\nfunction getClickTargetNode(event) {\n var target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n/** Get the event target node. */\n\n\nfunction getTargetNode(event) {\n if (isEventWithTarget(event)) {\n return event.target;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event) {\n return _typeof(event) === 'object' && !!event && 'target' in event;\n}\n\nvar handlers;\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\n\nfunction onWindowOpen(cb) {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n return function () {\n var pos = handlers ? handlers.indexOf(cb) : -1;\n\n if (pos > -1) {\n handlers.splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen() {\n fill(WINDOW, 'open', function (originalWindowOpen) {\n return function () {\n if (handlers) {\n try {\n handlers.forEach(function (handler) {\n return handler();\n });\n } catch (e) {// ignore errors in here\n }\n }\n\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n/** Any IncrementalSource for rrweb that we interpret as a kind of mutation. */\n\n\nvar IncrementalMutationSources = new Set([IncrementalSource.Mutation, IncrementalSource.StyleSheetRule, IncrementalSource.StyleDeclaration, IncrementalSource.AdoptedStyleSheet, IncrementalSource.CanvasMutation, IncrementalSource.Selection, IncrementalSource.MediaInteraction]);\n/** Handle a click. */\n\nfunction handleClick(clickDetector, clickBreadcrumb, node) {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\n\n\nvar ClickDetector = /*#__PURE__*/function () {\n // protected for testing\n function ClickDetector(replay, slowClickConfig) {\n var _addBreadcrumbEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : addBreadcrumbEvent;\n\n _classCallCheck(this, ClickDetector);\n\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = []; // We want everything in s, but options are in ms\n\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scrollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n /** Register click detection handlers on mutation or scroll. */\n\n\n _createClass(ClickDetector, [{\n key: \"addListeners\",\n value: function addListeners() {\n var _this15 = this;\n\n var cleanupWindowOpen = onWindowOpen(function () {\n // Treat window.open as mutation\n _this15._lastMutation = nowInSeconds();\n });\n\n this._teardown = function () {\n cleanupWindowOpen();\n _this15._clicks = [];\n _this15._lastMutation = 0;\n _this15._lastScroll = 0;\n };\n }\n /** Clean up listeners. */\n\n }, {\n key: \"removeListeners\",\n value: function removeListeners() {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n /** @inheritDoc */\n\n }, {\n key: \"handleClick\",\n value: function handleClick(breadcrumb, node) {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n var newClick = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node: node\n }; // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n\n if (this._clicks.some(function (click) {\n return click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1;\n })) {\n return;\n }\n\n this._clicks.push(newClick); // If this is the first new click, set a timeout to check for multi clicks\n\n\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n /** @inheritDoc */\n\n }, {\n key: \"registerMutation\",\n value: function registerMutation() {\n var timestamp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n this._lastMutation = timestampToS(timestamp);\n }\n /** @inheritDoc */\n\n }, {\n key: \"registerScroll\",\n value: function registerScroll() {\n var timestamp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n this._lastScroll = timestampToS(timestamp);\n }\n /** @inheritDoc */\n\n }, {\n key: \"registerClick\",\n value: function registerClick(element) {\n var node = getClosestInteractive(element);\n\n this._handleMultiClick(node);\n }\n /** Count multiple clicks on elements. */\n\n }, {\n key: \"_handleMultiClick\",\n value: function _handleMultiClick(node) {\n this._getClicks(node).forEach(function (click) {\n click.clickCount++;\n });\n }\n /** Get all pending clicks for a given node. */\n\n }, {\n key: \"_getClicks\",\n value: function _getClicks(node) {\n return this._clicks.filter(function (click) {\n return click.node === node;\n });\n }\n /** Check the clicks that happened. */\n\n }, {\n key: \"_checkClicks\",\n value: function _checkClicks() {\n var _this16 = this;\n\n var timedOutClicks = [];\n var now = nowInSeconds();\n\n this._clicks.forEach(function (click) {\n if (!click.mutationAfter && _this16._lastMutation) {\n click.mutationAfter = click.timestamp <= _this16._lastMutation ? _this16._lastMutation - click.timestamp : undefined;\n }\n\n if (!click.scrollAfter && _this16._lastScroll) {\n click.scrollAfter = click.timestamp <= _this16._lastScroll ? _this16._lastScroll - click.timestamp : undefined;\n } // All of these are in seconds!\n\n\n if (click.timestamp + _this16._timeout <= now) {\n timedOutClicks.push(click);\n }\n }); // Remove \"old\" clicks\n\n\n for (var _i5 = 0, _timedOutClicks = timedOutClicks; _i5 < _timedOutClicks.length; _i5++) {\n var click = _timedOutClicks[_i5];\n\n var pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n\n this._clicks.splice(pos, 1);\n }\n } // Trigger new check, unless no clicks left\n\n\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n /** Generate matching breadcrumb(s) for the click. */\n\n }, {\n key: \"_generateBreadcrumbs\",\n value: function _generateBreadcrumbs(click) {\n var replay = this._replay;\n var hadScroll = click.scrollAfter && click.scrollAfter <= this._scrollTimeout;\n var hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n var isSlowClick = !hadScroll && !hadMutation;\n var clickCount = click.clickCount,\n clickBreadcrumb = click.clickBreadcrumb; // Slow click\n\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n var timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n var endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n var breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: _objectSpread(_objectSpread({}, clickBreadcrumb.data), {}, {\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs: timeAfterClickMs,\n endReason: endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1\n })\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n\n return;\n } // Multi click\n\n\n if (clickCount > 1) {\n var _breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: _objectSpread(_objectSpread({}, clickBreadcrumb.data), {}, {\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount: clickCount,\n metric: true\n })\n };\n\n this._addBreadcrumbEvent(replay, _breadcrumb);\n }\n }\n /** Schedule to check current clicks. */\n\n }, {\n key: \"_scheduleCheckClicks\",\n value: function _scheduleCheckClicks() {\n var _this17 = this;\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout$3(function () {\n return _this17._checkClicks();\n }, 1000);\n }\n }]);\n\n return ClickDetector;\n}();\n\nvar SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n/** exported for tests only */\n\nfunction ignoreElement(node, ignoreSelector) {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n } // If tag, we only want to consider input[type='submit'] & input[type='button']\n\n\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n } // If tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n\n\n if (node.tagName === 'A' && (node.hasAttribute('download') || node.hasAttribute('target') && node.getAttribute('target') !== '_self')) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb) {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n} // This is good enough for us, and is easier to test/mock than `timestampInSeconds`\n\n\nfunction nowInSeconds() {\n return Date.now() / 1000;\n}\n/** Update the click detector based on a recording event of rrweb. */\n\n\nfunction updateClickDetectorForRecordingEvent(clickDetector, event) {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n var source = event.data.source;\n\n if (IncrementalMutationSources.has(source)) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n var _event$data = event.data,\n type = _event$data.type,\n id = _event$data.id;\n var node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch (e) {// ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event) {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(event) {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n/**\n * Create a breadcrumb for a replay.\n */\n\n\nfunction createBreadcrumb(breadcrumb) {\n return _objectSpread({\n timestamp: Date.now() / 1000,\n type: 'default'\n }, breadcrumb);\n}\n\nvar NodeType;\n\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {})); // Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\n\n\nvar ATTRIBUTES_TO_RECORD = new Set(['id', 'class', 'aria-label', 'role', 'name', 'alt', 'title', 'data-test-id', 'data-testid', 'disabled', 'aria-disabled', 'data-sentry-component']);\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\n\nfunction getAttributesToRecord(attributes) {\n var obj = {};\n\n if (!attributes['data-sentry-component'] && attributes['data-sentry-element']) {\n attributes['data-sentry-component'] = attributes['data-sentry-element'];\n }\n\n for (var key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n var normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n\nvar handleDomListener = function handleDomListener(replay) {\n return function (handlerData) {\n if (!replay.isEnabled()) {\n return;\n }\n\n var result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n var isClick = handlerData.name === 'click';\n var event = isClick ? handlerData.event : undefined; // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n\n if (isClick && replay.clickDetector && event && event.target && !event.altKey && !event.metaKey && !event.ctrlKey && !event.shiftKey) {\n handleClick(replay.clickDetector, result, getClickTargetNode(handlerData.event));\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n/** Get the base DOM breadcrumb. */\n\n\nfunction getBaseDomBreadcrumb(target, message) {\n var nodeId = record.mirror.getId(target);\n var node = nodeId && record.mirror.getNode(nodeId);\n var meta = node && record.mirror.getMeta(node);\n var element = meta && isElement(meta) ? meta : null;\n return {\n message: message,\n data: element ? {\n nodeId: nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes).map(function (node) {\n return node.type === NodeType.Text && node.textContent;\n }).filter(Boolean) // filter out empty values\n .map(function (text) {\n return text.trim();\n }).join(''),\n attributes: getAttributesToRecord(element.attributes)\n }\n } : {}\n };\n}\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\n\n\nfunction handleDom(handlerData) {\n var _getDomTarget = getDomTarget(handlerData),\n target = _getDomTarget.target,\n message = _getDomTarget.message;\n\n return createBreadcrumb(_objectSpread({\n category: \"ui.\".concat(handlerData.name)\n }, getBaseDomBreadcrumb(target, message)));\n}\n\nfunction getDomTarget(handlerData) {\n var isClick = handlerData.name === 'click';\n var message;\n var target = null; // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n\n try {\n target = isClick ? getClickTargetNode(handlerData.event) : getTargetNode(handlerData.event);\n message = htmlTreeAsString(target, {\n maxStringLength: 200\n }) || '';\n } catch (e) {\n message = '';\n }\n\n return {\n target: target,\n message: message\n };\n}\n\nfunction isElement(node) {\n return node.type === NodeType.Element;\n}\n/** Handle keyboard events & create breadcrumbs. */\n\n\nfunction handleKeyboardEvent(replay, event) {\n if (!replay.isEnabled()) {\n return;\n } // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n\n\n replay.updateUserActivity();\n var breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n/** exported only for tests */\n\n\nfunction getKeyboardBreadcrumb(event) {\n var metaKey = event.metaKey,\n shiftKey = event.shiftKey,\n ctrlKey = event.ctrlKey,\n altKey = event.altKey,\n key = event.key,\n target = event.target; // never capture for input fields\n\n if (!target || isInputElement(target) || !key) {\n return null;\n } // Note: We do not consider shift here, as that means \"uppercase\"\n\n\n var hasModifierKey = metaKey || ctrlKey || altKey;\n var isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n var message = htmlTreeAsString(target, {\n maxStringLength: 200\n }) || '';\n var baseBreadcrumb = getBaseDomBreadcrumb(target, message);\n return createBreadcrumb({\n category: 'ui.keyDown',\n message: message,\n data: _objectSpread(_objectSpread({}, baseBreadcrumb.data), {}, {\n metaKey: metaKey,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey,\n altKey: altKey,\n key: key\n })\n });\n}\n\nfunction isInputElement(target) {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n} // Map entryType -> function to normalize data for event\n\n\nvar ENTRY_TYPES = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry\n};\n/**\n * Handler creater for web vitals\n */\n\nfunction webVitalHandler(getter, replay) {\n return function (_ref23) {\n var metric = _ref23.metric;\n return void replay.replayPerformanceEntries.push(getter(metric));\n };\n}\n/**\n * Create replay performance entries from the browser performance entries.\n */\n\n\nfunction createPerformanceEntries(entries) {\n return entries.map(createPerformanceEntry).filter(Boolean);\n}\n\nfunction createPerformanceEntry(entry) {\n var entryType = ENTRY_TYPES[entry.entryType];\n\n if (!entryType) {\n return null;\n }\n\n return entryType(entry);\n}\n\nfunction getAbsoluteTime(time) {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry) {\n var duration = entry.duration,\n entryType = entry.entryType,\n name = entry.name,\n startTime = entry.startTime;\n var start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name: name,\n start: start,\n end: start + duration,\n data: undefined\n };\n}\n\nfunction createNavigationEntry(entry) {\n var entryType = entry.entryType,\n name = entry.name,\n decodedBodySize = entry.decodedBodySize,\n duration = entry.duration,\n domComplete = entry.domComplete,\n encodedBodySize = entry.encodedBodySize,\n domContentLoadedEventStart = entry.domContentLoadedEventStart,\n domContentLoadedEventEnd = entry.domContentLoadedEventEnd,\n domInteractive = entry.domInteractive,\n loadEventStart = entry.loadEventStart,\n loadEventEnd = entry.loadEventEnd,\n redirectCount = entry.redirectCount,\n startTime = entry.startTime,\n transferSize = entry.transferSize,\n type = entry.type; // Ignore entries with no duration, they do not seem to be useful and cause dupes\n\n if (duration === 0) {\n return null;\n }\n\n return {\n type: \"\".concat(entryType, \".\").concat(type),\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name: name,\n data: {\n size: transferSize,\n decodedBodySize: decodedBodySize,\n encodedBodySize: encodedBodySize,\n duration: duration,\n domInteractive: domInteractive,\n domContentLoadedEventStart: domContentLoadedEventStart,\n domContentLoadedEventEnd: domContentLoadedEventEnd,\n loadEventStart: loadEventStart,\n loadEventEnd: loadEventEnd,\n domComplete: domComplete,\n redirectCount: redirectCount\n }\n };\n}\n\nfunction createResourceEntry(entry) {\n var entryType = entry.entryType,\n initiatorType = entry.initiatorType,\n name = entry.name,\n responseEnd = entry.responseEnd,\n startTime = entry.startTime,\n decodedBodySize = entry.decodedBodySize,\n encodedBodySize = entry.encodedBodySize,\n responseStatus = entry.responseStatus,\n transferSize = entry.transferSize; // Core SDK handles these\n\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: \"\".concat(entryType, \".\").concat(initiatorType),\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name: name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize: decodedBodySize,\n encodedBodySize: encodedBodySize\n }\n };\n}\n/**\n * Add a LCP event to the replay based on a LCP metric.\n */\n\n\nfunction getLargestContentfulPaint(metric) {\n var lastEntry = metric.entries[metric.entries.length - 1];\n var node = lastEntry && lastEntry.element ? [lastEntry.element] : undefined;\n return getWebVital(metric, 'largest-contentful-paint', node);\n}\n\nfunction isLayoutShift(entry) {\n return entry.sources !== undefined;\n}\n/**\n * Add a CLS event to the replay based on a CLS metric.\n */\n\n\nfunction getCumulativeLayoutShift(metric) {\n var layoutShifts = [];\n var nodes = [];\n\n var _iterator9 = _createForOfIteratorHelper(metric.entries),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var entry = _step9.value;\n\n if (isLayoutShift(entry)) {\n var nodeIds = [];\n\n var _iterator10 = _createForOfIteratorHelper(entry.sources),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var source = _step10.value;\n\n if (source.node) {\n nodes.push(source.node);\n var nodeId = record.mirror.getId(source.node);\n\n if (nodeId) {\n nodeIds.push(nodeId);\n }\n }\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n layoutShifts.push({\n value: entry.value,\n nodeIds: nodeIds.length ? nodeIds : undefined\n });\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return getWebVital(metric, 'cumulative-layout-shift', nodes, layoutShifts);\n}\n/**\n * Add a FID event to the replay based on a FID metric.\n */\n\n\nfunction getFirstInputDelay(metric) {\n var lastEntry = metric.entries[metric.entries.length - 1];\n var node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'first-input-delay', node);\n}\n/**\n * Add an INP event to the replay based on an INP metric.\n */\n\n\nfunction getInteractionToNextPaint(metric) {\n var lastEntry = metric.entries[metric.entries.length - 1];\n var node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'interaction-to-next-paint', node);\n}\n/**\n * Add an web vital event to the replay based on the web vital metric.\n */\n\n\nfunction getWebVital(metric, name, nodes, attributions) {\n var value = metric.value;\n var rating = metric.rating;\n var end = getAbsoluteTime(value);\n return {\n type: 'web-vital',\n name: name,\n start: end,\n end: end,\n data: {\n value: value,\n size: value,\n rating: rating,\n nodeIds: nodes ? nodes.map(function (node) {\n return record.mirror.getId(node);\n }) : undefined,\n attributions: attributions\n }\n };\n}\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\n\n\nfunction setupPerformanceObserver(replay) {\n function addPerformanceEntry(entry) {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries(_ref24) {\n var entries = _ref24.entries;\n entries.forEach(addPerformanceEntry);\n }\n\n var clearCallbacks = [];\n ['navigation', 'paint', 'resource'].forEach(function (type) {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n clearCallbacks.push(addLcpInstrumentationHandler(webVitalHandler(getLargestContentfulPaint, replay)), addClsInstrumentationHandler(webVitalHandler(getCumulativeLayoutShift, replay)), addFidInstrumentationHandler(webVitalHandler(getFirstInputDelay, replay)), addInpInstrumentationHandler(webVitalHandler(getInteractionToNextPaint, replay))); // A callback to cleanup all handlers\n\n return function () {\n clearCallbacks.forEach(function (clearCallback) {\n return clearCallback();\n });\n };\n}\n\nvar r = \"var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\\\"unexpected EOF\\\",\\\"invalid block type\\\",\\\"invalid length/literal\\\",\\\"invalid distance\\\",\\\"stream finished\\\",\\\"no stream handler\\\",,\\\"no callback\\\",\\\"invalid UTF-8 data\\\",\\\"extra field too long\\\",\\\"date not in range 1980-2099\\\",\\\"filename too long\\\",\\\"stream finishing\\\",\\\"invalid zip data\\\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},_=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},x=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=A(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},A=function(t,n,r){return-1==t.s?Math.max(A(t.l,n,r+1),A(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,U)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){_(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;_(r,m,Q[et]),m+=R[et],et>3&&(_(r,m,rt>>5&8191),m+=i[et])}else _(r,m,N[rt]),m+=P[rt]}return _(r,m,N[256]),m+P[256]},C=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}},L=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},O=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=C[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=U(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=_[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},j=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},q=function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&j(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}},B=function(t){return 10+(t.filename?t.filename.length+1:0)},G=function(){function n(n,r){if(\\\"function\\\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(O(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();var H=function(){function t(t,n){this.c=L(),this.v=1,G.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),G.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=O(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=L();i.p(n.dictionary),j(t,2,i.d())}}(r,this.o),this.v=0),n&&j(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),J=\\\"undefined\\\"!=typeof TextEncoder&&new TextEncoder,K=\\\"undefined\\\"!=typeof TextDecoder&&new TextDecoder;try{K.decode(F,{stream:!0})}catch(t){}var N=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(P(t),this.d=n||!1)},t}();function P(n,r){if(J)return J.encode(n);for(var e=n.length,i=new t(n.length+(n.length>>1)),a=0,s=function(t){i[a++]=t},o=0;oi.length){var f=new t(a+8+(e-o<<1));f.set(i),i=f}var h=n.charCodeAt(o);h<128||r?s(h):h<2048?(s(192|h>>6),s(128|63&h)):h>55295&&h<57344?(s(240|(h=65536+(1047552&h)|1023&n.charCodeAt(++o))>>18),s(128|h>>12&63),s(128|h>>6&63),s(128|63&h)):(s(224|h>>12),s(128|h>>6&63),s(128|63&h))}return b(i,0,a)}function Q(t){return function(t,n){n||(n={});var r=S(),e=t.length;r.p(t);var i=O(t,n,B(n),8),a=i.length;return q(i,n),j(i,a-8,r.d()),j(i,a-4,e),i}(P(t))}const R=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\\\"Adding invalid event\\\");const n=this._hasEvents?\\\",\\\":\\\"\\\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\\\"]\\\",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n{this._deflatedData.push(t)},this.stream=new N(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\\\"[\\\")}},V={clear:()=>{R.clear()},addEvent:t=>R.addEvent(t),finish:()=>R.finish(),compress:t=>Q(t)};addEventListener(\\\"message\\\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in V&&\\\"function\\\"==typeof V[n])try{const t=V[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\\\"init\\\",success:!0,response:void 0});\";\n\nfunction e() {\n var e = new Blob([r]);\n return URL.createObjectURL(e);\n}\n/** This error indicates that the event buffer size exceeded the limit.. */\n\n\nvar EventBufferSizeExceededError = /*#__PURE__*/function (_Error) {\n _inherits(EventBufferSizeExceededError, _Error);\n\n var _super = _createSuper(EventBufferSizeExceededError);\n\n function EventBufferSizeExceededError() {\n _classCallCheck(this, EventBufferSizeExceededError);\n\n return _super.call(this, \"Event buffer exceeded maximum size of \".concat(REPLAY_MAX_EVENT_BUFFER_SIZE, \".\"));\n }\n\n return _createClass(EventBufferSizeExceededError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\n\n\nvar EventBufferArray = /*#__PURE__*/function () {\n /** All the events that are buffered to be sent. */\n\n /** @inheritdoc */\n function EventBufferArray() {\n _classCallCheck(this, EventBufferArray);\n\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n /** @inheritdoc */\n\n\n _createClass(EventBufferArray, [{\n key: \"hasEvents\",\n get: function get() {\n return this.events.length > 0;\n }\n /** @inheritdoc */\n\n }, {\n key: \"type\",\n get: function get() {\n return 'sync';\n }\n /** @inheritdoc */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.events = [];\n }\n /** @inheritdoc */\n\n }, {\n key: \"addEvent\",\n value: function () {\n var _addEvent2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {\n var eventSize;\n return _regeneratorRuntime.wrap(function _callee$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n\n if (!(this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE)) {\n _context2.next = 4;\n break;\n }\n\n throw new EventBufferSizeExceededError();\n\n case 4:\n this.events.push(event);\n\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee, this);\n }));\n\n function addEvent(_x) {\n return _addEvent2.apply(this, arguments);\n }\n\n return addEvent;\n }()\n /** @inheritdoc */\n\n }, {\n key: \"finish\",\n value: function finish() {\n var _this18 = this;\n\n return new Promise(function (resolve) {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n var eventsRet = _this18.events;\n\n _this18.clear();\n\n resolve(JSON.stringify(eventsRet));\n });\n }\n /** @inheritdoc */\n\n }, {\n key: \"clear\",\n value: function clear() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n /** @inheritdoc */\n\n }, {\n key: \"getEarliestTimestamp\",\n value: function getEarliestTimestamp() {\n var timestamp = this.events.map(function (event) {\n return event.timestamp;\n }).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n }]);\n\n return EventBufferArray;\n}();\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\n\n\nvar WorkerHandler = /*#__PURE__*/function () {\n function WorkerHandler(worker) {\n _classCallCheck(this, WorkerHandler);\n\n this._worker = worker;\n this._id = 0;\n }\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occurred.\n */\n\n\n _createClass(WorkerHandler, [{\n key: \"ensureReady\",\n value: function ensureReady() {\n var _this19 = this;\n\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise(function (resolve, reject) {\n _this19._worker.addEventListener('message', function (_ref25) {\n var data = _ref25.data;\n\n if (data.success) {\n resolve();\n } else {\n reject();\n }\n }, {\n once: true\n });\n\n _this19._worker.addEventListener('error', function (error) {\n reject(error);\n }, {\n once: true\n });\n });\n return this._ensureReadyPromise;\n }\n /**\n * Destroy the worker.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n DEBUG_BUILD && logger.info('Destroying compression worker');\n\n this._worker.terminate();\n }\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n\n }, {\n key: \"postMessage\",\n value: function postMessage(method, arg) {\n var _this20 = this;\n\n var id = this._getAndIncrementId();\n\n return new Promise(function (resolve, reject) {\n var listener = function listener(_ref26) {\n var data = _ref26.data;\n var response = data;\n\n if (response.method !== method) {\n return;\n } // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n\n\n if (response.id !== id) {\n return;\n } // At this point, we'll always want to remove listener regardless of result status\n\n\n _this20._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('Error in compression worker: ', response.response);\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response);\n }; // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n\n\n _this20._worker.addEventListener('message', listener);\n\n _this20._worker.postMessage({\n id: id,\n method: method,\n arg: arg\n });\n });\n }\n /** Get the current ID and increment it for the next call. */\n\n }, {\n key: \"_getAndIncrementId\",\n value: function _getAndIncrementId() {\n return this._id++;\n }\n }]);\n\n return WorkerHandler;\n}();\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\n\n\nvar EventBufferCompressionWorker = /*#__PURE__*/function () {\n /** @inheritdoc */\n function EventBufferCompressionWorker(worker) {\n _classCallCheck(this, EventBufferCompressionWorker);\n\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n /** @inheritdoc */\n\n\n _createClass(EventBufferCompressionWorker, [{\n key: \"hasEvents\",\n get: function get() {\n return !!this._earliestTimestamp;\n }\n /** @inheritdoc */\n\n }, {\n key: \"type\",\n get: function get() {\n return 'worker';\n }\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occurred.\n */\n\n }, {\n key: \"ensureReady\",\n value: function ensureReady() {\n return this._worker.ensureReady();\n }\n /**\n * Destroy the event buffer.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._worker.destroy();\n }\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully received and processed by worker.\n */\n\n }, {\n key: \"addEvent\",\n value: function addEvent(event) {\n var timestamp = timestampToMs(event.timestamp);\n\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n var data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n /**\n * Finish the event buffer and return the compressed data.\n */\n\n }, {\n key: \"finish\",\n value: function finish() {\n return this._finishRequest();\n }\n /** @inheritdoc */\n\n }, {\n key: \"clear\",\n value: function clear() {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false; // We do not wait on this, as we assume the order of messages is consistent for the worker\n\n this._worker.postMessage('clear').then(null, function (e) {\n DEBUG_BUILD && logger.exception(e, 'Sending \"clear\" message to worker failed', e);\n });\n }\n /** @inheritdoc */\n\n }, {\n key: \"getEarliestTimestamp\",\n value: function getEarliestTimestamp() {\n return this._earliestTimestamp;\n }\n /**\n * Send the event to the worker.\n */\n\n }, {\n key: \"_sendEventToWorker\",\n value: function _sendEventToWorker(data) {\n return this._worker.postMessage('addEvent', data);\n }\n /**\n * Finish the request and return the compressed data from the worker.\n */\n\n }, {\n key: \"_finishRequest\",\n value: function () {\n var _finishRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var response;\n return _regeneratorRuntime.wrap(function _callee2$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this._worker.postMessage('finish');\n\n case 2:\n response = _context3.sent;\n this._earliestTimestamp = null;\n this._totalSize = 0;\n return _context3.abrupt(\"return\", response);\n\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function _finishRequest() {\n return _finishRequest2.apply(this, arguments);\n }\n\n return _finishRequest;\n }()\n }]);\n\n return EventBufferCompressionWorker;\n}();\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\n\n\nvar EventBufferProxy = /*#__PURE__*/function () {\n function EventBufferProxy(worker) {\n _classCallCheck(this, EventBufferProxy);\n\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n /** @inheritdoc */\n\n\n _createClass(EventBufferProxy, [{\n key: \"type\",\n get: function get() {\n return this._used.type;\n }\n /** @inheritDoc */\n\n }, {\n key: \"hasEvents\",\n get: function get() {\n return this._used.hasEvents;\n }\n /** @inheritdoc */\n\n }, {\n key: \"hasCheckout\",\n get: function get() {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n ,\n set: function set(value) {\n this._used.hasCheckout = value;\n }\n /** @inheritDoc */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._fallback.destroy();\n\n this._compression.destroy();\n }\n /** @inheritdoc */\n\n }, {\n key: \"clear\",\n value: function clear() {\n return this._used.clear();\n }\n /** @inheritdoc */\n\n }, {\n key: \"getEarliestTimestamp\",\n value: function getEarliestTimestamp() {\n return this._used.getEarliestTimestamp();\n }\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n\n }, {\n key: \"addEvent\",\n value: function addEvent(event) {\n return this._used.addEvent(event);\n }\n /** @inheritDoc */\n\n }, {\n key: \"finish\",\n value: function () {\n var _finish = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n return _regeneratorRuntime.wrap(function _callee3$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.ensureWorkerIsLoaded();\n\n case 2:\n return _context4.abrupt(\"return\", this._used.finish());\n\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function finish() {\n return _finish.apply(this, arguments);\n }\n\n return finish;\n }()\n /** Ensure the worker has loaded. */\n\n }, {\n key: \"ensureWorkerIsLoaded\",\n value: function ensureWorkerIsLoaded() {\n return this._ensureWorkerIsLoadedPromise;\n }\n /** Actually check if the worker has been loaded. */\n\n }, {\n key: \"_ensureWorkerIsLoaded\",\n value: function () {\n var _ensureWorkerIsLoaded2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n return _regeneratorRuntime.wrap(function _callee4$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n _context5.next = 3;\n return this._compression.ensureReady();\n\n case 3:\n _context5.next = 9;\n break;\n\n case 5:\n _context5.prev = 5;\n _context5.t0 = _context5[\"catch\"](0);\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n DEBUG_BUILD && logger.exception(_context5.t0, 'Failed to load the compression worker, falling back to simple buffer');\n return _context5.abrupt(\"return\");\n\n case 9:\n _context5.next = 11;\n return this._switchToCompressionWorker();\n\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee4, this, [[0, 5]]);\n }));\n\n function _ensureWorkerIsLoaded() {\n return _ensureWorkerIsLoaded2.apply(this, arguments);\n }\n\n return _ensureWorkerIsLoaded;\n }()\n /** Switch the used buffer to the compression worker. */\n\n }, {\n key: \"_switchToCompressionWorker\",\n value: function () {\n var _switchToCompressionWorker2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var _this$_fallback, events, hasCheckout, addEventPromises, _iterator11, _step11, event;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _this$_fallback = this._fallback, events = _this$_fallback.events, hasCheckout = _this$_fallback.hasCheckout;\n addEventPromises = [];\n _iterator11 = _createForOfIteratorHelper(events);\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n event = _step11.value;\n addEventPromises.push(this._compression.addEvent(event));\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n this._compression.hasCheckout = hasCheckout; // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n\n this._used = this._compression; // Wait for original events to be re-added before resolving\n\n _context6.prev = 6;\n _context6.next = 9;\n return Promise.all(addEventPromises);\n\n case 9:\n // Can now clear fallback buffer as it's no longer necessary\n this._fallback.clear();\n\n _context6.next = 15;\n break;\n\n case 12:\n _context6.prev = 12;\n _context6.t0 = _context6[\"catch\"](6);\n DEBUG_BUILD && logger.exception(_context6.t0, 'Failed to add events when switching buffers.');\n\n case 15:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee5, this, [[6, 12]]);\n }));\n\n function _switchToCompressionWorker() {\n return _switchToCompressionWorker2.apply(this, arguments);\n }\n\n return _switchToCompressionWorker;\n }()\n }]);\n\n return EventBufferProxy;\n}();\n/**\n * Create an event buffer for replays.\n */\n\n\nfunction createEventBuffer(_ref27) {\n var useCompression = _ref27.useCompression,\n customWorkerUrl = _ref27.workerUrl;\n\n if (useCompression && // eslint-disable-next-line no-restricted-globals\n window.Worker) {\n var worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n DEBUG_BUILD && logger.info('Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl) {\n try {\n var workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n DEBUG_BUILD && logger.info(\"Using compression worker\".concat(customWorkerUrl ? \" from \".concat(customWorkerUrl) : ''));\n var worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to create compression worker'); // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl() {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return e();\n }\n\n return '';\n}\n/** If sessionStorage is available. */\n\n\nfunction hasSessionStorage() {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch (e) {\n return false;\n }\n}\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\n\n\nfunction clearSession(replay) {\n deleteSession();\n replay.session = undefined;\n}\n/**\n * Deletes a session from storage\n */\n\n\nfunction deleteSession() {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch (e) {// Ignore potential SecurityError exceptions\n }\n}\n/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\n\n\nfunction isSampled(sampleRate) {\n if (sampleRate === undefined) {\n return false;\n } // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n\n\n return Math.random() < sampleRate;\n}\n/**\n * Get a session with defaults & applied sampling.\n */\n\n\nfunction makeSession(session) {\n var now = Date.now();\n var id = session.id || uuid4(); // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n\n var started = session.started || now;\n var lastActivity = session.lastActivity || now;\n var segmentId = session.segmentId || 0;\n var sampled = session.sampled;\n var previousSessionId = session.previousSessionId;\n return {\n id: id,\n started: started,\n lastActivity: lastActivity,\n segmentId: segmentId,\n sampled: sampled,\n previousSessionId: previousSessionId\n };\n}\n/**\n * Save a session to session storage.\n */\n\n\nfunction saveSession(session) {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch (e) {// Ignore potential SecurityError exceptions\n }\n}\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\n\n\nfunction getSessionSampleType(sessionSampleRate, allowBuffering) {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\n\n\nfunction createSession(_ref28) {\n var sessionSampleRate = _ref28.sessionSampleRate,\n allowBuffering = _ref28.allowBuffering,\n _ref28$stickySession = _ref28.stickySession,\n stickySession = _ref28$stickySession === void 0 ? false : _ref28$stickySession;\n\n var _ref29 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n previousSessionId = _ref29.previousSessionId;\n\n var sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n var session = makeSession({\n sampled: sampled,\n previousSessionId: previousSessionId\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n/**\n * Fetches a session from storage\n */\n\n\nfunction fetchSession() {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n var sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n var sessionObj = JSON.parse(sessionStringFromStorage);\n DEBUG_BUILD && logger.infoTick('Loading existing session');\n return makeSession(sessionObj);\n } catch (e) {\n return null;\n }\n}\n/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\n\n\nfunction isExpired(initialTime, expiry) {\n var targetTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : +new Date();\n\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n } // Never expires if == 0\n\n\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n/**\n * Checks to see if session is expired\n */\n\n\nfunction isSessionExpired(session, _ref30) {\n var maxReplayDuration = _ref30.maxReplayDuration,\n sessionIdleExpire = _ref30.sessionIdleExpire,\n _ref30$targetTime = _ref30.targetTime,\n targetTime = _ref30$targetTime === void 0 ? Date.now() : _ref30$targetTime;\n return (// First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) || // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n/** If the session should be refreshed or not. */\n\n\nfunction shouldRefreshSession(session, _ref31) {\n var sessionIdleExpire = _ref31.sessionIdleExpire,\n maxReplayDuration = _ref31.maxReplayDuration;\n\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, {\n sessionIdleExpire: sessionIdleExpire,\n maxReplayDuration: maxReplayDuration\n })) {\n return false;\n } // If we are buffering & haven't ever flushed yet, always continue\n\n\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\n\n\nfunction loadOrCreateSession(_ref32, sessionOptions) {\n var sessionIdleExpire = _ref32.sessionIdleExpire,\n maxReplayDuration = _ref32.maxReplayDuration,\n previousSessionId = _ref32.previousSessionId;\n var existingSession = sessionOptions.stickySession && fetchSession(); // No session exists yet, just create a new one\n\n if (!existingSession) {\n DEBUG_BUILD && logger.infoTick('Creating new session');\n return createSession(sessionOptions, {\n previousSessionId: previousSessionId\n });\n }\n\n if (!shouldRefreshSession(existingSession, {\n sessionIdleExpire: sessionIdleExpire,\n maxReplayDuration: maxReplayDuration\n })) {\n return existingSession;\n }\n\n DEBUG_BUILD && logger.infoTick('Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, {\n previousSessionId: existingSession.id\n });\n}\n\nfunction isCustomEvent(event) {\n return event.type === EventType.Custom;\n}\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\n\n\nfunction addEventSync(replay, event, isCheckout) {\n if (!shouldAddEvent(replay, event)) {\n return false;\n } // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\n\n\nfunction addEvent(replay, event, isCheckout) {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nfunction _addEvent(_x2, _x3, _x4) {\n return _addEvent3.apply(this, arguments);\n}\n/** Exported only for tests. */\n\n\nfunction _addEvent3() {\n _addEvent3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(replay, event, isCheckout) {\n var replayOptions, eventAfterPossibleCallback, reason, client;\n return _regeneratorRuntime.wrap(function _callee12$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (replay.eventBuffer) {\n _context13.next = 2;\n break;\n }\n\n return _context13.abrupt(\"return\", null);\n\n case 2:\n _context13.prev = 2;\n\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n replayOptions = replay.getOptions();\n eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (eventAfterPossibleCallback) {\n _context13.next = 9;\n break;\n }\n\n return _context13.abrupt(\"return\");\n\n case 9:\n _context13.next = 11;\n return replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n\n case 11:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 14:\n _context13.prev = 14;\n _context13.t0 = _context13[\"catch\"](2);\n reason = _context13.t0 && _context13.t0 instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n replay.handleException(_context13.t0);\n _context13.next = 20;\n return replay.stop({\n reason: reason\n });\n\n case 20:\n client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n\n case 22:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee12, null, [[2, 14]]);\n }));\n return _addEvent3.apply(this, arguments);\n}\n\nfunction shouldAddEvent(replay, event) {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n var timestampInMs = timestampToMs(event.timestamp); // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n } // Throw out events that are +60min from the initial timestamp\n\n\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n DEBUG_BUILD && logger.infoTick(\"Skipping event with timestamp \".concat(timestampInMs, \" because it is after maxReplayDuration\"));\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(event, callback) {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'An error occurred in the `beforeAddRecordingEvent` callback, skipping the event...');\n return null;\n }\n\n return event;\n}\n/** If the event is an error event */\n\n\nfunction isErrorEvent(event) {\n return !event.type;\n}\n/** If the event is a transaction event */\n\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n/** If the event is an replay event */\n\n\nfunction isReplayEvent(event) {\n return event.type === 'replay_event';\n}\n/** If the event is a feedback event */\n\n\nfunction isFeedbackEvent(event) {\n return event.type === 'feedback';\n}\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\n\n\nfunction handleAfterSendEvent(replay) {\n return function (event, sendResponse) {\n if (!replay.isEnabled() || !isErrorEvent(event) && !isTransactionEvent(event)) {\n return;\n }\n\n var statusCode = sendResponse && sendResponse.statusCode; // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n\n if (!statusCode || statusCode < 200 || statusCode >= 300) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay, event) {\n var replayContext = replay.getContext(); // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id);\n }\n}\n\nfunction handleErrorEvent(replay, event) {\n var replayContext = replay.getContext(); // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n } // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n\n\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n var _replay$getOptions = replay.getOptions(),\n beforeErrorSampling = _replay$getOptions.beforeErrorSampling;\n\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout$3( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n return _regeneratorRuntime.wrap(function _callee6$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n _context7.next = 3;\n return replay.sendBufferedReplayOrFlush();\n\n case 3:\n _context7.next = 8;\n break;\n\n case 5:\n _context7.prev = 5;\n _context7.t0 = _context7[\"catch\"](0);\n replay.handleException(_context7.t0);\n\n case 8:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee6, null, [[0, 5]]);\n })));\n}\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\n\n\nfunction handleBeforeSendEvent(replay) {\n return function (event) {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay, event) {\n var exceptionValue = event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].value;\n\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if ( // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n // With newer React versions, the messages changed to a different website https://react.dev/errors/418\n exceptionValue.match(/(reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=|react\\.dev\\/errors\\/)(418|419|422|423|425)/) || // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)) {\n var breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n data: {\n url: getLocationHref()\n }\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n/**\n * Handle breadcrumbs that Sentry captures, and make sure to capture relevant breadcrumbs to Replay as well.\n */\n\n\nfunction handleBreadcrumbs(replay) {\n var client = getClient();\n\n if (!client) {\n return;\n }\n\n client.on('beforeAddBreadcrumb', function (breadcrumb) {\n return beforeAddBreadcrumb(replay, breadcrumb);\n });\n}\n\nfunction beforeAddBreadcrumb(replay, breadcrumb) {\n if (!replay.isEnabled() || !isBreadcrumbWithCategory(breadcrumb)) {\n return;\n }\n\n var result = normalizeBreadcrumb(breadcrumb);\n\n if (result) {\n addBreadcrumbEvent(replay, result);\n }\n}\n/** Exported only for tests. */\n\n\nfunction normalizeBreadcrumb(breadcrumb) {\n if (!isBreadcrumbWithCategory(breadcrumb) || [// fetch & xhr are handled separately,in handleNetworkBreadcrumbs\n 'fetch', 'xhr', // These two are breadcrumbs for emitted sentry events, we don't care about them\n 'sentry.event', 'sentry.transaction'].includes(breadcrumb.category) || // We capture UI breadcrumbs separately\n breadcrumb.category.startsWith('ui.')) {\n return null;\n }\n\n if (breadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(breadcrumb);\n }\n\n return createBreadcrumb(breadcrumb);\n}\n/** exported for tests only */\n\n\nfunction normalizeConsoleBreadcrumb(breadcrumb) {\n var args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n var isTruncated = false; // Avoid giant args captures\n\n var normalizedArgs = args.map(function (arg) {\n if (!arg) {\n return arg;\n }\n\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return \"\".concat(arg.slice(0, CONSOLE_ARG_MAX_SIZE), \"\\u2026\");\n }\n\n return arg;\n }\n\n if (_typeof(arg) === 'object') {\n try {\n var normalizedArg = normalize(arg, 7);\n var stringified = JSON.stringify(normalizedArg);\n\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true; // We use the pretty printed JSON string here as a base\n\n return \"\".concat(JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE), \"\\u2026\");\n }\n\n return normalizedArg;\n } catch (e) {// fall back to default\n }\n }\n\n return arg;\n });\n return createBreadcrumb(_objectSpread(_objectSpread({}, breadcrumb), {}, {\n data: _objectSpread(_objectSpread({}, breadcrumb.data), {}, {\n arguments: normalizedArgs\n }, isTruncated ? {\n _meta: {\n warnings: ['CONSOLE_ARG_TRUNCATED']\n }\n } : {})\n }));\n}\n\nfunction isBreadcrumbWithCategory(breadcrumb) {\n return !!breadcrumb.category;\n}\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\n\n\nfunction isRrwebError(event, hint) {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n } // @ts-expect-error this may be set by rrweb when it finds errors\n\n\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n/**\n * Add a feedback breadcrumb event to replay.\n */\n\n\nfunction addFeedbackBreadcrumb(replay, event) {\n replay.triggerUserActivity();\n replay.addUpdate(function () {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n } // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id\n }\n }\n }\n });\n return false;\n });\n}\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `handleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\n\n\nfunction shouldSampleForBufferEvent(replay, event) {\n if (replay.recordingMode !== 'buffer') {\n return false;\n } // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n\n\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n } // Require the event to be an error event & to have an exception\n\n\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\n\n\nfunction handleGlobalEventListener(replay) {\n return Object.assign(function (event, hint) {\n // Do nothing if replay has been disabled or paused\n if (!replay.isEnabled() || replay.isPaused()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n } // We only want to handle errors, transactions, and feedbacks, nothing else\n\n\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n } // Ensure we do not add replay_id if the session is expired\n\n\n var isSessionActive = replay.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId(); // Add a replay breadcrumb for this piece of feedback\n\n addFeedbackBreadcrumb(replay, event);\n return event;\n } // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n\n\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('Ignoring error from rrweb internals', event);\n return null;\n } // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n\n\n var isErrorEventSampled = shouldSampleForBufferEvent(replay, event); // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n\n var shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = _objectSpread(_objectSpread({}, event.tags), {}, {\n replayId: replay.getSessionId()\n });\n }\n\n return event;\n }, {\n id: 'Replay'\n });\n}\n/**\n * Create a \"span\" for each performance entry.\n */\n\n\nfunction createPerformanceSpans(replay, entries) {\n return entries.map(function (_ref34) {\n var type = _ref34.type,\n start = _ref34.start,\n end = _ref34.end,\n name = _ref34.name,\n data = _ref34.data;\n var response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data: data\n }\n }\n }); // If response is a string, it means its either THROTTLED or SKIPPED\n\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n\nfunction handleHistory(handlerData) {\n var from = handlerData.from,\n to = handlerData.to;\n var now = Date.now() / 1000;\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from\n }\n };\n}\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\n\n\nfunction handleHistorySpanListener(replay) {\n return function (handlerData) {\n if (!replay.isEnabled()) {\n return;\n }\n\n var result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n } // Need to collect visited URLs\n\n\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n replay.addUpdate(function () {\n createPerformanceSpans(replay, [result]); // Returning false to flush\n\n return false;\n });\n };\n}\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\n\n\nfunction shouldFilterRequest(replay, url) {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n/** Add a performance entry breadcrumb */\n\n\nfunction addNetworkBreadcrumb(replay, result) {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(function () {\n createPerformanceSpans(replay, [result]); // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n\n return true;\n });\n}\n/** Get the size of a body. */\n\n\nfunction getBodySize(body) {\n if (!body) {\n return undefined;\n }\n\n var textEncoder = new TextEncoder();\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n var formDataStr = _serializeFormData(body);\n\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n } // Currently unhandled types: ArrayBufferView, ReadableStream\n\n } catch (e) {// just return undefined\n }\n\n return undefined;\n}\n/** Convert a Content-Length header to number/undefined. */\n\n\nfunction parseContentLengthHeader(header) {\n if (!header) {\n return undefined;\n }\n\n var size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n/** Get the string representation of a body. */\n\n\nfunction getBodyString(body) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n/** Merge a warning into an existing network request/response. */\n\n\nfunction mergeWarning(info, warning) {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning]\n }\n };\n }\n\n var newMeta = _objectSpread({}, info._meta);\n\n var existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [].concat(_toConsumableArray(existingWarnings), [warning]);\n info._meta = newMeta;\n return info;\n}\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\n\n\nfunction makeNetworkReplayBreadcrumb(type, data) {\n if (!data) {\n return null;\n }\n\n var startTimestamp = data.startTimestamp,\n endTimestamp = data.endTimestamp,\n url = data.url,\n method = data.method,\n statusCode = data.statusCode,\n request = data.request,\n response = data.response;\n var result = {\n type: type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method: method,\n statusCode: statusCode,\n request: request,\n response: response\n })\n };\n return result;\n}\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\n\n\nfunction buildSkippedNetworkRequestOrResponse(bodySize) {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED']\n }\n };\n}\n/** Build the request or response part of a replay network breadcrumb. */\n\n\nfunction buildNetworkRequestOrResponse(headers, bodySize, body) {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers: headers\n };\n }\n\n if (!body) {\n return {\n headers: headers,\n size: bodySize\n };\n }\n\n var info = {\n headers: headers,\n size: bodySize\n };\n\n var _normalizeNetworkBody = normalizeNetworkBody(body),\n normalizedBody = _normalizeNetworkBody.body,\n warnings = _normalizeNetworkBody.warnings;\n\n info.body = normalizedBody;\n\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings: warnings\n };\n }\n\n return info;\n}\n/** Filter a set of headers */\n\n\nfunction getAllowedHeaders(headers, allowedHeaders) {\n return Object.entries(headers).reduce(function (filteredHeaders, _ref35) {\n var _ref36 = _slicedToArray(_ref35, 2),\n key = _ref36[0],\n value = _ref36[1];\n\n var normalizedKey = key.toLowerCase(); // Avoid putting empty strings into the headers\n\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = value;\n }\n\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData) {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body) {\n if (!body || typeof body !== 'string') {\n return {\n body: body\n };\n }\n\n var exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n\n var isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n var truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED']\n };\n }\n\n return {\n body: \"\".concat(truncatedBody, \"\\u2026\"),\n warnings: ['TEXT_TRUNCATED']\n };\n }\n\n if (isProbablyJson) {\n try {\n var jsonBody = JSON.parse(body);\n return {\n body: jsonBody\n };\n } catch (e2) {// fall back to just send the body as string\n }\n }\n\n return {\n body: body\n };\n}\n\nfunction _strIsProbablyJson(str) {\n var first = str[0];\n var last = str[str.length - 1]; // Simple check: If this does not start & end with {} or [], it's not JSON\n\n return first === '[' && last === ']' || first === '{' && last === '}';\n}\n/** Match an URL against a list of strings/Regex. */\n\n\nfunction urlMatches(url, urls) {\n var fullUrl = getFullUrl(url);\n return stringMatchesSomePattern(fullUrl, urls);\n}\n/** exported for tests */\n\n\nfunction getFullUrl(url) {\n var baseURI = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : WINDOW.document.baseURI;\n\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n\n var fixedUrl = new URL(url, baseURI); // If these do not match, we are not dealing with a relative URL, so just return it\n\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n var fullUrl = fixedUrl.href; // Remove trailing slashes, if they don't match the original URL\n\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where appropriate).\n */\n\n\nfunction captureFetchBreadcrumbToReplay(_x5, _x6, _x7) {\n return _captureFetchBreadcrumbToReplay.apply(this, arguments);\n}\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\n\n\nfunction _captureFetchBreadcrumbToReplay() {\n _captureFetchBreadcrumbToReplay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(breadcrumb, hint, options) {\n var data, result;\n return _regeneratorRuntime.wrap(function _callee13$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n _context14.next = 3;\n return _prepareFetchData(breadcrumb, hint, options);\n\n case 3:\n data = _context14.sent;\n // Create a replay performance entry from this breadcrumb\n result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n _context14.next = 11;\n break;\n\n case 8:\n _context14.prev = 8;\n _context14.t0 = _context14[\"catch\"](0);\n DEBUG_BUILD && logger.exception(_context14.t0, 'Failed to capture fetch breadcrumb');\n\n case 11:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee13, null, [[0, 8]]);\n }));\n return _captureFetchBreadcrumbToReplay.apply(this, arguments);\n}\n\nfunction enrichFetchBreadcrumb(breadcrumb, hint) {\n var input = hint.input,\n response = hint.response;\n var body = input ? _getFetchRequestArgBody(input) : undefined;\n var reqSize = getBodySize(body);\n var resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareFetchData(_x8, _x9, _x10) {\n return _prepareFetchData2.apply(this, arguments);\n}\n\nfunction _prepareFetchData2() {\n _prepareFetchData2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(breadcrumb, hint, options) {\n var now, _hint$startTimestamp2, startTimestamp, _hint$endTimestamp2, endTimestamp, _breadcrumb$data2, url, method, _breadcrumb$data2$sta, statusCode, requestBodySize, responseBodySize, captureDetails, request, response;\n\n return _regeneratorRuntime.wrap(function _callee14$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n now = Date.now();\n _hint$startTimestamp2 = hint.startTimestamp, startTimestamp = _hint$startTimestamp2 === void 0 ? now : _hint$startTimestamp2, _hint$endTimestamp2 = hint.endTimestamp, endTimestamp = _hint$endTimestamp2 === void 0 ? now : _hint$endTimestamp2;\n _breadcrumb$data2 = breadcrumb.data, url = _breadcrumb$data2.url, method = _breadcrumb$data2.method, _breadcrumb$data2$sta = _breadcrumb$data2.status_code, statusCode = _breadcrumb$data2$sta === void 0 ? 0 : _breadcrumb$data2$sta, requestBodySize = _breadcrumb$data2.request_body_size, responseBodySize = _breadcrumb$data2.response_body_size;\n captureDetails = urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n request = captureDetails ? _getRequestInfo(options, hint.input, requestBodySize) : buildSkippedNetworkRequestOrResponse(requestBodySize);\n _context15.next = 7;\n return _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n case 7:\n response = _context15.sent;\n return _context15.abrupt(\"return\", {\n startTimestamp: startTimestamp,\n endTimestamp: endTimestamp,\n url: url,\n method: method,\n statusCode: statusCode,\n request: request,\n response: response\n });\n\n case 9:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee14);\n }));\n return _prepareFetchData2.apply(this, arguments);\n}\n\nfunction _getRequestInfo(_ref37, input, requestBodySize) {\n var networkCaptureBodies = _ref37.networkCaptureBodies,\n networkRequestHeaders = _ref37.networkRequestHeaders;\n var headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n } // We only want to transmit string or string-like bodies\n\n\n var requestBody = _getFetchRequestArgBody(input);\n\n var _getBodyString = getBodyString(requestBody),\n _getBodyString2 = _slicedToArray(_getBodyString, 2),\n bodyStr = _getBodyString2[0],\n warning = _getBodyString2[1];\n\n var data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n/** Exported only for tests. */\n\n\nfunction _getResponseInfo(_x11, _x12, _x13, _x14) {\n return _getResponseInfo2.apply(this, arguments);\n}\n\nfunction _getResponseInfo2() {\n _getResponseInfo2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(captureDetails, _ref38, response, responseBodySize) {\n var networkCaptureBodies, networkResponseHeaders, headers, _yield$_parseFetchRes, _yield$_parseFetchRes2, bodyText, warning, result;\n\n return _regeneratorRuntime.wrap(function _callee15$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n networkCaptureBodies = _ref38.networkCaptureBodies, networkResponseHeaders = _ref38.networkResponseHeaders;\n\n if (!(!captureDetails && responseBodySize !== undefined)) {\n _context16.next = 3;\n break;\n }\n\n return _context16.abrupt(\"return\", buildSkippedNetworkRequestOrResponse(responseBodySize));\n\n case 3:\n headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!(!response || !networkCaptureBodies && responseBodySize !== undefined)) {\n _context16.next = 6;\n break;\n }\n\n return _context16.abrupt(\"return\", buildNetworkRequestOrResponse(headers, responseBodySize, undefined));\n\n case 6:\n _context16.next = 8;\n return _parseFetchResponseBody(response);\n\n case 8:\n _yield$_parseFetchRes = _context16.sent;\n _yield$_parseFetchRes2 = _slicedToArray(_yield$_parseFetchRes, 2);\n bodyText = _yield$_parseFetchRes2[0];\n warning = _yield$_parseFetchRes2[1];\n result = getResponseData(bodyText, {\n networkCaptureBodies: networkCaptureBodies,\n responseBodySize: responseBodySize,\n captureDetails: captureDetails,\n headers: headers\n });\n\n if (!warning) {\n _context16.next = 15;\n break;\n }\n\n return _context16.abrupt(\"return\", mergeWarning(result, warning));\n\n case 15:\n return _context16.abrupt(\"return\", result);\n\n case 16:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee15);\n }));\n return _getResponseInfo2.apply(this, arguments);\n}\n\nfunction getResponseData(bodyText, _ref39) {\n var networkCaptureBodies = _ref39.networkCaptureBodies,\n responseBodySize = _ref39.responseBodySize,\n captureDetails = _ref39.captureDetails,\n headers = _ref39.headers;\n\n try {\n var size = bodyText && bodyText.length && responseBodySize === undefined ? getBodySize(bodyText) : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize response body'); // fallback\n\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nfunction _parseFetchResponseBody(_x15) {\n return _parseFetchResponseBody2.apply(this, arguments);\n}\n\nfunction _parseFetchResponseBody2() {\n _parseFetchResponseBody2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(response) {\n var res, text;\n return _regeneratorRuntime.wrap(function _callee16$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n res = _tryCloneResponse(response);\n\n if (res) {\n _context17.next = 3;\n break;\n }\n\n return _context17.abrupt(\"return\", [undefined, 'BODY_PARSE_ERROR']);\n\n case 3:\n _context17.prev = 3;\n _context17.next = 6;\n return _tryGetResponseText(res);\n\n case 6:\n text = _context17.sent;\n return _context17.abrupt(\"return\", [text]);\n\n case 10:\n _context17.prev = 10;\n _context17.t0 = _context17[\"catch\"](3);\n\n if (!(_context17.t0 instanceof Error && _context17.t0.message.indexOf('Timeout') > -1)) {\n _context17.next = 15;\n break;\n }\n\n DEBUG_BUILD && logger.warn('Parsing text body from response timed out');\n return _context17.abrupt(\"return\", [undefined, 'BODY_PARSE_TIMEOUT']);\n\n case 15:\n DEBUG_BUILD && logger.exception(_context17.t0, 'Failed to get text body from response');\n return _context17.abrupt(\"return\", [undefined, 'BODY_PARSE_ERROR']);\n\n case 17:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee16, null, [[3, 10]]);\n }));\n return _parseFetchResponseBody2.apply(this, arguments);\n}\n\nfunction _getFetchRequestArgBody() {\n var fetchArgs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || _typeof(fetchArgs[1]) !== 'object') {\n return undefined;\n }\n\n return fetchArgs[1].body;\n}\n\nfunction getAllHeaders(headers, allowedHeaders) {\n var allHeaders = {};\n allowedHeaders.forEach(function (header) {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header);\n }\n });\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs, allowedHeaders) {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0], allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1], allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(input, allowedHeaders) {\n if (!input) {\n return {};\n }\n\n var headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n } // We do not support this, as it is not really documented (anymore?)\n\n\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response) {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.exception(error, 'Failed to clone response body');\n }\n}\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\n\n\nfunction _tryGetResponseText(response) {\n return new Promise(function (resolve, reject) {\n var timeout = setTimeout$3(function () {\n return reject(new Error('Timeout while trying to read response body'));\n }, 500);\n\n _getResponseText(response).then(function (txt) {\n return resolve(txt);\n }, function (reason) {\n return reject(reason);\n }).finally(function () {\n return clearTimeout(timeout);\n });\n });\n}\n\nfunction _getResponseText(_x16) {\n return _getResponseText2.apply(this, arguments);\n}\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where appropriate).\n */\n\n\nfunction _getResponseText2() {\n _getResponseText2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(response) {\n return _regeneratorRuntime.wrap(function _callee17$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n _context18.next = 2;\n return response.text();\n\n case 2:\n return _context18.abrupt(\"return\", _context18.sent);\n\n case 3:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee17);\n }));\n return _getResponseText2.apply(this, arguments);\n}\n\nfunction captureXhrBreadcrumbToReplay(_x17, _x18, _x19) {\n return _captureXhrBreadcrumbToReplay.apply(this, arguments);\n}\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\n\n\nfunction _captureXhrBreadcrumbToReplay() {\n _captureXhrBreadcrumbToReplay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(breadcrumb, hint, options) {\n var data, result;\n return _regeneratorRuntime.wrap(function _callee18$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n try {\n data = _prepareXhrData(breadcrumb, hint, options); // Create a replay performance entry from this breadcrumb\n\n result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to capture xhr breadcrumb');\n }\n\n case 1:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee18);\n }));\n return _captureXhrBreadcrumbToReplay.apply(this, arguments);\n}\n\nfunction enrichXhrBreadcrumb(breadcrumb, hint) {\n var xhr = hint.xhr,\n input = hint.input;\n\n if (!xhr) {\n return;\n }\n\n var reqSize = getBodySize(input);\n var resSize = xhr.getResponseHeader('content-length') ? parseContentLengthHeader(xhr.getResponseHeader('content-length')) : _getBodySize(xhr.response, xhr.responseType);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(breadcrumb, hint, options) {\n var now = Date.now();\n var _hint$startTimestamp = hint.startTimestamp,\n startTimestamp = _hint$startTimestamp === void 0 ? now : _hint$startTimestamp,\n _hint$endTimestamp = hint.endTimestamp,\n endTimestamp = _hint$endTimestamp === void 0 ? now : _hint$endTimestamp,\n input = hint.input,\n xhr = hint.xhr;\n var _breadcrumb$data = breadcrumb.data,\n url = _breadcrumb$data.url,\n method = _breadcrumb$data.method,\n _breadcrumb$data$stat = _breadcrumb$data.status_code,\n statusCode = _breadcrumb$data$stat === void 0 ? 0 : _breadcrumb$data$stat,\n requestBodySize = _breadcrumb$data.request_body_size,\n responseBodySize = _breadcrumb$data.response_body_size;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n var _request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n\n var _response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n\n return {\n startTimestamp: startTimestamp,\n endTimestamp: endTimestamp,\n url: url,\n method: method,\n statusCode: statusCode,\n request: _request,\n response: _response\n };\n }\n\n var xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n var networkRequestHeaders = xhrInfo ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders) : {};\n var networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n var _ref40 = options.networkCaptureBodies ? getBodyString(input) : [undefined],\n _ref41 = _slicedToArray(_ref40, 2),\n requestBody = _ref41[0],\n requestWarning = _ref41[1];\n\n var _ref42 = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined],\n _ref43 = _slicedToArray(_ref42, 2),\n responseBody = _ref43[0],\n responseWarning = _ref43[1];\n\n var request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n var response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n return {\n startTimestamp: startTimestamp,\n endTimestamp: endTimestamp,\n url: url,\n method: method,\n statusCode: statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response\n };\n}\n\nfunction getResponseHeaders(xhr) {\n var headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce(function (acc, line) {\n var _line$split = line.split(': '),\n _line$split2 = _slicedToArray(_line$split, 2),\n key = _line$split2[0],\n value = _line$split2[1];\n\n if (value) {\n acc[key.toLowerCase()] = value;\n }\n\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr) {\n // We collect errors that happen, but only log them if we can't get any response body\n var errors = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n } // Try to manually parse the response body, if responseText fails\n\n\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn.apply(logger, ['Failed to get xhr response body'].concat(errors));\n return [undefined];\n}\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\n\n\nfunction _parseXhrResponse(body, responseType) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && _typeof(body) === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(body, responseType) {\n try {\n var bodyStr = responseType === 'json' && body && _typeof(body) === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr);\n } catch (e2) {\n return undefined;\n }\n}\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\n\n\nfunction handleNetworkBreadcrumbs(replay) {\n var client = getClient();\n\n try {\n var _replay$getOptions2 = replay.getOptions(),\n networkDetailAllowUrls = _replay$getOptions2.networkDetailAllowUrls,\n networkDetailDenyUrls = _replay$getOptions2.networkDetailDenyUrls,\n networkCaptureBodies = _replay$getOptions2.networkCaptureBodies,\n networkRequestHeaders = _replay$getOptions2.networkRequestHeaders,\n networkResponseHeaders = _replay$getOptions2.networkResponseHeaders;\n\n var options = {\n replay: replay,\n networkDetailAllowUrls: networkDetailAllowUrls,\n networkDetailDenyUrls: networkDetailDenyUrls,\n networkCaptureBodies: networkCaptureBodies,\n networkRequestHeaders: networkRequestHeaders,\n networkResponseHeaders: networkResponseHeaders\n };\n\n if (client) {\n client.on('beforeAddBreadcrumb', function (breadcrumb, hint) {\n return beforeAddNetworkBreadcrumb(options, breadcrumb, hint);\n });\n }\n } catch (e2) {// Do nothing\n }\n}\n/** just exported for tests */\n\n\nfunction beforeAddNetworkBreadcrumb(options, breadcrumb, hint) {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint); // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint); // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.exception(e, 'Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint) {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint) {\n return hint && hint.response;\n}\n/**\n * Add global listeners that cannot be removed.\n */\n\n\nfunction addGlobalListeners(replay) {\n // Listeners from core SDK //\n var client = getClient();\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleBreadcrumbs(replay);\n handleNetworkBreadcrumbs(replay); // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n\n var eventProcessor = handleGlobalEventListener(replay);\n addEventProcessor(eventProcessor); // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n\n if (client) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', function (dsc) {\n var replayId = replay.getSessionId(); // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n var isSessionActive = replay.checkAndHandleExpiredSession();\n\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n client.on('spanStart', function (span) {\n replay.lastActiveSpan = span;\n }); // We may be missing the initial spanStart due to timing issues,\n // so we capture it on finish again.\n\n client.on('spanEnd', function (span) {\n replay.lastActiveSpan = span;\n }); // We want to flush replay\n\n client.on('beforeSendFeedback', function (feedbackEvent, options) {\n var replayId = replay.getSessionId();\n\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\n\n\nfunction addMemoryEntry(_x20) {\n return _addMemoryEntry.apply(this, arguments);\n}\n\nfunction _addMemoryEntry() {\n _addMemoryEntry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(replay) {\n return _regeneratorRuntime.wrap(function _callee19$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n _context20.prev = 0;\n return _context20.abrupt(\"return\", Promise.all(createPerformanceSpans(replay, [// @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory)])));\n\n case 4:\n _context20.prev = 4;\n _context20.t0 = _context20[\"catch\"](0);\n return _context20.abrupt(\"return\", []);\n\n case 7:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee19, null, [[0, 4]]);\n }));\n return _addMemoryEntry.apply(this, arguments);\n}\n\nfunction createMemoryEntry(memoryEntry) {\n var jsHeapSizeLimit = memoryEntry.jsHeapSizeLimit,\n totalJSHeapSize = memoryEntry.totalJSHeapSize,\n usedJSHeapSize = memoryEntry.usedJSHeapSize; // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n\n var time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit: jsHeapSizeLimit,\n totalJSHeapSize: totalJSHeapSize,\n usedJSHeapSize: usedJSHeapSize\n }\n }\n };\n}\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\n\n\nfunction debounce(func, wait, options) {\n var callbackReturnValue;\n var timerId;\n var maxTimerId;\n var maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers() {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush() {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n\n return callbackReturnValue;\n }\n\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout$3(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout$3(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\n\n\nfunction getHandleRecordingEmit(replay) {\n var hadFirstEvent = false;\n return function (event, _isCheckout) {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('Received replay event after session expired.');\n return;\n } // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n\n\n var isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n } // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n\n\n replay.addUpdate(function () {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n } // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n\n\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n } // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n\n\n if (!isCheckout) {\n return false;\n }\n\n var session = replay.session; // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time. We have an experimental mode\n // to perform multiple checkouts a session (the idea is to improve\n // seeking during playback), so also only include if segmentId is 0\n // (handled in `addSettingsEvent`).\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n\n addSettingsEvent(replay, isCheckout); // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n\n if (replay.recordingMode === 'buffer' && session && replay.eventBuffer) {\n var earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n\n if (earliestEvent) {\n DEBUG_BUILD && logger.info(\"Updating session start time to earliest event in buffer to \".concat(new Date(earliestEvent)));\n session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(session);\n }\n }\n } // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n\n\n if (session && session.previousSessionId) {\n return true;\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n/**\n * Exported for tests\n */\n\n\nfunction createOptionsEvent(replay) {\n var options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0\n }\n }\n };\n}\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\n\n\nfunction addSettingsEvent(replay, isCheckout) {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n/**\n * Reset the `replay_id` field on the DSC.\n */\n\n\nfunction resetReplayIdOnDynamicSamplingContext() {\n // Reset DSC on the current scope, if there is one\n var dsc = getCurrentScope().getPropagationContext().dsc;\n\n if (dsc) {\n delete dsc.replay_id;\n } // Clear it from frozen DSC on the active span\n\n\n var activeSpan = getActiveSpan();\n\n if (activeSpan) {\n var _dsc = getDynamicSamplingContextFromSpan(activeSpan);\n\n delete _dsc.replay_id;\n }\n}\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\n\n\nfunction createReplayEnvelope(replayEvent, recordingData, dsn, tunnel) {\n return createEnvelope(createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn), [[{\n type: 'replay_event'\n }, replayEvent], [{\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length: typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length\n }, recordingData]]);\n}\n/**\n * Prepare the recording data ready to be sent.\n */\n\n\nfunction prepareRecordingData(_ref44) {\n var recordingData = _ref44.recordingData,\n headers = _ref44.headers;\n var payloadWithSequence; // XXX: newline is needed to separate sequence id from events\n\n var replayHeaders = \"\".concat(JSON.stringify(headers), \"\\n\");\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = \"\".concat(replayHeaders).concat(recordingData);\n } else {\n var enc = new TextEncoder(); // XXX: newline is needed to separate sequence id from events\n\n var sequence = enc.encode(replayHeaders); // Merge the two Uint8Arrays\n\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\n\n\nfunction prepareReplayEvent(_x21) {\n return _prepareReplayEvent.apply(this, arguments);\n}\n/**\n * Send replay attachment using `fetch()`\n */\n\n\nfunction _prepareReplayEvent() {\n _prepareReplayEvent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref45) {\n var client, scope, event_id, event, integrations, eventHint, preparedEvent, metadata, _ref55, name, version;\n\n return _regeneratorRuntime.wrap(function _callee20$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n client = _ref45.client, scope = _ref45.scope, event_id = _ref45.replayId, event = _ref45.event;\n integrations = _typeof(client._integrations) === 'object' && client._integrations !== null && !Array.isArray(client._integrations) ? Object.keys(client._integrations) : undefined;\n eventHint = {\n event_id: event_id,\n integrations: integrations\n };\n client.emit('preprocessEvent', event, eventHint);\n _context21.next = 6;\n return prepareEvent(client.getOptions(), event, eventHint, scope, client, getIsolationScope());\n\n case 6:\n preparedEvent = _context21.sent;\n\n if (preparedEvent) {\n _context21.next = 9;\n break;\n }\n\n return _context21.abrupt(\"return\", null);\n\n case 9:\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript'; // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n\n metadata = client.getSdkMetadata();\n _ref55 = metadata && metadata.sdk || {}, name = _ref55.name, version = _ref55.version;\n preparedEvent.sdk = _objectSpread(_objectSpread({}, preparedEvent.sdk), {}, {\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0'\n });\n return _context21.abrupt(\"return\", preparedEvent);\n\n case 14:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee20);\n }));\n return _prepareReplayEvent.apply(this, arguments);\n}\n\nfunction sendReplayRequest(_x22) {\n return _sendReplayRequest.apply(this, arguments);\n}\n/**\n * This error indicates that the transport returned an invalid status code.\n */\n\n\nfunction _sendReplayRequest() {\n _sendReplayRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(_ref46) {\n var recordingData, replayId, segment_id, eventContext, timestamp, session, preparedRecordingData, urls, errorIds, traceIds, initialTimestamp, client, scope, transport, dsn, baseEvent, replayEvent, envelope, response, error, rateLimits;\n return _regeneratorRuntime.wrap(function _callee21$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n recordingData = _ref46.recordingData, replayId = _ref46.replayId, segment_id = _ref46.segmentId, eventContext = _ref46.eventContext, timestamp = _ref46.timestamp, session = _ref46.session;\n preparedRecordingData = prepareRecordingData({\n recordingData: recordingData,\n headers: {\n segment_id: segment_id\n }\n });\n urls = eventContext.urls, errorIds = eventContext.errorIds, traceIds = eventContext.traceIds, initialTimestamp = eventContext.initialTimestamp;\n client = getClient();\n scope = getCurrentScope();\n transport = client && client.getTransport();\n dsn = client && client.getDsn();\n\n if (!(!client || !transport || !dsn || !session.sampled)) {\n _context22.next = 9;\n break;\n }\n\n return _context22.abrupt(\"return\", resolvedSyncPromise({}));\n\n case 9:\n baseEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls: urls,\n replay_id: replayId,\n segment_id: segment_id,\n replay_type: session.sampled\n };\n _context22.next = 12;\n return prepareReplayEvent({\n scope: scope,\n client: client,\n replayId: replayId,\n event: baseEvent\n });\n\n case 12:\n replayEvent = _context22.sent;\n\n if (replayEvent) {\n _context22.next = 17;\n break;\n }\n\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n DEBUG_BUILD && logger.info('An event processor returned `null`, will not send event.');\n return _context22.abrupt(\"return\", resolvedSyncPromise({}));\n\n case 17:\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n _context22.prev = 19;\n _context22.next = 22;\n return transport.send(envelope);\n\n case 22:\n response = _context22.sent;\n _context22.next = 30;\n break;\n\n case 25:\n _context22.prev = 25;\n _context22.t0 = _context22[\"catch\"](19);\n error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = _context22.t0;\n } catch (e) {// nothing to do\n }\n\n throw error;\n\n case 30:\n if (!(typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300))) {\n _context22.next = 32;\n break;\n }\n\n throw new TransportStatusCodeError(response.statusCode);\n\n case 32:\n rateLimits = updateRateLimits({}, response);\n\n if (!isRateLimited(rateLimits, 'replay')) {\n _context22.next = 35;\n break;\n }\n\n throw new RateLimitError(rateLimits);\n\n case 35:\n return _context22.abrupt(\"return\", response);\n\n case 36:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee21, null, [[19, 25]]);\n }));\n return _sendReplayRequest.apply(this, arguments);\n}\n\nvar TransportStatusCodeError = /*#__PURE__*/function (_Error2) {\n _inherits(TransportStatusCodeError, _Error2);\n\n var _super2 = _createSuper(TransportStatusCodeError);\n\n function TransportStatusCodeError(statusCode) {\n _classCallCheck(this, TransportStatusCodeError);\n\n return _super2.call(this, \"Transport returned status code \".concat(statusCode));\n }\n\n return _createClass(TransportStatusCodeError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * This error indicates that we hit a rate limit API error.\n */\n\n\nvar RateLimitError = /*#__PURE__*/function (_Error3) {\n _inherits(RateLimitError, _Error3);\n\n var _super3 = _createSuper(RateLimitError);\n\n function RateLimitError(rateLimits) {\n var _this21;\n\n _classCallCheck(this, RateLimitError);\n\n _this21 = _super3.call(this, 'Rate limit hit');\n _this21.rateLimits = rateLimits;\n return _this21;\n }\n\n return _createClass(RateLimitError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * Finalize and send the current replay event to Sentry\n */\n\n\nfunction sendReplay(_x23) {\n return _sendReplay.apply(this, arguments);\n}\n\nfunction _sendReplay() {\n _sendReplay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(replayData) {\n var retryConfig,\n recordingData,\n onError,\n error,\n _args23 = arguments;\n return _regeneratorRuntime.wrap(function _callee23$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n retryConfig = _args23.length > 1 && _args23[1] !== undefined ? _args23[1] : {\n count: 0,\n interval: RETRY_BASE_INTERVAL\n };\n recordingData = replayData.recordingData, onError = replayData.onError; // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n\n if (recordingData.length) {\n _context24.next = 4;\n break;\n }\n\n return _context24.abrupt(\"return\");\n\n case 4:\n _context24.prev = 4;\n _context24.next = 7;\n return sendReplayRequest(replayData);\n\n case 7:\n return _context24.abrupt(\"return\", true);\n\n case 10:\n _context24.prev = 10;\n _context24.t0 = _context24[\"catch\"](4);\n\n if (!(_context24.t0 instanceof TransportStatusCodeError || _context24.t0 instanceof RateLimitError)) {\n _context24.next = 14;\n break;\n }\n\n throw _context24.t0;\n\n case 14:\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count\n });\n\n if (onError) {\n onError(_context24.t0);\n } // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n\n\n if (!(retryConfig.count >= RETRY_MAX_COUNT)) {\n _context24.next = 20;\n break;\n }\n\n error = new Error(\"\".concat(UNABLE_TO_SEND_REPLAY, \" - max retries exceeded\"));\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = _context24.t0;\n } catch (e) {// nothing to do\n }\n\n throw error;\n\n case 20:\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n return _context24.abrupt(\"return\", new Promise(function (resolve, reject) {\n setTimeout$3( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22() {\n return _regeneratorRuntime.wrap(function _callee22$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n _context23.next = 3;\n return sendReplay(replayData, retryConfig);\n\n case 3:\n resolve(true);\n _context23.next = 9;\n break;\n\n case 6:\n _context23.prev = 6;\n _context23.t0 = _context23[\"catch\"](0);\n reject(_context23.t0);\n\n case 9:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee22, null, [[0, 6]]);\n })), retryConfig.interval);\n }));\n\n case 22:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee23, null, [[4, 10]]);\n }));\n return _sendReplay.apply(this, arguments);\n}\n\nvar THROTTLED = '__THROTTLED';\nvar SKIPPED = '__SKIPPED';\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfunction throttle(fn, maxCount, durationSeconds) {\n var counter = new Map();\n\n var _cleanup = function _cleanup(now) {\n var threshold = now - durationSeconds;\n counter.forEach(function (_value, key) {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n var _getTotalCount = function _getTotalCount() {\n return _toConsumableArray(counter.values()).reduce(function (a, b) {\n return a + b;\n }, 0);\n };\n\n var isThrottled = false;\n return function () {\n // Date in second-precision, which we use as basis for the throttling\n var now = Math.floor(Date.now() / 1000); // First, make sure to delete any old entries\n\n _cleanup(now); // If already over limit, do nothing\n\n\n if (_getTotalCount() >= maxCount) {\n var wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n var count = counter.get(now) || 0;\n counter.set(now, count + 1);\n return fn.apply(void 0, arguments);\n };\n}\n/* eslint-disable max-lines */\n// TODO: We might want to split this file up\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\n\n\nvar ReplayContainer = /*#__PURE__*/function () {\n /**\n * Recording can happen in one of two modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n\n /**\n * The current or last active span.\n * This is only available when performance is enabled.\n */\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n\n /** The replay has to be manually started, because no sample rate (neither session or error) was provided. */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n\n /**\n * Is the integration currently active?\n */\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n\n /**\n * Function to stop recording\n */\n\n /**\n * Internal use for canvas recording options\n */\n function ReplayContainer(_ref47) {\n var _this22 = this;\n\n var options = _ref47.options,\n recordingOptions = _ref47.recordingOptions;\n\n _classCallCheck(this, ReplayContainer);\n\n ReplayContainer.prototype.__init.call(this);\n\n ReplayContainer.prototype.__init2.call(this);\n\n ReplayContainer.prototype.__init3.call(this);\n\n ReplayContainer.prototype.__init4.call(this);\n\n ReplayContainer.prototype.__init5.call(this);\n\n ReplayContainer.prototype.__init6.call(this);\n\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION\n };\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._requiresManualStart = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: ''\n };\n this._recordingOptions = recordingOptions;\n this._options = options;\n this._debouncedFlush = debounce(function () {\n return _this22._flush();\n }, this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay\n });\n this._throttledAddEvent = throttle(function (event, isCheckout) {\n return addEvent(_this22, event, isCheckout);\n }, // Max 300 events...\n 300, // ... per 5s\n 5);\n\n var _this$getOptions = this.getOptions(),\n slowClickTimeout = _this$getOptions.slowClickTimeout,\n slowClickIgnoreSelectors = _this$getOptions.slowClickIgnoreSelectors;\n\n var slowClickConfig = slowClickTimeout ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : ''\n } : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n } // Configure replay logger w/ experimental options\n\n\n if (DEBUG_BUILD) {\n var experiments = options._experiments;\n logger.setConfig({\n captureExceptions: !!experiments.captureExceptions,\n traceInternals: !!experiments.traceInternals\n });\n }\n }\n /** Get the event context. */\n\n\n _createClass(ReplayContainer, [{\n key: \"getContext\",\n value: function getContext() {\n return this._context;\n }\n /** If recording is currently enabled. */\n\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this._isEnabled;\n }\n /** If recording is currently paused. */\n\n }, {\n key: \"isPaused\",\n value: function isPaused() {\n return this._isPaused;\n }\n /**\n * Determine if canvas recording is enabled\n */\n\n }, {\n key: \"isRecordingCanvas\",\n value: function isRecordingCanvas() {\n return Boolean(this._canvas);\n }\n /** Get the replay integration options. */\n\n }, {\n key: \"getOptions\",\n value: function getOptions() {\n return this._options;\n }\n /** A wrapper to conditionally capture exceptions. */\n\n }, {\n key: \"handleException\",\n value: function handleException(error) {\n DEBUG_BUILD && logger.exception(error);\n\n if (this._options.onError) {\n this._options.onError(error);\n }\n }\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n\n }, {\n key: \"initializeSampling\",\n value: function initializeSampling(previousSessionId) {\n var _this$_options = this._options,\n errorSampleRate = _this$_options.errorSampleRate,\n sessionSampleRate = _this$_options.sessionSampleRate; // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n\n var requiresManualStart = errorSampleRate <= 0 && sessionSampleRate <= 0;\n this._requiresManualStart = requiresManualStart;\n\n if (requiresManualStart) {\n return;\n } // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n\n\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n DEBUG_BUILD && logger.exception(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n } // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n\n\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n DEBUG_BUILD && logger.infoTick(\"Starting replay in \".concat(this.recordingMode, \" mode\"));\n\n this._initializeRecording();\n }\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n\n }, {\n key: \"start\",\n value: function start() {\n if (this._isEnabled && this.recordingMode === 'session') {\n DEBUG_BUILD && logger.info('Recording is already in progress');\n return;\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in session mode'); // Required as user activity is initially set in\n // constructor, so if `start()` is called after\n // session idle expiration, a replay will not be\n // created due to an idle timeout.\n\n this._updateUserActivity();\n\n var session = loadOrCreateSession({\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire\n }, {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false\n });\n this.session = session;\n\n this._initializeRecording();\n }\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n\n }, {\n key: \"startBuffering\",\n value: function startBuffering() {\n if (this._isEnabled) {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in buffer mode');\n var session = loadOrCreateSession({\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration\n }, {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true\n });\n this.session = session;\n this.recordingMode = 'buffer';\n\n this._initializeRecording();\n }\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n\n }, {\n key: \"startRecording\",\n value: function startRecording() {\n try {\n var canvasOptions = this._canvas;\n this._stopRecording = record(_objectSpread(_objectSpread(_objectSpread({}, this._recordingOptions), this.recordingMode === 'buffer' ? {\n checkoutEveryNms: BUFFER_CHECKOUT_TIME\n } : // Otherwise, use experimental option w/ min checkout time of 6 minutes\n // This is to improve playback seeking as there could potentially be\n // less mutations to process in the worse cases.\n //\n // checkout by \"N\" events is probably ideal, but means we have less\n // control about the number of checkouts we make (which generally\n // increases replay size)\n this._options._experiments.continuousCheckout && {\n // Minimum checkout time is 6 minutes\n checkoutEveryNms: Math.max(360000, this._options._experiments.continuousCheckout)\n }), {}, {\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler\n }, canvasOptions ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions\n } : {}));\n } catch (err) {\n this.handleException(err);\n }\n }\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n\n }, {\n key: \"stopRecording\",\n value: function stopRecording() {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this.handleException(err);\n return false;\n }\n }\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n\n }, {\n key: \"stop\",\n value: function () {\n var _stop = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n var _ref48,\n _ref48$forceFlush,\n forceFlush,\n reason,\n _args7 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee7$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _ref48 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, _ref48$forceFlush = _ref48.forceFlush, forceFlush = _ref48$forceFlush === void 0 ? false : _ref48$forceFlush, reason = _ref48.reason;\n\n if (this._isEnabled) {\n _context8.next = 3;\n break;\n }\n\n return _context8.abrupt(\"return\");\n\n case 3:\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n _context8.prev = 4;\n DEBUG_BUILD && logger.info(\"Stopping Replay\".concat(reason ? \" triggered by \".concat(reason) : ''));\n resetReplayIdOnDynamicSamplingContext();\n\n this._removeListeners();\n\n this.stopRecording();\n\n this._debouncedFlush.cancel(); // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n\n\n if (!forceFlush) {\n _context8.next = 13;\n break;\n }\n\n _context8.next = 13;\n return this._flush({\n force: true\n });\n\n case 13:\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null; // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n\n clearSession(this);\n _context8.next = 21;\n break;\n\n case 18:\n _context8.prev = 18;\n _context8.t0 = _context8[\"catch\"](4);\n this.handleException(_context8.t0);\n\n case 21:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee7, this, [[4, 18]]);\n }));\n\n function stop() {\n return _stop.apply(this, arguments);\n }\n\n return stop;\n }()\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n DEBUG_BUILD && logger.info('Pausing replay');\n }\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n\n }, {\n key: \"resume\",\n value: function resume() {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n DEBUG_BUILD && logger.info('Resuming replay');\n }\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n\n }, {\n key: \"sendBufferedReplayOrFlush\",\n value: function () {\n var _sendBufferedReplayOrFlush = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {\n var _ref49,\n _ref49$continueRecord,\n continueRecording,\n activityTime,\n hasStoppedRecording,\n _args8 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee8$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _ref49 = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {}, _ref49$continueRecord = _ref49.continueRecording, continueRecording = _ref49$continueRecord === void 0 ? true : _ref49$continueRecord;\n\n if (!(this.recordingMode === 'session')) {\n _context9.next = 3;\n break;\n }\n\n return _context9.abrupt(\"return\", this.flushImmediate());\n\n case 3:\n activityTime = Date.now();\n DEBUG_BUILD && logger.info('Converting buffer to session'); // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n\n _context9.next = 7;\n return this.flushImmediate();\n\n case 7:\n hasStoppedRecording = this.stopRecording();\n\n if (!(!continueRecording || !hasStoppedRecording)) {\n _context9.next = 10;\n break;\n }\n\n return _context9.abrupt(\"return\");\n\n case 10:\n if (!(this.recordingMode === 'session')) {\n _context9.next = 12;\n break;\n }\n\n return _context9.abrupt(\"return\");\n\n case 12:\n // Re-start recording in session-mode\n this.recordingMode = 'session'; // Once this session ends, we do not want to refresh it\n\n if (this.session) {\n this._updateUserActivity(activityTime);\n\n this._updateSessionActivity(activityTime);\n\n this._maybeSaveSession();\n }\n\n this.startRecording();\n\n case 15:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function sendBufferedReplayOrFlush() {\n return _sendBufferedReplayOrFlush.apply(this, arguments);\n }\n\n return sendBufferedReplayOrFlush;\n }()\n /**\n * We want to batch uploads of replay events. Save events only if\n * `` milliseconds have elapsed since the last event\n * *OR* if `` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n\n }, {\n key: \"addUpdate\",\n value: function addUpdate(cb) {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n var cbResult = cb(); // If this option is turned on then we will only want to call `flush`\n // explicitly\n\n if (this.recordingMode === 'buffer') {\n return;\n } // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n\n\n if (cbResult === true) {\n return;\n } // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n\n\n this._debouncedFlush();\n }\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n\n }, {\n key: \"triggerUserActivity\",\n value: function triggerUserActivity() {\n this._updateUserActivity(); // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n\n\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n } // Note: This will cause a new DOM checkout\n\n\n this.resume();\n return;\n } // Otherwise... recording was never suspended, continue as normalish\n\n\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n\n }, {\n key: \"updateUserActivity\",\n value: function updateUserActivity() {\n this._updateUserActivity();\n\n this._updateSessionActivity();\n }\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n\n }, {\n key: \"conditionalFlush\",\n value: function conditionalFlush() {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n /**\n * Flush using debounce flush\n */\n\n }, {\n key: \"flush\",\n value: function flush() {\n return this._debouncedFlush();\n }\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of multiple flushes happening closely together.\n */\n\n }, {\n key: \"flushImmediate\",\n value: function flushImmediate() {\n this._debouncedFlush(); // `.flush` is provided by the debounced function, analogously to lodash.debounce\n\n\n return this._debouncedFlush.flush();\n }\n /**\n * Cancels queued up flushes.\n */\n\n }, {\n key: \"cancelFlush\",\n value: function cancelFlush() {\n this._debouncedFlush.cancel();\n }\n /** Get the current session (=replay) ID */\n\n }, {\n key: \"getSessionId\",\n value: function getSessionId() {\n return this.session && this.session.id;\n }\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n\n }, {\n key: \"checkAndHandleExpiredSession\",\n value: function checkAndHandleExpiredSession() {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (this._lastActivity && isExpired(this._lastActivity, this.timeouts.sessionIdlePause) && this.session && this.session.sampled === 'session') {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n } // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n\n\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n\n }, {\n key: \"setInitialState\",\n value: function setInitialState() {\n var urlPath = \"\".concat(WINDOW.location.pathname).concat(WINDOW.location.hash).concat(WINDOW.location.search);\n var url = \"\".concat(WINDOW.location.origin).concat(urlPath);\n this.performanceEntries = [];\n this.replayPerformanceEntries = []; // Reset _context as well\n\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n\n this._context.urls.push(url);\n }\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n\n }, {\n key: \"throttledAddEvent\",\n value: function throttledAddEvent(event, isCheckout) {\n var _this23 = this;\n\n var res = this._throttledAddEvent(event, isCheckout); // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n\n\n if (res === THROTTLED) {\n var breadcrumb = createBreadcrumb({\n category: 'replay.throttled'\n });\n this.addUpdate(function () {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(_this23, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true\n }\n });\n });\n }\n\n return res;\n }\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n\n }, {\n key: \"getCurrentRoute\",\n value: function getCurrentRoute() {\n var lastActiveSpan = this.lastActiveSpan || getActiveSpan();\n var lastRootSpan = lastActiveSpan && getRootSpan(lastActiveSpan);\n var attributes = lastRootSpan && spanToJSON(lastRootSpan).data || {};\n var source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n if (!lastRootSpan || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastRootSpan).description;\n }\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n\n }, {\n key: \"_initializeRecording\",\n value: function _initializeRecording() {\n this.setInitialState(); // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl\n });\n\n this._removeListeners();\n\n this._addListeners(); // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n\n\n this._isEnabled = true;\n this._isPaused = false;\n this.startRecording();\n }\n /**\n * Loads (or refreshes) the current session.\n */\n\n }, {\n key: \"_initializeSessionForSampling\",\n value: function _initializeSessionForSampling(previousSessionId) {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n var allowBuffering = this._options.errorSampleRate > 0;\n var session = loadOrCreateSession({\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n previousSessionId: previousSessionId\n }, {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering: allowBuffering\n });\n this.session = session;\n }\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n\n }, {\n key: \"_checkSession\",\n value: function _checkSession() {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n var currentSession = this.session;\n\n if (shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration\n })) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n\n return false;\n }\n\n return true;\n }\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n\n }, {\n key: \"_refreshSession\",\n value: function () {\n var _refreshSession2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(session) {\n return _regeneratorRuntime.wrap(function _callee9$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n if (this._isEnabled) {\n _context10.next = 2;\n break;\n }\n\n return _context10.abrupt(\"return\");\n\n case 2:\n _context10.next = 4;\n return this.stop({\n reason: 'refresh session'\n });\n\n case 4:\n this.initializeSampling(session.id);\n\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function _refreshSession(_x24) {\n return _refreshSession2.apply(this, arguments);\n }\n\n return _refreshSession;\n }()\n /**\n * Adds listeners to record events for the replay\n */\n\n }, {\n key: \"_addListeners\",\n value: function _addListeners() {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n } // There is no way to remove these listeners, so ensure they are only added once\n\n\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this.handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n\n }, {\n key: \"_removeListeners\",\n value: function _removeListeners() {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this.handleException(err);\n }\n }\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n\n }, {\n key: \"__init\",\n value: function __init() {\n var _this24 = this;\n\n this._handleVisibilityChange = function () {\n if (WINDOW.document.visibilityState === 'visible') {\n _this24._doChangeToForegroundTasks();\n } else {\n _this24._doChangeToBackgroundTasks();\n }\n };\n }\n /**\n * Handle when page is blurred\n */\n\n }, {\n key: \"__init2\",\n value: function __init2() {\n var _this25 = this;\n\n this._handleWindowBlur = function () {\n var breadcrumb = createBreadcrumb({\n category: 'ui.blur'\n }); // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n\n _this25._doChangeToBackgroundTasks(breadcrumb);\n };\n }\n /**\n * Handle when page is focused\n */\n\n }, {\n key: \"__init3\",\n value: function __init3() {\n var _this26 = this;\n\n this._handleWindowFocus = function () {\n var breadcrumb = createBreadcrumb({\n category: 'ui.focus'\n }); // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n\n _this26._doChangeToForegroundTasks(breadcrumb);\n };\n }\n /** Ensure page remains active when a key is pressed. */\n\n }, {\n key: \"__init4\",\n value: function __init4() {\n var _this27 = this;\n\n this._handleKeyboardEvent = function (event) {\n handleKeyboardEvent(_this27, event);\n };\n }\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n\n }, {\n key: \"_doChangeToBackgroundTasks\",\n value: function _doChangeToBackgroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n var expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n } // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n void this.conditionalFlush();\n }\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n\n }, {\n key: \"_doChangeToForegroundTasks\",\n value: function _doChangeToForegroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n var isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n DEBUG_BUILD && logger.info('Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n /**\n * Update user activity (across session lifespans)\n */\n\n }, {\n key: \"_updateUserActivity\",\n value: function _updateUserActivity() {\n var _lastActivity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n\n this._lastActivity = _lastActivity;\n }\n /**\n * Updates the session's last activity timestamp\n */\n\n }, {\n key: \"_updateSessionActivity\",\n value: function _updateSessionActivity() {\n var _lastActivity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n\n this._maybeSaveSession();\n }\n }\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n\n }, {\n key: \"_createCustomBreadcrumb\",\n value: function _createCustomBreadcrumb(breadcrumb) {\n var _this28 = this;\n\n this.addUpdate(function () {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this28.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb\n }\n });\n });\n }\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n\n }, {\n key: \"_addPerformanceEntries\",\n value: function _addPerformanceEntries() {\n var performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n this.performanceEntries = [];\n this.replayPerformanceEntries = []; // If we are manually starting, we want to ensure we only include performance entries\n // that are after the initial timestamp\n // The reason for this is that we may have performance entries from the page load, but may decide to start\n // the replay later on, in which case we do not want to include these entries.\n // without this, manually started replays can have events long before the actual replay recording starts,\n // which messes with the timeline etc.\n\n if (this._requiresManualStart) {\n var initialTimestampInSeconds = this._context.initialTimestamp / 1000;\n performanceEntries = performanceEntries.filter(function (entry) {\n return entry.start >= initialTimestampInSeconds;\n });\n }\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n /**\n * Clear _context\n */\n\n }, {\n key: \"_clearContext\",\n value: function _clearContext() {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n\n this._context.traceIds.clear();\n\n this._context.urls = [];\n }\n /** Update the initial timestamp based on the buffer content. */\n\n }, {\n key: \"_updateInitialTimestampFromEventBuffer\",\n value: function _updateInitialTimestampFromEventBuffer() {\n var session = this.session,\n eventBuffer = this.eventBuffer; // If replay was started manually (=no sample rate was given),\n // We do not want to back-port the initial timestamp\n\n if (!session || !eventBuffer || this._requiresManualStart) {\n return;\n } // we only ever update this on the initial segment\n\n\n if (session.segmentId) {\n return;\n }\n\n var earliestEvent = eventBuffer.getEarliestTimestamp();\n\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n /**\n * Return and clear _context\n */\n\n }, {\n key: \"_popEventContext\",\n value: function _popEventContext() {\n var _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls\n };\n\n this._clearContext();\n\n return _context;\n }\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n\n }, {\n key: \"_runFlush\",\n value: function () {\n var _runFlush2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10() {\n var _this29 = this;\n\n var replayId, timestamp, eventContext, segmentId, recordingData, client, dropReason;\n return _regeneratorRuntime.wrap(function _callee10$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n replayId = this.getSessionId();\n\n if (!(!this.session || !this.eventBuffer || !replayId)) {\n _context11.next = 4;\n break;\n }\n\n DEBUG_BUILD && logger.error('No session or eventBuffer found to flush.');\n return _context11.abrupt(\"return\");\n\n case 4:\n _context11.next = 6;\n return this._addPerformanceEntries();\n\n case 6:\n if (!(!this.eventBuffer || !this.eventBuffer.hasEvents)) {\n _context11.next = 8;\n break;\n }\n\n return _context11.abrupt(\"return\");\n\n case 8:\n _context11.next = 10;\n return addMemoryEntry(this);\n\n case 10:\n if (this.eventBuffer) {\n _context11.next = 12;\n break;\n }\n\n return _context11.abrupt(\"return\");\n\n case 12:\n if (!(replayId !== this.getSessionId())) {\n _context11.next = 14;\n break;\n }\n\n return _context11.abrupt(\"return\");\n\n case 14:\n _context11.prev = 14;\n\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n timestamp = Date.now(); // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accommodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n\n if (!(timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30000)) {\n _context11.next = 19;\n break;\n }\n\n throw new Error('Session is too long, not sending replay');\n\n case 19:\n eventContext = this._popEventContext(); // Always increment segmentId regardless of outcome of sending replay\n\n segmentId = this.session.segmentId++;\n\n this._maybeSaveSession(); // Note this empties the event buffer regardless of outcome of sending replay\n\n\n _context11.next = 24;\n return this.eventBuffer.finish();\n\n case 24:\n recordingData = _context11.sent;\n _context11.next = 27;\n return sendReplay({\n replayId: replayId,\n recordingData: recordingData,\n segmentId: segmentId,\n eventContext: eventContext,\n session: this.session,\n timestamp: timestamp,\n onError: function onError(err) {\n return _this29.handleException(err);\n }\n });\n\n case 27:\n _context11.next = 35;\n break;\n\n case 29:\n _context11.prev = 29;\n _context11.t0 = _context11[\"catch\"](14);\n this.handleException(_context11.t0); // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n this.stop({\n reason: 'sendReplay'\n });\n client = getClient();\n\n if (client) {\n dropReason = _context11.t0 instanceof RateLimitError ? 'ratelimit_backoff' : 'send_error';\n client.recordDroppedEvent(dropReason, 'replay');\n }\n\n case 35:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee10, this, [[14, 29]]);\n }));\n\n function _runFlush() {\n return _runFlush2.apply(this, arguments);\n }\n\n return _runFlush;\n }()\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n\n }, {\n key: \"__init5\",\n value: function __init5() {\n var _this30 = this;\n\n this._flush = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11() {\n var _ref51,\n _ref51$force,\n force,\n start,\n now,\n duration,\n tooShort,\n tooLong,\n eventBuffer,\n _flushInProgress,\n _args11 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee11$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _ref51 = _args11.length > 0 && _args11[0] !== undefined ? _args11[0] : {}, _ref51$force = _ref51.force, force = _ref51$force === void 0 ? false : _ref51$force;\n\n if (!(!_this30._isEnabled && !force)) {\n _context12.next = 3;\n break;\n }\n\n return _context12.abrupt(\"return\");\n\n case 3:\n if (_this30.checkAndHandleExpiredSession()) {\n _context12.next = 6;\n break;\n }\n\n DEBUG_BUILD && logger.error('Attempting to finish replay event after session expired.');\n return _context12.abrupt(\"return\");\n\n case 6:\n if (_this30.session) {\n _context12.next = 8;\n break;\n }\n\n return _context12.abrupt(\"return\");\n\n case 8:\n start = _this30.session.started;\n now = Date.now();\n duration = now - start; // A flush is about to happen, cancel any queued flushes\n\n _this30._debouncedFlush.cancel(); // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n\n\n tooShort = duration < _this30._options.minReplayDuration;\n tooLong = duration > _this30._options.maxReplayDuration + 5000;\n\n if (!(tooShort || tooLong)) {\n _context12.next = 18;\n break;\n }\n\n DEBUG_BUILD && logger.info(\"Session duration (\".concat(Math.floor(duration / 1000), \"s) is too \").concat(tooShort ? 'short' : 'long', \", not sending replay.\"));\n\n if (tooShort) {\n _this30._debouncedFlush();\n }\n\n return _context12.abrupt(\"return\");\n\n case 18:\n eventBuffer = _this30.eventBuffer;\n\n if (eventBuffer && _this30.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n DEBUG_BUILD && logger.info('Flushing initial segment without checkout.'); // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n _flushInProgress = !!_this30._flushLock; // this._flushLock acts as a lock so that future calls to `_flush()` will\n // be blocked until current flush is finished (i.e. this promise resolves)\n\n if (!_this30._flushLock) {\n _this30._flushLock = _this30._runFlush();\n }\n\n _context12.prev = 22;\n _context12.next = 25;\n return _this30._flushLock;\n\n case 25:\n _context12.next = 30;\n break;\n\n case 27:\n _context12.prev = 27;\n _context12.t0 = _context12[\"catch\"](22);\n\n _this30.handleException(_context12.t0);\n\n case 30:\n _context12.prev = 30;\n _this30._flushLock = undefined;\n\n if (_flushInProgress) {\n // Wait for previous flush to finish, then call the debounced\n // `_flush()`. It's possible there are other flush requests queued and\n // waiting for it to resolve. We want to reduce all outstanding\n // requests (as well as any new flush requests that occur within a\n // second of the locked flush completing) into a single flush.\n _this30._debouncedFlush();\n }\n\n return _context12.finish(30);\n\n case 34:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee11, null, [[22, 27, 30, 34]]);\n }));\n }\n /** Save the session, if it is sticky */\n\n }, {\n key: \"_maybeSaveSession\",\n value: function _maybeSaveSession() {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n /** Handler for rrweb.record.onMutation */\n\n }, {\n key: \"__init6\",\n value: function __init6() {\n var _this31 = this;\n\n this._onMutationHandler = function (mutations) {\n var count = mutations.length;\n var mutationLimit = _this31._options.mutationLimit;\n var mutationBreadcrumbLimit = _this31._options.mutationBreadcrumbLimit;\n var overMutationLimit = mutationLimit && count > mutationLimit; // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n var breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count: count,\n limit: overMutationLimit\n }\n });\n\n _this31._createCustomBreadcrumb(breadcrumb);\n } // Stop replay if over the mutation limit\n\n\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this31.stop({\n reason: 'mutationLimit',\n forceFlush: _this31.recordingMode === 'session'\n });\n\n return false;\n } // `true` means we use the regular mutation handling by rrweb\n\n\n return true;\n };\n }\n }]);\n\n return ReplayContainer;\n}();\n\nfunction getOption(selectors, defaultSelectors) {\n return [].concat(_toConsumableArray(selectors), _toConsumableArray(defaultSelectors)).join(',');\n}\n/**\n * Returns privacy related configuration for use in rrweb\n */\n\n\nfunction getPrivacyOptions(_ref52) {\n var mask = _ref52.mask,\n unmask = _ref52.unmask,\n block = _ref52.block,\n unblock = _ref52.unblock,\n ignore = _ref52.ignore;\n var defaultBlockedElements = ['base[href=\"/\"]'];\n var maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]']);\n var unmaskSelector = getOption(unmask, []);\n var options = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n blockSelector: getOption(block, ['.sentry-block', '[data-sentry-block]'].concat(defaultBlockedElements)),\n unblockSelector: getOption(unblock, []),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]'])\n };\n return options;\n}\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\n\n\nfunction maskAttribute(_ref53) {\n var el = _ref53.el,\n key = _ref53.key,\n maskAttributes = _ref53.maskAttributes,\n maskAllText = _ref53.maskAllText,\n privacyOptions = _ref53.privacyOptions,\n value = _ref53.value;\n\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n } // unmaskTextSelector takes precedence\n\n\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (maskAttributes.includes(key) || // Need to mask `value` attribute for `` if it's a button-like\n // type\n key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || '')) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n\nvar MEDIA_SELECTORS = 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\nvar DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\nvar _initialized = false;\n/**\n * Sentry integration for [Session Replay](https://sentry.io/for/session-replay/).\n *\n * See the [Replay documentation](https://docs.sentry.io/platforms/javascript/guides/session-replay/) for more information.\n *\n * @example\n *\n * ```\n * Sentry.init({\n * dsn: '__DSN__',\n * integrations: [Sentry.replayIntegration()],\n * });\n * ```\n */\n\nvar replayIntegration = function replayIntegration(options) {\n return new Replay(options);\n};\n/**\n * Replay integration\n *\n * TODO: Rewrite this to be functional integration\n * Exported for tests.\n */\n\n\nvar Replay = /*#__PURE__*/function () {\n /**\n * @inheritDoc\n */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n function Replay() {\n var _ref54 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref54$flushMinDelay = _ref54.flushMinDelay,\n flushMinDelay = _ref54$flushMinDelay === void 0 ? DEFAULT_FLUSH_MIN_DELAY : _ref54$flushMinDelay,\n _ref54$flushMaxDelay = _ref54.flushMaxDelay,\n flushMaxDelay = _ref54$flushMaxDelay === void 0 ? DEFAULT_FLUSH_MAX_DELAY : _ref54$flushMaxDelay,\n _ref54$minReplayDurat = _ref54.minReplayDuration,\n minReplayDuration = _ref54$minReplayDurat === void 0 ? MIN_REPLAY_DURATION : _ref54$minReplayDurat,\n _ref54$maxReplayDurat = _ref54.maxReplayDuration,\n maxReplayDuration = _ref54$maxReplayDurat === void 0 ? MAX_REPLAY_DURATION : _ref54$maxReplayDurat,\n _ref54$stickySession = _ref54.stickySession,\n stickySession = _ref54$stickySession === void 0 ? true : _ref54$stickySession,\n _ref54$useCompression = _ref54.useCompression,\n useCompression = _ref54$useCompression === void 0 ? true : _ref54$useCompression,\n workerUrl = _ref54.workerUrl,\n _ref54$_experiments = _ref54._experiments,\n _experiments = _ref54$_experiments === void 0 ? {} : _ref54$_experiments,\n _ref54$maskAllText = _ref54.maskAllText,\n maskAllText = _ref54$maskAllText === void 0 ? true : _ref54$maskAllText,\n _ref54$maskAllInputs = _ref54.maskAllInputs,\n maskAllInputs = _ref54$maskAllInputs === void 0 ? true : _ref54$maskAllInputs,\n _ref54$blockAllMedia = _ref54.blockAllMedia,\n blockAllMedia = _ref54$blockAllMedia === void 0 ? true : _ref54$blockAllMedia,\n _ref54$mutationBreadc = _ref54.mutationBreadcrumbLimit,\n mutationBreadcrumbLimit = _ref54$mutationBreadc === void 0 ? 750 : _ref54$mutationBreadc,\n _ref54$mutationLimit = _ref54.mutationLimit,\n mutationLimit = _ref54$mutationLimit === void 0 ? 10000 : _ref54$mutationLimit,\n _ref54$slowClickTimeo = _ref54.slowClickTimeout,\n slowClickTimeout = _ref54$slowClickTimeo === void 0 ? 7000 : _ref54$slowClickTimeo,\n _ref54$slowClickIgnor = _ref54.slowClickIgnoreSelectors,\n slowClickIgnoreSelectors = _ref54$slowClickIgnor === void 0 ? [] : _ref54$slowClickIgnor,\n _ref54$networkDetailA = _ref54.networkDetailAllowUrls,\n networkDetailAllowUrls = _ref54$networkDetailA === void 0 ? [] : _ref54$networkDetailA,\n _ref54$networkDetailD = _ref54.networkDetailDenyUrls,\n networkDetailDenyUrls = _ref54$networkDetailD === void 0 ? [] : _ref54$networkDetailD,\n _ref54$networkCapture = _ref54.networkCaptureBodies,\n networkCaptureBodies = _ref54$networkCapture === void 0 ? true : _ref54$networkCapture,\n _ref54$networkRequest = _ref54.networkRequestHeaders,\n networkRequestHeaders = _ref54$networkRequest === void 0 ? [] : _ref54$networkRequest,\n _ref54$networkRespons = _ref54.networkResponseHeaders,\n networkResponseHeaders = _ref54$networkRespons === void 0 ? [] : _ref54$networkRespons,\n _ref54$mask = _ref54.mask,\n mask = _ref54$mask === void 0 ? [] : _ref54$mask,\n _ref54$maskAttributes = _ref54.maskAttributes,\n maskAttributes = _ref54$maskAttributes === void 0 ? ['title', 'placeholder'] : _ref54$maskAttributes,\n _ref54$unmask = _ref54.unmask,\n unmask = _ref54$unmask === void 0 ? [] : _ref54$unmask,\n _ref54$block = _ref54.block,\n block = _ref54$block === void 0 ? [] : _ref54$block,\n _ref54$unblock = _ref54.unblock,\n unblock = _ref54$unblock === void 0 ? [] : _ref54$unblock,\n _ref54$ignore = _ref54.ignore,\n ignore = _ref54$ignore === void 0 ? [] : _ref54$ignore,\n maskFn = _ref54.maskFn,\n beforeAddRecordingEvent = _ref54.beforeAddRecordingEvent,\n beforeErrorSampling = _ref54.beforeErrorSampling,\n onError = _ref54.onError;\n\n _classCallCheck(this, Replay);\n\n this.name = Replay.id;\n var privacyOptions = getPrivacyOptions({\n mask: mask,\n unmask: unmask,\n block: block,\n unblock: unblock,\n ignore: ignore\n });\n this._recordingOptions = _objectSpread(_objectSpread({\n maskAllInputs: maskAllInputs,\n maskAllText: maskAllText,\n maskInputOptions: {\n password: true\n },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: function maskAttributeFn(key, value, el) {\n return maskAttribute({\n maskAttributes: maskAttributes,\n maskAllText: maskAllText,\n privacyOptions: privacyOptions,\n key: key,\n value: value,\n el: el\n });\n }\n }, privacyOptions), {}, {\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: function errorHandler(err) {\n try {\n err.__rrweb__ = true;\n } catch (error) {// ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n }\n });\n this._initialOptions = {\n flushMinDelay: flushMinDelay,\n flushMaxDelay: flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession: stickySession,\n useCompression: useCompression,\n workerUrl: workerUrl,\n blockAllMedia: blockAllMedia,\n maskAllInputs: maskAllInputs,\n maskAllText: maskAllText,\n mutationBreadcrumbLimit: mutationBreadcrumbLimit,\n mutationLimit: mutationLimit,\n slowClickTimeout: slowClickTimeout,\n slowClickIgnoreSelectors: slowClickIgnoreSelectors,\n networkDetailAllowUrls: networkDetailAllowUrls,\n networkDetailDenyUrls: networkDetailDenyUrls,\n networkCaptureBodies: networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent: beforeAddRecordingEvent,\n beforeErrorSampling: beforeErrorSampling,\n onError: onError,\n _experiments: _experiments\n };\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector ? MEDIA_SELECTORS : \"\".concat(this._recordingOptions.blockSelector, \",\").concat(MEDIA_SELECTORS);\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n /** If replay has already been initialized */\n\n\n _createClass(Replay, [{\n key: \"_isInitialized\",\n get: function get() {\n return _initialized;\n }\n /** Update _isInitialized */\n ,\n set: function set(value) {\n _initialized = value;\n }\n /**\n * Setup and initialize replay container\n */\n\n }, {\n key: \"afterAllSetup\",\n value: function afterAllSetup(client) {\n if (!isBrowser() || this._replay) {\n return;\n }\n\n this._setup(client);\n\n this._initialize(client);\n }\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n\n }, {\n key: \"start\",\n value: function start() {\n if (!this._replay) {\n return;\n }\n\n this._replay.start();\n }\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n\n }, {\n key: \"startBuffering\",\n value: function startBuffering() {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n\n }, {\n key: \"stop\",\n value: function stop() {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({\n forceFlush: this._replay.recordingMode === 'session'\n });\n }\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * If replay is not enabled, a new session replay is started.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n\n }, {\n key: \"flush\",\n value: function flush(options) {\n if (!this._replay) {\n return Promise.resolve();\n } // assuming a session should be recorded in this case\n\n\n if (!this._replay.isEnabled()) {\n this._replay.start();\n\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n /**\n * Get the current session ID.\n */\n\n }, {\n key: \"getReplayId\",\n value: function getReplayId() {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n /**\n * Get the current recording mode. This can be either `session` or `buffer`.\n *\n * `session`: Recording the whole session, sending it continuously\n * `buffer`: Always keeping the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n\n }, {\n key: \"getRecordingMode\",\n value: function getRecordingMode() {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.recordingMode;\n }\n /**\n * Initializes replay.\n */\n\n }, {\n key: \"_initialize\",\n value: function _initialize(client) {\n if (!this._replay) {\n return;\n }\n\n this._maybeLoadFromReplayCanvasIntegration(client);\n\n this._replay.initializeSampling();\n }\n /** Setup the integration. */\n\n }, {\n key: \"_setup\",\n value: function _setup(client) {\n // Client is not available in constructor, so we need to wait until setupOnce\n var finalOptions = loadReplayOptionsFromClient(this._initialOptions, client);\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions\n });\n }\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n\n }, {\n key: \"_maybeLoadFromReplayCanvasIntegration\",\n value: function _maybeLoadFromReplayCanvasIntegration(client) {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n var canvasIntegration = client.getIntegrationByName('ReplayCanvas');\n\n if (!canvasIntegration) {\n return;\n }\n\n this._replay['_canvas'] = canvasIntegration.getOptions();\n } catch (e) {// ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n\n }\n }], [{\n key: \"__initStatic\",\n value:\n /**\n * @inheritDoc\n */\n function __initStatic() {\n this.id = 'Replay';\n }\n }]);\n\n return Replay;\n}();\n\nReplay.__initStatic();\n/** Parse Replay-related options from SDK options */\n\n\nfunction loadReplayOptionsFromClient(initialOptions, client) {\n var opt = client.getOptions();\n\n var finalOptions = _objectSpread({\n sessionSampleRate: 0,\n errorSampleRate: 0\n }, dropUndefinedKeys(initialOptions));\n\n var replaysSessionSampleRate = parseSampleRate(opt.replaysSessionSampleRate);\n var replaysOnErrorSampleRate = parseSampleRate(opt.replaysOnErrorSampleRate);\n\n if (replaysSessionSampleRate == null && replaysOnErrorSampleRate == null) {\n consoleSandbox(function () {\n // eslint-disable-next-line no-console\n console.warn('Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.');\n });\n }\n\n if (replaysSessionSampleRate != null) {\n finalOptions.sessionSampleRate = replaysSessionSampleRate;\n }\n\n if (replaysOnErrorSampleRate != null) {\n finalOptions.errorSampleRate = replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers) {\n return [].concat(DEFAULT_NETWORK_HEADERS, _toConsumableArray(headers.map(function (header) {\n return header.toLowerCase();\n })));\n}\n/**\n * This is a small utility to get a type-safe instance of the Replay integration.\n */\n\n\nfunction getReplay() {\n var client = getClient();\n return client && client.getIntegrationByName('Replay');\n}\n\nexport { getReplay, replayIntegration };","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nfunction _nullishCoalesce(lhs, rhsFn) {\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n return lhs != null ? lhs : rhsFn();\n} // Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n// if (lhs != null) {\n// return lhs;\n// } else {\n// return rhsFn();\n// }\n// }\n\n\nexport { _nullishCoalesce };","var _excluded = [\"type\"];\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { _optionalChain } from '@sentry/utils';\nimport { defineIntegration } from '@sentry/core';\nvar NodeType;\n\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\n\nfunction elementClassMatchesRegex(el, regex) {\n for (var eIndex = el.classList.length; eIndex--;) {\n var className = el.classList[eIndex];\n\n if (regex.test(className)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction distanceToMatch(node, matchPredicate) {\n var limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;\n var distance = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n if (!node) return -1;\n if (node.nodeType !== node.ELEMENT_NODE) return -1;\n if (distance > limit) return -1;\n if (matchPredicate(node)) return distance;\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\n}\n\nfunction createMatchPredicate(className, selector) {\n return function (node) {\n var el = node;\n if (el === null) return false;\n\n try {\n if (className) {\n if (typeof className === 'string') {\n if (el.matches(\".\".concat(className))) return true;\n } else if (elementClassMatchesRegex(el, className)) {\n return true;\n }\n }\n\n if (selector && el.matches(selector)) return true;\n return false;\n } catch (e2) {\n return false;\n }\n };\n}\n\nvar DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' + '\\r\\n' + 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' + '\\r\\n' + 'or you can use record.mirror to access the mirror instance during recording.';\nvar _mirror = {\n map: {},\n getId: function getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode: function getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap: function removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has: function has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset: function reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\n\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get: function get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n\n return Reflect.get(target, prop, receiver);\n }\n });\n}\n\nfunction hookSetter(target, key, d, isRevoked) {\n var win = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : window;\n var original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked ? d : {\n set: function set(value) {\n var _this = this;\n\n setTimeout(function () {\n d.set.call(_this, value);\n }, 0);\n\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n });\n return function () {\n return hookSetter(target, key, original || {}, true);\n };\n}\n\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return function () {};\n }\n\n var original = source[name];\n var wrapped = replacement(original);\n\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n\n source[name] = wrapped;\n return function () {\n source[name] = original;\n };\n } catch (e2) {\n return function () {};\n }\n}\n\nif (!/[1-9][0-9]{12}/.test(Date.now().toString())) ;\n\nfunction closestElementOfNode(node) {\n if (!node) {\n return null;\n }\n\n var el = node.nodeType === node.ELEMENT_NODE ? node : node.parentElement;\n return el;\n}\n\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\n if (!node) {\n return false;\n }\n\n var el = closestElementOfNode(node);\n\n if (!el) {\n return false;\n }\n\n var blockedPredicate = createMatchPredicate(blockClass, blockSelector);\n var blockDistance = distanceToMatch(el, blockedPredicate);\n var unblockDistance = -1;\n\n if (blockDistance < 0) {\n return false;\n }\n\n if (unblockSelector) {\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\n }\n\n if (blockDistance > -1 && unblockDistance < 0) {\n return true;\n }\n\n return blockDistance < unblockDistance;\n}\n\nvar cachedImplementations = {};\n\nfunction getImplementation(name) {\n var cached = cachedImplementations[name];\n\n if (cached) {\n return cached;\n }\n\n var document = window.document;\n var impl = window[name];\n\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n\n if (contentWindow && contentWindow[name]) {\n impl = contentWindow[name];\n }\n\n document.head.removeChild(sandbox);\n } catch (e) {}\n }\n\n return cachedImplementations[name] = impl.bind(window);\n}\n\nfunction onRequestAnimationFrame() {\n return getImplementation('requestAnimationFrame').apply(void 0, arguments);\n}\n\nfunction setTimeout() {\n return getImplementation('setTimeout').apply(void 0, arguments);\n}\n\nvar CanvasContext = /* @__PURE__ */function (CanvasContext2) {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n}(CanvasContext || {});\n\nvar errorHandler;\n\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\n\nvar callbackWrapper = function callbackWrapper(cb) {\n if (!errorHandler) {\n return cb;\n }\n\n var rrwebWrapped = function rrwebWrapped() {\n try {\n return cb.apply(void 0, arguments);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return function () {};\n }\n\n throw error;\n }\n };\n\n return rrwebWrapped;\n};\n/*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\n\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; // Use a lookup table to find the index.\n\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nvar encode = function encode(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64 += chars[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nvar canvasVarMap = new Map();\n\nfunction variableListFor(ctx, ctor) {\n var contextMap = canvasVarMap.get(ctx);\n\n if (!contextMap) {\n contextMap = new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n\n return contextMap.get(ctor);\n}\n\nvar saveWebGLVar = function saveWebGLVar(value, win, ctx) {\n if (!value || !(isInstanceOfWebGLObject(value, win) || _typeof(value) === 'object')) return;\n var name = value.constructor.name;\n var list = variableListFor(ctx, name);\n var index = list.indexOf(value);\n\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n\n return index;\n};\n\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map(function (arg) {\n return serializeArg(arg, win, ctx);\n });\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n var name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (value instanceof ArrayBuffer) {\n var _name = value.constructor.name;\n var base64 = encode(value);\n return {\n rr_type: _name,\n base64: base64\n };\n } else if (value instanceof DataView) {\n var _name2 = value.constructor.name;\n return {\n rr_type: _name2,\n args: [serializeArg(value.buffer, win, ctx), value.byteOffset, value.byteLength]\n };\n } else if (value instanceof HTMLImageElement) {\n var _name3 = value.constructor.name;\n var src = value.src;\n return {\n rr_type: _name3,\n src: src\n };\n } else if (value instanceof HTMLCanvasElement) {\n var _name4 = 'HTMLImageElement';\n\n var _src = value.toDataURL();\n\n return {\n rr_type: _name4,\n src: _src\n };\n } else if (value instanceof ImageData) {\n var _name5 = value.constructor.name;\n return {\n rr_type: _name5,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || _typeof(value) === 'object') {\n var _name6 = value.constructor.name;\n var index = saveWebGLVar(value, win, ctx);\n return {\n rr_type: _name6,\n index: index\n };\n }\n\n return value;\n}\n\nvar serializeArgs = function serializeArgs(args, win, ctx) {\n return args.map(function (arg) {\n return serializeArg(arg, win, ctx);\n });\n};\n\nvar isInstanceOfWebGLObject = function isInstanceOfWebGLObject(value, win) {\n var webGLConstructorNames = ['WebGLActiveInfo', 'WebGLBuffer', 'WebGLFramebuffer', 'WebGLProgram', 'WebGLRenderbuffer', 'WebGLShader', 'WebGLShaderPrecisionFormat', 'WebGLTexture', 'WebGLUniformLocation', 'WebGLVertexArrayObject', 'WebGLVertexArrayObjectOES'];\n var supportedWebGLConstructorNames = webGLConstructorNames.filter(function (name) {\n return typeof win[name] === 'function';\n });\n return Boolean(supportedWebGLConstructorNames.find(function (name) {\n return value instanceof win[name];\n }));\n};\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector, unblockSelector) {\n var handlers = [];\n var props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\n\n var _iterator = _createForOfIteratorHelper(props2D),\n _step;\n\n try {\n var _loop = function _loop() {\n var prop = _step.value;\n\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\n return \"continue\";\n }\n\n var restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\n return function () {\n var _this2 = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\n setTimeout(function () {\n var recordArgs = serializeArgs(args, win, _this2);\n cb(_this2.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n\n return original.apply(this, args);\n };\n });\n handlers.push(restoreHandler);\n } catch (e) {\n var hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\n set: function set(v) {\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n\n if (_ret === \"continue\") continue;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return function () {\n handlers.forEach(function (h) {\n return h();\n });\n };\n}\n\nfunction getNormalizedContextName(contextType) {\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\n}\n\nfunction initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, setPreserveDrawingBufferToTrue) {\n var handlers = [];\n\n try {\n var restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\n return function (contextType) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n if (!isBlocked(this, blockClass, blockSelector, unblockSelector, true)) {\n var ctxName = getNormalizedContextName(contextType);\n if (!('__context' in this)) this.__context = ctxName;\n\n if (setPreserveDrawingBufferToTrue && ['webgl', 'webgl2'].includes(ctxName)) {\n if (args[0] && _typeof(args[0]) === 'object') {\n var contextAttributes = args[0];\n\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n\n return original.apply(this, [contextType].concat(args));\n };\n });\n handlers.push(restoreHandler);\n } catch (e) {\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\n }\n\n return function () {\n handlers.forEach(function (h) {\n return h();\n });\n };\n}\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, unblockSelector, mirror, win) {\n var handlers = [];\n var props = Object.getOwnPropertyNames(prototype);\n\n var _iterator2 = _createForOfIteratorHelper(props),\n _step2;\n\n try {\n var _loop2 = function _loop2() {\n var prop = _step2.value;\n\n if (['isContextLost', 'canvas', 'drawingBufferWidth', 'drawingBufferHeight'].includes(prop)) {\n return \"continue\";\n }\n\n try {\n if (typeof prototype[prop] !== 'function') {\n return \"continue\";\n }\n\n var restoreHandler = patch(prototype, prop, function (original) {\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var result = original.apply(this, args);\n saveWebGLVar(result, win, this);\n\n if ('tagName' in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\n var recordArgs = serializeArgs(args, win, this);\n var mutation = {\n type: type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n\n return result;\n };\n });\n handlers.push(restoreHandler);\n } catch (e) {\n var hookHandler = hookSetter(prototype, prop, {\n set: function set(v) {\n cb(this.canvas, {\n type: type,\n property: prop,\n args: [v],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n };\n\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _ret2 = _loop2();\n\n if (_ret2 === \"continue\") continue;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return handlers;\n}\n\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, unblockSelector, mirror) {\n var handlers = [];\n handlers.push.apply(handlers, _toConsumableArray(patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, unblockSelector, mirror, win)));\n\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\n handlers.push.apply(handlers, _toConsumableArray(patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, unblockSelector, mirror, win)));\n }\n\n return function () {\n handlers.forEach(function (h) {\n return h();\n });\n };\n}\n\nvar r = \"for(var e=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\",t=\\\"undefined\\\"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s=\\\"\\\";for(a=0;a>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+\\\"=\\\":r%3==1&&(s=s.substring(0,s.length-2)+\\\"==\\\"),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!(\\\"OffscreenCanvas\\\"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+\\\"-\\\"+t;if(\\\"OffscreenCanvas\\\"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext(\\\"2d\\\");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return\\\"\\\"}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext(\\\"bitmaprenderer\\\"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:\\\"low\\\"});w.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};\";\n\nfunction t() {\n var t = new Blob([r]);\n return URL.createObjectURL(t);\n}\n\nvar CanvasManager = /*#__PURE__*/function () {\n function CanvasManager(options) {\n var _this3 = this;\n\n _classCallCheck(this, CanvasManager);\n\n this.pendingCanvasMutations = new Map();\n this.rafStamps = {\n latestId: 0,\n invokeId: null\n };\n this.shadowDoms = new Set();\n this.windowsSet = new WeakSet();\n this.windows = [];\n this.restoreHandlers = [];\n this.frozen = false;\n this.locked = false;\n this.snapshotInProgressMap = new Map();\n this.worker = null;\n\n this.processMutation = function (target, mutation) {\n var newFrame = _this3.rafStamps.invokeId && _this3.rafStamps.latestId !== _this3.rafStamps.invokeId;\n if (newFrame || !_this3.rafStamps.invokeId) _this3.rafStamps.invokeId = _this3.rafStamps.latestId;\n\n if (!_this3.pendingCanvasMutations.has(target)) {\n _this3.pendingCanvasMutations.set(target, []);\n }\n\n _this3.pendingCanvasMutations.get(target).push(mutation);\n };\n\n var _options$sampling = options.sampling,\n sampling = _options$sampling === void 0 ? 'all' : _options$sampling,\n win = options.win,\n blockClass = options.blockClass,\n blockSelector = options.blockSelector,\n unblockSelector = options.unblockSelector,\n maxCanvasSize = options.maxCanvasSize,\n recordCanvas = options.recordCanvas,\n dataURLOptions = options.dataURLOptions,\n errorHandler = options.errorHandler;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n this.options = options;\n\n if (errorHandler) {\n registerErrorHandler(errorHandler);\n }\n\n if (recordCanvas && typeof sampling === 'number' || options.enableManualSnapshot) {\n this.worker = this.initFPSWorker();\n }\n\n this.addWindow(win);\n\n if (options.enableManualSnapshot) {\n return;\n }\n\n callbackWrapper(function () {\n if (recordCanvas && sampling === 'all') {\n _this3.startRAFTimestamping();\n\n _this3.startPendingCanvasMutationFlusher();\n }\n\n if (recordCanvas && typeof sampling === 'number') {\n _this3.initCanvasFPSObserver(sampling, blockClass, blockSelector, unblockSelector, maxCanvasSize, {\n dataURLOptions: dataURLOptions\n });\n }\n })();\n }\n\n _createClass(CanvasManager, [{\n key: \"reset\",\n value: function reset() {\n this.pendingCanvasMutations.clear();\n this.restoreHandlers.forEach(function (handler) {\n try {\n handler();\n } catch (e) {}\n });\n this.restoreHandlers = [];\n this.windowsSet = new WeakSet();\n this.windows = [];\n this.shadowDoms = new Set();\n\n _optionalChain([this, 'access', function (_) {\n return _.worker;\n }, 'optionalAccess', function (_2) {\n return _2.terminate;\n }, 'call', function (_3) {\n return _3();\n }]);\n\n this.worker = null;\n this.snapshotInProgressMap = new Map();\n\n if (this.options.recordCanvas && typeof this.options.sampling === 'number' || this.options.enableManualSnapshot) {\n this.worker = this.initFPSWorker();\n }\n }\n }, {\n key: \"freeze\",\n value: function freeze() {\n this.frozen = true;\n }\n }, {\n key: \"unfreeze\",\n value: function unfreeze() {\n this.frozen = false;\n }\n }, {\n key: \"lock\",\n value: function lock() {\n this.locked = true;\n }\n }, {\n key: \"unlock\",\n value: function unlock() {\n this.locked = false;\n }\n }, {\n key: \"addWindow\",\n value: function addWindow(win) {\n var _this4 = this;\n\n var _this$options = this.options,\n _this$options$samplin = _this$options.sampling,\n sampling = _this$options$samplin === void 0 ? 'all' : _this$options$samplin,\n blockClass = _this$options.blockClass,\n blockSelector = _this$options.blockSelector,\n unblockSelector = _this$options.unblockSelector,\n recordCanvas = _this$options.recordCanvas,\n enableManualSnapshot = _this$options.enableManualSnapshot;\n if (this.windowsSet.has(win)) return;\n\n if (enableManualSnapshot) {\n this.windowsSet.add(win);\n this.windows.push(new WeakRef(win));\n return;\n }\n\n callbackWrapper(function () {\n if (recordCanvas && sampling === 'all') {\n _this4.initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector);\n }\n\n if (recordCanvas && typeof sampling === 'number') {\n var canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, true);\n\n _this4.restoreHandlers.push(function () {\n canvasContextReset();\n });\n }\n })();\n this.windowsSet.add(win);\n this.windows.push(new WeakRef(win));\n }\n }, {\n key: \"addShadowRoot\",\n value: function addShadowRoot(shadowRoot) {\n this.shadowDoms.add(new WeakRef(shadowRoot));\n }\n }, {\n key: \"resetShadowRoots\",\n value: function resetShadowRoots() {\n this.shadowDoms = new Set();\n }\n }, {\n key: \"initFPSWorker\",\n value: function initFPSWorker() {\n var _this5 = this;\n\n var worker = new Worker(t());\n\n worker.onmessage = function (e) {\n var data = e.data;\n var id = data.id;\n\n _this5.snapshotInProgressMap.set(id, false);\n\n if (!('base64' in data)) return;\n var base64 = data.base64,\n type = data.type,\n width = data.width,\n height = data.height;\n\n _this5.mutationCb({\n id: id,\n type: CanvasContext['2D'],\n commands: [{\n property: 'clearRect',\n args: [0, 0, width, height]\n }, {\n property: 'drawImage',\n args: [{\n rr_type: 'ImageBitmap',\n args: [{\n rr_type: 'Blob',\n data: [{\n rr_type: 'ArrayBuffer',\n base64: base64\n }],\n type: type\n }]\n }, 0, 0, width, height]\n }]\n });\n };\n\n return worker;\n }\n }, {\n key: \"initCanvasFPSObserver\",\n value: function initCanvasFPSObserver(fps, blockClass, blockSelector, unblockSelector, maxCanvasSize, options) {\n var rafId = this.takeSnapshot(false, fps, blockClass, blockSelector, unblockSelector, maxCanvasSize, options.dataURLOptions);\n this.restoreHandlers.push(function () {\n cancelAnimationFrame(rafId);\n });\n }\n }, {\n key: \"initCanvasMutationObserver\",\n value: function initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector) {\n var canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, false);\n var canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector);\n var canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector, this.mirror);\n this.restoreHandlers.push(function () {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n });\n }\n }, {\n key: \"snapshot\",\n value: function snapshot(canvasElement) {\n var options = this.options;\n var rafId = this.takeSnapshot(true, options.sampling === 'all' ? 2 : options.sampling || 2, options.blockClass, options.blockSelector, options.unblockSelector, options.maxCanvasSize, options.dataURLOptions, canvasElement);\n this.restoreHandlers.push(function () {\n cancelAnimationFrame(rafId);\n });\n }\n }, {\n key: \"takeSnapshot\",\n value: function takeSnapshot(isManualSnapshot, fps, blockClass, blockSelector, unblockSelector, maxCanvasSize, dataURLOptions, canvasElement) {\n var _this6 = this;\n\n var timeBetweenSnapshots = 1000 / fps;\n var lastSnapshotTime = 0;\n var rafId;\n\n var getCanvas = function getCanvas(canvasElement) {\n if (canvasElement) {\n return [canvasElement];\n }\n\n var matchedCanvas = [];\n\n var searchCanvas = function searchCanvas(root) {\n root.querySelectorAll('canvas').forEach(function (canvas) {\n if (!isBlocked(canvas, blockClass, blockSelector, unblockSelector)) {\n matchedCanvas.push(canvas);\n }\n });\n };\n\n var _iterator3 = _createForOfIteratorHelper(_this6.windows),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n\n var _window = item.deref();\n\n if (_window) {\n searchCanvas(_window.document);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n var _iterator4 = _createForOfIteratorHelper(_this6.shadowDoms),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _item = _step4.value;\n\n var shadowRoot = _item.deref();\n\n if (shadowRoot) {\n searchCanvas(shadowRoot);\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return matchedCanvas;\n };\n\n var takeCanvasSnapshots = function takeCanvasSnapshots(timestamp) {\n if (!_this6.windows.length) {\n return;\n }\n\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n\n lastSnapshotTime = timestamp;\n getCanvas(canvasElement).forEach(function (canvas) {\n if (!_this6.mirror.hasNode(canvas)) {\n return;\n }\n\n var id = _this6.mirror.getId(canvas);\n\n if (_this6.snapshotInProgressMap.get(id)) return;\n if (!canvas.width || !canvas.height) return;\n\n _this6.snapshotInProgressMap.set(id, true);\n\n if (!isManualSnapshot && ['webgl', 'webgl2'].includes(canvas.__context)) {\n var context = canvas.getContext(canvas.__context);\n\n if (_optionalChain([context, 'optionalAccess', function (_4) {\n return _4.getContextAttributes;\n }, 'call', function (_5) {\n return _5();\n }, 'optionalAccess', function (_6) {\n return _6.preserveDrawingBuffer;\n }]) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n\n createImageBitmap(canvas).then(function (bitmap) {\n _optionalChain([_this6, 'access', function (_7) {\n return _7.worker;\n }, 'optionalAccess', function (_8) {\n return _8.postMessage;\n }, 'call', function (_9) {\n return _9({\n id: id,\n bitmap: bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: dataURLOptions,\n maxCanvasSize: maxCanvasSize\n }, [bitmap]);\n }]);\n }).catch(function (error) {\n callbackWrapper(function () {\n throw error;\n })();\n });\n });\n\n if (!isManualSnapshot) {\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n }\n };\n\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n return rafId;\n }\n }, {\n key: \"startPendingCanvasMutationFlusher\",\n value: function startPendingCanvasMutationFlusher() {\n var _this7 = this;\n\n onRequestAnimationFrame(function () {\n return _this7.flushPendingCanvasMutations();\n });\n }\n }, {\n key: \"startRAFTimestamping\",\n value: function startRAFTimestamping() {\n var _this8 = this;\n\n var setLatestRAFTimestamp = function setLatestRAFTimestamp(timestamp) {\n _this8.rafStamps.latestId = timestamp;\n onRequestAnimationFrame(setLatestRAFTimestamp);\n };\n\n onRequestAnimationFrame(setLatestRAFTimestamp);\n }\n }, {\n key: \"flushPendingCanvasMutations\",\n value: function flushPendingCanvasMutations() {\n var _this9 = this;\n\n this.pendingCanvasMutations.forEach(function (values, canvas) {\n var id = _this9.mirror.getId(canvas);\n\n _this9.flushPendingCanvasMutationFor(canvas, id);\n });\n onRequestAnimationFrame(function () {\n return _this9.flushPendingCanvasMutations();\n });\n }\n }, {\n key: \"flushPendingCanvasMutationFor\",\n value: function flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n\n var valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n var values = valuesWithType.map(function (value) {\n var type = value.type,\n rest = _objectWithoutProperties(value, _excluded);\n\n return rest;\n });\n var type = valuesWithType[0].type;\n this.mutationCb({\n id: id,\n type: type,\n commands: values\n });\n this.pendingCanvasMutations.delete(canvas);\n }\n }]);\n\n return CanvasManager;\n}();\n\nvar CANVAS_QUALITY = {\n low: {\n sampling: {\n canvas: 1\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.25\n }\n },\n medium: {\n sampling: {\n canvas: 2\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.4\n }\n },\n high: {\n sampling: {\n canvas: 4\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.5\n }\n }\n};\nvar INTEGRATION_NAME = 'ReplayCanvas';\nvar DEFAULT_MAX_CANVAS_SIZE = 1280;\n/** Exported only for type safe tests. */\n\nvar _replayCanvasIntegration = function _replayCanvasIntegration() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = options.maxCanvasSize || [],\n _ref2 = _slicedToArray(_ref, 2),\n maxCanvasWidth = _ref2[0],\n maxCanvasHeight = _ref2[1];\n\n var _canvasOptions = {\n quality: options.quality || 'medium',\n enableManualSnapshot: options.enableManualSnapshot,\n maxCanvasSize: [maxCanvasWidth ? Math.min(maxCanvasWidth, DEFAULT_MAX_CANVAS_SIZE) : DEFAULT_MAX_CANVAS_SIZE, maxCanvasHeight ? Math.min(maxCanvasHeight, DEFAULT_MAX_CANVAS_SIZE) : DEFAULT_MAX_CANVAS_SIZE]\n };\n var canvasManagerResolve;\n\n var _canvasManager = new Promise(function (resolve) {\n return canvasManagerResolve = resolve;\n });\n\n return {\n name: INTEGRATION_NAME,\n getOptions: function getOptions() {\n var quality = _canvasOptions.quality,\n enableManualSnapshot = _canvasOptions.enableManualSnapshot,\n maxCanvasSize = _canvasOptions.maxCanvasSize;\n return _objectSpread({\n enableManualSnapshot: enableManualSnapshot,\n recordCanvas: true,\n getCanvasManager: function getCanvasManager(getCanvasManagerOptions) {\n var manager = new CanvasManager(_objectSpread(_objectSpread({}, getCanvasManagerOptions), {}, {\n enableManualSnapshot: enableManualSnapshot,\n maxCanvasSize: maxCanvasSize,\n errorHandler: function errorHandler(err) {\n try {\n if (_typeof(err) === 'object') {\n err.__rrweb__ = true;\n }\n } catch (error) {// ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n }\n }));\n canvasManagerResolve(manager);\n return manager;\n }\n }, CANVAS_QUALITY[quality || 'medium'] || CANVAS_QUALITY.medium);\n },\n snapshot: function snapshot(canvasElement) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var canvasManager;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return _canvasManager;\n\n case 2:\n canvasManager = _context.sent;\n canvasManager.snapshot(canvasElement);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n }\n };\n};\n/**\n * Add this in addition to `replayIntegration()` to enable canvas recording.\n */\n\n\nvar replayCanvasIntegration = defineIntegration(_replayCanvasIntegration);\nexport { replayCanvasIntegration };","var _excluded = [\"open\", \"onFormSubmitted\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getClient, getCurrentScope, captureFeedback, getIsolationScope, getGlobalScope } from '@sentry/core';\nimport { GLOBAL_OBJ, getLocationHref, isBrowser, logger } from '@sentry/utils'; // exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and feedback packages\n\nvar WINDOW = GLOBAL_OBJ;\nvar DOCUMENT = WINDOW.document;\nvar NAVIGATOR = WINDOW.navigator;\nvar TRIGGER_LABEL = 'Report a Bug';\nvar CANCEL_BUTTON_LABEL = 'Cancel';\nvar SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nvar CONFIRM_BUTTON_LABEL = 'Confirm';\nvar FORM_TITLE = 'Report a Bug';\nvar EMAIL_PLACEHOLDER = 'your.email@example.org';\nvar EMAIL_LABEL = 'Email';\nvar MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nvar MESSAGE_LABEL = 'Description';\nvar NAME_PLACEHOLDER = 'Your Name';\nvar NAME_LABEL = 'Name';\nvar SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\nvar IS_REQUIRED_LABEL = '(required)';\nvar ADD_SCREENSHOT_LABEL = 'Add a screenshot';\nvar REMOVE_SCREENSHOT_LABEL = 'Remove screenshot';\nvar FEEDBACK_WIDGET_SOURCE = 'widget';\nvar FEEDBACK_API_SOURCE = 'api';\nvar SUCCESS_MESSAGE_TIMEOUT = 5000;\n/**\n * Public API to send a Feedback item to Sentry\n */\n\nvar sendFeedback = function sendFeedback(params) {\n var hint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n includeReplay: true\n };\n\n if (!params.message) {\n throw new Error('Unable to submit feedback with empty message');\n } // We want to wait for the feedback to be sent (or not)\n\n\n var client = getClient();\n\n if (!client) {\n throw new Error('No client setup, cannot send feedback.');\n }\n\n if (params.tags && Object.keys(params.tags).length) {\n getCurrentScope().setTags(params.tags);\n }\n\n var eventId = captureFeedback(_objectSpread({\n source: FEEDBACK_API_SOURCE,\n url: getLocationHref()\n }, params), hint); // We want to wait for the feedback to be sent (or not)\n\n return new Promise(function (resolve, reject) {\n // After 5s, we want to clear anyhow\n var timeout = setTimeout(function () {\n return reject('Unable to determine if Feedback was correctly sent.');\n }, 5000);\n var cleanup = client.on('afterSendEvent', function (event, response) {\n if (event.event_id !== eventId) {\n return;\n }\n\n clearTimeout(timeout);\n cleanup(); // Require valid status codes, otherwise can assume feedback was not sent successfully\n\n if (response && typeof response.statusCode === 'number' && response.statusCode >= 200 && response.statusCode < 300) {\n resolve(eventId);\n }\n\n if (response && typeof response.statusCode === 'number' && response.statusCode === 0) {\n return reject('Unable to send Feedback. This is because of network issues, or because you are using an ad-blocker.');\n }\n\n if (response && typeof response.statusCode === 'number' && response.statusCode === 403) {\n return reject('Unable to send Feedback. This could be because this domain is not in your list of allowed domains.');\n }\n\n return reject('Unable to send Feedback. This could be because of network issues, or because you are using an ad-blocker');\n });\n });\n};\n/*\n * For reference, the fully built event looks something like this:\n * {\n * \"type\": \"feedback\",\n * \"event_id\": \"d2132d31b39445f1938d7e21b6bf0ec4\",\n * \"timestamp\": 1597977777.6189718,\n * \"dist\": \"1.12\",\n * \"platform\": \"javascript\",\n * \"environment\": \"production\",\n * \"release\": 42,\n * \"tags\": {\"transaction\": \"/organizations/:orgId/performance/:eventSlug/\"},\n * \"sdk\": {\"name\": \"name\", \"version\": \"version\"},\n * \"user\": {\n * \"id\": \"123\",\n * \"username\": \"user\",\n * \"email\": \"user@site.com\",\n * \"ip_address\": \"192.168.11.12\",\n * },\n * \"request\": {\n * \"url\": None,\n * \"headers\": {\n * \"user-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15\"\n * },\n * },\n * \"contexts\": {\n * \"feedback\": {\n * \"message\": \"test message\",\n * \"contact_email\": \"test@example.com\",\n * \"type\": \"feedback\",\n * },\n * \"trace\": {\n * \"trace_id\": \"4C79F60C11214EB38604F4AE0781BFB2\",\n * \"span_id\": \"FA90FDEAD5F74052\",\n * \"type\": \"trace\",\n * },\n * \"replay\": {\n * \"replay_id\": \"e2d42047b1c5431c8cba85ee2a8ab25d\",\n * },\n * },\n * }\n */\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\n\n\nvar DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__;\n/**\n * Mobile browsers do not support `mediaDevices.getDisplayMedia` even though they have the api implemented\n * Instead they return things like `NotAllowedError` when called.\n *\n * It's simpler for us to browser sniff first, and avoid loading the integration if we can.\n *\n * https://stackoverflow.com/a/58879212\n * https://stackoverflow.com/a/3540295\n *\n * `mediaDevices.getDisplayMedia` is also only supported in secure contexts, and return a `mediaDevices is not supported` error, so we should also avoid loading the integration if we can.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n */\n\nfunction isScreenshotSupported() {\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(NAVIGATOR.userAgent)) {\n return false;\n }\n /**\n * User agent on iPads show as Macintosh, so we need extra checks\n *\n * https://forums.developer.apple.com/forums/thread/119186\n * https://stackoverflow.com/questions/60482650/how-to-detect-ipad-useragent-on-safari-browser\n */\n\n\n if (/Macintosh/i.test(NAVIGATOR.userAgent) && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 1) {\n return false;\n }\n\n if (!isSecureContext) {\n return false;\n }\n\n return true;\n}\n/**\n * Quick and dirty deep merge for the Feedback integration options\n */\n\n\nfunction mergeOptions(defaultOptions, optionOverrides) {\n return _objectSpread(_objectSpread(_objectSpread({}, defaultOptions), optionOverrides), {}, {\n tags: _objectSpread(_objectSpread({}, defaultOptions.tags), optionOverrides.tags),\n onFormOpen: function onFormOpen() {\n optionOverrides.onFormOpen && optionOverrides.onFormOpen();\n defaultOptions.onFormOpen && defaultOptions.onFormOpen();\n },\n onFormClose: function onFormClose() {\n optionOverrides.onFormClose && optionOverrides.onFormClose();\n defaultOptions.onFormClose && defaultOptions.onFormClose();\n },\n onSubmitSuccess: function onSubmitSuccess(data) {\n optionOverrides.onSubmitSuccess && optionOverrides.onSubmitSuccess(data);\n defaultOptions.onSubmitSuccess && defaultOptions.onSubmitSuccess(data);\n },\n onSubmitError: function onSubmitError(error) {\n optionOverrides.onSubmitError && optionOverrides.onSubmitError(error);\n defaultOptions.onSubmitError && defaultOptions.onSubmitError(error);\n },\n onFormSubmitted: function onFormSubmitted() {\n optionOverrides.onFormSubmitted && optionOverrides.onFormSubmitted();\n defaultOptions.onFormSubmitted && defaultOptions.onFormSubmitted();\n },\n themeDark: _objectSpread(_objectSpread({}, defaultOptions.themeDark), optionOverrides.themeDark),\n themeLight: _objectSpread(_objectSpread({}, defaultOptions.themeLight), optionOverrides.themeLight)\n });\n}\n/**\n * Creates